深度学习系列(1):感知机

深度学习系列(1):感知机

前言

小论文总算告一段落了,近期开始深度学习了,跟着Hinton神经网络公开课边看边总结。视频参考链接如下:https://www.coursera.org/,搜索Neural Networks for Machine Learning即可找到资源。部分有中文翻译,当然也可以参考hankcs神犇关于Hinton神经网络的总结,参考链接如下:http://www.hankcs.com/ml/

思考

  • 感知机是什么?
  • 感知机如何实现?
  • 感知机的优缺点?

感知机是什么?

大背景:给定输入,求得输出。中间需要一种模型来表达这种映射关系,于是有了: 输入 -> 模型(映射) -> 输出。

模型有很多,机器学习中有诸如SVM,DT,HMM等,这里我们只讨论神经网络的基础模型:感知机(perceptron)。

以下内容参考博文: http://www.cnblogs.com/maybe2030/p/5597716.html#_label1

1943年,McCulloch和Pitts将上图的神经元结构用一种简单的模型进行了表示,构成了一种人工神经元模型,也就是我们现在经常用到的“M-P神经元模型”,如下图所示:

从上图M-P神经元模型可以看出,神经元的输出

其中θ\theta为我们之前提到的神经元的激活阈值,函数f(⋅)f(·)也被称为是激活函数。如上图所示,函数f(⋅)f(·)可以用一个阶跃方程表示,大于阈值激活;否则则抑制。但是这样有点太粗暴,因为阶跃函数不光滑,不连续,不可导,因此我们更常用的方法是用sigmoid函数来表示函数函数f(⋅)f(·)。

sigmoid函数的表达式和分布图如下所示:

定义: 感知机(perceptron)是由两层神经元组成的结构,输入层用于接受外界输入信号,输出层(也被称为是感知机的功能层)就是M-P神经元。下图表示了一个输入层具有三个神经元(分别表示为x0、x1、x2)的感知机结构:

根据上图不难理解,感知机模型可以由如下公式表示:

y=f(wx+b)

y = f(wx + b)

其中,ww为感知机输入层到输出层连接的权重,b表示输出层的偏置。事实上,感知机是一种判别式的线性分类模型,可以解决与、或、非这样的简单的线性可分(linearly separable)问题,线性可分问题的示意图见下图:

Okay,以上内容均属于感知机的定义部分,问题是如何根据给定的{输入集合}和{输出集合}得到{ww的集合}?即如何学习?

感知机如何实现?

思路

根据限有参数ww(待求参数,未知)及给定的输入输出(已知)能够定义损失函数,以激活函数sigmoid为例:

其中满足:

我们的目标:需要求出给定集合w∗{w^*},L(w∗)L(w^*) 取得最小值。如果有解析解可以直接求导代入求出每个w1,w2,⋯,wn{w_1, w_2, \cdots, w_n}, 然这里并没有解析解,所以我们采用一种迭代的手段,即【梯度下降】。

梯度下降:

先看图,形象来说,由ww构成的L在三维空间内是一种曲面图,梯度是在当前点,如红色初始点往四周看下降最快的方向。有了这个方向,我们乘以一个学习率η\eta,就能让当前ww朝着地势较低的方向前进了。

所以更新规则有:

而下降的方向实际上表示的一个值,数学上是

,该值越大则地势越抖,走的也越快。所以在极值点时,导数为0,那么自然wiw_i不在更新,算法收敛,求得最优。但正如图中所示,在非凸函数中,梯度下降无法保证求出的解一定是全局最优,这是它缺点之一,其次η\eta学习率的选择也很重要,过大导致无法收敛,过小导致学习效率低,因此合理的,自适应的η\eta也就成为了研究的热点。

所以数学上只要求出

,就能写更新算法了。且收敛的条件可以用迭代次数或者参数L(w)L(w)的前后变化量控制。

感知机的弱点

问题1: 在Hinton神经网络公开课上,老爷子举了两个例子来说明感知机的弱点,第一个是关于XNOR的数据集:

得到参数向量必须满足的方程:

所以如果针对第一行有:

,针对第二行有:

,需要找到这样的阈值使得上述两个不等式着实有点困难呐。

