본문 바로가기

Data science/머신러닝

Machine Learning란?

머신러닝이란?

머신러닝은 데이터에서 학습하도록 컴퓨터를 프로그래밍하는 과학이다.

시스템이 학습하는 데 사용하는 샘플을 training set 라고 하고 각각의 훈련 데이터를 training instance 라고 한다.

머신러닝 시스템에서 학습하고 예측을 만드는 부분을 model 이라고 한다.

대용량의 데이터를 분석하여 숨겨진 패턴을 발견하는 것을 data mining 이라고 한다.

머신러닝 시스템의 종류

  • 훈련 지도 방식
    • supervised learning
      • 알고리즘에 주입하는 훈련 데이터에 label 이라는 답이 포함된다.
      • classification , regression 등등이 전형적인 지도 학습이다.
    • unsupervised learning
      • 훈련 데이터에 label 이 없다.
      • clustering , visualization , outlier detection 등등이 비지도 학습이다.
    • semi-supervised learning
      • label이 일부만 있는 데이터를 다룰 때 사용한다.
      • 대부분 지도 학습과 비지도 학습의 조합으로 이루어져 있다.
    • self-supervised learning
      • label이 전혀 없는 dataset에서 label이 완전히 부여된 데이터 셋을 생성하는 것이다.
    • reinforcement learning
      • 학습하는 시스템을 agent 라고 부르며 환경을 관찰해서 행동을 실행하고 그 결과로 reward 부정적인 보상에 해당하는 penalty 를 얻는다.
    • batch learning
      • offline learning
        • 시스템이 점진적으로 학습할 수 없다. 가용한 모든 데이터를 사용해 훈련한다.
        • 먼저 시스템을 훈련시킨 다음 제품 시스템에 적용하면 더 이상의 학습 없이 실행된다.
      • online learning
        • 데이터를 순차적으로 한 개씩 또는 mini-bach 라 부르는 작은 묶음 단위로 주입하여 시스템을 훈련시킨다.

사례 기반 학습과 모델 기반 학습

  • instance-based learning
    • 시스템이 훈련 샘플을 기억함으로써 학습 한다. 그리고 유사도 측정을 사용해 데이터와 학습한 샘플을 비교하는 식으로 일반화 한다.
  • model-based learning
    • 샘플들의 모델을 만들어 prediction 에 사용하는 것이다.
    • 모델이 얼마나 좋은지 측정하는 utility function , 얼마나 나쁜지 측정하는 cost function 를 정의할 수 있다.
    1. 데이터를 분석한다.
    2. 모델을 선택한다.
    3. 훈련 데이터로 모델을 훈련시킨다. cost function 을 최소화 시키는 모델 파라미터를 찾는다.
    4. 새로운 데이터에 모델을 적용해 예측을 만든다.

머신런닝의 주요 과제

1. 충분하지 않는 양의 훈련 데이터

2. 대표성이 없는 훈련 데이터

3. 낮은 품질의 데이터

4. 관련 없는 특성

5. 훈련 데이터 과대적합

6. 훈련 데이터 과소적합

테스트와 검증

훈련 데이터를 training set , test set 두개로 나눈다. 훈련 세트를 사용해 모델을 훈련하고 데스트 세트를 사용해 모델을 테스트 한다.
새로운 샘플에 대한 오차 비율을 gerneraliztion error 라고 하며, 데스트 세트에서 모델을 평가함으로써 이 오차에 대한 추정값을 얻는다.

하이퍼파라미터 튜닝과 모델 선택

  • holdout validation
    • 훈련 세트의 일부를 떼어내어 여러 후보 모델을 평가하고 가장 좋은 하나를 선택한다. 이 새로운 홀드아웃 세트를 validation set 이라고 부른다.
  • cross-validation
    • 검증 세트마다 나머지 데이터에서 훈련한 모델을 해당 검증 세트에서 평가한다.

연습 문제

Q. 머신러닝을 어떻게 정의할 수 있는가?

A. 데이터에서 학습하도록 컴퓨터를 프로그래밍하는 과학이다.

Q. 머신러닝이 도움을 줄 수 있는 문제 유형 4가지

A. 명확한 해결책이 없는 복잡한 문제, 
수작업으로 만든 긴 규칙 리스트를 대체하는 경우, 
변화하는 환경에 적용하는 시스템을 만드는 경우, 
사람에게 인사이트를 제공하는 경우

Q. 레이블된 훈련 세트란 무엇인가?

A. 각 샘플에 대해 원하는 정답을 가지고 있는 훈련 세트이다.

Q. 가장 널리 사용되는 지도 학습 작업 두가지?

A. 회귀, 분류

Q. 보편적인 비지도 학습 작업 4가지

A. 군집화, 시각화, 차원 축소, 연관 규칙 학습

Q. 사전 정보가 없는 여러 지형에서 로봇을 걸어가게 하기 위한 머신러닝 알고리즘은?

A. 강화학습

Q. 고객을 여러 그룹을 분할하려면 어떤 알고리즘을 사용해야 하는 가?

A. 그룹을 어떻게 정의할지 모른다면 군집화 알고리즘(비지도 학습)
   그룹을 어떻게 정의할지 안다면 분류 알고리즘(지도학습)

Q. 스팸 감지 문제는 지도 학습과 비지도 학습 중 어떤 문제로 볼 수 있는가?

A. 지도 학습

Q. 온라인 학습 시스템이 무엇인가?

A. 온라인 학습은 점진적으로 학습 할 수 있다. 변화하는 데이터와 자율 시스템에 빠르게 적응하고 매우 많은 양의 데이터를 훈련시킬 수 있다.

Q. 외부 메모리 학습이 무엇인가?

A. 컴퓨터의 주 메모리에 들어갈 수 없는 대용량의 데어트를 다룰 수 있다. 데이터를 미니배치로 나누고 온라인 학습 기법을 사용한다.

Q. 예측을 하기 위해 유사도 측정에 의존하는 학습 알고리즘은 무엇인가?

A. 사례기반 학습이다.

Q. 모델 파라미터와 학습 알고리즘의 하이퍼파라미터 사이에는 어떤 차이가 있는가?

A. 모델은 하나 이상의 파라미터를 사용해 예측하고, 학습 알고리즘은 모델이 새로운 샘플에 잘 일반화하도록 이런 파라미터들의 값을 최적화 한다.
   하이퍼파라미터는 모델이 아니라 이런 학습 알고리즘 자체의 파라미터다.

link[https://www.oreilly.com/library/view/hands-on-machine-learning/9781492032632/

'Data science > 머신러닝' 카테고리의 다른 글

Classification  (0) 2025.03.30
housing 데이터를 이용한 머신러닝 학습  (0) 2025.03.28
PCA(주성분 분석)  (3) 2022.07.23
K-means clustering(k-평균 알고리즘)  (0) 2022.07.23
Loss function(손실 함수)  (0) 2022.07.17