본문 바로가기

기울기3

5-1. 오차역전파법 4장에서 신경망의 가중치 매개변수의 기울기(정확히는 가중치 매개변수에 대한 손실 함수의 기울기)는 수치 미분을 사용해 구했다. 수치 미분은 단순하고 구현하기 쉽지만 계산 시간이 오래 걸린다. 가중치 매개변수의 기울기를 효율적으로 계산하는 오차역전파법(backpropagation)을 알아보겠다. 오차역전파법을 이해하기 위해서는 수식이나 계산 그래프를 이용한다. 수식을 사용하면 정확하고 간결하게 이해할 수 있지만 시각적으로 이해하기 위해 계산 그래프를 사용한다. 5.1. 계산 그래프 계산 그래프(computational graph)는 계산 과정을 그래프로 나타낸 것이다. 여기서 그래프는 그래프 자료구조로, 복수의 노드(node)와 에지(edge)로 표현된다(노드 사이의 직선을 에지라고 한다). 5.1.1. .. 2020. 3. 31.
4-2. 신경망 학습 4.4. 기울기 앞 절에서는 x0 와 x1 의 편미분을 변수별로 따로 계산했다. 가령 x0 = 3, x1 = 4 일 때 (x0 , x1) 양쪽의 편미분을 묶어 계산한다고 생각해보자. 위처럼 모든 변수의 편미분을 벡터로 정리한 것을 기울기(gradient)라고 한다. 기울기는 다음과 같이 구현할 수 있다. def numerical_gradient(f, x): h = 1e-4 #0.0001 grad = np.zeros_like(x) #x와 형상이 같은 zero 배열 생성 for idx in range(x.size): tmp_val = x[idx] # f(x+h) 계산 x[idx] = tmp_val + h fxh1 = f(x) # f(x-h) 계산 x[idx] = tmp_val - h fxh2 = f(x) g.. 2020. 3. 25.
4-1. 신경망 학습 4. 신경망 학습 학습이란 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 획득하는 것을 뜻한다. 4장에서는 신경망이 학습할 수 있도록 해주는 지표인 손실 함수를 다뤄본다. 손실 함수의 결괏값을 가장 작게 만드는 가중치 매개변수를 찾는 것이 학습의 목표다. 이번 장에서는 손실 함수의 값을 가급적 작게 만드는 기법으로 함수의 기울기를 활용하는 경사법을 살펴본다. 4.1. 데이터에서 학습한다. 신경망의 특징은 데이터를 보고 학습할 수 있다는 점이다. 데이터에서 학습한다는 것은 가중치 매개변수의 값을 데이터를 보고 자동으로 결정한다는 뜻이다. 실제 신경망에서 매개변수를 수작업으로 정한다는 것은 불가능하다. 신경망 학습에 대해 살펴보고 파이썬으로 MNIST 데이터셋의 손글씨 숫자를 학습하는 코드를 구현해본.. 2020. 3. 16.