- 충분히 큰 신경망을 학습시킨다면 지역 최적값에 갇힐 일이 잘 없음
- 하지만 안정지대는 문제
J(w)=w^2-10w+25=(w-5)^2
import numpy as np
import tensorflow as tf
coefficients=np.array([[1.],[-20.],[100.]])
w=tf.Variable(0,dtype=tf.float32)
x=tf.placeholder(tf.float32,[3,1])
#비용함수 정의
#cost=tf.add(tf.add(w**2,tf.multiply(-10.,w)),25)
#cost=w**2-10*w+25
cost=x[0][0]*w**2+x[1][0]*w+x[2][0]
train=tf.train.GradientDescentOptimizer(0.01).minimize(cost)
init=tf.global_variables_initializer()
session=tf.Session()
session.run(init)
print(session.run(w))
session.run(train)
print(session.run(w))
for i in range(1000):
session.run(train)
print(session.run(w))
import numpy as np
import tensorflow as tf
coefficients=np.array([[1.],[-20],[100]])
w=tf.Variable(0,dtype=tf.float32)
x=tf.Variable(coefficients, dtype=tf.float32)
def cost_function():
return x[0][0]*w**2+x[1][0]*w+x[2][0]
optimizer=tf.optimizers.SGD(0.01)
optimizer.minimize(cost_function,var_list=[w])
print(w.numpy())
해당글은 부스트코스의 [딥러닝 2단계] 8. 프로그래밍 프레임워크 소개 강의를 듣고 작성한 글입니다.