稀疏自编码器

在这里插入图片描述
在这里插入图片描述
第二张图片会看到一些马赛克
在这里插入图片描述
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张图,每一个隐藏节点提取边缘特征,
稀疏自动编码器每一个神经元提取了边缘特征
在这里插入图片描述

原文贴图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述 后面竟然付费了,万恶的百度文库…