cocolog:90592632
Python で機械学習をする練習をしている。その最初の「成果」として「競争的な学習」の実験をして、その結果をブログ記事にしてみた。 (JRF 3346)
JRF 2019年1月26日 (土)
その記事の最初にも書いたが、「競争的な学習」…その英語の "Competitive Learning" という言葉は機械学習で別の概念にすでに用いられているため、そう名乗るのはあまりよくないのだが、他に良い言い様を思いつかないので、便宜的に・個人的にそう呼んでいる。
JRF2019/1/261024
『scikit-learnとTensorFlowによる実践機械学習』を読んだとき([cocolog:90343301])、おもちゃの自動車の自動運転シミュレーションがしたいと述べたが、それを考えているうちに思い浮かんだのが、今回のアイデアになる。
JRF2019/1/266737
ただし、おもちゃの自動車に関する考察は別の方向に向かっていて、今回のアイデアを活かせる感じではなくなっているのだけれども。
JRF2019/1/264365
今回、公開した分の他に、競争をしない普通の学習や「負の学習」に関する実験もした。普通の学習はうまくいって、今回の分に活かされているが、「負の学習」はうまくいっていない。「負の学習」はどうも理屈から間違えていると考えるほうが良さそうだ。
JRF2019/1/263758
予想として普通の学習に対する「負の学習」はうまくいかないだろう…と考えていたが、競争的学習では「負の学習」はある程度うまくいくと思っていた。でもその予想ははずれた。
JRF2019/1/262416
競争的学習は、初期値をいじることでうまくいったが、これはほとんど偶然の発見による。上の記事に書いた backward を忘れるというバグを見つける過程で、初期値の変更を試しており、バグがなおったとき、それがたまたまそのとき設定していた batch_size や hidden_size と合わさって偶然、うまくいく例が生じたということがあった。
JRF2019/1/268548
今回の競争的学習がうまくいっていない間は、少ない batch_size の実例から学ぶという方針がうまくいかないのではないか…という予想に傾いていたが、工夫さえすれば、そういう方針でもなんとかなりそうだというのが見えてきたように思う。幸運だった。
JRF2019/1/264767
次は、おもちゃの自動車の自動運転シミュレーションが目標だが、その前に読みたい本がいろいろたまっているので、そちらを先にして、シミュレーションはかなり先の話になりそう。
JRF2019/1/264030
……。
追記。
Google Search のサジェスチョンにより「Competitive Learning」を「競合学習」と訳すことを知ったので、その旨をカッコ書きでブログ記事に書き足しておいた。
とはいえ、「競争的学習」そのものは日本語で使われていないものの、英語にすれば「Competitive Learning」なわけで、ネーミングに問題があることには変わりはない。
JRF2019/2/28738
記事は↓。
《機械学習の練習のため競争的な学習の実験をしてみた》
http://jrf.cocolog-nifty.com/software/2019/01/post.html
JRF2019/1/260360