您的位置:首页 > 理论基础 > 计算机网络

感知机学习python 神经网络设计教材P43

2014-07-02 22:32 246 查看
# -*- coding: utf-8 -*-

"""

Created on Tue Jul 01 16:30:35 2014

@author: Administrator

"""

import numpy as np

b=0.5                                 #偏置值

x=np.array([[1,1,-1,-1],[1,1,1,-1]])  #输入向量

d=np.array([0,1])                    #目标输出

w=np.array([b,0.5,-1,-0.5])         #预置权值

def sgn(v):                         #构建hardlim函数

    if v>0:

        return 1

    else:

        return 0

def comy(myw,myx):                  #计算神经元输出

    return sgn(np.dot(myw,myx.T))

def neww(oldw,myd,myx):             #权舆修正 学习速度没有设定 这里设为1

         return oldw+(myd-comy(oldw,myx))*myx

j=0

while True:

    i=0

    for xn in x:

        w=neww(w,d[i],xn)

        print w                     #查看权值变化过程

        i+=1

    j+=1

    if j>20:break    

for xn in x:#从结果上看三次就收敛了

    print xn

    print "=>%d" %comy(w,xn)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