机器学习笔记--神经网络--Rosenblatt

今天开始学习神经网络这一部分了,决定把自己的学习体会记录下来,加深理解。

import numpy as np
b=0
a=0.5
x=np.array([[0,1,1],[0,1,0],[0,0,0],[0,0,1]])
d=np.array([1,1,0,1])
w=np.array([b,0,0])
def sgn(v):
if v>0:
return 1
else:
return 0
def comy(myw,myx):
return sgn(np.dot(myw.T,myx))
def neww(oldw,myd,myx,a):
return oldw+a*(myd-comy(oldw,myx))*myx
i=0
for xn in x:
w=neww(w,d[i],xn,a)
i+=1
for xn in x:
print "%d or %d => %d"%(xn[1],xn[2],comy(w,xn))

以上是一个简单的 “或” 神经网络,这段代码的难点在于return oldw+a*(myd-comy(oldw,myx))*myx,这段循环的意义在于得到一个接近真实值的权重w,其中myd是指真实的值,oldw是指当前的权重w,myx是指当前的x值,a代表学习速率(就是快慢),形象的说,这段代码就是为了不断逼近正确的y值,当权重过大myd-comy(oldw,myx)<0,为负,所以新的权重值减小,反之权重增大。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值