주 메뉴 열기
대문
임의의 문서로
로그인
설정
Pywiki 소개
면책 조항
Pywiki
검색
바뀜
← 이전 편집
다음 편집 →
오차역전파법
(편집)
2021년 9월 13일 (월) 13:12 판
762 바이트 추가됨
,
2021년 9월 13일 (월) 13:12
→softmax
60번째 줄:
60번째 줄:
원리는 다음 affine 계층에서의 역전파를 참고하자.
원리는 다음 affine 계층에서의 역전파를 참고하자.
+
=== 구현 ===
+
<syntaxhighlight lang="python">
+
class SoftmasWithLoss:
+
def __init__(self):
+
self.loss = None # 손실함수값을 저장하기 위한 변수.
+
self.y = None # 출력값을 저장하기 위한 변수.
+
self.t = None # 정답레이블
+
+
def forward(self, x):
+
self.t = t
+
self.y = softmax(x) # 이전에 구현한 소프트맥스 함수값을 넣는다.
+
self.loss = cross_entrop_error(self.y, self.t) # 오차함수로 오차값을 얻는다.
+
return self.loss
+
def backward(self, dout):
+
batch_size = self.t.shape[0] # 데이터 갯수
+
dx = (self.y - self.t) / batch_size # 역전파값을 데이터 갯수로 나눈다.
+
return dx
+
</syntaxhighlight>
== affine ==
== affine ==
딥러닝의 중간 층들에선 행렬 계산이 이루어지는데, 이런 행렬의 곱을 affine변환이라 부른다. 때문에 중간 뉴런들에 대한 층은 어파인층이라 부르고, 이들의 역전파를 통해 어파인층 학습도 가능하다.
딥러닝의 중간 층들에선 행렬 계산이 이루어지는데, 이런 행렬의 곱을 affine변환이라 부른다. 때문에 중간 뉴런들에 대한 층은 어파인층이라 부르고, 이들의 역전파를 통해 어파인층 학습도 가능하다.
Sam
사무관
,
인터페이스 관리자
,
관리자
, 교사
편집
1,408
번