神经网络学习惩罚对手

时间:2015-03-24 15:07:38

标签: neural-network

我有一个简单的竞争神经网络算法,我试图通过惩罚'竞争对手'来增强,即:具有第二大输出的输出神经元。我的代码是这样的:

 % Penalizing rival
        network_output(I) = [];
        [~, I] = max(network_output);
        delta = (1/current_run^3)*(sample'-connections(:,I));
        connections(:,I) = normc(connections(:,I) - delta);

基本上,我从输出中删除了获胜者(索引I处的神经元),然后我找到了新的获胜者(整体第二),并且通过使用标准规则降低导致这种神经元的那些人的力量来更新连接。我还根据current_run ^ 3应用衰减,其中current_run是iteratio numebr。我还将所有权重标准化,然后再将它们重新插入连接矩阵中。

然而,通过比较死机的数量与没有这种改进的网络运行,我发现后者表现更好。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

http://en.m.wikipedia.org/wiki/Competitive_learning 我只是读了那篇文章,并说它 3.胜利者更新每个权重,从给予弱信号的连接移动权重到给予其更强信号的连接。 在那里我没有发现你需要删除赢家。 所以,我不确定你是否需要删除获胜者。也许这就是为什么网络与赢家更好? 有时候在优化过程中从神经网络中删除节点是个好主意,但是每次删除网络之后都需要重新训练。