前馈神经网络的正则化

时间:2013-10-07 09:23:42

标签: matlab neural-network

我刚刚在Coursera参加过Andrew Ng的一些在线开放式课程讲座。在关于神经网络的讲座结束时,他解释了规则化,但我恐怕错过了一些东西。通过规则化,成本函数的值计算如下:

J(theta) = -1/m * jValMain + lambda/(2*m)*JValReg

jValMain是超过y的总和以及NN的输出。第二个组件jValReg是应用reguralization,看起来像这样:

jValReg = lambda/(2*m)*sum( sum( sum( Theta(j)(i)(k)^2 ) ) )

Theta是一组权重,m是数据库中所有元素/案例的数量,然后是lambda。什么是lambda?它是标量,矢量还是矩阵?我们如何通过lambda应用法律化? lambda是从第l层调节特定的第j和第i重量还是用一个数来调节所有重量。它有点让我感到困惑。如果有人熟悉这个概念,我将不胜感激任何帮助。 干杯!

1 个答案:

答案 0 :(得分:1)

lambda是您估算中的正则化参数。可以将其视为控制估算偏差的一种手段。它是一个标量,通常用于防止数据过度拟合。以下是从课程作业的注释中选取的几行。

  

... lambda的值可以显着影响训练和交叉验证集上正则化多项式回归的结果。特别是,没有正则化的模型(λ= 0)很好地适合训练集,但没有概括。相反,具有过多正则化(λ= 100)的模型不适合训练集和测试集。一个很好的lambda选择(例如,lambda = 1)可以很好地拟合数据。