總結:訓練後的k和b會收斂趨近於0.1和0.2,與前期設定的引數無關
'''梯度下降
import tensorflow as tf
import numpy as np
#使用numpy生成100個隨機點
x_data = np.random.rand(100)
y_data = x_data*0.1+0.2
#構造線性模型
#下面的樣本 ,上面的y_data = x_data*0.1+0.2是模型
b = tf.variable(0.)
k = tf.variable(0.)
y = k*x_data+b
#二次代價函式 y_data為真實值,y為**值
loss = tf.reduce_mean(tf.square(y_data-y))
#定義乙個梯度下降法來進行訓練的優化器 0.2是學習率
optimizer = tf.train.gradientdescentoptimizer(0.2)
#最小化代價函式
train = optimizer.minimize(loss)
init = tf.global_variables_initializer()
with tf.session() as sess:
sess.run(init)
for step in range(201):
sess.run(train)
#每20次輸出一下
if step%20 == 0 :
print(step,sess.run([k,b]))
'''
梯度下降 隨機梯度下降 批梯度下降
下面的h x 是要擬合的函式,j 損失函式,theta是引數,要迭代求解的值,theta求解出來了那最終要擬合的函式h 就出來了。其中m是訓練集的記錄條數,j是引數的個數。梯度下降法流程 1 先對 隨機賦值,可以是乙個全零的向量。2 改變 的值,使j 按梯度下降的方向減少。以上式為例 1 對於我們的...
梯度下降 隨機梯度下降和批量梯度下降
對比梯度下降和隨機梯度下降和批量梯度下降 之前看的知識比較零散,沒有乙個系統的解釋說明,看了一些網上的博主的分析,總結了一下自己的理解。例子這裡我參照其他博主的例子做了一些修改,首先是梯度下降 coding utf 8 import random this is a sample to simula...
stanford 梯度 梯度下降,隨機梯度下降
一 梯度gradient 在標量場f中的一點處存在乙個向量g,該向量方向為f在該點處變化率最大的方向,其模也等於這個最大變化率的數值,則向量g稱為標量場f的梯度。在向量微積分中,標量場的梯度是乙個向量場。標量場中某一點上的梯度指向標量場增長最快的方向,梯度的長度是這個最大的變化率。更嚴格的說,從歐氏...