加载中…
个人资料
天然呆的rhys
天然呆的rhys
  • 博客等级:
  • 博客积分:0
  • 博客访问:41,299
  • 关注人气:3
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

Rosenblatt's Perceptron Algorithm 感知器算法及其实现

(2017-04-04 21:02:08)
标签:

杂谈

分类: 计算机智能
Rosenblatt于1958年发布的感知器算法,算是机器学习鼻祖级别的算法。其算法着眼于最简单的情况,即使用单个神经元、单层网络进行监督学习(目标结果已知),并且输入数据线性可分。我们可以用该算法来解决and 和 or的问题。下图为工作中的Rosenblatt。

Rosenblatt's <wbr>Perceptron <wbr>Algorithm <wbr>感知器算法及其实现
在讨论神经元的数学模型时,我们将单个神经元抽象为下图的信号流图形式。输入向量为x,权重向量为w,w0一路为bias,这里不再赘述。

Rosenblatt's <wbr>Perceptron <wbr>Algorithm <wbr>感知器算法及其实现

而本文算讲的算法,其解决的实际问题是,在知道输入向量x,和输出向量y的情况下,求解感知器的权重向量w以及bias。在几何上,我们可以理解为,我们有确定的n个点(x,y坐标确定),根据不断调整w的值,来求取一个超平面(Hyperplane)或称决策边界(Decision Boundary),将这n个点分隔成2组。

因为在输入向量与权重向量内积运算后,induced local field的值为:
Rosenblatt's <wbr>Perceptron <wbr>Algorithm <wbr>感知器算法及其实现
而在其进入activation function时,很明显0是一个很重要的阈值,也即是输出值的分界点。
Rosenblatt's <wbr>Perceptron <wbr>Algorithm <wbr>感知器算法及其实现

所以,我们要解决的问题也就可以等同于求出如下等式的一个解:
Rosenblatt's <wbr>Perceptron <wbr>Algorithm <wbr>感知器算法及其实现
如果将bias单独拿出,则改写为:
Rosenblatt's <wbr>Perceptron <wbr>Algorithm <wbr>感知器算法及其实现

在解决该问题时,我们使用
1、为该系统初始化参数,随机为权重向量的元素赋值;
2、将输入向量的元素逐个输入到系统中
3、在输出端,将系统实际输出t与期望输出y进行比较,计算出差值delta-y=t-y,并计算出调节因子,其中η是学习率learning-rate parameter,为每次的调整幅度,可以设置为0.1
Rosenblatt's <wbr>Perceptron <wbr>Algorithm <wbr>感知器算法及其实现

4、调整系统对应的权重项为

Rosenblatt's <wbr>Perceptron <wbr>Algorithm <wbr>感知器算法及其实现
5、重复2-4步10次,已达到最佳参数组合。

下面为使用python实现与操作的感知器学习代码:
Rosenblatt's <wbr>Perceptron <wbr>Algorithm <wbr>感知器算法及其实现
Rosenblatt's <wbr>Perceptron <wbr>Algorithm <wbr>感知器算法及其实现

参考文献:

机器学习的历史:
http://www.erogol.com/brief-history-machine-learning/
维基百科,对我理解本节知识有很重要的作用:
https://en.wikipedia.org/wiki/Perceptron
零基础入门深度学习,在代码实现感知器上给了我很大帮助,也给python新手一些practice的机会:https://www.zybuluo.com/hanbingtao/note/433855

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有