機械学習の考え方と感想

7月 16, 2020

以下の記事は、すべて個人的な考えですので必ずしも正しいというわけではありません。しかし、一応仕事として機械学習をやったことのある人間の意見として書かせていただきます。

アンサンブル予測とは

現時点でアンサンブル予測という言葉は一般的にはありません。私が勝手に考えた言葉であり、自分が考えた機械学習のシステムで利用しています。一般的に「アンサンブル学習」という言葉はあります。しかし今後、「アンサンブル予測」という言葉も出てくると思います。ちなみに、2020年7月の時点で「アンサンブル予測」と検索しても出てきません。出てくるのは気象に関してアンサンブル予報システムが損残するという記事のみです。

自分が思うに、今後「アンサンブル予測」というやり方が、機械学習の世界で出てくるのではないかと思います。その理由としては、別々の計算式や方法から計算された予測を複数行うことで、確率を合計して総合的な確率を出すのは、処理的に難しくないためだからです。
天気予報の世界ではアンサンブル予測という手法があるようで、具体的な内容までは見てませんが、考えるに気象の世界では複数の予測方法が存在していて、それらの確率を合計して、結果を予測した方が正解に近づくということだと思います。また、一つの計算方法では異常値が出た場合を排除できないので、複数の予測を使った方が安心できるというメリットもあります。

具体的にアンサンブル予測ってどうやればいいの?

確率を合計するだけです。 省略します^^

機械学習と深層学習の違い

深層学習とは、中間層のあるニューラルネットワークを用いた機械学習です。しかし、個人的には、機械学習という言葉を多用しています。理由は、Kerasとか使っていると深層学習というイメージが実感できないためです。kerasの中でニューラルネットワークが勝手に展開されて学習データ(.h5)が作成されるので、体感として機械学習というイメージなのです。だから自分は機械学習という言葉を使っています。(AIなんて言葉はもっと使いません^^)

学習モデル(学習データ)は育てるもの

機械学習の教師データとして、一つのクラスあたり、どのくらいの枚数の画像が必要なのでしょうか?これに関して、今の自分の体感としては1クラス最低100枚以上という気がしています。ただ、学習済みデータは「育てて行く」というイメージが自分にはあります。具体的に言うと、
①教師画像を使って機械学習させる

②実際の環境でテストする

③間違えた画像を教師画像に追加する

①に戻る
この①~③の過程を繰り返し繰り返しやっていき、正解率が満足いくまで繰り返すというのが今自分がやっているやり方です。そのため、「学習データは育てるもの」というように思ったので記事にしました。これは、悪い画像を教師画像に追加すると精度が落ちるということもあるということも意味していて、悪い教師を使うと悪いものが出来上がってしまいます。例えば、kerasの水増し処理で画像を拡大やスライドさせたりすることができますが、それを任意の画像に見えるかどうかも分からないのに、水増しデータを意味を考えずに利用して学習するというのが、自分には出鱈目だと思うので、そのような出鱈目な画像を教師として利用すべきではないというように感じるからです。あくまで一個人の考えですが。

教師画像は何枚必要なのか?

例えば、「教師画像は何枚必要なのか?」と聞かれた場合、私は「十分な正解率になるまで教師画像を順次増やしていくことが必要」だと思います。そのため、webからスクレイピングして1000枚とか、1万枚とかあらかじめ画像を取得して、機械学習を行うというやり方が個人的にちょっと違和感があります。
予測を間違えた画像を教師画像に追加して学習させることを繰り返せば、時間はかかりますが、確実に正解率が上がっていきますので、途中のエビデンスや検証中の記録も残りますし、個人的には「学習データを育てる」ように作成する派です。