최적화
(optimization) : 가능한 훈련 데이터에서 최고의 성능을 얻으려고 모델을 조정하는 과정
일반화
(generalization) : 훈련된 모델이 이전에 본 적 없는 데이터에서 얼마나 잘 수행되는지 의미한다.
일반화는 머신러닝의 목표이다 !
하지만 일반화는 성능을 제어할 방법이 없다. 모델을 훈련 데이터에만 맞출 수 있을 뿐 !
훈련초기
: 훈련 데이터의 손실이 낮아질수록 테스트 데이터의 손실도 낮아진다.
과소적합(underfitting) 이 발생한다. 하지만 모델의 성능이 계속 발전될 여지가 남아있다.
특정 횟수만큼 반복 후
: 일반화 성능이 더 이상 높아지지 않으며 검증 세트의 성능이 멈추고 감소되기 시작함. 모델의 과대적합(overfitting) 이 시작된다.(= 훈련에 특화된 패턴을 학습하기 시작했다는 의미) 과대적합은
발생할 가능성이 높다.
1. 데이터의 잡음이 있거나 : 잡음의 경우 필연적으로 과대적합을 유발시킨다. 특성이 모델에 유익한지 또는 모델을 혼란스럽게 만드는지 확실하지 않다면 훈련 전에 특성 선택(feature selection)을 수행하는데, 특성 선택을 통해서 잡음을 걸러낼 수 있다.
2. 불확실한 특성 : 이 경우에는 최적적합과 과대적합 간 충돌이 일어날 수 있다. 최적적합이 되도록 모델을 구축하는 것이 중요하다.
딥러닝에서 일반화의 본질은 딥러닝 모델 자체와 거의 관련이 없고 실제 세상의 정보구조와 많은 관련이 있다.
매니폴드 가설
: MNIST 데이터에서 한 숫자에서 다른 숫자로 점차 변형되는 여러가지 MNIST 샘플을 통해 손글씨 숫자의 공간이 매니폴드를 가지고 있음을 보여주는데, 여기서 매니폴드는 국부적으로는 선형(유클리드) 공간과 비슷하게 보이는 부모 공간의 저차원 부분 공간 이다. 여기서 매니폴드 가설은 실제 세상의 모든 데이터가 고차원 공간 안에 있는 저차원 매니폴드에 놓여 있다고 가정한다.
일반화의 원천인 보간의 진실
: 근사적으로 학습된 데이터 매니폴드에서 보간을 통해 딥러닝의 일반화가 달성되지만 보간이 일반화의 전부라고 가정하는 것은 실수 !
보간을 이전에 본 것과 매우 가까운 것을 이해하는데 도움을 줄 수 있을 뿐이다. 이것을 지역 일반화(local generalization) 라고 한다.
사람은 보간 이외의 메커니즘으로 궁극 일반화(extreme generalization) 를 할 수 있다.
딥러닝이 작동하는 이유
: 딥러닝은 본질적으로 크고 복잡한 곡선(매니폴드)을 선택하여 훈련 데이터 포인트에 맞을 때까지 파라미터를 점진적으로 조정한다.
모델이 데이터의 매니폴드를 대략적으로 근사하는 중간 지점이 있는데, 그 지점에서 모델이 학습한 곡선을 따라 이동하는 것은 데이터의 실제 잠재 매니폴드를 따라 이동하는 것과 비슷하다.
가장 중요한 훈련 데이터
: 딥러닝이 실제로 매니폴드 학습에 잘 맞지만 일반화의 능력은 모델의 어떤 속성 때문이라기 보다는 데이터의 자연적인 구조로 인한 결과이다. 특성이 유익하고 잡음이 적을수록 입력 공간이 더 간단하고 구조적이기 때문에 더 잘 일반화할 수 있다. 데이터 큐레이션(data curation) 과 특성 공학(feature engineering) 은 일반화에 필수적이다. 또한 입력 공간을 조밀하게 샘플링하여 훈련해야한다. 학습된 모델이 잠재 공간을 잘 근사하고 보간을 통해 일반화를 달성할 수 있다.
단순 홀드 아웃 검증
:데이터의 일정량을 테스트 세트로 떼어 놓고, 남은 데이터에서 훈련하고 테스트 세트로 평가한다.
K-겹 교차 검증
: 데이터를 동일한 크기를 가진 K개의 분할로 나눈다. 각 분할 i 에 대해 남은 K-1개의 분할로 모델을 훈련하고 분할 i 에서 모델을 평가한다. 최종 점수는 이렇게 얻은 K개의 점수를 평균한다.
셔플링을 사용한 반복 K-겹 교차 검증
: 비교적 가용 데이터가 적고 가능한 정확하게 모델을 평가하고자 할 때 사용한다.
최적적합 모델을 얻으려면 먼저 과대적합되어야한다. 그 후 일반화 성능을 개선하는데 있어 다음과 같은 문제가 발생한다.
이러한 문제를 해결하기 위하여 !