M.L (p.137)

2층 신경망을 하나의 클래스로 구현한 것이다.

class name은 TwoLayerNet으로 구성요소를 하나씩 알아보자.

  1. def __init__함수로 input_size, hidden_size, output_size, weight_init_std=0.01로 초기화한다. self.params로 W1,b1,W2,b2 (weight,bias) 을 입력값에 따라 초기화한다.
  2. def_predict 함수는 초기화된 weight,bias 를 가지고 입력데이터를 정답데이터와 형태가 맞게 변화시킨다.
  3. def_loss 는 cross_entropy_error를 사용하여 정답레이블과 입력레이블의 loss 값을 구한다.
  4. def_accuracy는 정확도를 구하는 함수로 변화된 입력데이터와 정답레이블의 최대 값 인덱스가 동일한지 판단하여 개수를 세어 x 개수로 나누어 확률적으로 변환시킨다.
  5. def_numerical_gradient 함수는 각각의 weight, bias 값들이 loss 값에 얼마나 영향을 미치는지에 대한 편미분 값을 나타낸다.

TwoLayerNet 입력값에 대한 값들

편미분한 값들이 weight, bias 값들에 각각 대응한다.

답글 남기기

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