近年は空前絶後のAI(エーアイ)ブームということでAI(人工知能)に関するニュースが連日飛び交っていますよね。AIブームの火付け役となったのはDeep Learning(ディープラーニング)と呼ばれる技術で、聞いたことがある方も多いかもしれません。
しかしこうした専門用語は日常的にメディアで使われますが、明確な意味は知らない方が普通でしょう。だって日常でこうした単語の意味は知らなくて普通困りませんし、 「ディープラーニング(Deep Learning)」なんて言葉を使うのは、よほどのAI(人工知能)好きか、仕事で関わりのある人か、もしくは流行語を使いたがる人ぐらいですよね。
ただ、現在世界で最も影響力のあるGAFA(Google、Apple、Facebook、Amazon)をはじめとした世界の企業たちが「これからはAIを制する者が世界を制す」と称して莫大な資金をAI(人工知能)の研究開発に投資していますし、今後もその傾向はますます強まっていくことは間違いありません。
なのでAI(人工知能)に関して知識を深めておけば「将来こんな世界がくるよな」とか「こういうことが人間に求められてくるよな」とかおぼろげながら予想を立てられますし、何より技術の進化を一層楽しくワクワクドキドキ感じられます。
そこで今回はAIブームの火付け役張本人であるディープラーニングとは?何それおいしいの?っていう方に向けて基本情報をお伝えしていきます。
※ディープラーニングは深層学習とも呼ばれます
ディープラーニング(Deep Learning)って何なのよ?
ディープラーニング(Deep Learning)とは人間の脳の仕組みを真似てコンピュータのプログラム上で再現した技術です!
もう少し具体的に言うと人間の脳を構成する細胞を神経細胞と呼びますが、人間の脳内でこの神経細胞同士がつながってネットワークをつくっている様子を真似てコンピュータのプログラム上で再現した技術がディープラーニング(Deep Learning)です。
こいつが近年目覚ましく活躍しとるというわけなんですよ!!
AI(人工知能) > 機械学習 > ディープラーニング
- 「AI(人工知能)」
- 「機械学習(マシンラーニング)」
- 「ディープラーニング(深層学習)」
という3つ言葉の関係を整理しておくと今後の理解がスムーズになるので、まずこれらの言葉の関係をみておきましょう。(知ってる方はどんどん読み飛ばしちゃってください)
これらの用語を聞くとなんだか難しそうな印象を抱きがちですが、何も難しいことはありません。次の図のようにAI(人工知能)の一分野に機械学習があり、機械学習の一分野にディープラーニング(Deep Learning)があるという位置付けです。
AI(人工知能)とは
次はAI(人工知能)ってなんやねん、っていう疑問に対してお答えしていきましょう。
AI(人工知能)とは、人の知的な活動(話す、判断する、認識するなど)を自動化する技術や自動化したもの、その研究分野などを含めた通称を指す言葉です。
少し難しい表現をしてしまいましたが、正直なところAI(人工知能)と言う言葉には研究者の間でも統一された定義がありません。単なる概念を指す言葉ですので「知性や知能を感じられるものや技術、研究分野」を指す言葉なんだなーぐらいのイメージで良いでしょう。
<参考1:専門家によって異なるAI(人工知能)の定義>
専門家A:「人工的につくられた人間のような知能、ないしはそれをつくる技術」
専門家B:「人工的につくられた、知能を持つ実体。あるいはそれをつくろうとすることによって知能自体を研究する分野である」
なんで定義できないんだよっていう疑問に答えると、それは「知能」という言葉を明確に定義できないからで何を持って知能があると言えるのか、そうした定義は人それぞれことなるからです。例えば人の存在を感知したら「こんにちは」と発言するロボットがあるとして、そこに知性を感じる人もいれば、「いやいや単に「おはようございます」って言うように設定しただけでしょ。知性でも何でもないよ」と言う人もいます。そのため、AI(人工知能)という言葉は明確に定義できないようです。
機械学習(マシンラーニング)とは
ざっくり説明するとAI(人工知能)は次のような技術で構成されています。
詳しいことは省きますが、AI(人工知能)を実現する技術には色々あるんだな〜ということです。ちなみに、現在世間で騒がれているAI(人工知能)は機械学習のことを指している場合がほとんどです。
(機械学習についてもっと知りたい方はこちら↓)
ディープラーニング(Deep Learning)何がすごいねん!?
さて、機械学習の中の一分野であるディープラーニング(Deep Learning)に話を戻しましょう。現在なぜこんなにディープラーニング(Deep Learning)が世間で騒がれているのかというと、理由を一言で言えば、、
ディープラーニング(Deep Learning)を使えば今までの機械学習でできなかったことができるとわかってきたから!
ということなんです。ディープラーニング(Deep Learning)が注目されるに至った背景には次の衝撃的な事件がありました。
事件ファイル1:Googleの猫
※この事件の名前は僕が勝手につけました
「Googleの猫事件」って何?って思われることでしょうが、これは
「人間が教えることなく、AI(人工知能)が自発的に猫を認識しちゃったよやばくない!?(ヤバイよ!)」
という出来事のことで、これは世界中に衝撃を与えたんです。
これの何がすごいかってわかりやすくめちゃ簡単にいうと、今まではAI(人工知能)が猫を認識できるようにするためにAI(人工知能)に対して人間が手取り足取り「猫とはどういうものか」について細かく教える必要があったんですよね。こんな風に、、、
「猫ってね、4本足なんだよ」
「猫ってね、耳が2つあるんだよ」
・
・
「猫ってね、尻尾が一本あるんだよ」
・
・
ああもうっ!!キリがないっ!!_:(´ཀ`」 ∠):って流石になりますよね。
けれど実際の猫の姿というのは、角度や光、体勢、表情などでいくらでも変わります。だからどれだけ細かく細かくルールを指示しても当てはまらない場合がでてきてしまう、つまりルールでは伝えられない情報が世の中にはたくさんあるということです。
ディープラーニングではない機械学習では、こうした問題を解決することができませんでした。けれどもディープラーニング(Deep Learning)という手法を使ってみたら、なんとこうした問題が解決され今まで人間にしかできなかったことがコンピュータにできるようになったんですね!!ルールを細かく指示せずとも猫を認識できるAI(人工知能)をGoogleが開発しちゃったんです。
これはもうそりゃあ大変な衝撃でした。
事件ファイル2:画像認識の精度を競う大会でディープラーニング使ったらぶっちぎりで優勝したよ
2012年にブッチギリの高い精度を出して優勝したチームがいたのですが、蓋を開けてみたらディープラーニング(Deep Learning)を使っていたということが判明し、世界中の研究者やエンジニアに衝撃を与えたんです。
「なにそれすごい性能発揮するやん!!そんなのできんの?ディープラーニング(Deep Learning)アンビリバボー!」という大事件だったわけでこの出来事もディープラーニング(Deep Learning)の研究に火をつけました。
この出来事を例えるならば、100m走で今まで10秒前後のコンマ1秒をいかに縮めるかを競ってたのに、いきなり
「5秒切りました!」
ええええええーーーーーー!!!みたいな大事件が起こったというわけですね。
ディープラーニング(Deep Learning)でどんなことができてるの?
現在AI(人工知能)でできることについては言葉より見た方が早いので今はこんなことまでできますよ!の動画を以前まとめたのでいくつかご紹介します。
ディープラーニングの欠点ってないの?
人間誰しも得意不得意があるように、ディープラーニング(Deep Learning)にだってもちろん欠点があります。
データがたくさんいるよ
この状態に到達するには大量の画像が必要で、例えば前述したGoogleの猫事件の時には何枚の猫の画像を使用したでしょうか。
100枚?・・・全然足りません。
1000枚?・・・全然です。
1万枚?・・・まだまだ。
10万枚?・・・まだ足りませんね。
実は1000万枚使いました!!
枚数はすごいけれど、どうやってこんなに大量の猫の画像集めんだよ・・・。って感じですよね。そうなんです、ディープラーニング(Deep Learning)を実用化するには大量のデータが必要なのでデータを準備できなければ使えません。
ただ、近年ではディープラーニング(Deep Learning)の進化には目覚ましいものがあり、敵対的生成ネットワーク(GAN)と呼ばれる技術を用いて、コンピュータが自ら新しい画像(世の中に存在しない画像)を作り出すことに成功しているためこの問題は解消できる見通しが立ちつつあります。
計算時間がめっちゃかかるよ
ディープラーニング(Deep Learning)は、実は一つ一つのシンプルな計算処理を膨大な数を組み合わせた構成になっているのですが、組み合わせの結果必要となる計算処理が非常に膨大で複雑になるため、学習には数日から数週間かかることもざらにあるんです。
従来の機械学習より先にディープラーニング(Deep Learning)が浸透した弊害もあるみたい・・・。
前述したようにディープラーニング(Deep Learning)は万能という訳ではないので、最近はディープラーニングの活用ばかりが叫ばれすぎていて、きちんと使えずに思ったほどの成果が出ずむしろ逆効果になってしまった・・・(><)なんていう企業も出てきているようです。
ディープラーニング(Deep Learning)なんで今出てきたねん?
- アルゴリズム(コンピュータの計算方法、処理のやり方)の醸成
→頭のいい人たちが日夜研究を進めた結果、うまくいきそうな計算処理のやり方が考案されてきました。 - 膨大なデータ(ビッグデータ)の集積
→スマートフォンの普及などをはじめとした情報通信技術の飛躍的な発展と、僕たちがインターネットを利用することを通じて様々な行動履歴やデータが蓄積されるようになりました。 - コンピュータの高速な計算能力の向上
→コンピュータの処理速度(マイクロプロセッサ)は18〜24ヶ月毎に2倍の性能に進化するというムーアの法則がありましたが、近年GPUと呼ばれるICチップの進化によってムーアの法則を崩壊させるほどの目覚ましい(マジですごい)高速化が起こりました。
これら3つの進化が偶然にも重なって、現在ディープラーニング(Deep Learning)が実用化できる時代になったんですね。
ディープラーニング(Deep Learning)ってどんな仕組みで動いてるの?
「ディープラーニング(Deep Learning)の仕組みってどうなってんの?」
と気になってきた方もいらっしゃるかと思いますので、ここからはディープラーニング(Deep Learning)の仕組みについて簡単に見ていきましょう。
※今までよりも少しだけ難しい話になります(><)
改めてですがディープラーニング(Deep Learning)とは、
「人間の脳内の神経細胞同士がつながってネットワークをつくっている様子を真似てコンピュータのプログラム上で再現した技術」
ということは前述しました。
また、神経細胞のネットワークのことを英語でニューラルネットワーク(Neural Network)と言います。
人間をはじめとした生物がもつ神経細胞のネットワークは、神経細胞が他の神経細胞とシナプス結合と呼ばれる情報的なつながりを作ることでネットワークを形成しています。ある情報を刺激として受け取ると、それを神経細胞内で変換し、シナプス結合を通じて次の神経細胞に伝えることで情報を伝達していくわけです。
このような神経細胞のネットワーク(ニューラルネットワーク)は生物について述べたものですが、小難しい話は無しにしましょう。
思いっきり単純化してコンピュータの世界で再現したニューラルネットワークと呼ばれるものがあるのですが、ディープラーニング(Deep Learning)はこのニューラルネットワークをベースとしており下記のようなイメージです。
このニューラルネットワークで再現しているのは、
- 「神経細胞同士がシナプスでつながりネットワークを作っていること」
- 「シナプスによってつながりの強さが違うこと」
の二つだけです。図中の◯は神経細胞の例えですがここからはニューロンと呼ぶことにしましょう。さて、ディープラーニング(Deep Learning)のベースとなっているニューラルネットワークですが、「入力」「出力」「重み付け」という言葉が重要になります。ニューロンを列で分けた層として見ると、次のようにニューラルネットワークは表現できます。
図の左から情報が入ってくるとして、情報を入力するためのニューロンの配置を入力層と呼びましょう。
- 入力層:情報が入ってくる層
入力層から情報を受け取ったニューロン(中間層)は、情報を自分なりに重み付けと呼ばれる評価をして、その結果を次の層のニューロンに伝達していきます。
- 中間層:情報を受け取って自分なりに重み付けと呼ばれる評価をしてその結果を次へ伝達する層
そして最終的に「出力層」に結果が伝わって結果が出力されるという流れです。
- 出力層:受け取った結果を出力する層
ここでいう「重み付け」と言うのは、簡単に言えば情報と情報のつながりに重要度をつけるというイメージです。この重み付けの数値を調整することによって、不思議とモノの認識であったり、適切な分析や予測などが適切に出力されます。
このような仕組みがニューラルネットワークのざっくりとした基本です。そしてこの中間層が2層以上ある構造を持ったニューラルネットワークを用いた機械学習の手法をディープラーニング(Deep Learning)、深層学習とよびます。層が深いから深層学習と言うのですね。
※中間層が2層以上ある構造を持ったニューラルネットワークをディープニューラルネットワークと呼びます
えっ!?ディープラーニング(Deep Learning)のブラックボックス問題って何?
ディープラーニング(Deep Learning)による出力結果を無理やり説明しようとするなら、「適当に値を変えていったらこれで上手くいったから」としか言えなさそうです。なぜこうした結果が出るのか、何を判断基準としてこの結果が導かれたのか、というのは誰にもわからないため過程やプロセスの根拠を説明するようなテーマではディープラーニング(Deep Learning)は使いづらいと言えるでしょう。
まとめ
さて、今回はディープラーニングとは?何それおいしいの?っていう人向けの超入門編と題してディープラーニング(Deep Learning)について整理してきました。
改めて振り返って見ると、
- ディープラーニングとは人間の脳の仕組みを真似てコンピュータのプログラム上で再現した技術である
- AI(人工知能)を実現する技術の一つに機械学習があり、機械学習の内の一つがディープラーニングである
- ディープラーニングはコンピュータが従来解けなかった「ルールのわからない問題」を対応できるようになった
- ディープラーニングを用いることで特定の領域でコンピュータが人間の能力を超えはじめている
- ディープラーニングは万能ではなく、大量の画像が必要になることや計算処理に非常に時間がかかるといった課題がある
- ディープラーニング実用化の背景には、アルゴリズムの醸成、ビッグデータの集積、コンピュータの計算能力向上などの影響がある
- ディープラーニングはニューラルネットワークというコンピュータアルゴリズムをベースとしている
- ディープラーニングによって導かれた結果の根拠を説明することは現在困難である
といったことを見てきましたよね。
少しでもディープラーニング(Deep Learning)について理解が深まった!と感じてもらえたなら今回執筆を担当した僕「つっちー」はとっても嬉しいです。
本文中で少しだけ触れましたが、近年では敵対的生成ネットワーク(GAN)という技術がディープラーニングの分野の中でも最高に熱い!!と注目されています。もし興味の湧いた方は、ご紹介した動画を参考にしがら調べてみるのも楽しそうですね!
ディープラーニング(Deep Learning)の分野は専門家でさえも「1年前に無理だと思っていたことがもう今はできていてびっくり」と言うぐらい進化のスピードが早い分野ですので、来年の今頃にはもっとアッと驚くような事例が出てきているかもしれません。今後もテクノロジーの進化が一層楽しみですね!
AI(人工知能)って「なにそれ美味しいの?」ってレベルだった僕が、AIエンジニアを目指してステップを踏んだり踏まれたりしている記事を書いてます。よかったら読んでみてください(実話)。
コメントをどうぞ