본문 바로가기
ML&DATA/핸즈온 머신러닝

개요

by sun__ 2020. 7. 16.

https://skasha.tistory.com/81

 

머신러닝 모델 성능 평가 (홀드아웃 및 k-겹 교차 검증)

모델이 너무 간단하면 과소적합(높은 편향)이 문제가 되기도하고, 모델이 너무 복잡하면 훈련 데이터에 과대적합(높은 분산)이 일어나 문제가 되곤 합니다. 이런 현상을 피해 적절한 편향-분산 t

skasha.tistory.com

1.6절 검증부분은 책 내용이 직관적으로 이해되지 않아 위 블로그로 공부했음을 밝힙니다.

 

1.1 intro
머신러닝 :

어떤 작업 T에 대한 프로그램의 성능을 P라고 측정했을 떄, 경험 E로 인해 성능 P가 향상됐다면, 이 프로그램은 작업 T와 성능 측정 P에 대해 경험 E로 학습한 것.

 

데이터 마이닝:

머신러닝을 적용해서 대용량의 데이터를 분석하여 보이지 않았던 패턴을 발견하는 것.

 

머신러닝은 다음 분야에 뛰어남

1) 많은 수동 조정과 규칙이 필요한 문제

2) 하드코딩으로 해결하기 힘든 복잡한 문제

3) 유동적인 환경

4) 복잡한 문제와 대량의 데이터에서 통찰 얻기

 

1.3 사례

이미지 분류 작업 : CNN(합성곱 신경망)

자연어 처리(natural language processing) : RNN(순환 신경망), CNN, 트랜스포머

회사의 내년 수익 예측 : 선형회귀, 다항회귀, 회귀SVM, 회귀 random forest, 인공신경망 등 회귀모델. RNN,CNN,트랜스포머가 사용되기도 함.

신용카드 부정거래 감지 : 이상치 탐지 작업

고객을 나누고 각 고객집합마다 다른 마케팅 전략 계획 : 군집(clustering)

고차원의 데이터셋을 의미있는 그래프로 표현 : 차원축소, 데이터 시각화 작업

지능형 봇 : 알파고, 강화학습(reinforcement learning)사용

 

1.4 머신러닝 시스템의 종류

* 지도 vs 비지도

* 온라인 vs 배치

* 사례기반(알고있는 데이터 포인트와 새 데이터 포인트 비교) vs 모델기반(예측모델생성)

 

지도 학습:

훈련 데이터에 레이블이 포함됨. 모두를 위한 딥러닝에서 다루는 부분. 회귀

 

비지도 학습:

훈련 데이터에 레이블이 포함되지 않음.

ex) clustering, 시각화와 차원축소, 연관 규칙 학습, 이상치 탐지

 

준지도 학습:

데이터에 레이블을 다는 것은 시간과 비용이 듦. 일부만 레이블이 있는 데이터 다룸

 

강화 학습:

학습하는 시스템을 agent라고 부름. 환경을 관찰하고 action을 실행하고 그 결과로 보상또는 패널티를 부여. 시간이 지나면서 가장 큰 보상을 얻기 위해 정책(policy)라고 부르는 최상의 전략을 스스로 학습함.

 

배치 학습(오프라인 학습):

시스템이 점진적으로 학습할 수 없음. 가용한 데이터를 모두 사용해 훈련시켜야 함. 시간과 자원을 많이 소모함.

 

온라인 학습:

데이터를 순차적으로, 미니배치라는 묶음단위로 하여 시스템 훈련시킴. 메인 메모리보다 큰 아주 큰 데이터셋을 학습하는 시스템에도 적용 가능. 이때를 외부 메모리(out of core)학습이라고 함. 

외부 메모리 학습은 보통 오프라인으로 실행되므로 혼란을 피하기 위해 점진적 학습이 더 좋은 표현.

 

사례기반 학습:

시스템이 훈련 샘플을 기억함으로써 학습. 유사도 측정을 사용해 새로운 데이터와 학습 샘픙을 비교하는 식으로 예측을 만듬(일반화 함).

 

모델기반 학습:

모델이란 아래의 세가지를 의미할 수 있음.

1) 모델의 종류(ex. 선형회귀)

2) 완전히 정의된 모델 구조(ex. 하나의 입력과 하나의 출력을 가진 선형 회귀)

3) 예측에 사용되기 위해 준비된 훈련된 최종 모델 (ex. 가중치 매트릭스를 갖는 하나의 입력과 하나의 출력을 가진 선형 회귀)

