在深度学习火之前,就接触过神经网络,但是当时并没有对此技术有任何的想法,唯一的想法就是,它怎么这么难呢,于是便将此项知识暂已告落,但是最近的两个项目的数据挖掘过程中,又再次用神经网络建模,让我对此产生浓厚的学习兴趣。虽然现在已经过了热点,但是还是通过网络资源,在blog上发现一篇通过利用神经网络来识别手写字符的博客。
感知器(Perceptrons)
感知器是由Frank Rosenblatt在上世纪50-60年代发明的,灵感来源于Warren McCulloch和Walter Pitts的早期作品。今天人工神经网络使用更加通用的其他模型,本书及许多现代的神经网络工作中,主要的神经网络模型是Sigmoid神经元,讨论前,先了解感知器。一个感知器获取几个二进制输入x1,x2,…..,并且输出一个二进制:
在这个例子中,我们可以发现,感知器有三个输入x1,x2,x3.通常可以有更多或者更少输入。Rosenblatt提出一个简单规则来计算最后输出。通过引用权重(weights)w1,w2 ,…..,表达输入对输出的重要性。这个神经元输出(output)0或1是由这些输入的加权求和是否大于或者小于某一个阈值(threshold)。阈值作为此神经元的实数参数。这就是感知器的所有工作内容。
这是一个基础的数学模型,可以将感知器理解为通过加权凭据来进行决策的设备。举一个具体的例子。假设周末到了,你听说你生活的地方有一个啤酒节,你很喜欢喝啤酒,并且决定要去参加这个节日,你可能会通过以下三个方面决定。
- 天气好吗?
- 你的女(男)朋友愿意和你去吗?
- 有利于这个活动的公共交通吗?(无私家车)
我们将这三个因素利用二进制变量x1,x2,x3表示。比如,当天天气不错,我们有x1=1,天气不好时x1=0;同样的,男(女)朋友愿意去,x2=1,否则为x2=0,对x3同样赋值。
微信支付
支付宝
