稀疏自编码器

稀疏自编码器
稀疏自编码器
第二张图片会看到一些马赛克
稀疏自编码器
1、首先图像二进制数码化:原图树128128的图片。
2、压缩,每4
4的格子华为一个大的单元,则剩下3232的像素图片 1024
3、每一个大的4
4的格子用16维的向量来表示
4、所以剩下16*1024的矩阵
5、一列代表一个大的格子,总共1024列,也就是1024个大的格子
稀疏自编码器
训练bp神经网络:
输入层:16个变量
隐藏层:节点个数一般小于16个,但是节点个数也是自己定义
输出层:也是16个
学习方法:可以使用误差平方和,最小二乘法
压缩体现:就是中间隐藏层
encode稀疏自编码器
隐藏层到输出层就是解压,因为中间就是3个节点,所以会有损失,但是差的也不太多。就是模糊的马赛克现象。decode
中间隐藏层神经元个数怎么确定?
稀疏编码器:自动决定中间隐藏层的节点个数。
稀疏自编码器

稀疏自编码器
加上稀疏惩罚项,使得中间的节点输出值自动是0
稀疏自编码器
稀疏自编码器当中数学:
上角标是第几层的输出,下角标是第几个
W11是1输入和1神经元映射,f是**函数,bp神经网络要求**函数都一样

稀疏自编码器

参照论文讲解:

稀疏自编码器
首先先归一化,让输入都变成0-1之间的数值,然后因为**函数,隐藏层的每一层的输出也是0-1之间的数值。
稀疏自编码器
学习策略:使用误差平方和,最小二乘法
创新:加上一个正则乘法项:网络中所有权重求和,确保求出来的权重并不会过于发散,限制权重,收敛更快
稀疏自编码器

希望能体现稀疏性:期望中间隐藏层的输出大多能是0,但是由于**函数,大部分是0-1
稀疏自编码器

先定义一个这个节点的所有输出均值是ρ hat j , 定义一个ρ,如果这个ρ很小,那么说明均值小,那么这些个值会在0的部分徘徊

设计一个惩罚项下面那个很长的:S2是隐藏层神经元的个数
当ρ hat 很接近定义的ρ的时候,log项都是0,

稀疏自编码器
KL距离主要比较两个分布的差异情况,量化。又名:相对熵
KL就是两个伯努利分布的散度,其中一个伯努利分布的均值是ρ,另一个均值是ρ hat。
然后右图:假设ρ是0.2,横坐标就是ρ hat,纵坐标就是KL散度。当ρ hat是0.2的时候,KL散度就是0。然后离得越远三度越大,体现稀疏性

改进:在传统的目标函数基础之上+KL散度
β是超参数
稀疏自动编码器完成。
稀疏自编码器
以下就是计算了:
稀疏自编码器
构造一个输入端X,X可以**第i个神经元,看看每一个神经元都在做什么事情,其他节点都不被**:
X的方程如下,其中αi 是被**的神经元
xj:说的是每一个小x应该怎么取值
稀疏自编码器
看一看每一个神经元存储的权值在做什么事情:
100张图,每一个隐藏节点提取边缘特征,
稀疏自动编码器每一个神经元提取了边缘特征
稀疏自编码器

原文贴图:
稀疏自编码器
稀疏自编码器
稀疏自编码器
稀疏自编码器
稀疏自编码器
稀疏自编码器
稀疏自编码器
稀疏自编码器
稀疏自编码器
后面竟然付费了,万恶的百度文库…