신경 네트워크 중의 반방향 속성(오차 역전파법)의 이론

3층 신경 네트워크의 배경 속성
"Pythhon 기계 학습 프로그래밍의 달인 데이터 과학 이론과 실천"
《1Q84》를 읽고 학습 내용을 총결하였다.
처음 투고하니 잘 부탁드립니다!
[이 기사를 쓰고 싶은 동기!]
편차항의 무게 갱신에 대해 수학 이론의 설명 부분에서 언급하지 않았지만 코드에서 편압 단원의 무게도 갱신되고 있다.그때 왜 실장에 이렇게 권중을 갱신했을까?이런 의문이 생겨서 많이 생각했어요.대체로 나 스스로 결론을 얻었기 때문에 여기까지 총결하였다.
[장면 설정]
다음은 입력층(공식에서 in으로 표시), 숨김층(공식에서 h로 표시), 출력층(공식에서 out으로 표시) 3층 신경망의 배경 속성을 소개한다.
$A^{(l)}$: $l 레이어의 셀 벡터
$a_{j]^{i](l)}$: $i$i 데이터 포인트, $l층의 $j달러 단원에 대한 총 입력
$^{i]}$: $i$데이터 포인트
$z_{j]^{i](l)}$: $i$i 데이터 포인트, $l층의 $j달러 단원에 대한 총 입력
편압항을 제외한 입력층의 단원수
편압항의 출력층의 단원수를 제거하다
$t$: 편압항을 제외한 출력층의 단원수
$W^{(h)}$: 숨겨진 층의 권중 행렬
$W^{(out)}: 숨겨진 레이어의 가중치 행렬
$w^{(l)}_$l-1달러층의 $k$단원에서 $l층의 $j달러단원의 삽입력 계산에 사용된 무게
활성화 함수
[교차 엔트로피 손실의 정의]

출력층의 모든 단원의 교차 엔트로피 손실을 계산하고 화합하는 것을 주의하십시오.그 밖에 입력한 모든 데이터 포인트는 합쳐진다.
$\sum_{l,j,k}(w^{(l)}_{j,k})^{2}달러는 출력층, 숨겨진 층에 등장하는 권중 행렬의 성분을 모두 2차례로 합친다.
[계산이 복잡해도 길을 잃지 않기 위해...]
손실을 최소화하기 위해 무게를 갱신하고 싶습니다. $\rac {partial} {j,k}^ {(out)} J (W),\rac {partial} {j,k} ^ {}}}}} 계산J (W) $를 목표로 삼아 의식적으로 이후의 계산을 하는 것이 좋다고 생각합니다.
설명하기 편리하도록 정규화항을 무시하고 계산하기 시작했다.
마지막으로 정규화 항목을 잘 가입하여 가중 업데이트를 진행할 것이니 안심하세요.
【STEP①】

계산은 중도에 생략했지만{j,k}달러의 계산 부가자는 복잡해 보이지만 미분의 계산이기 때문에
$$\frac{\partial}{\partial z}(y\log a +(1-y)\log(1-a))$$
라고 계산했다.단, $a=\sigma(z)$이므로 합성 함수의 미분을 주의하십시오.
【절차 ②】

위에서 말한 바와 같이, 출력 층의 무게를 업데이트하는 사다리 계산을 완성하였다.
그 계산을 하기 위해서 ① 단계로 $\delta^{i](out)}달러를 계산했습니다.
【절차 ③】
$\rac{partial w{j,k}^{(h)}J(W)$를 계산하는 것이 목표입니다.
따라서 ③단계에서 다음 그림의 $\delta^{i](h)}달러를 계산합니다.

