1、机器学习之神经网络【感知器】主讲:麦好工作室计算与数学老师课程地址: Rosenblatt感知器与大家共同进步麦好工作室 让我们的生活越来越好感知器 Rosenblatt感知器建立在一个非线性神经元上,神经元模型的求和节点计算作用于突触上的输入的线性组合,同时结合外部作用的偏置。诱导局部域是指求和节点计算得到的结果,然后这个结果被应用于硬限幅器。当硬限幅器输入为正时,神经元输出 +1,反之输出 -1。感知器 其最终结果是把外部输入 x1,x2,.,xm正确分成两类,分类规则是,如果感知器输出是 +1,则为类 1,否则输出为 -1为类 2。感知器被超平面分开为 2类,这个超平面为 得到权值 w的
2、过程就是一个误差修正的学习过程。 mi ii bxwv 1感知器 我们用 python来实现一个 Rosenblatt感知器。相关的数值计算使用 numpy包, numpy是一个用 python实现的科学计算包,它基于 BSD协议开源,官网为:http:/www.numpy.org/,下载地址为:https:/pypi.python.org/pypi/numpy,关于如何使用python进行科学计算可参考 用 Python做科学计算 ,可从 http:/ ) if 11(n ) if 1)(10)()()()()1(40 vif 10 vif 1sgn)()(sgn()(3)()(,2:)(,
3、). . . .(,()()(). . . ,(,1()(0)0(111xxndnxnyndnwnwnxnwnyndnxnbnwnwbnwnxnxnxwTTmTn #!/usr/bin/env python # -*- coding: utf-8 -*- import numpy as np b=0 a=0.5 x = np.array(b,1,1,b,1,0,b,0,0,b,0,1) d =np.array(1,1,0,1) w=np.array(b,0,0) def sgn(v): if v0: return 1 else: return 0 def comy(myw,myx): retu
4、rn sgn(np.dot(myw.T,myx) def neww(oldw,myd,myx,a): print comy(oldw,myx) return oldw+a*(myd-comy(oldw,myx)*myx i=0 for xn in x: print xn w=neww(w,di,xn,a) i+=1 print w for xn in x: print “%d and %d = %d “%(xn1,xn2,comy(w,xn) 求解及验证结果如下: 0 1 1 0 0. 0.5 0.5 0 1 0 1 0. 0.5 0.5 0 0 0 0 0. 0.5 0.5 0 0 1 1 0. 0.5 0.5 1 and 1 = 1 1 and 0 = 1 0 and 0 = 0 0 and 1 = 1