最简单的神经网络-感知器-python实现

import numpy as np
import matplotlib.pyplot as plt
X=np.array([[1,3,3],
           [1,4,3],
            [1,1,1]])
Y=np.array([1,1,-1])
W=(np.random.random(3)-0.5)*2
print(W)
lr=0.11
n=0
O=0
def update():
    global X,Y,W,lr,n
    n+=1
    O=np.sign(np.dot(X,W.T))
    W_C=lr*((Y-O.T).dot(X))/int(X.shape[0])
    W=W+W_C
for _ in range(100):
    update()
    print(W)
    print(n)
    O=np.sign(np.dot(X,W.T))
    if(O==Y.T).all():
        print("完成")
        break
x1=[3,4]
y1=[3,3]
x2=[1]
y2=[1]
k=- W[1]/W[2]
d=-W[0]/W[2]

xdata=np.linspace(0,10)

plt.figure()
plt.plot(xdata,xdata*k+d,‘r‘)
plt.plot(x1,y1,‘bo‘)
plt.plot(x2,y2,‘yo‘)
plt.show()

时间: 2024-11-04 22:11:40

最简单的神经网络-感知器-python实现的相关文章

简单的密码管理器(Python)(待完善)

需要使用的库:pymssql(用于连接SQL Server), PyQt5(用于窗口的制作) 首先编写DOS界面的密码生成器,以及将程序与数据库相连接,用于存储和查询 PasswordDOS.py 1 from random import randint 2 import pymssql 3 4 5 def connect_to_sql(): 6 print('连接中...') 7 connect = pymssql.connect('(local)', 'sa', '123456789', '

Deep Learning之感知器(1)

What is deep learning? 在人工智能领域,有一个方法叫机器学习.在机器学习这个方法里,有一类算法叫神经网络.神经网络如下图所示: 上图中每个圆圈都是一个神经元,每条线表示神经元之间的连接.我们可以看到,上面的神经元被分成了多层,层与层之间的神经元有连接,而层内之间的神经元没有连接.最左边的层叫做输入层,这层负责接收输入数据:最右边的层叫输出层,我们可以从这层获取神经网络输出数据.输入层和输出层之间的层叫做隐藏层. 隐藏层比较多(大于2)的神经网络叫做深度神经网络.而深度学习,

机器学习--感知器数据分类算法步骤(慕课网-实现简单的神经网络)

权重向量W,训练样本X 1.把权重向量初始化为0,或把每个分量初始化为[0,1]之间的任意小数 2.把训练样本输入感知器,得到分类结果(-1或者1) 3.根据分类结果更新权重向量 感知器算法适用于图一的可线性分隔开的数据样本

基于感知器模型的线性神经网络

摘要:随着计算智的提出,人工神经网络也随之发展.目前业界考虑到把神经网络(NN)归类于人工智能(AI)可能不大合适,而归类于计算智能(CI)更能说明问题实质.进化计算.人工生命和模糊逻辑系统的某些课题,也都归类于计算智能.尽管计算智能与人工智能的界限并非十分明显,然而讨论它们的区别和关系是有益的,逻辑性的思维是指根据逻辑规则进行推理的过程:它先将信息化成概念,并用符号表示,然后,根据符号运算按串行模式进行逻辑推理:这一过程可以写成串行的指令,让计算机执行.然而,直观性的思维是将分布式存储的信息综

从最简单的感知器学习到的一些有趣的现象

看了一些深度学习神经网络的视频,最近有了一点新的体会,在google的一个小工具上,地址:http://playground.tensorflow.org 一个神经网络训练的模拟器,发现了一些有意思的事情,有了些新的体会 这里分享给大家. 1 权值,刚开始都是设置的随机初始值,但是随着训练的深入,你会发现权值变化的一些规律,这里一二分类为列,某些对最终分类帮助性大的因素即输入的权值会越来越大,而那些对分类作用小的因素,甚至对分类起反作用的因素的权值会逐渐变得很小,或者为负值,有些同学会问权值之和

计算机潜意识- 单层神经网络(感知器)

1.引子 1958年,计算科学家Rosenblatt提出了由两层神经元组成的神经网络.他给它起了一个名字--"感知器"(Perceptron)(有的文献翻译成"感知机",下文统一用"感知器"来指代). 感知器是当时首个可以学习的人工神经网络.Rosenblatt现场演示了其学习识别简单图像的过程,在当时的社会引起了轰动. 人们认为已经发现了智能的奥秘,许多学者和科研机构纷纷投入到神经网络的研究中.美国军方大力资助了神经网络的研究,并认为神经网络比

神经网络入门回顾(感知器、多层感知器)

神经网络属于“连接主义”,和统计机器学习的理论基础区别还是很不一样. 以我自己的理解,统计机器学习的理论基于统计学,理论厚度足够强,让人有足够的安全感:而神经网络的理论更侧重于代数,表征能力特别强,不过可解释性欠佳. 这两个属于机器学习的两个不同的流派,偶尔也有相互等价的算法. 本文回顾神经网络最简单的构件:感知器.多层感知器. 感知器 感知器是二类分类的线性分类模型,将实例划分为正负两类的分离超平面(separating hyperplane),属于判别模型. 感知器基于线性阈值单元(Line

python机器学习——感知器

最近在看机器学习相关的书籍,顺便把每天阅读的部分写出来和大家分享,共同学习探讨一起进步!作为机器学习的第一篇博客,我准备从感知器开始,之后会慢慢更新其他内容. 在实现感知器算法前,我们需要先了解一下神经元(neuron)的工作原理,神经元有很多树突和一个轴突,树突(Dendrites)可以从其他神经元接收信息并将其带到细胞体(Cell nucleus),轴突(Axon)可以从细胞体发送信息到其他神经元.树突传递过来的信息在细胞体中进行计算处理后,如果结果超过某个阈值,轴突会传递信号到其他的神经元

人工神经网络之感知器算法

感知器作为人工神经网络中最基本的单元,有多个输入和一个输出组成.虽然我们的目的是学习很多神经单元互连的网络,但是我们还是需要先对单个的神经单元进行研究. 感知器算法的主要流程: 首先得到n个输入,再将每个输入值加权,然后判断感知器输入的加权和最否达到某一阀值v,若达到,则通过sign函数输出1,否则输出-1. 为了统一表达式,我们将上面的阀值v设为-w0,新增变量x0=1,这样就可以使用w0x0+w1x1+w2x2+…+wnxn>0来代替上面的w1x1+w2x2+…+wnxn>v.于是有: 从