PRML 読書会 #6 がありました。皆さんお疲れ様でした。 読書会の内容については、別途。 id:tsubosaka さんに「(ニューラルネットワークの実装で) XOR の学習できました?」と聞かれて「出来るように作ったはずだけど、まだ試してない〜」と答えたので、試した。 XOR は線形分離できないので、パーセプトロン等では単純には解けないが、ニューラルネットワークなら大丈夫! というのがメリットの一つなので、それを検証してみる。 正しく実装できていれば、きっと学習できるはず……! 入力2個、隠れユニット4個(tanh)、出力1個(シグモイド)のネットワークを構築して、XOR を学習させるスクリプト。 ただし誤差関数は交差エントロピーではなく二乗和誤差。 require "neural.rb" # training data (XOR) D = [ [[0, 0], [0]], [[1,