深度学习(神经网络)[1]——单层感知器
生活随笔
收集整理的這篇文章主要介紹了
深度学习(神经网络)[1]——单层感知器
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
深度學習(神經網絡)[1] —— 單層感知器
- 算法描述
- python實現
- 示例運行結果
- 可視化
算法描述
最原始的神經網絡模型,類似于神經網絡中的單個神經元,該算法局限性也很大,只適用于解決線性可分的問題,對于線性不可分的問題和異或問題則無法解決。但作為神經網絡的基本單元,學習和理解單層感知器,對后續的學習是很有幫助的。
python實現
# ************************** Perception ****************** import numpy as np import pandas as pd import matplotlib.pyplot as plt class CyrusPerception(object):def __init__(self,**kargs):self.X = Noneself.Y = Noneself.W = Noneself.output = Noneif "epoch" in kargs.keys():self.epoch = kargs["epoch"]else:self.epoch = 1000if "lr" in kargs.keys():self.lr = kargs["lr"]else:self.lr = 0.1def fit(self,X,Y,**kargs):self.X = np.hstack((np.ones((np.array(X).shape[0],1)),np.array(X)))self.Y = np.array(Y).reshape(-1,1)# 1、初始化權值if "W" in kargs.keys():self.W = kargs["W"]else:self.W = (np.random.random([self.X.shape[1],1])-0.5)*2# 2、更新權值for i in range(self.epoch):self.update_w()print("*"*20)print("epoch:",i+1)print("w:",self.W)if (self.Y == self.output).all():print("*"*20)print("Finihed")print("epoch",self.epoch)breakdef update_w(self):self.output = np.sign(self.X.dot(self.W)).reshape(-1,1)self.W += self.lr*(self.X.T.dot(self.Y - self.output))/int(self.X.shape[0]) if __name__ == "__main__":model = CyrusPerception()x = [[3,3],[4,3],[1,1],[0,2]]y = [1,1,-1,-1]model.fit(x,y)# 繪圖k = -model.W[1]/model.W[2]b = -model.W[0]/model.W[2]x_lineal = np.array([0,5])y_lineal = k*x_lineal + bplt.figure()colors = "rgb"[plt.scatter(x[i][0],x[i][1],color = colors[y[i]]) for i in range(len(x))]plt.plot(x_lineal,y_lineal,color = "r")plt.show()示例運行結果
******************** epoch: 1 w: [[-0.31672519][-0.16285498][ 0.19094236]] ******************** epoch: 2 w: [[-0.26672519][ 0.18714502][ 0.39094236]] ******************** epoch: 3 w: [[-0.36672519][ 0.13714502][ 0.24094236]] ******************** epoch: 4 w: [[-0.46672519][ 0.08714502][ 0.09094236]] ******************** epoch: 5 w: [[-0.46672519][ 0.08714502][ 0.09094236]] ******************** Finihed epoch 1000可視化
by CyrusMay 2020 05 05
當煙霧隨晨光飄散
枕畔的湖已風干
期待已退化成等待
而我告別了突然
——五月天(后青春期的詩)——
總結
以上是生活随笔為你收集整理的深度学习(神经网络)[1]——单层感知器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最优化算法python实现篇(3)——无
- 下一篇: 最优化算法python实现篇(4)——无