M.L (p.134)

(2,3) 같은 다차원배열일 경우의 기울기를 구한다.

simpleNet은 입력 값 x와 normal distribution로 초기화한 W 값(가중치) 를 행렬곱하여 (xW) 그 값을 softmax 값으로 변환하고 정답레이블(t)와 비교하여 cross_entropy_error를 구한 값을 반환한다.

 

normal distribution으로 초기화한 (2,3)의 W(가중치) 를 나타낸다. 다음 x의 값 [0.6, 0.9] 값을 입력받는다. x와 초기화된 W의 행렬곱으로 반환된 값은

x(2, ) W (2,3)  x●W x(transpose)W (1,2)*(2,3) = (1,3) 값(3, )  인 세개 값 출력

argmax로 최대 값 인덱스(여기선 [0] 값)를 찾고 정답레이블t = [0, 0, 1]과 비교하여 cross_entropy_error를 구한다.

cross_entropy_error 값 (입력[0]과 정답[2]의 loss 값)

def f(W) 함수는 loss 값을 정의한 식이다.

마지막으로 numerical_gradient는 그 손실 값을 정의한 식과 배열 인덱스에 해당하는 값들의 편미분을 구해주는 함수로

각각의 배열 인덱스 값들이 손실 값에 얼마나 영향을 미치는지 알려준다. 예로 [0, 0]인덱스 ( -0.3342)값은 W[0,0]값이 아주 조금 변할때 손실값은 단위당 -0.3342변하는 것을 알려준다.

W[0,0] 은 양의 방향으로 W[1,2](마지막 값)은 음의 방향으로 갱신하여 최적 값인 0으로 수렴해가야 함을 알 수 있다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다