[데브코스 자율주행 TIL] DAY 65 (12/19)

happy_quokka·2023년 12월 28일
0
post-thumbnail

2023.12.19 DAY65

CNN의 backward에서 convolution을 진행하는 이유를 이해하기 위해 시간을 많이 썼다. 지금 생각해보면 매우 직관적이고 간단한 거였지만 처음에는 이해가 잘 안되었다. 사실 CNN은 예전에 다 배운 적이 있는데 그때 완벽히 이해하고 넘어가지 않아서 다시 공부를 해야한다는 것이 조금 아쉬웠다. 한번 할 때 제대로 했으면 좋았을텐데...라는 생각이 들었다. 지금부터라도 제대로 공부해야겠다!

오늘은 training을 할 때 사용할 수 있는 기법들과 모델의 성능을 높이는 부분을 공부하였다


📝 배운 내용

optimizer

  • loss 값을 줄이기 위한 목적으로 사용
  • gradient descent
    • data 전체의 loss를 구하고 gradient를 계산하여 weight 갱신
    • local minimum에 빠질 수 있다
  • SGD
    • 하나의 data에 대해 loss를 구하고 그때마다 weight 갱신
    • 수렴이 느리지만 성능이 좋다
    • MSGD : mini batch를 사용하여 loss 계산 후 weight 갱신
  • momentum
    • velocity가 포함되어 있다 -> local minimum에서 벗어날 수 있다
    • 이전의 방향을 유지하려는 경향을 추가한다
  • Adam
    • RMSprop + momentum

overfitting & underfitting

  • overfitting
    • 모델이 train set에 너무 학습된 경우
    • 새로운 dataset의 성능이 좋지 않다
  • underfitting
    • dataset이 너무 적거나, 하이퍼 파라미터가 적절하지 못할 때 학습이 잘 되지 않는 경우

regularization

  • overfitting을 방지하기 위한 것
  • loss function 안에 존재
  • L1, L2 regularization이 있다

dropout

  • overfitting을 방지하기 위해 랜덤하게 layer의 weight를 사용하지 않는 방법

batch normalization

  • convolution - batch normalization - activation 순으로 진행
  • activation하기 전에 input 값을 stable하게 만들어주는 역할을 한다

모델의 성능을 높이는 방법

  • 위에서 배운 방법들을 적용한다
  • optimizer 변경
  • regularization 적용
  • batch normalization 적용
  • weight initailzation
    • 초기에 weight를 초기화해준다
  • dropout 적용
  • activation 변경

0개의 댓글