카테고리 없음

역전파를 통한 학습 구현(밑바닥부터시작하는딥러닝)

ROSEV 2021. 11. 18. 13:42

 

신경망의 학습의 전체그림

 

전제

신경망에는 적응 가능한 가중치와 편향이 있고, 이 가중치와 편향을 훈련 데이터에 적응하도록 조정하는 과정을 '학습'이라 합니다. 신경망 학습은 다음과 같이 4단계로 수행합니다.

 

1단계 = 미니배치 : 훈련 데이터 중 일부를 무작위로 가져옵니다. 이렇게 선별한 데이터를 미니배치라 하며, 그 미니배치의 손실함수 값을 가장 작게 하는 방향을 제시합니다.

 

2단계 = 기울기 산출 : 미니배치의 손실 함수 값을 줄이기 위해 각 가중치 매개변수의 기울기를 구합니다. 기울기는 손실 함수의 값을 가장 작게하는 방향을 제시합니다.

 

3단계 = 매개변수 갱신 : 가중치 매개변수를 기울기 방향으로 아주 조금 갱신합니다.

4단계 = 반복 : 1~3단계를 반복합니다.

 

 

학습과정 중 

출처: 수원대학교 한경훈교수님

 

  • 대소관계를 유지하면서 점수크면, 확률값도 제일 큽니다. 그래서 대소관계만을 볼때는 score만 봐도 무방합니다
  • 하지만 학습을 할때는 소프트맥스와 크로스엔트로피과정이 필요하기때문에 확률분포로 나타냅니다.

출처 : 수원대학교 한경훈교수님

 

위의 과정(역전파)를 통해 학습을 하며, 오른쪽 그림처럼 점점 로스가 줄어드는 그래프를 확인할 수 있습니다.

 

정리를 하면,

계산 그래프를 이용하여 신경망의 동작과 오차역전파법을 설명하고, 그 처리 과정을 계층이라는 단위로 구현했습니다.

예를 들어 ReLu 계층, Soft-maxwithl-Loss 계층, Affine계층, Softmax 계층 등입니다. 모든 계층에서 forward와 backward라는 메서드를 구현합니다. 전자는 데이터를 순방향으로 전파하고, 후자는 역방향으로 전파함으로써 가중치 매개변수의 기울기를 효율적으로 구할 수 있습니다. 이처럼 동작을 계층으로 모듈화한 덕분에, 신경망의 계층을 자유롭게 조합하여 원하는 신경망을 쉽게만들 수 있습니다.