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

# -*- 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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值