機械学習の本を色々と読んでいるのですが、ふと交差エントロピーの数式を見て誤差が-∞になるじゃん、と今更気づいたので、実際に実装上どのようにして回避しているのかを調べました。
交差エントロピーは以下の式で表されます。
$$E=-\sum_{k}t_k\log {y_k}$$
結論から言うと、下記のサイトに答えはありました。どうやら、小さい数値を足しておくことでlog(0)を誤差に足してしまうことを防ぐようです。
つまりは以下のコードを誤差関数として利用するということでした。
def numerical_diff(f, x): h = 1e-4 # 0.0001 return (f(x+h) - f(x-h)) / (2*h)
以上です。理論と実装の狭間を少しずつ埋めていきたい。