CNN Summary
RBG가 하나의 feature kernel 같은 거.. 쨌든 flatten 할 때 *3 해야 함
과대 적합(과적합)
- 과대 적합(overfitting)?: 정확도는 높지만 실제 현실에 적합하지 않음(일반적인 경우 해결 못 함)
- 과대 적합을 줄이려면? 다음을 줄인다.
- 학습 파라미터 수
- 층의 수(필터의 수)
- 각 층의 유닛 수(퍼셉트론 개수)
- 모델의 용량
- loss와 모델 용량과의 관계: 손실이 급격하게 떨어지면 과적합 발생!
- learning rate에 문제가 있거나
- 필터 개수가 너무 많거나
그럼 몇 개가 적절하냐? 모름
ㅋㅋㅋㅋㅋㅋ뭐가 문제일지는.. 까봐야 안다(huristic)
우리가 그나마 효율적으로 할 수 있는 건
데이터 품질을 높이고, 잘 만들어진 모델을 데려다 전이학습 시키는 것
- L2 Regularization
- lasso (L1 규제) : Cost = MSE + lambda * |w| >> 0이 될 수도 있음
- ridge(L2 규제) : Cost = MSE + lambda * |w|^2 >> 절대 0이 안돼요
- elastic : L1과 L2의 비율합(moving average)
- Dropout : 학습을 진행하는 동안 신경망(퍼셉트론)의 일부를 제외시키는 것
- 일정한 확률값을 주고 랜덤하게 퍼셉트론이 작동하지 않도록 만드는 거야...
- L1과 차이점: L1은 한 번 필터가 죽으면 더 작동 안 하지만 드랍아웃은 껐다 켜졌다 하는 것
- 그러면, 네트워크의 케이스가 여러가지가 되면서 앙상블 효과를 냄(다 계속 하나로 이어져 있는 게 아니니까 중간이 끊어졌다 이어졌다 하니까 결국 네트워크 조합이 여러 개 생기는 거임)
- Batch Normalization : 교수님이 잘 모르시겟대요 하하
과소적합
- 과소 적합(underfitting) : 정확도고 뭐고... too simple to explain the feature
Optimaizer
- GD(stochastic gradient descent)
- momentum : gd 과정에 속도, 관성을 더 줘서 더 작은 지역최솟값을 찾을 수 있게 하는 것
- Adagrad : w에 따라 lr을 조정 > lr이 너무 작아져서 학습이 크게 더뎌지는 단점이 생김
- RMSProp : adagrad에 moving average를 적용해서 g(t)가 계속 작아지는 걸 방지함
- Adam : 교수님이 잘 모르신다고 함 ㅎ
갑자기 실습 시작..