目录
摘要:
基于Matlab平台,构建并训练堆叠自编码器对手写图片进行特征提取,然后使用提取到的图像特征信息对手写图像(0-9的手写数字图)进行识别与分类,并测试其分类的准确度。堆叠自编码器(SAE)具有多个隐含层的神经网络可用于处理复杂数据(例如图像)的分类问题。每个层都可以学习不同抽象级别的特征。然而,在实际工作中,训练具有多个隐含层的神经网络可能会很困难。本文使用一种有效训练具有多个层的神经网络的方法是一次训练一个层。为此,您可以为每个所需的隐含层训练一种称为自编码器的特殊类型的网络。此示例说明如何训练具有两个隐含层的神经网络以对图像中的数字进行分类。首先,使用自编码器以无监督方式单独训练各隐含层。然后训练最终 softmax 层,并将这些层连接在一起形成堆叠网络,该网络最后以有监督方式进行训练。
一、自动编码器基本概念(Auto-Encoder,AE)
自编码器(autoencoder)是神经网络的一种,经过训练后能尝试将输入复制到输出。自编 码器内部有一个隐藏层h,可以产生编码(code)表示输入。该网络可以看作由两部分组 成:一个由函数h=f(X)表示的编码器和一个生成重构的解码器r=g(h)。我们不应该将自 编码器设计成输入到输出完全相等。这通常需要向自编码器强加一些约束,使它只能近似 地复制,并只能复制与训练数据相似的输入。自动编码机由三层网络组成,其中输入层神经元数量与输出层神经元数量相等,中间层神 经元数量少于输入层和输出层。
搭建一个自动编码器需要完成下面三样工作:搭建编码器, 搭建解码器,设定一个损失函数,用以衡量由于压缩而损失掉的信息(自编码器是有损的)。编码器和解码器一般都是参数化的方程,并关于损失函数可导,典型情况是使用神经网络。编码器和解码器的参数可以通过最小化损失函数而优化.

自动编码机(Auto-encoder)是一个自监督的算法,并不是一个无监督算法,它不需要对 训练样本进行标记,其标签产生自输入数据。因此自编码器很容易对指定类的输入训练出 一种特定的编码器,而不需要完成任何新工作。自动编码器是数据相关的,只能压缩那些 与训练数据类似的数据。比如,使用人脸训练出来的自动编码器在压缩别的图片,比如树 木时性能很差,因为它学习到的特征是与人脸相关的。~ 自动编码器运算过程:原始input(设为)经过加权(W、b)、映射(Sigmoid)之后得到 y,再对y反向加权映射回来成为z。通过反复迭代训练两组(W、b),目的就是使输出信 号与输入信号尽量相似。训练结束之后自动编码器可以由两部分组成:
1.输入层和中间层,可以用这个网络来

本文介绍了如何在Matlab平台上使用堆叠自编码器(SAE)对手写数字图像进行特征提取和识别。通过逐层训练SAE,每个层学习不同级别的特征,最终结合softmax层进行有监督的分类,实现了99.8%的分类准确度。文章提供了详细的实现步骤和Matlab代码。
最低0.47元/天 解锁文章
8381





