Deep Learning from scratch 2

주제무·2022년 12월 25일
0

Neural Network

신경망 구조를 사용해서 데이터를 학습하고 추론한다.

학습: 손실함수 값을 줄이는 방향으로 가중치를 개선하는 것
추론: 학습이 된 신경망에 데이터를 입력하여 분류, 회귀하는 것

손실함수

  • MSE
  • Cross Entropy

교차 엔트로피와 소프트맥스가 같이 있는 layer는 역전파 값이 깔끔하게 떨어진다.
항등함수와 MSE도 마찬가지이다.

역전파

Chain rule

손실함수를 통해 신경망의 추론값과 정답의 차이를 이용해 가중치를 개선할 때, 가중치에 대한 손실값의 기울기를 구한다. 수치 미분과 역전파를 통해 구현할 수 있다. 수치 미분은 구현하기 편한 대신에 자원을 많이 소모하며, 역전파는 보다 적은 시간으로도 기울기 계산에 용이하다. 수치미분과 역전파의 결과는 컴퓨터에 의한 계산 오류를 제외하면 이론상 같다.

Layers

  • Fully connected
  • CNN
  • RNN

오버피팅을 막는 방법들

  • Dropout: 일정 비율로 Layer node를 비활성화한다.
  • Weight decay: 가중치 크기를 작게한다. loss값에 가중치의 크기, 제곱을 더한다. lambda의 hyper parameter가 존재한다.
  • Data Augmentation: 학습데이터가 적을 때 효과적이다. 데이터에 다양한 변화를 통해 학습 데이터를 늘리는 효과가 있다.

최적화

  • SGD: loss-weight의 gradient 값으로 가중치를 개선한다.
  • Momentum: gradient 방향이 매번 바뀌는 것을 막기 위해서 속도값을 활용한다.
  • AdaGrad: 학습이 진행될수록 learning rate를 감소시킨다.
  • Adam: SGD에 momentum과 adamgrad를 융합

가중치 초기값

  • Xavier
  • He

신경망의 표현력을 저하하지 않으면서 기울기 소실을 막을 수 있는 적절한 초기값을 필요로 한다. Xavier와 He는 이전 layer의 노드 개수에 반비례하는 표준편차를 갖도록 초기값을 설정한다.

0개의 댓글