機器學習演算法之自適應線性感知器演算法

2021-08-18 14:08:23 字數 1104 閱讀 2787

import numpy as np

import matplotlib.pyplot as plt

#隨機生成x和y, n=100, m=2

x = np.random.randn(100, 2)

y = x.dot(np.array([[2], [1]])) + 1

#初始話權值w和偏置b

w = np.zeros(x.shape[1]).reshape((x.shape[1], 1))#

b = 0

#設定超參

epoches = 100

alpha = 0.1

#誤差追蹤

error =

#開始迭代

for e in range(epoches):

y_hat = np.dot(x, w) + b #計算y_hat

err = y_hat - y

error += [err.sum() ** 2 / (2 * len(x))]#計算損失函式

delta_w = x.t.dot(err) / (len(x)) #計算w偏導

delta_b = sum(err) / len(x) #計算b的偏導

#更新w和b

w -= delta_w * alpha

b -= delta_b * alpha

print(w)

print(b)

plt.plot(error)

plt.show()

w和b,可以看出與真實值基本一致

誤差追蹤,誤差不斷下降

在算偏導的時候一定不要忘了除以樣本數,在處理資料x時盡量把值域控制的小一點,從而控制delta_w和delta_b的值,以免過大影響學習。

機器學習 感知器

x x1,x 2,x3 xd y i 1d wixi bi 這裡求和出的結果就是用這些特徵計算出來的總分,如果我們假定y threshold時,最終結果為1。否則y h x s ign i 1d w ixi th resh old 這個公式稱為perceptron hypothesis。1 可以對上...

機器學習 線性感知機模型

把斷斷續續學習的機器學習方面的東西整理一下,還是需要系統的記錄一下。線性 定義下面的的函式 ld是乙個函式集合,w是d維度的引數,b是定義在r的標量。所以整個函式就是標量。當y的值域是的時候,半空間可以定義為 在於w垂直的超平面上面的部分,資料被標記為正類,當在超平面的下面的話,資料被標記為負類。兩...

線性感知器(對Andrew講義的理解)

這麼一看,你可能會覺得奇怪,g z 顯然不可導,怎麼使用梯度下降呢?其實它和梯度下降只是形式上一樣。現在我們來繼續看一下這個update rule.如果y 1而g theta x 0,若xj 0,那麼theta j 將會增大,是整個函式的值增大,從而使得這個被分錯的資料向被分對的趨勢靠攏。若xj 0...