[머신러닝] - 머신러닝의 개념 및 종류

2024. 8. 13. 17:28데이터 사이언스

프로그래밍 VS 머신러닝

  • 프로그래밍 : 인간이 주는 규칙이 있고 거기에 대한 데이터를 주면, 프로그래밍으로 해답을 내는 것
  • 머신러닝: 데이터와 해답을 주었을 때, 머신러닝을 통해 규칙을 도출해내는 것

인공지능 VS 머신러닝 VS 딥러닝

  • 머신러닝 : 컴퓨터가 스스로 학습하여 인공지능의 성능을 향상 시키는 기술 방법
  • 머신러닝의 상위분야가 인공지능
    • 사고나 학습 등 인간이 가진 지적 능력을 컴퓨터를 통해 구현하는 기술
  • 머신러닝의 하위분야 중 하나가 딥러닝
    • 인간의 뉴런과 비슷한 인공신경망 방식으로 정보를 처리

머신러닝 VS 딥러닝

  • 머신러닝
    • 입력 - 특징 추출 - 분류 - 출력
    • 입력을 통해 출력을 배출하는데, 그 사이에 “특징 추출”이 필요함
    • 인간이 미리 데이터의 특징을 입력하는 작업이 있어야함 → 인간의 주관이 조금 더 중요함
  • 딥러닝
    • 입력 - “특징 추출 + 분류” - 출력
    • 특징 추출까지 인공신경망을 통해서 내부에서 자체적으로 수행함
  • 그럼 딥러닝이 더 우월한 것 아니냐?
    • 딥러닝만의 한계 존재
      • 데이터를 더 많이 줘야하고, 시간이 많이 걸림
      • 특정 데이터 유형에 한정되어 잘 함 (CV, NLP) → 최근에는 LLM이 나오면서 조금더 잘 하게 되었지만, 그럼에도 불구하고 잘하는 분야가 존재
    • 즉, 머신러닝이 잘하는 분야가 있고, 딥러닝이 잘하는 분야가 있음

머신러닝 용어 정리

  • 머신러닝에서 행을 부르는 또 다른 말
    • 행 (row), 개체(instance), 관측치, 기록 (record), 사례 (example), 경우 (case)
  • 머신러닝에서 열을 부르는 또 다른 말
    • 열 (column), 특성 (feature), 속성 (attribute), 변수 (variable), field
  • 데이터들을 가지고 예측하고 싶은 것 : 라벨(label)
    • (ex) 고객번호, 성별, 나이, 재산(민원), 올해 구매액(만원)으로 예측하고 싶은 이탈여부(=라벨)

파라미터 & 하이퍼파라미터

  • 파라미터 (Parameter) : 머신러닝을 훈련하면서, 자동적으로 학습이 되는 부분
    • 머신러닝 훈련 모델에 의해 요구되는 변수
    • 머신러닝 훈련 모델의 성능은 파라미터에 의해 결정됨
    • 파라미터는 데이터로부터 추정 또는 학습됨
    • 파라미터는 개발자에 의해 수동으로 설정하지 않는다.
    • 학습된 모델의 일부로 저장된다.
    • 예) 인공신경망의 가중치, SVM의 서포트 벡터, 선형 회귀에의 결정계수
  • 하이퍼파라미터 (Hyperparameter) : 우리가 학습시킬 수는 없지만, 성능에 영향을 주는 것들로 인간이 수동으로 설정해야함(절대적으로 인간이 주어야하는 것은 아니며, 상황에 따라 다름)
    • 최적의 훈련 모델을 구현하기 위해 모델에 설정하는 변수
    • 개발자에 의해 수동으로 설정할 수 있다.
    • 학습 알고리즘의 샘플에 대한 일반화를 위해 조절된다.
    • 예) 학습률, 손실함수, k-NN의 k값, 은닉층의 개수, epoch 수

⇒ 주어진 머신러닝 상황에서 뭐가 파라미터이고, 뭐가 하이퍼파라미터인지 구분하는 것이 중요


머신러닝의 종류 - 지도학습 & 비지도학습 & 강화학습

  • 지도학습 - 분류/회귀
    • 레이블이 있음(= 답지가 있음)
    • 데이터와 답지를 넣어주면, 머신러닝이 알아서 규칙을 찾아주는 것을 기대
    • 출력 및 미래 예측에 집중
  • 비지도학습 - 군집화/차원축소
    • 레이블이 없음
    • 데이터에 숨겨진 구조를 찾는데 집중
  • 강화학습
    • 특정 목표를 위해 최선의 전략을 선택하도록 학습
    • 피드백이나 보상을 통해 학습