모델 선택이란 1)이나 2)를 선택하는 것이고, 모델 훈련이란 훈련 데이터에 잘 맞는 모델 파라미터(ex. 가중치 매트릭스)를 찾기 위해 알고리즘을 실행하는 것.

 

데이터 분석 -> 모델 선택 -> 훈련 데이터로 모델 훈련

 

 

1.5 머신러닝의 주요 도전 과제

 

----------데이터----------

훈련 데이터의 양:

복잡한 문제에선 알고리즘보다도 데이터가 더 중요하다는 논문들이 있음. 하지만 수백만 개의 데이터를 모으는 것은 어렵고 비용이 많이 드는 일이므로 아직은 알고리즘을 무시하면 안된다.

 

훈련 데이터의 대표성:

1) 샘플링 잡음sampling noise : 샘플이 작을 때 우연에 의한 대표성 없는 데이터

2) 샘플링 편향sampling bias : 샘플이 클 때, 표본 추출 방법이 잘못되어 대표성을 띠지 못하는 경우

 

훈련 데이터의 품질:

에러, 이상치(outlier), 잡음을 없애는 데 시간을 투자해야 한다.

 

관련 없는 특성(feature):

훈련에 사용할 좋은 특성들을 찾는 것을 특성공학이라고 하며 다음과 같은 작업임.

1) 특성 선택 : 가지고 있는 특성 중 훈련에 가장 유용한 특성 선택

2) 특성 추출 : 특성을 결합하여 더 유용한 특성 만듬. ex) 차원 축소

3) 새로운 데이터를 수집해 새 특성을 만듬

 

 

----------알고리즘----------

훈련 데이터 과대적합(overfitting):

모델이 훈련 데이터에 너무 잘 맞지만 일반성이 떨어짐(예측 정확도 떨어짐)

 

훈련 데이터의 노이즈 양에 비해 모델이 너무 복잡할 때 일어남. 파라미터 수를 줄이거나 훈련 데이터를 더 많이 모으거나 훈련 데이터 전처리를 잘 수행하거나 규제(regularization)를 통해 해결 가능.

 

* 규제(regularization) :

예를들어 $H(x) = w_1x + b$의 경우 $w_1$의 수정을 허락하되 작은 값을 갖도록 강제함. 규제의 양은 하이퍼파라미터가 결정함. 이 파라미터는 모델이 아니라 학습알고리즘의 파라미터임. 그래서 훈련하는 동안엔 상수로 남아있음. 규제의 양이 커지면 위 모델에선 기울기가 0에 가까운 평평한 모델이 될 것.

 

 

훈련 데이터의 과소적합(underfitting):

모델이 너무 단순해서 데이터의 내재된 구조를 학습하지 못할 때 발생.

 

모델 파라미터가 더 많은 모델 선택하거나 학습 알고리즘에 더 좋은 특성을 제공(특성 엔지니어링)하거나 모델의 제약을 줄이는 것(예를 들어 규제 하이퍼파라미터를 감소)을 통해 해결 가능.

 

 

1.6 테스트와 검증

 

 

훈련 데이터와 테스트 세트 두 개로 나누어 모델을 테스트 하는 것이 일반적임. 훈련 오차가 낮지만 일반화 오차가 높다면 이는 모델이 훈련 데이터에 과대적합되었다는 뜻임.

 

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

https://skasha.tistory.com/81

데이터셋을 훈련 세트와 일반화 성능을 추정하는데 사용할 테스트 세트로 나눕니다.
그리고 예측 성능을 높이기 위해 하이퍼파라미터를 튜닝하고 비교해야 하는데,
이때 모델 선택에 같은 테스트 세트를 반복해서 재사용하면 이는 훈련 세트의 일부가 되는 셈이고 모델이 과적합되는데 원인이 됩니다.

 

그러므로 데이터 셋을 훈련 세트, 검증 세트, 테스트 세트로 나누는 것이 적합합니다.
검증 세트를 이용하여 다른 하이퍼파라미터 값에서 모델을 훈련하는 것을 계속 반복하고 성능을 평가한 뒤, 만족할만한 성능이 나온 하이퍼파라미터를 이용하여 테스트 세트에서 모델의 일반화 성능을 측정합니다.

이를 홀드아웃 검증이라고 한다.

(단순한 검증과 다른 점은 일반화 성능을 측정하는 시기에 있는 것으로 이해함)

https://skasha.tistory.com/81

 

validation set의 크기가 너무 크거나 작으면 이상적이지 않다. 이를 해결하기 위해 검증세트를 여러 개 사용하여 교차검증(cross-validation)을 수행하는 것이 일반적이다. 

 

