我正在尝试计算神经网络的costFunction作为我的编程任务的一部分,使用这个函数。

其中K是标签的数目。hTheta和y都是大小矩阵( 5000 , 10 ),因为我有5000个训练示例和10个标签。我使用八度和,我得到了我的成本函数NaN。(这也是预期的,因为hTheta和Y的所有值都是0或1s,因此log(0)*0不会被定义)。
但是接下来我该如何计算成本呢?
注- hTheta是由神经网络上的前馈algo生成的,y是输入标签.
发布于 2016-06-10 12:29:37
要可靠地防止这种情况发生,一般的方法是要么剪短您的值,要么添加一个小值epsilon e=10e-6 (或类似的东西),这样您就可以始终在x+e != 0中使用log(x+e)。根据您的具体操作,您可能还需要将x剪辑为介于e和1之间。如果将logs组合成一个log中的一个分数,您将再次在分母中添加e,以避免任何除法。
防止任何行为总比试图避免它好。例如,有了RNN,您就可以有爆炸性的渐变--这种情况通常不在您的控制范围内,涉及到您的超参数的选择--导致x=infinity,如果不捕获,它就会生成NAN。
https://stackoverflow.com/questions/37740897
复制相似问题