입력으로 단층 신경망의 기울기를 도출하면 체인 규칙에서 연산자는 무엇입니까?


9

문제는 :

교차 엔트로피 손실과 함께 입력-> 숨김-숨겨진 최대-> 출력에 시그 모이 드를 사용하여 단일 숨겨진 레이어 신경망에 대한 입력 레이어에 대한 그라디언트를 도출하십시오.

체인 규칙을 사용하여 대부분의 파생 작업을 수행 할 수 있지만 실제로 함께 "체인"하는 방법에 대해서는 확실하지 않습니다.

몇 가지 표기법 정의

r=xW1+b1

h=σ(r), σ S 자형 함수입니다

θ=hW2+b2,

y^=S(θ), S softmax 기능입니다

J(y^)=iylogy^i , y 실제 레이블 원핫 벡터입니다

그런 다음 체인 규칙에 따라

Jx=Jθθhhrrx

개별 그라디언트는 다음과 같습니다.

Jθ=(y^y)
θh=h[hW2+b2]=W2T
hr=h(1h)
rx=x[xW1+b1]=W1T

이제 정의를 서로 연결해야합니다. 단일 변수에서는 이것이 쉽습니다. 모든 것을 곱하면됩니다. 벡터에서는 요소 별 곱셈을 사용할지 행렬 곱셈을 사용할지 잘 모르겠습니다.

Jx=(y^y)W2T[h(1h)]W1T

여기서 은 요소 별 벡터 곱셈이고 는 행렬 곱셈입니다. 이 작업 조합은 차원 벡터 를 얻기 위해 함께 묶을 수있는 유일한 방법입니다. 이어야합니다.1DxJx

내 질문은 : 어떤 연산자를 사용 해야하는지 알 수있는 원칙적인 방법은 무엇입니까? 와 사이의 요소 별 요소가 필요하기 때문에 특히 혼란 스럽습니다 .W2Th

감사!


입력에 대한 그라디언트 wrt를 찾는 것이 종종 이루어지지 않는다는 것을 알고 있습니다. 나는 이것이 "입력"단어 벡터를 최적화 할 수있는 옵션이있는 단어 임베딩을 계산하는 데 앞장서고 있다고 생각합니다.
amatsukawa

어떻게 디제이 디제이
daj

답변:


4

이 질문에 답하는 열쇠는 요소 별 곱셈이 실제로는 짧기 때문에 방정식을 도출 할 때 실제로는 사용 하지 않는다는 것을 지적하는 것입니다.

실제 동작 요소 와이즈 곱 대신 A의 기울기의 표준 매트릭스 곱셈 아니다 코비안 , 항상 .

비선형 성의 경우, 비선형 성의 벡터 입력에 대한 비선형 성의 벡터 출력의 자 코비안은 대각 행렬이된다. 따라서이 행렬에 곱한 기울기는 비선형 성의 입력과 관련하여 비선형 성의 모든 부분 미분을 포함하는 벡터에 의해 손실 된 요소 별 손실에 대한 비선형 성의 출력 기울기와 동일하다는 것이 사실입니다. 그러나 이것은 다음 코비안 존재 대각선에서. 혼란을 설명 할 수있는 요소 별 곱셈을 얻으려면 Jacobian 단계를 거쳐야합니다.

수학에서는 어떤 비선형 성이 , 손실 및 비선형 입력 (이것은 어떤 텐서 될 수 있음). @Logan이 말했듯 이 비선형 성의 출력 치수는 과 같습니다. --Logan이 말했듯이 활성화 함수는 요소 단위로 정의됩니다.sLxRn×1s(x)Rn×1

우리는

xL=(s(x)x)Ts(x)L

여기서 는 의 Jacobian입니다 . 이 Jacobian을 확장하면 s(x)xs

[s(x1)x1s(x1)xns(xn)x1s(xn)xn]

우리는 대각선을 제외한 모든 곳이 0임을 알 수 있습니다. 모든 대각선 요소의 벡터를 만들 수 있습니다

Diag(s(x)x)

그런 다음 요소 별 연산자를 사용하십시오.

xL=(s(x)x)Ts(x)L=Diag(s(x)x)s(x)L

0

활성화 기능으로 다시 비례 할 때마다 작업이 요소별로 수행됩니다. 즉, 사용자의 예를 사용하여, 역 전파 유도체이며 인 활성 유도체 및 그들의 생성물 elementwise 산물 . 활성화 기능은 신경망에서 요소 별 연산으로 정의되기 때문입니다.δ2=(y^y)W2Ta=h(1h)δ2a

cs224d 강의 슬라이드 30 페이지를 참조하십시오. 도움이 될 수도 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.