BOMT(baby one more time)
로그인
BOMT(baby one more time)
로그인
PyTorch 퍼셉트론 가중치 업데이트
Gino
·
2022년 6월 18일
팔로우
1
1
머신러닝
목록 보기
17/34
자료출처 :
PyTorch로 시작하는 딥 러닝 입문
순전파와 역전파
1.순전파 살펴보기
인공신경망이 입력층 -> 은닉층 -> 출력층 (순전파) 과정을 통해 예측값과 실제값의 오차를 계산
인공신경망의 목적은 오차를 최소화하는 가중치를 찾는 것인데, 순전파와 역전파를 반복으로 찾는다.
순전파 과정을 그림으로 보면 아래와 같다
x는 입력값(.1은 0.1), w는 가중치, z는 가중합, h는 은닉층(시그모이드 함수 적용), o는 출력층을 의미한다.
이 그래프에 대한 수식과 설명이다.
이제 오차함수를 선택해 에측값과 실제값의 오차를 계산한다.
오차함수는 평균제곱오차(MSE) 사용
2. 역전파 살펴보기
순전파와 반대로 출력층 -> 입력층을 계산하며 가중치를 업데이트 (경사하강법 활용)
역전파 1단계 과정을 살펴본다. (다른 단계도 원리는 동일하다, 은닉층이 많을수록 더 많은 단계 필요)
여기선 은닉층이 1개이므로 총 2단계로 구성된다. 1단계에서 업데이트할 가중치는 W5, W6, W7, W8 이다.
경사하강법을 수행하려면 가중치와 오차값의 미분이 필요하다.
미분의 연쇄법칙(Chain rule)에 따라 아래와 같이 풀어쓸 수 있다
첫번째 항
두번째, 세번째 항
O1은 시그모이드 함수의 출력값이므로, 시그모이드 함수의 미분 값인 f(x)*(1-f(x))가 대입되었다.
세번째 항은 h1과 동일하다
이제 모든 값을 곱해주면 오차값과 W5의 미분 값이 나온다
경사하강법이 적용됐고, 학습률은 0.5로 가정한다.
3. 결과 확인
업데이트된 가중치로 다시 순전파를 진행하여 오차가 감소하였는지 살펴본다.
기존의 전체 오차(0.02397190)에서 0.2323634로 오차가 감소한 것을 확인할 수 있다.
Gino
나무를 심는 사람
팔로우
이전 포스트
PyTorch 딥러닝(1) - 단층 퍼셉트론
다음 포스트
PyTorch 다층 퍼셉트론 구현
0개의 댓글
댓글 작성
관련 채용 정보