- 1.6.2 데이터 불일치:

훈련데이터가 실제 서비스에 사용될 데이터를 잘 대표해야 한다. ex) 직접 찍은 꽃 사진 vs 웹 상 꽃 사진

 

훈련 세트의 데이터와 validation set, test set 사이에 데이터 불일치 위험이 있을 때 사용.

 

훈련 세트에서 잘 동작하지만 훈련-개발세트에서 나쁜 성능을 내면 훈련세트에 과대적합됐을 가능성 높음.

 

훈련 세트와 훈련-개발 세트 양쪽에서 잘 동작하지만 개발(validation)세트에서 성능이 나쁘면 훈련데이터와 검증+테스트 데이터 사이에 불일치 가능성 높음. 검증+테스트 데이터에 더 가깝게 되도록 훈련 데이터 개선해야 함.

 

 

1.7 연습문제

 

1. 머신러닝 정의

어떤 작업 T에 대해 프로그램의 성능을 P라고 할 때, 경험 E에 의해 P가 개선되도록 하는 것.

 

2. 머신러닝 적용 문제 유형

아주 많은 규칙, 복잡한 문제, 유동적인 환경, 데이터에서 통찰 얻기(데이터 마이닝)

 

3. 레이블된 훈련 세트란?

지도학습에서 사용되는 데이터.

 

4. 지도학습의 예

회귀, 분류

 

5. 비지도학습의 예

clustering, 시각화와 차원축소, 연관규칙 학습, 이상치 탐지

 

6. 사전 정보가 없는 여러 지형에서 로봇의 보행을 설계할 때 사용할만한 머신러닝 알고리즘

강화학습

 

7. 고객의 분할에 사용할만한 알고리즘

clustering

 

8. 스팸감지문제는 지도학습인지 비지도학습인지?

지도학습

 

9. 온라인 학습 시스템이란?

점진적 학습이 가능한 것.

 

10. 외부 메모리 학습이란?

메인메모리보다 학습 데이터가 큰 경우. online 학습의 예

 

11. 예측을 위해 유사도 측정에 의존하는 학습 알고리즘

사례기반 학습

 

12. 모델 파라미터와 하이퍼파라미터의 차이

하이퍼파라미터는 학습 시 상수처럼 사용함. 학습 알고리즘 자체의 파라미터.

 

13. 모델 기반 알고리즘이 찾는 것, 성공을 위해 사용하는 일반적인 전략, 예측을 만드는 방법

 

모델 파라미터의 최적값(가중치), 훈련 데이터에서 오차 측정, 모델 파라미터에 맞는 예측함수

 

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

데이터의 양,대표성,잡음에 대한 문제, 과대적합, 과소적합 문제

 

15. 모델이 훈련 데이터에서 성능은 좋지만 일반화 성능이 나쁘다면 어떤 문제가 있는지? 해결방안?

과대적합. 파라미터 수 줄이거나 훈련데이터 양 늘리거나 훈련 데이터 전처리를 잘 하거나

 

16. 테스트 세트란?

모델 일반화 오차 추정 위함

 

17. 검증 세트의 목적

검증 세트는 모델을 비교하는 데 사용됨. 가장 좋은 모델 선택, 하이퍼파라미터 튜닝

 

18. 훈련 개발세트란?

훈련 세트의 데이터와 validation set, test set 사이에 데이터 불일치 위험이 있을 때 사용.

훈련 세트에서 잘 동작하지만 훈련-개발세트에서 나쁜 성능을 내면 훈련세트에 과대적합됐을 가능성 높음.

훈련 세트와 훈련-개발 세트 양쪽에서 잘 동작하지만 개발(validation)세트에서 성능이 나쁘면 훈련데이터와 검증+테스트 데이터 사이에 불일치 가능성 높음. 검증+테스트 데이터에 더 가깝게 되도록 훈련 데이터 개선해야 함.

 

19. 테스트 세트를 사용해 하이퍼 파라미터를 튜닝하면 어떤 문제가 생기는지?

하이퍼파라미터가 테스트세트에 맞춰질 수 있다.

 

 

 

 

 

 

'ML&DATA > 핸즈온 머신러닝' 카테고리의 다른 글

4 - 선형 회귀 (정규방정식)  (0) 2020.09.04
3 - 다중 레이블 분류, 다중 출력 분류  (2) 2020.08.27
3 - 에러분석  (0) 2020.08.27
3 - 다중분류  (0) 2020.08.27
3 - 분류기의 성능 측정  (0) 2020.08.25