5장 : 머신러닝의 기본요소 ***
몇번의 에포크 후에 이전에 본적 없는 데이터에 대한 성능이 훈련 데이터의 성능에서 크게 벌어지기 시작. 훈련데이터의 성능은 룬련이 진행될수록 계속 향상됨. ⇒ 과대적합 ⇒ 점점 일반화 성능이 나빠짐
최적화와 일반화
최적화(optimization) : 가능한 훈련 데이터에서 최고의 성능을 얻으려고 모델을 조정하는 과정 - 머신러닝에서 학습에 해당
일반화(generalization) : 훈련된 모델이 이전에 본적없는 데이터에서 얼마나 잘 수행되는지 의미
과소적합과 과대적합
훈련 초기에 최적화와 일반화는 상호 연관 : 훈련데이터의 손실이 낮아질수록 테스트 데이터의 손실도 낮아짐 : 과소적합(inderfitting) - 모델의 성능이 발전될 여지가 있음. 아직 모든 관련 패턴학습X
점점 훈련 반복 → 일반화성능 어느순간부터 유지, 검증세트 성능 멈추고 감소 → 과대적합 시작.
과대적합 : 데이터에 잡음, 불확실성 존재, 드문 특성 포함시 발생 가능성 높음
[잡음 섞인 훈련 데이터]
[불확실한 특성]
객관적인 경계가 없어서 레이블할당하는 사람마다 동일한 사진을 다르게 분류할 수 있다.
[드문특성과 가짜 상관관계]
가짜 상관관계를 만들어내는 데 특성값이 몇번만 등장할 필요X
의미없는 특성의 연결은 데이터의 기존정보에 전혀 영향을 미치지 않는다.
잡음을 더 많이 섞을수록 정확도는 더 감소될 것이다.
잡음특성은 필연적으로 과대적합을 유발시킨다.
⇒ 특성이 모델에 유익한지 혼란스럽게 만드는지 확실하지 않다면 훈련전에 특성 선택을 수행하는 것이 일반적.
딥러닝에서 일반화의 본질
[매니폴드 가설]
매니폴드 : 국부적으로 선형 유클리드 공간과 비슷하게 보이는 부모 공간의 저차원 부분 공간이다. ex) 평면상의 매끄러운 한 곡선은 2D 공간 안에 있는 ID 매니폴드.
매니폴드 가설은 실제 세상의 모든 데이터가 고차원 공간안에 있는 저차원 매니폴드에 놓여있다고 가정함.
- 샘플 사이를 보간하는(보간(Interpolation)은 인접한 데이터 점에 적합한 함수(일반적으로 다항식) 조각을 맞추어 데이터의 중간 값을 찾는 프로세스) 연속적인 경로를 따라 한 입력에서 다른 입력으로 변형할 때 능력은 딥러닝에서 일반화를 이해하는 열쇠이다.
- 머신러닝 모델은 가능한 입력 공간안에서 비교적 간단하고 저차원적이며 매우 구조적인 부분공간만 학습하면 된다.
[일반화의 원천인 보간]
지역일반화 - 이전에 본 것과 매우 가까운 것을 이해하는데 도움을 주는 정도
[딥러닝이 작동하는 이유]
딥러닝은 잠재 매니폴드를 풀기위한 도구
딥러닝 모델은 근본적으로 매우 고차원의 곡선 + 미분할 수 있어야하므로 매끄럽고 연속적인 곡선,
[가장 중요한 훈련 데이터]
딥러닝 일반화의 능력은 데이터의 자연적인 구조로 인한 결과로, 데이터가 보간할 수 있는 매니폴드를 형성하는 경우에만 일반화가 가능하다.
입력공간을 샘플링하여 훈련을 해야함.
머신러닝 모델 평가
훈련, 검증, 테스트 세트
하이퍼파라미터 - 모델 개발 시 층이나 층의 유닛 개수를 선택하는 파라미터
정보누설 - 검증세트의 모델 성능에 기반하여 모델의 하이퍼파라미터를 조정할때마다 검증 데이터에 관한 정보가 모델로 새는 것.
[모델 평가 방법]
- 단순 홀드아웃 검증
- 데이터의 일정량을 테스트 세트와 검증 세트로 떼어놓는 방법
- K-겹 교차 검증
- 데이터를 동일한 크기의 k개로 분할하고, 각 분할 i에 대해 남은 k-1개의 분할로 모델 훈련 및 분할 i에서 모델평가
- k개의 점수를 평균하여 최종 점수를 냄
- 반복 K-겹 교차 검증
- 가용 데이터가 적고 가능한 정확하게 모델을 평가할 때 사용하는 방법
- 최종 점수는 모든 K-겹 교차 검증을 통해서 얻은 점수의 평균
[모델평가에 대해 유의해야 할 점]
- 대표성이 있는 데이터 : 훈련 세트와 테스트 세트가 주어진 데이터에 대한 대표성이 있어야 함
- 시간의 방향: 훈련 세트에 있는 데이터보다 테스트 세트에 있는 모든 데이터가 미래의 것이어야 함.
- 데이터 중복 : 훈련 세트와 검증 세트가 중복되지 않는지 확인이 필요하다.
훈련 성능 향상하기
경사 하강법의 핵심파라미터 튜닝하기
훈련이 시작되지 않거나 너무 일찍 중단된 경우, 대부분 경사 하강법 과정에 대한 설정에 문제가 있다. → 나머지 파라미터는 고정하고 학습률과 배치크기 튜닝으로 문제 해결
- 학습률을 낮추거나 높임
- 배치크기를 증가 (잡음이 적은 그레이디언트 생성)
구조에 대해 더 나은 가정하기
구조에 대한 올바른 가정을 내리고 해결하려는 작업의 종류에 대한 적절한 구조가 무엇인지 찾아보기!!
모델 용량 늘리기
: 모델을 과대적합시키기
일반화 성능 향상하기
데이터셋 큐레이션
- 데이터가 충분한지 체크하기, 좋은 데이터는 데이터가 많을수록 좋게 형성될 수 있다
- 레이블 할당 에러를 최소화, 입력 시각화로 이상치 확인 및 레이블 교정
- 데이터를 정제하고 누락된 값을 처리
- 많은 특성 중에서 어떤 것이 유용한지 확실하지 않다면 특성 선택을 수행
특성공학
데이터의 일반화 가능성을 향상시키는 매우 중요한 방법
조기종료 사용하기
훈련 중 일반화 성능이 가장 높은 최적적합의 지점(과소적합-괴대적합 사이의 정확한 경계)을 찾는 것은 일반화 성능을 향상시킬 수 있는 가장 효과적인 방법 중 하나
모델 규제하기
가중치 규제추가 : 가중치가 작은 값을 가지도록 강제하는 방법
드롭아웃 추가 : 모델 층에 드롭아웃을 적용하면 훈련하는 동안 무작위로 층의 출력 특성을 일부 제외시킨다.