|
楼主 |
发表于 2015-2-26 06:40:00
|
显示全部楼层
(回复17楼)
Pallashadow: 回复 click4i : 既然分类器都是用RBM或者SAE预训练的,能在最后用BP方法tune的过程中,能不能在cost function中仍然保留一些SAE的特性呢?(通过损失分类精度保留一部分deep autoencoder的特性)
Pallashadow: 回复 click4i : 现在如果只在多层stacked SAE聚类后,只在最后一层用SVM分类,不用BP算法tune前面的网络,分类准确率大致是多少?
------------------------------------------------------------------------------------------------
我的直觉是没有必要用BP算法去tune前面的网络,这样就可以简化OL的问题。下面是一些想法,效果如何有待证实。
假设我们有一个主流的DCNN,含输入层Lin,输出层Lout,以及n个代表特征的隐藏层H1-Hn。
H1-Hn是以标准的DAE方式提出各种特征。
一般Lout和Hn是完全连接且根据一个cost function学分类,也往下层反传以便微调特征。
根据这个主流DCNN我们可以做以下改动:
1) 特征不以BP反传微调。理由是相信DAE已经做好了工作。
2) Lout 不仅接 Hn,也同时往下多接几层,如Hn-1,Hn-2,等。理由是这样就可以把本来反传微调特征的工作移到这些新的连接上头,所以就可以不让学习分类的过程影响到DAE算出来的特征了。感觉即使不牵涉OL这也才是正解,而以前BP反传微调特征的做法其实是个hack
3)新样本进来时可以引用现有的特征,所以特征算是global的。
4)一个特征一旦证实有用就可以加以固化,不再受新进样本的影响。这样可以避免catastrophic forgetting. 一个特征是否有用可以根据这特征对于正确分类(或其他的cost function)是否有相当的累计贡献而定。
5)新进样本如果基于现有特征集无法达到满意结果时就会触发成长新的独立隐藏层,以便为这些新样本做DAE训练以提出新的特征。这方面或许跟论文P2有些类似。
6)上面第5步可能会产生重复的特征,必须消除。重复的特征可以用synchrony (同时性)检出。就是说如果两个特征都是经常同时被样本激活且有某种程度的相似的话则可判定为重复,然后较新的那个特征会被删除。
|
|