現在地

第5回 ニューラルネットの調整と強化学習

本コラムも5回目となりました。第4回からちょっと時間が空いてしまいましたが、これまでの解説はいかがでしたでしょうか?もし、何か不明なところがあれば、遠慮なく、当方までご連絡ください。さて、今回は、もう少しだけ深く、ニューラルネットによる深層学習について考えてみたいと思います。ここまでくれば、数式なしの入門編はOKです。

9. ニューラルネットの調整

実際にニューラルネットを組み上げて深層学習をさせようと思うと、例えばニューロンは何個、シナプスは何本用意したらよいのでしょうか?

この答えは、さまざまな人工知能を活用したい場面ごとに、現状ではやってみないと分からないということになります。学習させてみて、推論の答えを確認してみて、こんな場合は、これくらいにするとちょうど良い、といった経験とカンで調整をしているのです。用意した学習データとか、推論したい内容など、様々な場面に対し、試行錯誤を繰り返して、ちょうどよい状態にニューラルネットワークのパラメータを合わせ込む調整作業が必要になります。最近では、この調整作業を深層学習させて、推論を行い、自動的にニューロンやシナプスの数を設定することも考えられています。

また、学習の ‘させ過ぎ(過学習/Over fitting)’ ということも考えなくてはいけません。これはあまりにも学習をさせ過ぎてしまい、言ってみれば「融通の利かない人工知能」になってしまう状態を表しています。

一般的に学習に使うデータは、ある程度のばらつきを持っています。イメージで説明すると、例えば図のように本来の関係が点線で表されるような2つの事象で、学習のためのデータ(図中の青い点)が何個か得られたとします。本当の関係を示す点線からは、少しばらついています。これを「適度に学習する」とすべての青い点のだいたい真ん中を通るような曲線が得られ、本当の関係を表すものに近い曲線が学習できたことになります。これはOK。ところが「学習をさせ過ぎる」と青い点を必ず全部通るようにトコトン学習してしまい、緑のような曲線となり、黒の曲線とは似ても似つかない関係を推論してしまうことになります。これが、過学習状態です。

学生が試験勉強で出題範囲にヤマを張って、その部分だけは必ず正解できるように一生懸命勉強をすると、違う範囲からの出題には全く対処できないという状態に似ていますね。

この過学習状態を作らないためには3つの方法があります。

(1)とにかく大量のデータを用意する
(2)ニューロンやシナプスの数を減らす
(3)データのばらつきを抑え込む

(1)は、理解しやすいと思いますが、データのばらつき具合が良く分かるぐらいの大量のデータを取って本当の関係を見出すことになります。(2)は、学習モデルを粗いモデルとすることで、強度の合わせ込みに陥らないようにします。ニューロンを取り除いたり、シナプスを切ったりしてしまうことからドロップアウト手法と呼ばれています。(3)は学習データ全体のばらつきを法則性(図では直線)に近づけるように学習データを修正してしまい、極端なばらつきが影響を与えないようにしてしまう方法です。ドロップアウト手法では、どのニューロンを取り除くのか?とか、極端なばらつきが影響を与えない修正には、どのような法則性を用いるのかなど、ここでも実は試行錯誤をしながら、ニューラルネットを合わせこむという調整作業が必要になるのです。

ニューラルネットは現時点では調整が必要な仕組みです。やってみてうまくいくか確認して、修正して、またやってみて。トライ&エラーの繰り返しで調整を進めます。よく人工知能の活用は「まずはPoC(Proof of Concept:実証作業)から」と言われるのです。PoCを繰り返し、実績を積み上げて、経験やカンを磨くことが重要なのです。

さあ、ここまでのお話で「人工知能AI」の概要をイメージとして掴むことができたでしょうか?また、活用に向けては一筋縄ではいかず、経験とカンに基づいた調整が必要なことが分かりましたでしょうか?人工知能は、特定の分野において高い能力を持っています。これを最大限活かすために現時点ではさまざまな場面に「AI活用」して、社会全体として実績を積むことが必要です。できれば、その実績を社会全体で共有できるような仕組みも必要かもしれません。このコラムを読んでくださった読者の皆さんをはじめ、社会全体で、この人工知能を社会基盤インフラとしてAIを導入し、育てていければと思います。

では最後に、さらに人工知能を勉強したい方に向けて、「強化学習」について話をしたいと思います。

10.「教師あり学習」「教師なし学習」と「強化学習」

これまで、説明してきた学習方法を振り返ってみると、答えのわかっているデータをたくさん読み込ませてニューロンの最適な重みづけを算出するという学習方法でした。「この写真は猫、これも猫」と言い続けてニューラルネットワークに見せていましたね。言ってみれば、先生からいつも答えを教えてもらっていたことになります。これが「教師あり学習」になります。では、「教師なし学習」とは?

「教師なし学習」とは、学習データそれ自体から何かを導き出すことを表しています。学習データ全体のばらつき分布具合から、あるかたまりに分けられたり、ある傾向が見えたりといった、学習データ自身から学び取る学習です。

この「教師あり学習」「教師なし学習」は沢山のデータからその特徴を読み解く「理解する」行為とも言えますが、これに対し「強化学習」は、「理解」だけではなく「本当か?」「合っている?」と評価した上で、さらに「理解」の度合いを深める学習のことを言い、だんだんと学習する「試行錯誤の学習」とも言えます。

強化学習の説明によく使われる例としては、「ブロック崩し」や「テトリス」などのゲームがあります。もちろん「将棋」や「囲碁」も使われます。あるいは「自転車に乗れるようになる過程」なども強化学習の良く用いられる例です。「AIの活用」ということでは、より実践的な学習方法といえます。「囲碁」がひとつの例と言いましたが、人間の棋士に打ち勝って有名になったAlpha GOでは「深層強化学習」が使われています。

11. おわりに

いかがでしたでしょうか?人工知能について数式などを用いることなく、初心者の方に向けて分かり易く、またエキスパートの方には今一度の頭の整理になるように書き進めてみました。
人工知能と言う言葉は、広く一般の方が使われるようになってきましたが、その意味は人それぞれで、色々な解釈で使われているように思います。このコラムでお話した技術の基本的なところを押えていれば、「ああ、あれはこういう意味で人工知能と言っているのだ」と理解できることでしょう。
読者の皆さんは、よろしければ、さらに周りの人に、「人工知能ってこういうことだよ」と伝えて下さい。社会全体が共通の意味を理解した上で、人工知能をうまく使っていくことができれば、素晴らしい人工知能との共存社会が作れると思います。

ここまで興味を持ってコラムを読んでいただいた皆さんに感謝します。もし、続きを書く機会があれば、また読んでいただければ幸いです。

Writer Profile

ソフトウェアソリューション事業本部
事業推進部 営業担当
川村 直毅