M.L (p.161)

backpropagation(역전파)에 덧셈과 곱셈 노드에 대한 코드이다. 역전파는 계산그래프를 거꾸로 돌아가며 각 weight와 parameter가 Y(output value)에 얼마나 영향을 미치는지(미분을 통해) chain rule 이라는 성질을 이용해…

M.L (p.143)

epoch 단위로 평가하는 코드이다. epoch 이란? 하나의 단위로 1 epoch은 학습에서 훈련 데이터를 모두 소진했을 때의 횟수에 해당, 예로 훈련 데이터 10,000개를 100개의 미니배치로…

M.L (p.141)

MNIST 데이터를 가지고 미니배치 학습을 구현한 코드이다. 훈련데이터와 테스트 데이터로 나누었고 정규화와 one_hot_encoding을 하였다. 앞서 만들었던 TwoLayerNet(신경망) 을 사용하여 학습한다. iters_num= 10,000이므로 for문을 10,000번…

M.L (p.137)

2층 신경망을 하나의 클래스로 구현한 것이다. class name은 TwoLayerNet으로 구성요소를 하나씩 알아보자. def __init__함수로 input_size, hidden_size, output_size, weight_init_std=0.01로 초기화한다. self.params로 W1,b1,W2,b2 (weight,bias) 을 입력값에…

M.L (p.134)

(2,3) 같은 다차원배열일 경우의 기울기를 구한다. simpleNet은 입력 값 x와 normal distribution로 초기화한 W 값(가중치) 를 행렬곱하여 (xW) 그 값을 softmax 값으로 변환하고 정답레이블(t)와…

M.L (p.131)

gradient_descent method 로 경사법 수식  ,  (eta) 는 갱신하는 양을 나타내고 신경망에서는 이를 학습률(learning rate)라 부른다.  이 parameter는 사용자가 정의하며 learning rate * 편미분…

M.L (p.127)

편미분을 간단히 하나의 함수로 나타내기 위한 코드 function_2 =  x[0]^2 + x[1]^2  식을 가지고 있고, numerical_gradient 를 보면 for문을 이용해 각 인덱스의 중앙차분을 구하여…

M.L (p.125)

편미분 (둘 이상의 변수)  식 f(x0,x1) = x0^2 + x1^2 같은 간단한 식 구현 편미분을 구할 때는 구하려는 변수 외의 다른 변수 값은 상수로…

M.L (p.121)

경사법에서는 기울기 값을 기준으로 나아갈 방향을 정하는데 기울기 값을 미분으로 구할 수 있다. (기울기 값이 0에 가까워지는 지점이 최적 값을 나타내기때문에 ) 하지만 컴퓨터…

M.L (p.116)

mini batch : 거대한 데이터셋을 다 계산해보는 건 시간적, 비용적으로 부담이 크기 때문에 적절히 어느정도 양의 데이터를 골라  그 값을 이용해 근사치를 구한다. 예를…