自编码器组成:
1、正向卷积的编码器(Encoder)
2、反向卷积的解码器(Decoder)
自编码器流程:
流程一:Encoder是一个正向卷积的神经网络,通过卷积层,池化层,全连接层后,将输入数据转换成softmax形式的输出
流程二:Decoder是一个反向卷积的神经网络,通过反全连接层,反池化层,反卷积层后,将编码器输入的softmax形式的矩阵转换成与输入数据维度相同的仿制品
流程三:仿制品进入Encoder后,同样转换成softmax形式的输出
自编码器的训练:
自编码器由三个损失函数进行训练:
loss:流程一中,输入数据进入Encoder后,输出的softmax与标签的交叉熵损失函数。
de_loss:流程三中,仿制品进入Encoder后,输出的softmax与标签的交叉熵损失函数。
MES:流程二中,输入数据(矩阵)与Decoder生成的仿制品(矩阵)的均方误差。
自编码器的训练最终完成了如下任务:Encoder的识别效果足够好且Decoder生成的仿制品与真实输入数据的区别足够小
自编码器的使用:
完成训练后,新的输入数据进入自编码器时,Encoder的softmax输出即可作为识别结果
自编码器的原理:
简述下自己理解的自编码器的原理。
Encoder是一个常规的正向CNN神经网络,其类似于一个特征提取器,从输入数据中自行提取出了特征并用于分类。
但由于是神经网络,我们无法知道它具体提取了哪些特征,这些特征是否能正确表示输入数据。
而Decoder存在的作用就是对Encoder的输出结果进行反向操作,观察是否能通过Encoder输出的结果,重新得到当初的输入数据。即Encoder所提取的特征能否正确表示输入数据。
MES足够小,意味着确实能通过Encoder提取的特征反推得到输入数据,即Encoder所提取的特征确实能正确表示输入数据。