일반적으로 딥러닝이 아닌 신경망보다 "많은 파라미터" 를 가진다.
-> 필연적으로 학습과정에서 새로운 문제들이 생김.
낮은 Bias 높은 Variance
딥러닝은 기본적으로 weight를 깊게 쌓기 쉬운 모델이다. 즉 complexity가 높아져 overfitting이 생기기 쉽다!
-> 모델이 train data에는 잘 작동하나, test data에는 잘 작동하지 않는다!
-> 모델 수용량(capacity)가 커지면, 모델이 그만큼 데이터를 더 필요로 하게 된다!

추정 값의 편향 (bias)
추정 값의 분산 (Variance)
노이즈 (Noise)

Well-posed 문제란?
- 존재(exists)하고, 유일(unique)하며, 지속적으로 데이터를 신뢰(depends on data continuously)할 수 있는 문제.


1. 학습(learning)에 의한 결합방식 (왼쪽)
→ 정형화 효과

→ 반복적으로, sequential하게 아래 작업을 반복한다.
1. Train dataset을 샘플링한 새로운 dataset을 만든다. 그리고 이 dataset으로 model을 학습시킨다.
2. 학습시킨 모델을 validation한다.
3. Validation 과정에서 잘못 예측한 데이터를 Train dataset에 추가하고 새로운 dataset을 샘플링한다. 즉, 오류 데이터에 가중치를 부여하여 샘플링 될 때 더 잘 뽑히게 만들고 새 모델의 학습을 진행한다.
4. 모델이 2개 이상이 되었으므로 이를 Voting하여 하나의 예측 값으로 하고, 다시 가중치를 계산하여 샘플링이 잘되게 만든다.
→ 마찬가지로 아래의 작업을 순차적으로 진행한다.
각 step에서 손실(loss)함수를 계산하고, 각 과정에서 예측값을 이용해 손실(Loss)값의 gradient(미분 값)를 계산하여 최적화한다.

→ 오버피팅이 될 수도 있다.
→ Bias를 줄인다. (Variance 역시 줄일 수 있다.)


Dropout이 잘 되는 이유는 무엇일까?
(심플하면서 powerful)
많은 다른 ANN을 한번의 학습으로부터 Bagging하는 효과와 비슷!
→ overfitting을 막는 효과
Dropout vs Bagging
1. Bagging을 각 모델이 파라미터를 share하지 않는 반면,
Dropout은 모든 모델이 파라미터를 공유(share)한다.
2. Bagging의 경우 각 모델이 학습됨에 따라 하나의 모델로 수렴하지만, Dropout의 경우, 각각의 모델이 수렴하도록 학습되지 않는다.
3. Bagging은 모델 결과 값의 산술 평균을 취할 수 있는 것에 비해, Dropout은 지수 계수로 증가하는 많은 모델의 평균을 내는 것이기 때문에, 산술 평균으로는 계산이 어려워진다.
→ 빠른 추론을 위해 dropout은 산술 평균보다 기하 평균(geometric)을 추론하여 근사하는 것에 가깝다.
Dropout이 feature에 끼치는 영향
Dropout은 피쳐들끼리 상호 적응(co-adapatation)을 하는 것을 막아준다.
→ 뉴런들은 다른 뉴런이 그 자리에 없더라도 정상 작동하여야 한다.
Dropout은 결과적으로, 네트워크에 sparse한 활성화를 시켜준다!

큰 모델을 학습할 때, Train error는 학습이 진행되면서 점점 내려가지만, Validation error는 감소하다가 어느 순간부터 다시 증가한다.
→ 이때 멈춘다면, 최적의 결과를 얻는다는 개념이 Early Stopping

사람이 관측할 수 없을 정도의 작은 노이즈를 넣으면, 완전 다른 클래스가 나올 수 있다.
입력은 아주 조금 바뀌었으나, 출력이 매우 달라지며, 그때의 기울기가 매우 가파르다.
→ 일종의 오버피팅 상태.
→ 이런 현상을 생각해 노이즈를 섞어 학습을 진행한 것.
우리가 각 인풋을 노이즈를 섞어 만큼 바꿀 때, 변화 한다고 할 수 있다. 이 때, 가 만약 높은 차원이라면 그 값은 매우 커질 수 있는 것.
적대적 학습은 로컬 상수 값(노이즈)을 추가한 데이터를 학습하여, 이러한 "locally linear behavior"로 인해 생기는 네트워크의 민감성(sensitivity)을 줄일 수 있다.
ML모델이 가장 일반화하는 쉬운 방법은 "더 많은 데이터"가 학습되는 것이다.
→ 수많은 데이터 증강법이 존재하고 성능이 좋다진다는 것이 널리 알려져 있음.