【发布时间】:2019-01-24 12:02:51
【问题描述】:
我搜索了论坛并找到了这个帖子,但它没有涵盖我的问题 Two ways around -inf
在第 3 周的机器学习课程中,我在使用 log(0) 时得到了 -inf,后来它变成了 NaN。 NaN 导致求和公式中没有给出答案,因此J 没有标量(成本函数,它是矩阵数学的结果)。
这是我的功能测试
>> sigmoid([-100;0;100])
ans =
3.7201e-44
5.0000e-01
1.0000e+00
这符合预期。但假设需要ans = 1-sigmoid
>> 1-ans
ans =
1.00000
0.50000
0.00000
Log(0) 给出-Inf
>> log(ans)
ans =
0.00000
-0.69315
-Inf
-Inf 行不会添加到成本函数中,但-Inf 会传递到NaN,我没有得到结果。我在-Inf 上找不到任何资料,但我认为我的 sigmoid 函数有问题。
你能提供任何方向吗?
【问题讨论】:
-
-inf 行可能对成本函数有贡献。从技术上讲,sigmoid (100) 只是略小于 1,但对于浮点表示的精度来说,差异可能太小了。 (1 - ans) 因此是一个非常非常小的正数。因此,log(1 - ans) 是一个非常非常负的数。这肯定会影响成本函数。
标签: octave