最原始的神经网络模型,类似于神经网络中的单个神经元,该算法局限性也很大,只适用于解决线性可分的问题和异或问题,对于线性不可分的问题则无法解决。但作为神经网络的基本单元,学习和理解单层感知器,对后续的学习是很有帮助的。 当烟雾随晨光飘散 ——五月天(后青春期的诗)——算法描述
python实现
# ************************** Perception ****************** import numpy as np import pandas as pd import matplotlib.pyplot as plt class CyrusPerception(object): def __init__(self,**kargs): self.X = None self.Y = None self.W = None self.output = None if "epoch" in kargs.keys(): self.epoch = kargs["epoch"] else: self.epoch = 1000 if "lr" in kargs.keys(): self.lr = kargs["lr"] else: self.lr = 0.1 def 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) break def 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 + b plt.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
枕畔的湖已风干
期待已退化成等待
而我告别了突然
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算