梯度下降初級小程式

2021-09-14 02:29:31 字數 843 閱讀 2866

總結:訓練後的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的梯度。在向量微積分中,標量場的梯度是乙個向量場。標量場中某一點上的梯度指向標量場增長最快的方向,梯度的長度是這個最大的變化率。更嚴格的說,從歐氏...