# -*- 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)
"""
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)