其中K是标签的数量。hTheta和y都是大小为(5000,10)的矩阵,因为我有5000个训练样本和10个标签。我使用的是Octave,并且我的成本函数计算结果为NaN。(这也是预期的,因为hTheta和Y的所有值都是0或1,log(0)*0是未定义的)。
那么,我应该如何计算成本呢?
注意 – hTheta是由神经网络的前馈算法生成的,y是输入标签。
回答:
这里Yi可以是1或0,但hi不能是0或1。这是因为如果你使用的是Sigmoid逻辑函数,那么得到0(或1)需要Sigmoid函数的参数为-无穷大(或+无穷大),这是不可能的。一个可能的原因是你选择的学习率可能过高。尝试降低学习率。当我遇到相同问题时,这样做对我有帮助。