[ DeepML-CS231n ] Lec. 07 Training Neural Networks - II

3347 단어 cs231ncs231n

Optimization

Problem with SGD

  • What if loss changes quickly in one direction and slowly in another?
  • Local minima or plateau or saddle point:
    -> 함정카드 발동
    zero gradient or gradient descent / saddle points much more common in high dimension
  • The gradients come from mini-batches(stochastic) so they can be noisy.

    해결할 방법은 여러번의 학습을 시도하는 것일까? 어디 있는지 모르는 Goal 을 찾아오라고 할 수는 없잔아?

SGD + Momentum

  • Add velocity with gradient
vx=0
while True:
   dx = comput_gradient(x)
   vx = rho * vx + dx
   x += learning_rate * vx

AdaGrad -> RMSProp

Gradient squared...
blahblah...
복잡하니 넘어가자(잘안쓸...걸?)
...

Adam !!!

Finally!!!

= RMSProp + Momentum (+ bias correction)

  • has problem with first stage
  • Adam with beta1 = 0.9, beta2 = 0.999, and learning_rate = 1e-3 or 5e-4 is a great starting point for many models!

    공식처럼 외워두고 쓰라고 하심, 최적화가 너무 잘되어있어서...(신기하네)


Model Emsembles

  1. Train multiple independent models
  2. At test time average their results
    -> 2% extra performance...(필요해???)

    May not for industries...
    (모델이 여러가지 포함되면 이를 처리할 하드웨어가 보급되기 어렵기때문에)
    하지만 앙상블은 못참지


Regularization

  • Add term to loss
  • 오히려 제약사항들이 성능을 개선시킬 수 있다는 아이러니, 과유불급, 조상님들 당신들은 대체...

Dropout

  • Randomly set some neurons to zero
  • Probability of dropping is hyperparameter; 0.5 is common
  • Force the network to have a redundant representation;
    Prevents co-adaptation of features
  • Dropout is training a large ensenble of models(that share parameters);
    Each binary mask is one model

    skip connection 등의 방법으로 대체될 수 있다고는 하지만,
    여전히 보편적으로 사용되고 있는 기능이기 때문에 상세한 자료를 읽어둘 필요가 있는 것 같다.

Data Augmentation

  • Translation, rotation, flips, color jittering, random crop and scale...
  • Data centered model 이 트렌드인 요즘 굉장히 다양한 방법들이 나와있어 고민해볼 여지가 있다고 생각함

    실제 프로젝트에서 5% 상당의 성능 개선 효과가 있었음을 확인한 적도 있으니 기억해두기
    사실 좀 잡다한 기능들이 많아서...ㅜ


Transfer learning

  • 학습 중간 모델 저장하는 기능은 꼭 추가하기, Latest + Best !!
  • Fine tuning 작업을 꼭 경험해보고 싶다

    이미 학습되어 있는 정보라는 것이 도대체 어떤 것들이기에 새로운 정보들에도 통용되는 걸까
    인공지능을 많이 알게 되었다고 생각했는데도 아직 모르는 것들이 수두룩하니 기분이 묘함


새롭게 알게 된 것들

  • 영어 자료를 확인하는 것은 생각보다 재밌고 유익함
  • Adam 기본 세팅값이 유용하게 사용될 수 있을 것 같다 상세 개념에 대해서 기억해두자
  • Data augmentation 이 내 생각보다 중요하다는 사실을 꺠달았다. 이 분야는 반전이 많아 재밌는 것 같다

한 주의 회고

  • 아이펠 과정을 진행하면서, 내가 가지고 있던 것들을 정확하게 바꿔간다는게 정말 유익하다는 생각이 자주 든다
  • 직접 코딩 작업하는데에 필요한 것들을 빨리 마련하고 싶다 제발
  • 인공지능은 이제 개인이 공부할 수 있는 영역을 넘어섰나?? 공부해야할 양이 정말 많다

다음 주의 다짐

  • 이번 주 강의를 진행하는 데, 많은 사람들이 질문을 하고 서로 답해주면서 함께 맞춰간다는 느낌을 받았고, 이게 아이펠에서 강조하는 문화구나 라는 생각이 들었다. 나도 좀더 좋은 질문들을 꾸준히 생각하면서 더 많이 참여하고싶다

좋은 웹페이지 즐겨찾기