自编码器26页综述论文:概念、图解和应用( 二 )


在几乎所有的实际应用中 , 中间层之后的图层是中间层之前图层的镜像版本 。 包括中间层在内及之前的所有层构成了所谓的编码器 。 如果FFA训练是成功的 , 结果将是输入的一个近似值 , 换句话说是 。 需要注意的是 , 解码器只需要使用比最初的输入观测值(n)少得多的特征数(q)就可以重构输入 。 中间层的输出也称为输入观测值x_i的学习表示 。
输出层的激活函数
在基于神经网络的自编码器中 , 输出层的激活函数起着特别重要的作用 。 最常用的函数是ReLU和Sigmoid 。
ReLU激活函数可以假设范围[0 , ∞]内的所有值 。 作为余数 , 它的公式是ReLU(x)=max(0 , x) 。 当输入的观测值x_i假设范围很广的正值时 , ReLU是个很好的选择 。 如果输入x_i可以假设负值 , 那么ReLU当然是一个糟糕的选择 , 而且恒等函数是一个更好的选择 。
Sigmoid函数σ可以假定所有值的范围在]0,1[ 。 作为余数 , 它的公式是
自编码器26页综述论文:概念、图解和应用
文章图片
只有当输入的观测值x_i都在]0,1[范围内 , 或者将它们归一化到这个范围内 , 才能使用这个激活函数 。 在这种情况下 , 对于输出层的激活函数来说 , Sigmoid函数是一个不错的选择 。
损失函数
与任何神经网络模型一样 , 这里需要一个损失函数来最小化 。 这个损失函数应该测量输入x_i和输出x?i之间的差异有多大:
自编码器26页综述论文:概念、图解和应用】其中 , FFA、g和f是由全连接层获得的函数 。 自编码器广泛使用两种损失函数:均方差和二进制交叉熵 。 它们只有在满足特定需求时才能使用 。
由于自编码器试图解决回归问题 , 最常用的损失函数是均方差(MSE):
自编码器26页综述论文:概念、图解和应用
文章图片
如果FFA输出层的激活函数是一个sigmoid函数 , 即将神经元输出限制在0到1之间 , 并且输入特征被标准化为0到1之间 , 我们以使用LCE表示的二元交叉熵作为损失函数 。
自编码器26页综述论文:概念、图解和应用
文章图片
重构误差
重构误差(RE)是一个度量 , 它指示了自编码器能够重建输入观测值x_i的好坏 。 最典型的RE应用是MSE
自编码器26页综述论文:概念、图解和应用
文章图片
这很容易计算出来 。 在使用自编码器进行异常检测时 , 常常用到RE 。 对于重建误差有一个简单的直观解释 。 当RE值较大时 , 自编码器不能很好地重构输入信号 , 当RE值较小时 , 重构是成功的 。 下图3展示了一个自编码器试图重建图像时出现的大大小小的重建错误的示例 。
自编码器26页综述论文:概念、图解和应用
文章图片
在最后一部分 , 作者还介绍了自编码器的几种应用 , 如降维、分类、去噪和异常检测 , 以及应用过程涉及的其他理论方法 。 更多细节详见原论文 。