$\frac{\partial J(W)}{\partial z^{[i](h)}_{k} $k=1,2$2만 계산했습니다.
이 계산 결과를 보면 다음 그림에서 보듯이 두 행렬의 곱셈으로 $\rac{partial J (W)} {partialz^ {i} (h) 달러를 표시할 수 있습니다.

그러면 $\rac {partial z^ {i} (out)} {partial z^ {i} (h)} 달러를 계산해 봅시다.
제 (1,1) 성분을 계산해 보세요.다른 성분도 마찬가지로 계산할 수 있다.

위 그림의 마지막 줄의 점은 내적을 표시합니다.
내적은 $frac {partial z^ {[i] (out)} {partial z^ {i] (h)} "행렬로 표현할 수 있을 것 같아!"이런 느낌.
행렬 표현을 실제로 사용하는 경우 다음 이미지가 표시됩니다.

빨간색의 사각형과 옅은 파란색의 사각형이 겹쳐 분별하기 어려워졌지만 아까 계산한 바에 의하면
$$\frac{\partial z^{[i](out)}}{\partial z^{[i](h)}}=W^{(out)}\frac{\partial a^{[i](h)}}{\partial z^{[i](h)}}$$
를 변형했다.다음은 $\rac{partial a^{i}(h)} {partial z^{i}(h)}를 계산합니다.
상황을 잡기 위해 아래 그림처럼 (2,2)성분, (2,3)성분, (1,1)성분의 순서대로 계산한다.

여기서 주의해야 할 것은 $a^{i](h)]입니다.1 =\sigma(z^{[i](h)}_1) $US^{i](h)]2달러로 미분화하면 결과는 0이 된다.단, $\rac{partiala0^{i](h)] {partialz1^{i](h)}$(제(1,1)성분)은 $a$0^{i](h)]=1$(편압 단원)이므로 0이 됩니다.
이로써 $\rac {partial a^ {i} (h)} {partial z^ {i} (h)} 달러는 거의 대각선 행렬이다.(대각선 행렬이라고 해도 문제없다(1,1) 성분을 0으로 강조하고'기본'으로 표현한다(웃음)
여기서는 좀 멀리 돌아간다.

하마마드 적은 위의 그림과 같은 모든 성분의 적을 가리킨다.
Hadamard 곱셈을 사용하면 대각선 행렬의 곱셈을 거의 나타낼 수 있다.
이 일을 이용해서 계속 계산해 봅시다.

좀 길지만 $\delta^{i](h)}의 계산이 완료되었습니다.
【절차 ④】
드디어 숨겨진 층의 경사를 추구합니다!
スライド14.JPG
위와 같이 사다리를 계산할 수 있다.출력 레이어의 계단을 계산하는 절차와 같습니다.
지금까지의 계산을 되돌아봅시다!

이렇게 그림으로 보면 출력층부터 순서대로 계산하면 되돌아오는 느낌이 든다.
이 계산은 반속성(오차 역전파법)이다.
이제 현재가 추구하는 사다리를 바탕으로 하는 권중갱신식을 살펴보자!
[드디어 무게 갱신 들어갑니다!]

출력 레이어의 가중치 업데이트
반속성 계산에 의하면 출력층의 경사율은 위와 같다
$$(\delta ^{[i](out)})^T (a_0^{[i](h)}, a_1^{[i](h)},\cdots , a_d^{[i](h)})$$
자, 계산해.
아까까지는 어떤 데이터 포인트만 $x^{i]}달러에 주목했습니다.
다음 그림은 데이터 포인트가 n개로 증가할 때 출력층의 사다리를 계산하는 공식입니다.

데이터 포인트가 n개로 늘어나도 1개 1개의 데이터 포인트에 대한 계산은 같다.따라서 $\delta^{(out)}, A^{(h)}달러는 위의 그림처럼 n줄일 뿐입니다.
그럼 마지막으로 무시해 왔던 정규 항목을 더해서 권중을 갱신하고 싶습니다.

실제로 정규화항의 계산은 그리 어렵지 않다.위의 이미지는 "왜"의 아래쪽입니다.
$W^{(out)} 기울기의 $(s,t)$성분은
$$\frac{\partial }{\partial w _{s,t} ^{(out)}}(\frac{\lambda}{2}\sum _{l, j, k} (w_{j,k} ^{(l)} )^2) =\lambda w _{s,t} ^{(out)}$$
.요컨대 미분과 무관한 변수는 0이 되고 나머지 결과는 $\lambdaw{s,t}^{(out)}달러.
숨겨진 레이어의 가중치 업데이트
마지막으로 숨겨진 층의 권중 업데이트를 설명합니다.그러나 기본적으로 출력층과 변화가 없다.그러나 한 가지 주의해야 할 것은 편압 단원의 영향을 받는 것이다.


편압 단원의 영향으로 (대략적인 대각선 행렬을 말함) 원래 $\delta^{(h)}는 $0^{i](h)}(i=1,2,\cdots,n)에는 $에 해당하는 열이 있습니다(0열이어야 함).하지만, $w{0,k]^{(h)} $$의 권한이 존재하지 않습니다.이 점을 감안하면 위의 그림은 $\delta^{(h)}달러에서 $\delta입니다0^{i](h)}(i=1, 2,\cdots, n)는 $에 대응하는 열을 제외하고 쓰여 있습니다.이것은 출력층의 권중 업데이트와 다르다.
이후 레이어를 내보낼 때와 마찬가지로 가중치 업데이트가 수행됩니다.
이상은 신경 네트워크의 권중 갱신 절차입니다.
끝까지 읽어주셔서 감사합니다!

좋은 웹페이지 즐겨찾기