맛동산

1차원 백터의 기울기 구현 본문

파이썬/딥러닝 구현

1차원 백터의 기울기 구현

오지고지리고알파고포켓몬고 2017. 6. 8. 09:38

모든 변수의 편미분을 백터로 정리한 것이 기울기

 

다음은 1차원 백터의 기울기 구현(다차원이 아니므로 아직 큰 의미는 없음)

 

각 x에 대한 f(x+h) - f(x-h) / 2h의 적용(편미분)은 같음

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
·¬
import·numpy·as·np¬
¬
def·f_2(x):¬
····return·np.sum(x**2)¬
¬
def·numerical_gradient(f,x):·#·3·4¬
····h·=·1e-4¬
····grad·=·np.zeros_like(x)·#·x·shape··0()·¬
····#print(grad)¬
¬
····for·idx·in·range(x.size):¬
········tmp_val·=·x[idx]¬
········#print(tmp_val)¬
········x[idx]·=·tmp_val·+·h¬
········#print(x[idx])¬
········fxh1·=·f(x)¬
········print(fxh1)¬
········#print(tmp_val)·#··?¬
¬
········x[idx]·=·tmp_val·-·h¬
········fxh2·=·f(x)¬
········print(fxh2)¬
········#print(7/2*h)¬
········#·print((fxh1-fxh2)·/·(2*h))¬
········grad[idx]·=·(fxh1-fxh2)·/·(2*h)¬
········x[idx]·=·tmp_val¬
¬
····return·grad¬
¬
#print(numerical_gradient(f_2,·np.array([3,4])))¬
print(numerical_gradient(f_2,·np.array([3.0,4.0])))¬
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

'파이썬 > 딥러닝 구현' 카테고리의 다른 글

수치 미분 구현  (0) 2017.06.08
예측 + 미니배치 + 오차  (5) 2017.06.04
미니배치 학습  (0) 2017.06.03
MNIST 파라미터  (0) 2017.06.03
평균 제곱 오차, 교차 엔트로피 오차 함수 구현  (0) 2017.06.03
Comments