感知機(jī)是一個(gè)二分類的線性分類模型。用線性模型 展開來就是
也就是X,W 內(nèi)積 [x,w]+b =0
用線性模型來作為分割超平面。來劃分類別。
其本質(zhì)還是優(yōu)化問題。就是各個(gè)誤分類樣本點(diǎn)到分離超平面的距離和的最小值問題


感知機(jī)的自編程實(shí)現(xiàn)
import numpy as np
import matplotlib.pyplot as plt
class MyPerceptron:
def __init__(self):
self.w=None
self.b=0
self.l_rate=1
def fit(self,X_train,y_train):
#用樣本點(diǎn)的特征數(shù)更新初始w,如x1=(3,3)T,有兩個(gè)特征,則self.w=[0,0]
self.w=np.zeros(X_train.shape[1])
i=0
while i<X_train.shape[0]:
X=X_train[i]
y=y_train[i]
# 如果y*(wx+b)≤0 說明是誤判點(diǎn),更新w,b
if y*(np.dot(self.w, X) + self.b) <= 0:
self.w = self.w + self.l_rate * np.dot(y, X)
self.b = self.b + self.l_rate * y
i=0 #如果是誤判點(diǎn),從頭進(jìn)行檢測(cè)
else:
i+=1
def draw(X,w,b):
#生產(chǎn)分離超平面上的兩點(diǎn)
X_new=range(6)
y_predict=-(b/w[1])-((w[0]*X_new)/w[1])
#繪制訓(xùn)練數(shù)據(jù)集的散點(diǎn)圖
plt.plot(X[:3,0],X[:3,1],"g*",label="1")
plt.plot(X[3:,0], X[3:,1], "rx",label="-1")
#繪制分離超平面
plt.plot(X_new,y_predict,"b-")
#設(shè)置兩坐標(biāo)軸起止值
plt.axis([0,6,0,6])
#設(shè)置坐標(biāo)軸標(biāo)簽
plt.xlabel('x1')
plt.ylabel('x2')
#顯示圖例
plt.legend()
#顯示圖像
plt.show()
def main():
# 構(gòu)造訓(xùn)練數(shù)據(jù)集
X_train=np.array([[3,2.5],[3,3],[4,3],[1,1],[1,1.5]])
y_train=np.array([1,1,1,-1,-1])
# 構(gòu)建感知機(jī)對(duì)象,對(duì)數(shù)據(jù)集繼續(xù)訓(xùn)練
perceptron=MyPerceptron()
perceptron.fit(X_train,y_train)
print(perceptron.w)
print(perceptron.b)
# 結(jié)果圖像繪制
draw(X_train,perceptron.w,perceptron.b)
if __name__=="__main__":
main()

梯度下降,求損失函數(shù)的最小值的一種方法
梯度 梯度的定義 各個(gè)維度的偏導(dǎo)向量,和各個(gè)維度的自然基的內(nèi)積
超參數(shù)是模型之外,無法從訓(xùn)練數(shù)據(jù)中得到的,調(diào)節(jié)效率,模型結(jié)構(gòu)等的旋鈕

有關(guān)梯度以及梯度下降優(yōu)化算法,
<https://www.cnblogs.com/wangguchangqing/p/10521330.html>
感知機(jī)模型收斂性推導(dǎo)novikeff 不等式



感知機(jī)的對(duì)偶形式
知乎 感知機(jī)對(duì)偶形式理解
覺得對(duì)偶形式難懂的點(diǎn)在于ni而ni的含義書上并沒有明說,查了好久才發(fā)現(xiàn)。
ni表示的是第i個(gè)樣本點(diǎn)被誤判的次數(shù),而感知機(jī)一般形式中的w其實(shí)就是每個(gè)樣本點(diǎn)被誤判的次數(shù)乘以 XiYi的累加和,也就

在每次迭代的時(shí)候,ni表示的是到當(dāng)前為止,第i個(gè)樣本點(diǎn)被誤判的次數(shù),這個(gè)很重要。
因?yàn)橐磸?fù)讓樣本點(diǎn)中的輸入x兩兩相乘(這個(gè)在一般形式中計(jì)算w的時(shí)候也要這樣,自己模擬一遍就發(fā)現(xiàn)了),所以提前搞成一個(gè)矩陣存起來,類似于平時(shí)刷算法題說的打表。。。所以兩個(gè)形式本質(zhì)上是一樣的,不過把w用另外一種形式表示。