「ディープラーニングって最近よく聞くけどよくわからない。まずはざっくりわかった気になりたい。」
こんな悩みを解決します。
この記事ではディープラーニングについて紹介していきます。セットで出てくるのが、人工知能や機械学習という言葉ですね。これらの言葉をすっきり理解してきましょう。
ちなみに僕はプログラミング歴12年です。ディープラーニングで盛んになっているPythonをはじめ複数の言語を使い分けています。仕事としてソフトウェア開発をしたりもしていますので、専門家と言えるかと思います。この記事の信頼性が担保できるかと思っています。
さて、それでは見ていきましょう。
ディープラーニングとは
ディープラーニングは機械学習の一つであり、最近の人工知能ブームの火付け役です。今回はディープラーニングを話せるようになるのが目標です。簡単に話していきたいと思います。
ポイントは以下です。
- 機械学習のなかのニューラルネットワークのなかのディープラーニング
- 第3次人工知能ブームとシンギュラリティ
- 人間は何も考えないでOK
今回、参考にしたのは、SBクリエイティブ出版「人工知能解体新書 ゼロからわかる人工知能のしくみと活用」神崎洋治著です。
ディープラーニングとは
ディープラーニング(深層学習)というのは、人間が理解できないような深い学習をおこなうことができ、ニューラルネットワークという仕組みを利用した機械学習です。
機械学習の一つであるニューラルネットワーク方式、そのニューラルネットワーク方式の一つであるディープラーニング、という関係性なのです。
爆発した第3次人工知能ブーム
最近は「人工知能」や「ディープラーニング」「機械学習」「ニューラルネットワーク」といった言葉がどこの本屋でも目にするほど流行っています。実は、この流行りは、第3次人工知能ブームと言われています。第1次は1950~70年代、第2次は1980年代にそれぞれ人工知能ブームが起きたのです。
近年の人工知能ブームでは、年配の方々の熱気がないようにみえます。若年〜中年層の熱気が凄いようにみえるので、対照的です。これは、IoTに対する親しみ度という一面で語られることもあるが、過去のブームを知っているというのも一因と考えられます。というのも過去のブームでは、人工知能が人間を超えるといった期待に応えることもなくブームが過ぎていきました。そのため、年配の方々には(どうせ今回も大したことないんでしょ)といった経験からくる落ち着きがあるのです。
今回のブームはどうでしょうか。確かに、SF小説にあるような人工知能が人間と交流したりするような社会はまだまだ遠いのです。なので、過度な期待はできないでしょう。しかし、第3回人工知能ブームはこれまでのブームとは一味違います。
「シンギュラリティ」という言葉があります。これは、人工知能が人間を超えることを意味します。今回のブームでは、一部でシンギュラリティが起きてしまったのです。
シンギュラリティ:人間を超えたディープラーニング
度々、議論になるのがシンギュラリティです。単語の意味は、技術的特異点であるが、人工知能が人間を超えることを意味します。
2045年問題
人工知能が人間を超えることをシンギュラリティといいます。シンギュラリティは2045年に起こるとされています。一般に2045年問題ともいいます。これは少し先の未来で起こる話で、(人間の仕事が奪われる)といった話が出てくるのも、この2045年問題に向けた話です。
実は、すでにシンギュラリティが起き始めているのはご存知でしょうか。今回の人工知能ブームがこれまでと違うというのは、この点にあります。つまり、一部の領域で、ついに人間を超えてしまったということにあるのです。
クイズのシンギュラリティ
2011年にアメリカのクイズ番組で人工知能が優勝しました。これがIBMが開発したWatsonです。
Watosonは医療現場で活躍しており、がん治療では論文分析により、がん抑制タンパク質を特定したり、治療法の提案を行い実績を残しています。他にも、Watosonは、みずほ銀行のコールセンターでも2015年から導入され、オペレータを支援しているのです。
画像認識のシンギュラリティ
2015年に大きな事件が起こりました。画像認識コンテストで、人工知能が人間の画像認識能力を超えたのです。
人間の誤答率は5%前後ですが、マイクロソフトのResNetが誤答率3.57%に達したのです。
囲碁のシンギュラリティ
2016年にも事件が起こります。Google傘下のディープマインド社が開発したAlphaGoが、韓国人プロ棋士イ・セドルに全5回戦で4勝したのです。
他にも、2019年にGoogleが発表した機械学習方法「BERT」によって文章要約技術が進むなど、いよいよ置き換わってくる可能性があります。
データを突っ込めばいいだけ。人間は何も考えなくてOK
ディープラーニングの利用は非常に簡単です。データセットをプログラムに読み込ませ、学習させれば、すぐに判定プログラムが完成するのです。
ディープラーニングでは、人間では把握できないほど深くの関連性を見出すことができるのです。言い換えると、人間の知恵が邪魔になる場合すらあるといいます。だから、ディープラーニングでは人間は何も考えないほうが良い結果になり得るのです。
具体的には、動物の写真と名前の組合せがわかるデータをたくさん用意します。これを学習すると、動物を判定するためのプログラムが出来上がるということなのです。
ディープラーニングの落とし穴
ディープラーニングも実は落とし穴があります。これらは研究が進み、対策が取られるようになってきているが、まだ完成していない技術であることも知っておく必要はあるでしょう。
過学習(オーバーフィッティング)の問題
データセットを用意してプログラムに解析させ重み付けをする作業を「学習」というが、基本的にはより多くのデータセットで学習させることが望ましいです。
しかし、あまりに多くの学習はかえってディープラーニングの誤答率をあげることが起こり得ます。それは外れ値に引っ張られ過ぎてしまうという理解です。
猫の画像認識をしているときに、データセットにサンタクロースの帽子をかぶった猫の写真があったとします。学習をしすぎると、サンタクロースの帽子につられて、赤い帽子の小動物を猫と判断してしまうような現象です。
解決策も提案されており、徐々に解消されつつあります。ドロップアウトという方法とアーリーストッピングという手法です。
局所最適解(ローカルミニマム)へのトラップ問題
これは最適化問題でよくある話だが、近しい値と比較してより良い値を選ぶように最適化していきます。そのため、本当はもっと最適な値があるのにそれに気づかないという問題が起こり得ます(勾配消失ともいわれる)。いわば、井の中の蛙といった状態になります。
例えば、ディープラーニングではないが、遺伝的アルゴリズムなんていうのは、突然変異を起こしてやる(パラメータを適当に全然違う値にしてみる)なんてことをして、局所最適解に嵌ることを避けています。ディープラーニング同じような方法で局所最適解に嵌らないような取り組みがなされています。
ReLU関数やその派生形などの微分が0にならないような関数を使って、ローカルミニマムにトラップされにくくなりました。
簡単な理解
ざっくり説明するが、ニューラルネットワークという人間の神経系に似せた情報伝達になっています。
このとき、特徴を決める因子の群が結果に対してどれほど影響するかという重みを学習するのです。この重みを決めていくのが深層学習です。
例えば、画像認識で猫を判定するとします。(ひげ、顔の形、目の大きさ、顔の色、大きさ)などといった特徴が、それぞれどれだけ「猫」としての特徴であるか重みをつけていくようなことなのです。
最後に
今流行りのディープラーニングは、一部でシンギュラリティを起こしたこともあり間違いなく色々な分野で利用されるでしょう。もう私達はGoogle検索などで十分にその恩恵を受けています。
実はこの最先端のディープラーニングは、誰でも簡単に使うことができるのです。というのも、データセットを用意して学習させてやればいいのです。
プログラミングを実際に始めるうえで手っ取り早いのは、人に教えてもらうことです。実はプログラミングは、始めさえすればすぐに自分で学べるようになるもの。初期投資として、オンラインプログラミングを始めるのは一つの手だと思います。
参考文献は
また、もっとざっくり知りたいならば、漫画で勉強することもおすすめだ。