还有一份《证:单层感知机不能表示异或逻辑》,参考链接如下:http://blog.csdn.net/panda07100/article/details/38580993

问题 2:

n×1n \times 1的图片的模式识别,两种模式分别只有4个像素是黑色,其他都是白色,如下图:

同样,对于这样的wrap-pattern数据集,感知机也无法区分模式A和模式B,歪?

此处需要考虑概率了,白色格子代表xi=0x_i = 0

, 黑色格子代表

,所以对于

,仅存在4个权值有效,于是有

,那么问题来了,推广到wrap,且大数据集上,每个格子都有被选中的机会,就上图而言被选中的概率为:4 / 16,所以每个格子都有25%的概率取黑色,于是有了

,这就呵呵了,模式B也是

,那么借用问题1的证明思路,阈值也出现了矛盾,即感知机无法区分上述两种简单的pattern。

总结:

参考老爷子和hankcs对视频的翻译:

但如果你手工选取有效的特征的话,感知机框架仍然有效。比如增加一些feature unit识别sub pattern。所以感知机模式识别的关键在于手写特征detector,而不是机器学习。老爷子说这个弱点被过分解读,导致早期很多人认为感知机不好用,那么神经网络也不好用。 如果有办法训练特征识别模块的话,神经网络就好用了。我们不但要学习特征权重,还要学习特征表示。第二代神经网络其实全是关于特征表示的学习(早期的神经网络没有hidden unit层,特征是原始的)。 多个线性的隐藏层无济于事,整个模型依然是线性的。于是怎么有效地训练非线性hidden unit就成为关键问题。学习流入hidden units的weight其实就是学习feature。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云时之间

EM算法学习(二)

在上一篇文章写到了EM算法的收敛性证明以后便匆匆的结尾,然后我出去玩了几天,玩的爽了,回来开始继续补之前的flag: 在上一篇文章中,当我们得到收敛的结果以后...

28510
来自专栏绿巨人专栏

神经网络学习笔记-03-循环神经网络-反向传播计算公式的证明

2616
来自专栏计算机视觉战队

最近流行的激活函数

最近又看了点深度学习的东西,主要看了一些关于激活函数的内容,不知道算不算新颖,但是我想把自己阅读后的分享一下,请各位给予评价与指点,谢谢! 一般激活函数有如下一...

2645
来自专栏专知

【干货】基于注意力机制的神经匹配模型用于短文本检索

【导读】在基于检索的问答系统中,很重要的一步是将检索到的答案进行排序得到最佳的答案。在检索到的答案比较短时,对答案进行排序也成为了一个难题。使用深度学习的方法,...

4468
来自专栏量化投资与机器学习

【Python机器学习】系列之线性回归篇【深度详细】

谢谢大家的支持!现在该公众号开通了评论留言功能,你们对每篇推文的留言与问题,可以通过【写评论】给圈主留言,圈主会及时回复您的留言。 本次推文介绍用线性模型处理回...

5689
来自专栏顶级程序员

高斯模糊的算法

来自:阮一峰的网络日志 链接:www.ruanyifeng.com/blog/2012/11/gaussian_blur.html 通常,图像处理软件会提供"...

2739
来自专栏机器学习算法与Python学习

干货 | 机器学习算法大总结(ML岗面试常考)

键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第二 【Python】:排名第三 【算法】:排名第四 找工作时(IT行业),除了常见的软件...

3366
来自专栏IT派

常见面试之机器学习算法思想简单梳理

导语:今天小编从别的地方推送一篇更广泛的文章供你们学习参考,总结的常见机器学习算法(主要是一些常规分类器)大概流程和主要思想,希望对大家找机器学习岗位时有点帮助...

3517
来自专栏大数据挖掘DT机器学习

机器学习算法总结(面试用到)

找工作时(IT行业),除了常见的软件开发以外,机器学习岗位也可以当作是一个选择,不少计算机方向的研究生都会接触这个,如果你的研究方向是机器学习/数据...

3535
来自专栏计算机视觉战队

经典的全连接前馈神经网络与BP

神经网络分类: ? 机器学习的四要素 ? 讨论:线性模型与广义线性模型 对于部分数据来说,其本身就是稀疏,可以通过线性模型直接优化求解,但是实际生活中大多...

3025

扫码关注云+社区