首页 > 编程知识 正文

24位编码器,编码器是将什么转换为什么

时间:2023-05-03 20:53:22 阅读:10616 作者:2747

1.初识Auto Encoder

1986年Rumelhart提出了自动编码器的概念,将其用于高维复杂的数据处理,促进了神经网络的发展。 自编码神经网络是一种无监督学习算法,它使用反向传递算法,使目标值等于输入值。 例如y(I )=x (I ) )。 下图为自编码神经网络的示例。

自动编码器是一种神经网络,可以认为该网络由两部分组成。 一个编码器函数h=f(x )和生成一个重构的解码器r=g (h ) )。 传统上,自动编码器为降维或特征学习

自编码神经网络试图学习的一个函数是:

也就是说,它试图接近恒等函数,使输出x(2)接近输入x )1)。 恒等函数看起来没有什么学习意义,但是如果对自编码神经网络施加一些限制,例如限制隐藏神经元的数量,就可以从输入数据中找到有趣的结构。

例如,如果给定自编码神经网络的输入x是1010图像(总共100个像素)的像素灰度值,那么n=100,并且在隐藏层L2中有50个隐藏神经元。

请注意,输出也是100维。 因为只有50个隐藏神经元,我们让自编码神经网络学习输入数据的压缩表示。 也就是说,必须从50维的隐藏神经元激活度矢量a(2)重构100维的像素灰度值输入x。

一些需要注意的问题:

如果网络的输入数据是完全随机的,例如,每个输入是与其它特征完全无关的独立的同态分布高斯随机变量,则该压缩表示学习起来非常困难。 然而,如果输入数据中隐藏特定结构,例如,如果一个输入特征点彼此相关,则该算法可发现输入数据中的这些相关性。 其实,这个简单的自编码神经网络通常可以学习与主元分析(PCA )的结果非常类似的输入数据的低维表示。

2.Deep Auto Encoder(DAE)

2006年,Hinton改进了原型自动编码器的结构,产生了DAE。 首先采用无监督分层贪婪训练算法完成隐式分层的预训练,然后采用BP算法对整个神经网络进行系统的参数优化调整,明显降低神经网络的性能指数,BP算法在局部

简而言之,DAE对原始自动编码器有利于增加深度,提高学习能力,有利于预训练。 如图2所示,在5层DAE中,隐藏层节点数从高到低,或者从低到高,最终取得L(3)的向量即可。

3.利用keras实现DAE

---编码: utf-8---- importpandasaspdimportnumpyasnpfromkeras.layersimportdense,Activation, inputfromkeras.input model import the ano #表示自己的数据go=PD.read_CSV('./clear_data/gene_ontology.CSV ' ) go_id=go ) ) gene_ )。axis=1) inputdims=go.values.shape[1] 编码器dims=100 auto encoder=sequential (auto encoder.add ) dense (input dims ) ) auto encoder.add activation=' relu ' ) output_dim=inputDims,activation=' ) loss='binary_crossentropy ' ) autoencoder.fit(go.values,go.values )

get _ feature=the ano.function ([ auto encoder.layers [0].input ],AutoEncoder.layers[0].output,allow _ ilon )

)1) Rumelhart DE,Hinton GE,Williams rj.learningrepresentationsbyback-propagating errors [ j ].nature,1986,323:

)2) Hinton GE,Osinder S,teh yw.afastlearningalgorithmfordeepbeliefnets [ j ].neural computation,2006,18 (7) 3360 )

)3) 3358 deep learning.Stanford.edu/wiki/index.PHP/auto encoders _ and _ sparsi ty

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。