"""
隨機梯度下降
描述:每次選取乙個樣本參與梯度計算
場景:一元線性回歸
"""import numpy as np
np.random.seed(1)
x =2
* np.random.rand(
100,1)
y =4+3
* np.random.randn(
100,1)
x = np.c_[np.ones(
(100,1
)), x]
m =100
# 樣本數
theta = np.random.randn(2,
1)learning_rate =
0.001
n_epochs =
10000
# 隨機梯度下降次數
if __name__ ==
"__main__"
:for epoch in
range
(n_epochs)
:for i in
range
(m):
random_index = np.random.randint(m)
xi = x[random_index:random_index+1]
yi = y[random_index:random_index+1]
gradients = xi.t.dot(xi.dot(theta)
- yi)
# 統計更新theta
theta -= learning_rate * gradients
print
(theta)
[[ 4.65856506]
[-0.47926501]]
雖然沒調參,但這個是真不穩...
梯度下降 隨機梯度下降 批梯度下降
下面的h x 是要擬合的函式,j 損失函式,theta是引數,要迭代求解的值,theta求解出來了那最終要擬合的函式h 就出來了。其中m是訓練集的記錄條數,j是引數的個數。梯度下降法流程 1 先對 隨機賦值,可以是乙個全零的向量。2 改變 的值,使j 按梯度下降的方向減少。以上式為例 1 對於我們的...
stanford 梯度 梯度下降,隨機梯度下降
一 梯度gradient 在標量場f中的一點處存在乙個向量g,該向量方向為f在該點處變化率最大的方向,其模也等於這個最大變化率的數值,則向量g稱為標量場f的梯度。在向量微積分中,標量場的梯度是乙個向量場。標量場中某一點上的梯度指向標量場增長最快的方向,梯度的長度是這個最大的變化率。更嚴格的說,從歐氏...
梯度下降 隨機梯度下降和批量梯度下降
對比梯度下降和隨機梯度下降和批量梯度下降 之前看的知識比較零散,沒有乙個系統的解釋說明,看了一些網上的博主的分析,總結了一下自己的理解。例子這裡我參照其他博主的例子做了一些修改,首先是梯度下降 coding utf 8 import random this is a sample to simula...