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

来源:互联网 发布:怎么下载淘宝app 编辑:程序博客网 时间:2024/06/06 11:11
# -*- 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)
0 0
原创粉丝点击