Auto-encoder做的自表达

再来补充点心得:


在auto-encoder中,先定义下形式,输入数据是x,encoder的激活函数式f,decoder的是h。cost function只是单纯的输出和输入的函数的话(不加任何的约束项、正则项)


如果隐藏层的节点数大于或者等于输入层的节点数,此时学到的往往是一个无用的表达,也就是不管你换什么输入数据,表达出来的都一样。想想也能理解,因为一个Y=AX 如果A的行数大于列数,其实找的是Y的一个比较近似的投影解。但是如果此时给X增加点sparse正则项,那么就有意思了。


如果隐藏层的节点数小于输入层,那么同时使用SGD来优化,也是可以的,因为效果等同于增加了L2的正则项。但是具体我还没分析过。


所以我们训练的时候,尽量就让隐藏层节点数小于输入层的。


如果输入数据时连续的话,不要让weight太大,因为太大的话,使用了激活函数,那么数据可能都是在线性区域,也就是出现的值没咋离散,不能用来很好刻画真实的情况。

如果是分类问题的话,就用大的weight这样让激活函数的值,区分性更加明显一点。


如果使用了L2的约束,其实得到的weight的值,本身也就不会很大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值