爱吧机器人网 » 技术 > 机器学习 > 正文

机器学习—自由编码器



一种常见的深层模型是由自编码器(Auto-Encoder)构造的。自编码器可以利用一组无标签的训练数据{x(1), x(2), … }(其中x(i)是一个n维向量)进行无监督的模型训练。它采用反向传播算法,让目标值接近输入值。下图是一个自编码器的示例:

自编码器



自编码器尝试训练一个恒等函数,让输出接近等于输入值,恒等函数看似没有学习的意义,但考虑到隐藏层神经元的数目(本例中为3个)小于输入向量的维数(本例中为6维),事实上隐藏层就变成了输入数据的一种压缩的表示,或说是抽象的简化表示。如果网络的输入是完全随机的,将高维向量压缩成低维向量会难以实现。但训练数据往往隐含着特定的结构,自编码器就会学到这些数据的相关性,从而得到有效的压缩表示。实际训练后,如果代价函数越小,就说明输入和输出越接近,也就说明这个编码器越靠谱。当然,自编码器训练完成后,实际使用时只需要它的前一层,即编码部分,解码部分就没用了。



稀疏自编码器(Sparse Auto-Encoder)是自编码器的一个变体,它在自编码器的基础上加入正则化(Regularity)。正则化是在代价函数中加入抑制项,希望隐藏层节点的平均激活值接近于0,有了正则化的约束,输入数据可以用少数隐藏节点表达。之所以采用稀疏自编码器,是因为稀疏的表达往往比稠密的表达更有效,人脑神经系统也是稀疏连接,每个神经元只与少数神经元连接。



降噪自编码器是另一种自编码器的变体。通过在训练数据中加入噪声,可训练出对输入信号更加鲁棒的表达,从而提升模型的泛化能力,可以更好地应对实际预测时夹杂在数据中的噪声。



得到自编码器后,我们还想进一步了解自编码器到底学到了什么。例如,在10×10的图像上训练一个稀疏自编码器,然后对于每个隐藏神经元,找到什么样的图像可以让隐藏神经元获得最大程度的激励,即这个隐藏神经元学习到了什么样的特征。将100个隐藏神经元的特征都找出来,得到了如下100幅图像:

自编码器的隐藏神经元



可以看出,这100幅图像具备了从不同方向检测物体边缘的能力。显然,这样的能力对后续的图像识别很有帮助。



受限玻尔兹曼机(Restricted Boltzmann Machine,RBM)



受限玻尔兹曼机(Restricted Boltzmann Machine, RBM)是一个二部图,一层是输入层(v),另一层是隐藏层(h),假设所有节点都是随机二值变量节点,只能取值0或1,同时假设全概率分布p(v, h)满足Boltzmann分布。

受限玻尔兹曼机



由于同层节点之间没有连接,因此已知输入层的情况下,隐藏层的各节点是条件独立的;反之,已知隐藏层的情况下,输入层各节点也是条件独立的。同时,可以根据Boltzmann分布,当输入v时通过p(h|v)生成隐藏层,得到隐藏层之后再通过p(v|h)生成输入层。相信很多读者已经猜到了,可以按照训练其他网络类似的思路,通过调整参数,希望通过输入v生成的h,再生成的v’与v尽可能接近,则说明隐藏层h是输入层v的另外一种表示。这样就可以作为深层模型的基本层次组件了。全部用RBM形成的深层模型为深度玻尔兹曼机(Deep Boltzmann Machine,DBM)。如果将靠近输入层的部分替换为贝叶斯信念网络,即有向图模型,而在远离输入层的部分仍然使用RBM,则称为深度信念网络(Deep Belief Networks,DBN)。



卷积神经网络(Convolutional Neural Networks, CNN)



以上介绍的编码器都是全连通网络,可以完成10×10的图像识别,如手写体数字识别问题。然而对于更大的图像,如100×100的图像,如果要学习100个特征,则需要1,000,000个参数,计算时间会大大增加。解决这种尺寸图像识别的有效方法是利用图像的局部性,构造一个部分联通的网络。一种最常见的网络是卷积神经网络(Convolutional Neural Networks,CNN)[15][16],它利用图像固有的特性,即图像局部的统计特性与其他局部是一样的。因此从某个局部学习来的特征同样适用于另外的局部,对于这个图像上的所有位置,都能使用同样的特征。



具体地说,假设有一幅100×100的图像,要从中学习一个10×10的局部图像特征的神经元,如果采用全连接的方式,100×100维的输入到这个神经元需要有10000个连接权重参数。而采用卷积核的方式,只有10×10=100个参数权重,卷积核可以看作一个10×10的小窗口,在图像上上下左右移动,走遍图像中每个10×10的位置(共有91×91个位置)。每移动到一个位置,则将该位置的输入与卷积核对应位置的参数相乘再累加,得到一个输出值(输出值是91×91的图像)。卷积核的特点是连接数虽然很多,有91×91×10×10个连接,但是参数只有10×10=100个,参数数目大大减小,训练也变得容易了,并且不容易产生过拟合。当然,一个神经元只能提取一个特征,要提取多个特征就要多个卷积核。



