본문 바로가기
AI/Hands-On Machine Learning

[ CHAPER.01 ] 한눈에 보는 머신러닝

by jennyf 2022. 7. 27.

1. 머신러닝이란?

머신러닝은 명시적인 프로그래밍 없이 컴퓨터가 학습하는 능력을 갖추게 하는 연구 분야입니다.

성능 측정 P는 직접 정의해야 하며, 분류 작업에 자주 사용되는 예시로는 정확도(accuracy)가 있습니다.

 

2. 왜 머신러닝을 사용하는가?

머신러닝은 유동적인 환경으로, 새로운 데이터에 적응할 수 있습니다.

또한 복잡한 문제와 대량의 데이터에서 통찰을 얻을 수 있습니다.

 

3. 애플리케이션 사례

 

4. 머신러닝 시스템의 종류

먼저 머신러닝 시스템을 학습하는 동안의 감독 형태나 정보량에 따라 분류할 수 있습니다.

 

01) 지도 학습 / 비지도 학습 / 준지도 학습

지도 학습 

훈련 데이터에 label이라는 원하는 답이 포함됩니다.


classification이 전형적인 지도 학습입니다.(ex. spam filter)

regression 또한 지도 학습입니다.
regression이란 feature를 사용하여 target 수치를 예측하는 것입니다.

 

일부 회귀 알고리즘은 분류에 사용할 수도 있습니다. 반대로 일부 분류 알고리즘을 회귀에 사용할 수도 있습니다.

예를 들어 분류에 널리 쓰이는 로지스틱 회귀는 class에 속할 확률을 출력합니다. (ex. spam일 가능성 20%)

 

 

지도 학습 알고리즘

 

  • k-nearest neighbors
  • linear regression
  • logistic regression
  • SVM
  • decision tree, random forest
  • neural networks

 

비지도 학습

훈련 데이터에 label이 없습니다.
따라서 시스템이 아무런 도움 없이 학습해야 합니다.

 

비지도 학습 알고리즘

 

  • clustering
  • visualization, dimensionality reduction
  • association rule learning

 

준지도 학습

일부만 label이 있는 데이터를 다룹니다.

 

강화 학습

강화 학습은 매우 다른 종류의 알고리즘입니다.


환경을 관찰해서 행동을 실행하고 그 결과로 보상을 받습니다. 시간이 지나면서 가장 큰 보상을 얻기 위해 정책(policy)이라고 부르는 최상의 전략을 스스로 학습합니다.

 

 

02) 배치 학습 / 온라인 학습

머신러닝 시스템을 분류하는데 사용하는 다른 기준은 입력 데이터 stream부터 점진적으로 학습할 수 있는지 여부입니다.

 

배치 학습

배치 학습은 시스템이 점진적으로 학습할 수 없습니다.


가용한 데이터를 모두 사용해 훈련시켜야 합니다.
이 방식은 시간과 자원을 많이 소모하므로 보통 오프라인에서 수행됩니다.

배치 학습 시스템이 새로운 데이터에 대해 학습하려면 전체 데이터를 사용하여 시스템의 새로운 버전을 처음부터 다시 훈련해야 합니다.
그런 다음 이전 시스템을 중지시키고 새 시스템으로 교체합니다.

 

온라인 학습

온라인 학습에서는 데이터를 순차적으로 한 개씩 또는 미니 배치(작은 묶음 단위)로 주입하여 시스템을 훈련시킵니다.
매 학습 단계가 빠르고 비용이 적게 들어 시스템은 데이터가 도착하는 대로 즉시 학습할 수 있습니다.

 

온라인 학습 시스템에서 중요한 파라미터는 learning rate(학습률)입니다.
학습률은 변화하는 데이터에 얼마나 빠르게 적응할 것인지를 의미합니다.

 

  • 학습률이 높으면 시스템이 데이터에 빠르게 적응하지만, 예전 데이터를 금방 잊어버립니다.
  • 학습률이 낮으면 시스템의 관성이 더 커져서 더 느리게 학습됩니다.

 

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

