机器学习40讲_25_24_深度编解码表示学习
你好,我是王天一。
今天我和你分享的主题是深度编解码表示学习。
在上一讲中,我曾提到深度学习既可以用于解释,也可以用于预测。
在实际当中呢,这两个功能可以被组合起来使用。
解释功能呢可以看作编码器对高维的信息进行低维重构。
预测功能呢则可以看作解码器,将低维重构恢复成高维信息。
这样的两个深度网络集连起来,就形成了编码解码结构。
这种结构在诸如语音、文本、图像等高维数据的处理当中,应用广泛,并且呢取得了良好的效果。
编解码的思想呢应该说来源于信息论,这是信息传输和处理的基础理论之一。
但是在通信当中,编解码的对象是底层的语法结构,也就是对携带信息的符号进行编辑吗?通过数据的压缩来实现信息的高效传输。
但输出的符号呢本身和它所表达的意义并没有什么关联。
在深度学习当中,编解码的操作更多的呢是在语义层面上完成的。
无论是文本还是图像编辑码的目的,都是重新构造数据的表示方式,从而呢简化学习任务的难度。
在最初的尝试当中,编码器和解码器并不是分开的,而是存在于单个的深度网络里。
这种深度结构就是自编码器。
自编码器呢它属于生成模型,它的作用是以无监督的学习方式,学到数据集的一个稀疏的表示。
从而呢给数据降维。
显然,他和前面介绍过的主成分分析殊途同归,可以证明,如果自编码器只有一个线性的隐藏层,同时呢又使用均方误差作为损失函数的话,那么KG隐藏神经元的权重系数实际上就代表了输入数据的KG主成分。
从编解码的全过程来看呢,如果要构造出有效的表示,那自编码器的输入和输出就应该是近似相等了。
他学习的对象呢也就是个恒等的函数。
那看到这儿你可能就不理解了,恒等函数有什么好学的呢?你原样输入原样输出不就完了吗?这话呢一点毛病没有,但是成立的前提是原样输入,原样输出的功能可以实现。
这就像学美术的学生需要临摹画作,但可能你的临摹技术再高超,也比不过手机拍照来的像。
可是如果你拿一张照片去跟老师交差的话,肯定是要挨骂。
而且自编码器它要研究的不光是如何近似恒等函数,而且还是如何使用五十个中间变量,去构造出包含一百个自变量这样的恒等函数。
这时候问题就没有那么简单了。
需要说明的一点是呢,在结构上啊自编码器隐藏神经元,它的数目未必会少于输入输出的神经元。
这可能意味着我的中间量有两百个,但即使有两百个隐藏的神经元,自编码器呢,通常也只会激活这些潜在中间变量的一小部分,达到的效果呢仍然是用五十个中间变量拟合一百维的恒等函数。
这样的效果,这种即使在过完倍时依然能够得以保持的稀疏特性,正是自编码器实现降维的核心特性。
自编码器它的吸疏特性呢可以从能量的角度来解释。
在最初的设计当中,憋霸期的任务是生成参数矩阵,WC用来计算输入数据x的一个码字向量啊,也就是编码的结果。
解码器的任务呢是生成参数矩阵WD,用来重构码字向量所对应的初始数据啊,表示为波浪线x如果编码器和解码器直接级联的话啊,这就是个主成分分析的系统。
但是自编码器它和主成分分析的区别就在于说,引入了一个叫稀疏逻辑这样的模块,它可以将编码器输出的码字z非线性的映射成为特征。
码字z八特征码字它大部分元素的取值为零。
那么非零元素呢则是落在零一这个区间之内啊,这是它的一个特点定义。
损失函数的时候啊,自编码器是将非线性的编辑码过程综合考虑,提出了所谓能量的概念。
那么点击文稿,你可以看到它的数学表达式。
在能量这个表达式里面呢,包括两项其中的第一项表示的是编码器的预测能量。
第二项呢表示的是译码器的重构能量,作为两者之间接口的这个稀疏逻辑,这种非线性关系也在文稿当中给出。
那么观察这个稀疏逻辑的表达式,你会发现稀疏逻辑的本质,实际上就是计算所有训练样本当中相同码字单元的加权的soft max分类结果啊,也就是多分类的一个结果。
里面的参数一特呢控制着特征。
码字的稀疏程度,一代越小飞零元素越少移的越大,飞行员坐越多。
另一个参数贝塔则控制着特征。
码字的一个平滑程度,倍塔越大马字的输出就越接近于两点分布,通过合理的增大贝塔,并且减小伊塔自编码器就能够实现稀疏的表示,将编码器和解码器整合到同一个结构当中的自编码器呢可以说是一个特例,它的编码器和解码器都可以堆叠成为层次化的结构啊,也就是用不同的深度网络来表示。
使用了层次化的结构之后啊,它就可以实现更加复杂的非线性映射。
在自编码器的基础上推广一步。
啊,将编码器和解码器各自作为一个独立的深度网络啊,给它区分开来的话,虽然呢可能会丧失这个稀疏的特性,但是呢却能够实现更加强大的功能。
点击文稿,你可以看到荷兰的美术大师皮埃蒙德里安的名作红蓝黄之构成,可千万不要小看这幅画。
这个看似简单的色块组合,摆的拍卖行就是千万美元起步的价格。
当然了,我的目的不是讨论这个几何抽象画派,它的艺术造诣,而是要从稀疏表示的角度来看待这幅画作。
显然这张图像中的像素啊只有少数的几种取值,哎,就是图像中只有少数的几种颜色,而相同取值的降速呢又基本上集中在一块儿。
如果将每一组聚合在一起的颜色相同的这种像素,用一串编码来表示的话,就可以大大的压缩这幅名画构成的体系。
这呢就是所谓的游程编码,同样的思路也可以应用到图像的语义处理当中。
从语义上看,构成其实就是不同颜色的几何形状的组合,而每个形状的特征无外乎长度、宽度,还有颜色这样的三个维度。
那么要学习这幅图像呢,实际上就是对这三个维度来进行学习。
在人工智能基础课当中,我介绍过卷积神经网络,这是基于神经网络的图像处理所使用的最主要的工具。
卷积神经网络本身就可以看成是一个庞大的编码器。
其中的卷积呢用于提取特征,不同的卷积核代表了不同的特征类型,在图像的每个局部上和卷积核相似度最高的区域都被下载样操作,给它筛选出来,用来进行下一阶段的特征提取。
那么在卷积层和下采样层的迭代过程当中,低层次的特征不断的组合成为高层次的特征。
数字图像的表示方式也从原始的像素集合变成卷积所得到的特征集合。
这两个层次呢实际上就构成了卷积神经网络里面的编码器对卷积出来的表示进行解码,相当于反转编码的过程。
编码的输出经过上采样的处理之后,再和卷积核进行。
卷积上采样呢它不仅可以补充缺失的分辨率,还能确定编码器学到的码字当中每个元素的覆盖范围。
卷积操作则在覆盖范围上计算上采样结果和特征本身的匹配程度。
随着上采样和卷积的不断进行,高层次的特征,如庖丁解牛般一点一点被拆解,成为低层次的特征。
这些特征呢在重构出来的图像当中又体现为像素的分类结果。
如此这般,一个完整的卷积网络编解码,就可以将原始图像构造成不同语义的组合。
在文稿中,来自斯坦福大学CS二三一n课程的这个图片,就是一个典型的例子。
和卷积网络相比,编辑码结构更直观的应用是在循环网络当中,循环神经网络是增加了时间维度的。
神经网络是自然语言处理,尤其是机器翻译的利器。
机器翻译呢它需要将一种语言的句子映射成为另一种语言的句子。
这样的从序列到序列的模型,正是编解码结构的用武之地。
不管是使用循环神经网络啊还是长短期记忆,网络编解码结构在处理问题时都是整体读取输入的语句,将输入的语句呢编码成为定长的向量。
码字加以表示。
在带有时序的神经网络中,编码的码字会以隐藏状态的形式出现,并被编码器分次的翻译成输出。
在译码的时候,译码器会根据隐藏状态和之前时刻的输出来确定当前时刻输出的自然概率大,并且选择最优的结果。
在谷歌的招牌神经机器翻译系统当中,编码器和译码器当中,不同的长短期记忆层啊是以残差相连接的啊,不管是编码还是译码,都使用的是这个长短期记忆。
网络。
残差连接呢可以提升反向传播当中的梯度流,加快深度网络训练的速度。
编码器网络的最底层和解码器网络的最顶层是通过注意力模块来进行连接。
啊,它的作用在于使译码器网络在译码过程当中关注着输入语句的不同部分。
其中具体的细节呢在这儿就不做介绍。
那你可以参考它原始的论文。
在编解码结构当中呢,编码器和译码器并不非得说具有相同的类型啊,异构的神经网络一样可以用来构造这个编解码的结构。
在微软公司啊于二零一七年自然语言处理时政会议所发表的论文,利用卷积神经网络学习语句的通用表示,当中研究者就提出了一种学习文本。
分布式表示的一个架构。
这种架构呢它是以卷积神经网络作为编码器,将输入语句转化成为连续取值的码字。
译码器呢则是采用长短期记忆网络,相当于编码呢我使用了一个不带时序的这个网络。
那么译码时候呢使用了一个带时序的网络。
之所以选择卷积神经网络作为编版器,作者的解释是什么呢?一是卷积网络可以达到稀疏的效果,降低参数的数目。
二是卷积网络的层次化结构有助于识别语句当中的语言模式,这呢是循环网络所无法做到。
除了文本处理之外,图像处理也可以应用到异构的这个编解码结构。
在韩国研究者的论文用于图像捕捉的文本导向。
注意力模型当中,作者是使用了一个卷积网络对待捕捉的图像进行编码。
用一个循环网络呢对包含捕捉图像的文本编码,两者的输出,用注意力机制处理之后,再对卷积网络的输出进行加权。
译码器呢则利用长短期记忆网络,将码字转换成语句啊,整个的过程呢是相当复杂啊,用到了多个深度网络。
感兴趣的话,你可以自己阅读相关的文献啊来了解细节。
编解码结构的核心呢是生成数据的表示,因而属于表示学习的范畴表示学习,它也叫特征学习。
它的目标呢是让机器自动发现原始数据中和输出相关度较高的这样的隐含特征。
第二呢,能够自动生成新特征的技术,都可以归纳到表示学习的范畴当中。
今天介绍的编解码结构就可以看成是表示学习的一类应用。
本节目的这个论文表示学习综论与新视角是关于表示学习的一篇综述。
如果想深入了解表示学习呢,你可以阅读这篇文献。
今天我和你分享了由深度网络衍生出来的编辑码结构啊以及相关的表述。
学习概念包含着以下四个要点,第一,编解码结构可以重构数据的表示方式,提取出高层次的特征。
第二,自编码器将编码器和解码器集成到同一个深度网络当中,是一种无监督的生成模型。
第三卷、积神经网络和循环神经网络都可以用来构造同构或者异构的编辑码结构。
第四,表示,学习也叫特征。
学习是让机器自动提取数据特征的技术和特征。
学习相对应的概念呢就是特征工程,也就是人工的提取数据特征、人工提取数据特征。
它的好处是能够充分利用垂直领域的鲜案知识,但呢却会在效率上远远逊色于特征学习。
那么,你是如何看待特征、学习与特征工程的利弊与结合的呢?或者说你如何看待机器提取特征和人工提取特征的利弊和结合的呢?欢迎发表你的观点。