打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
UFLDL 笔记 04 自编码算法与稀疏性 Autoencoders and Sparsity

UFLDL 笔记 04 自编码算法与稀疏性 Autoencoders and Sparsity

1 自编码神经网络

所谓自编码神经网络,就是如下图的神经网络


简单来说,输入输出都尽量是同样的输入值,但是其中的隐含层要尽量的少
其中不需要labels也就是无监督学习
其中的意义是:
将很多输入的特征,转化为很少的隐含层,然后这少量的隐含层还能转化为原来的样子,其中得到的隐含层是最重要的,他抓住了输入特征的本质,像这样简单的神经网络,其效果类似与主成分分析法得到的结果。

2 稀疏性

上面说了隐含层节点很少,上图中我们设置的节点为3,可是能不能不用手动设置神经网络的结构,即使隐含层数量很多也可以起到这样的效果呢?
我们的方法就是,通过添加限制,使众多的神经元中只有一部分在同时工作,或者使一个神经元在大多数时候都处于休眠状态。(棒棒哒)
怎么才能达到这个效果呢
以sigmoid函数为例
我们知道一般在被激活时,其输出值应该趋近于1
如果有多个输入未被激活,此时的输出值接近于0

精彩的地方:
先计算样本的输入之后某一个隐含层神经单元的输出a(2)j(激活时此值接近1,未被激活时接近0),所有的样本对应的该值相加得到了和,求平均值


如果这个平均值接近于0,说明,只有很少的样本能让这个神经元工作

完美!
这样的限制就叫做稀疏性限制
如果让ρ^j=ρ,比如ρ=0.05,这时ρ叫做稀疏性参数
问题又来了,如何让ρ^j=ρ
还记得神经网络的损失函数么?
如果当ρ^jρ时损失函数非常大,就可以了。
这里引入了一个可以使ρ^j=ρ的约束:相对熵,如果两个数不一样,或者说相差很大的时候,他会变的非常大,趋向于无穷
他的公式是这样的


s2代表隐含层单元数量
可以不用纠结这是怎么来的,知道它的作用就可以了
这是它的图像

ρ=0.2可以看到,在ρ^j0.2时会KL逐渐变得非常大

好了稀疏性的问题也愉快的解决了
这是的总体的损失函数成了这个样子


注意到上面的ρ的计算也用到了aj也就是需要利用W,b来计算
另外β是稀疏性的惩罚因子,越大,越稀
还有一个问题没有解决噢
如果要用反向传递算法计算,还需要知道现在反向传递的参数
改变之后只需要将δ改变就好
他变成了这个样子

现在就可以利用反向传递算法来计算中间的隐含层的函数了,它是抓住了输入主要特征的,知道它就知道了主要的特征,这样在分类或者其他处理就简单了!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Deep learning:七(基础知识
深度学习建模预测全流程(Python)
基于神经网络的智能系统
当我们在谈深度学习时,到底在谈论什么(二)
完整 | 神经网络的工作原理介绍
[DL学习笔记]从人工神经网络到卷积神经网络
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服