머신러닝 시스템은 어떻게 일반화되는가에 따라 분류할 수도 있습니다.


대부분의 머신러닝 작업은 예측을 만드는 것입니다. 주어진 train data로 학습하고 train data에서는 본 적 없는 새로운 데이터에서 좋은 예측을 만들어야(일반화) 한다는 뜻입니다.


진짜 목표는 새로운 샘플에 잘 작동하는 모델입니다.

 

사례 기반 학습

시스템이 train sample을 기억함으로써 학습합니다.
유사도 측정을 사용하여 새로운 데이터와 학습한 샘플을 비교하는 식으로 일반화합니다.

 

모델 기반 학습


모델 기반 학습은 sample의 모델을 만들어 prediction에 사용하는 것입니다. (주로 다루는 방법입니다.)

 

1인당 GDP라는 특성 하나를 가진 삶의 문족도에 대한 선형 모델을 선택한 경우를 살펴봅니다.


이 모델은 두 개의 모델 파라미터를 가집니다. 모델을 사용하기 전에 이 파라미터들을 정의해야 합니다.
모델이 최상의 성능을 내도록 하는 값을 어떻게 알 수 있을까요? ==> 바로 측정 지표를 정해야 합니다.

 

모델이 얼마나 좋은지 측정하는 효용 함수, 얼마나 나쁜지 측정하는 비용 함수를 정의할 수 있습니다.

선형 회귀에서는 보통 선형 모델의 예측과 훈련 데이터 사이의 거리를 재는 비용 함수를 사용합니다. 이 거리를 최소화하는 것이 목표입니다.

 

즉 모델을 훈련시킨다 라는 말은 훈련 데이터에 가장 잘 맞는 모델 파라미터를 찾기 위해 알고리즘을 실행하는 것을 의미합니다.

 

 

지금까지의 작업을 정리해보자면,

  1. 먼저 데이터를 분석합니다.
  2. 모델을 선택합니다.
  3. 훈련 데이터로 모델을 훈련시킵니다. (학습 알고리즘이 비용 함수를 최소화하는 모델 파라미터를 찾습니다.)
  4. 마지막으로 새로운 데이터에 모델을 적용해 예측을 하고. 모델이 잘 일반화되길 기대합니다.

 

 

5. 머신러닝의 주요 도전 과제

01) 충분하지 않은 양의 훈련 데이터

02) 대표성이 없는 훈련 데이터

03) 낮은 품질의 데이터

04) 관련 없는 특성

05) 훈련 데이터 과대적합

 

모델이 훈련 데이터에 너무 잘 맞지만 일반성이 떨어진다는 것을 의미합니다.(훈련 데이터만 잘 맞는 경우)

 

  • 파라미터 수가 적은 모델 / 훈련 데이터에 있는 특성 수 줄이기 / 모델에 제약을 가하며 단순화시킵니다.
  • 훈련 데이터를 더 많이 모읍니다.
  • 훈련 데이터의 잡음을 줄입니다. (오류 데이터 수정과 이상치 제거)

 

06) 훈련 데이터 과소적합

 

모델이 너무 단순해서 데이터의 내재된 구조를 학습하지 못할 때 일어납니다.

 

6. 테스트와 검증

모델이 새로운 샘플에 얼마나 잘 일반화될지 아는 유일한 방법은 새로운 샘플에 실제로 적용해 보는 것입니다.

 

훈련 데이터를 훈련 세트와 테스트 세트 두 개로 나눠줍니다.


새로운 샘플에 대한 오류 비율을 일반화 오차라고 하며, 테스트 세트에서 모델을 평가함으로써 이 오차에 대한 추정값을 얻습니다. 일반화 오차는 이전에 본 적 없는 새로운 샘플에 모델이 얼마나 잘 작동할지 알려줍니다.

 

훈련 오차가 낮지만, 일반화 오차가 높다면 (= train data 아주 좋음, test 안 좋음), 이는 모델이 훈련 데이터에 과대적합되었다는 뜻입니다.