下图揭示了对一幅8×8维图像使用卷积方法提取特征的示意过程。其中使用了3×3的卷积核,走遍图像中每个3×3的位置后,最终得到6×6维的输出图像:

图像的卷积过程
用户图像分类的卷积神经网络



如图所示是Hinton的研究小组在ImageNet竞赛中使用的卷积神经网络,共有5个卷积层,每层分别有96,256,384,384和256个卷积核,每层卷积核的大小分别为11×11,5×5,3×3,3×3和3×3。网络的最后两层是全连接层。


上一篇:机器学习从浅层模型到深层模型
下一篇:机器学习的几种主要学习方法
精选推荐
2023年服务机器人市场将超过250亿美元
2023年服务机器人市场将超过250亿美元

[2017-09-04]  全球服务机器人市场预计到2023年将达到250亿美元, 并在预测期内登记15% 的复合年增长率。短期中期回收期和投资回报率高 (ROI), 以及在教育和研究、临场感、防御、救援和安......

揭秘达芬奇手术机器人
揭秘达芬奇手术机器人

[2018-04-19]  达芬奇手术系统是由美国Intuitive Surgical公司制造的机器人手术系统。美国食品和药物管理局(FDA)于2000年通过该标准,旨在利用微创手段 ...

17世纪的莱布尼茨试图制造“思想机器”却被现实打脸
17世纪的莱布尼茨试图制造“思想机器”却被现实打脸

[2019-11-05]  莱布尼茨,德国哲学家、数学家、律师,历史上少见的通才1666年,德国博学家戈特弗里德·威廉·莱布尼茨(Gottfried Wilhelm Leibniz)发 ...

机器人工程师具体都做什么?
机器人工程师具体都做什么?

[2017-12-08]  机器人工程师是幕后设计师,负责创建机器人和机器人系统,能够执行人类无法完成或不愿意完成的任务。 通过他们的创造,机器人工程师帮助工作更安全,更轻松,更高效,特别是......

什么是机器人学?机器人学简介
什么是机器人学?机器人学简介

[2017-12-14]  机器人学是工程学与科学的交叉学科,包括机械工程,电气工程,计算机科学等。机器人技术涉及机器人的设计、制造、操作和应用,以及用于控制、感官反馈和信息处理的计算机系统。...

Crossbar将电阻式RAM推入嵌入式AI
Crossbar将电阻式RAM推入嵌入式AI

[2018-05-17]  电阻RAM技术开发商Crossbar表示,它已与航空航天芯片制造商Microsemi达成协议,允许后者在未来的芯片中嵌入Crossbar的非易失性存储器。此举是在先进制造业节点的领先代工厂选......

7种常见的机器人焊接类型
7种常见的机器人焊接类型

[2017-12-17]  机器人焊接是工业领域最常见的机器人应用之一,近几十年来主要由汽车行业驱动。机器人焊接在完成大批量,重复性的焊接任务时效率最高。...

[2017-03-21]  虽然有很多关于机器人取代工人的担心,但哈佛经济学家James Bessen的论文指出,在过去的67年里机器人仅仅淘汰掉人类工作中的一个。在1950 ...

本周栏目热点

关于应用机器学习作为搜索问题的入门简介

[2018-01-03]  机器学习的应用可以理解为一个搜索问题,即根据某个项目的已知信息和可获取的资源,找到从输入到输出的最好的映射。在本文你即将看到把应用机器学习当作搜索问题的概念...

[2017-03-02]   随着人工智能的不断发展,许多新的机器学习技术、架构和算法被提出,但这里有三个宏观趋势,将成为机器学习中,游戏规则的改变者。 机 ...

顶级AI会议NIPS压轴2017(附PPT、视频、代码大汇总)

[2017-12-19]  NIPS,全称神经信息处理系统大会(Conference and Workshop on Neural Information Processing Systems),是一个关于机器学习和计算神经科学的国际会议。该会议固定在每年的12月举行...

机器学习之——正则化

[2018-05-18]  最近在刷李航的《统计学习方法》这本书,在很多算法的损失函数里,都出现类似的描述:损失函数最小化原则一般就是用正则化的极大似然估计进 ...

机器学习算法可预测出乳腺癌治疗率(图)

[1970-01-01]    据外媒报道,患有同种疾病的不同病人在接受同一种治疗方案时,其获得的疗效也会存在不同,这就给医生留下了一个难题:他们怎样才能知道 ...