世間で騒がれているけど、ディープラーニングって何?
AI(人工知能)とどう違うの!?
今回は、「とある女性がプロポーズされている」シーンを使って、分かりやすく解説してみます。
(まともな解説になるのか、すごく不安・・)
こんにちは、Zero-Cheeseです。
最近の技術進歩は恐ろしい速度で進んでおり、少し前では、不可能だった事が次々と実現できる世の中になっています。
今回取り上げる「ディープラーニング」もその一例で、従来の技術では不可能とされた事を、次々と可能にしています。
本記事は、
- 最初に、「ディープラーニング」の何か? 何が凄いのか? を説明してから
- 分かり易く、「ディープラーニング」の仕組みを解説
の構成でご紹介していきます。
一応、この記事を書いている筆者は、日本ディープラーニング協会のE資格を有しているので、多分まともな記事になっていると思われます。
ディープラーニングとは?
ディープラーニングとは何か?
ディープラーニングとは、人の脳の構造(ニューロンの構造)をヒントにして、それをモデル化して、コンピュータに実装したものです。(詳細は、後ほど記しています。)
世間で言われている、AIと機械学習、ディープラーニングの関係は以下の図の通りになります。
AIというと、機械学習、ディープラーニングを含んだ、広い概念を指している状況です。
AIという言葉の定義は、専門家の間でもバラバラで、完全に意味が決まっていない状況です。
ディープラーニングの何が凄いのか?
ディープラーニングは、今まで不可能とされた問題を解決する事に成功しました。
詳細は別途記事を書きますが、ここでは簡単にご紹介します。
視覚による物体認識
人の作業を機械に置き換えるというのは、産業革命以来、人類が取り組んできたものです。
しかし機械の、視覚による物体認識だけはどうしても低レベルのままで、商業的にあまり使い物にはなりませんでした。
(機械の、視覚による物体認識というのは、カメラで撮った画像を、画像処理して認識するという意味で使っています。)
よって今までの機械は、いわゆる「目が無い」状態で作業させるしかありませんでした。
「目が無い」状態で作業という言葉を補足します。
例えば
- 工場の産業用ロボットは、「物」がある特定の場所に置かれている事が保証されているので、それを運ぶ事ができたり
- 組み立てラインも、それぞれの部品が、初期位置を厳密に決めているので、組み立てる事ができたり
- 監視カメラも、所詮は人の目によってチェックしていたり
と、「目が不要」な状況を前提とした作業に、機械を従事させていました。
それ故、機械に目を持たせるというのは、人類としても未開拓の領域で、世の中を変えられるだけのパワーを持っています。
例えば、
- 監視カメラによる、犯罪自動チェック
- 自動掃除マシン(ルンバだけでなく、片付けも含めて)
- コンビニによる、自動支払レジ
- 自動車の自動運転
- 医療用診断の自動判定装置(撮像したX線にチェック)
等々が挙げられます。
つまり、人を必要としない、完全自動化の分野が確実に広がります。
少し前のSFみたいな世界が、やって来ます。
ディープラーニングにより、「機械に目を持たせる」という技術が、可能になりつつあります。(2021年現在、一部は実現してきました。)
ディープラーニングによる物体認識がどれだけ凄いのかを示す例として、ILSVRCという、2010年から始まった大規模画像認識の競技会があります。
ILSVRC?? 難しい言葉がでてきた。
「コンテストみたいなもの」と思ってもらえれば大丈夫です。
その中で、クラス分類タスクというものがあり、(見せられた画像に何が写っているか?というテストです。)その分野においては、人間を超えた成績を既に叩き出しています。
(画像認識においては、「人間を超える事は不可能」と思われて来ました。)
下記グラフは、「画像の分類タスク」のエラー推移を年別で示したものです。
ディープラーニングが登場してから、急激にエラーが少なくなっており、人間レベルを既に超えています。
文章の意味理解
文章の意味理解に置いても、2018年にGoogleより発表された「Bert」により、特定の評価方法においては、人間を超える性能を叩き出しました。
詳細を記事にすると長くなってしまい、本記事の趣旨と外れてしまうため、別記事にさせて下さい。
イメージで分かる、ディープラーニングの仕組み
ディープラーニングは、多層のニューラルネットワークというもので構成されています。
この仕組を簡単に分かるよう、たとえ話を使って解説していきたいと思います。
とある女性が、プロポースされるケースを使って、仕組みを解説
物語の前提
とある女性が、男性2人から、「プロポーズ」を受けていました。
この女性は、「男性A、Bとの結婚、どうしよう?」と悩んでいました。
無意識レベルになると思いますが、このケースの場合、女性が男性A、Bを評価してる事になります。
(男性、へのへのもへじですが・・ 下書きとして「へのへのもへじ」を描いてみたら、メインキャラと脇キャラがはっきりして、逆にいいかな?と思って本採用に・・)
結婚するかどうかの判断
「結婚するかどうか、どのようにして判断するか」を考えてみたいと思います。
話を簡単にするために、男性の評価因子は
- 貯金
- 能力
- 容姿
- 年齢
- フィーリング(女性との)
の5つしかない世界を考えてみます。
(男性のみなさま、すいません。話を簡略化したかっただけなんです。
男性には、もっとたくさんの、素晴らしい点があります。はい・・・)
Aさん、Bさんを評価してみる
ここでは、各要因 10点満点の評価方法で考えてみます。
例えば、この女性は、下図のような評価をしたとします。
これだけ見ると、合計評価は、Aさんは単純合計の33点、Bさん29点という事で、「Aさんの勝ち」となります。
どの因子が女性にとって、重要なのかを考えてみる。
合計評価として、「単純な足し算での評価はおかしい」と思われた方も多いと思われます。
なぜなら、結婚の条件に「私は、相手とのフィーリングを大切にしたい!!」とか、重要視しているポイントがあるからです。
よって、各因子の重要度を表現してみました。(これは人によって異なるはずですが、一例として下記のようにしました。)
ほぼ、お金に全振りじゃん・・
この際の合計点数の算出方法ですが、「因子の重要度」を、いわゆる「重み」として扱うと、以下のように計算できると思います。
この計算でいくと、Aさん98点、Bさん159点になります。
先程の単純に足し合わせた合計点数に対して、反対の結果となりました。
つまり、どういう事??
結婚するかどうかの判断
新しい計算方法で算出した、合計点数の高いBさんと、この女性は結婚するのでしょうか?
現実では、そうとも限らないと思います。
なぜなら、「どちらとも結婚しない」という選択肢もありえるからです。
これはつまり、「先程の合計点数が160点以上ないと結婚しない」とか、「合計点数○点以上なら結婚する」との判断材料をこの女性が持っている事になります。
つまり?(2回目)
ニューラルネットワークで表現してみると
ディープラーニングはニューラルネットワークから構成されています。
このニューラルネットワークというのは、以下のような模式絵で表現されます。
いきなり、変な図が出てきた・・
今、ちゃんと、説明するよ(汗)
このニューラルネットワークの模式絵に、さきほどのBさんの評価を入れてみると、下記の絵になります。
つまりニューラルネットワークとは
- 何かを判断をする回路になっている(この場合、「結婚するかどうか」の判断回路)
- 左側に判断材料を入れる。(ここではBさんの、「各因子の点数」)
- 入力側から真ん中の○に向かって伸びている線は、因子の重みを表している。
- 真ん中の丸は、「関所」になっていて、合計点数が閾値以上になると、右側に出力される。(上図の場合は、130点以上で結婚OK!!となる。)
になります。
学習とは、具体的に何をしているのか?
ディープラーニングは学習というフェーズがあります。
具体的に何をしているのか、引き続きこのたとえ話を使って説明してみたいと思います。
話を簡単にするために、先程のニューラルネットワークは「結婚するかどうか」の判断回路でしたが、「結婚後の幸福度」を判断する回路だったとします。(下図参照)
この場合、上図の真ん中の○の部分は、総合点数を幸福度に変換する処理をするものとします。
(例えば、200点だと「結婚後の幸福度」100%、0点だと「幸福度」 0%とする とかです。)
このモデルを使えば、このBさんは159点で80%の筈ですが、いざ結婚してみると、20%だった事が判明した場合を考えてみます。
どうやって、その点数を出した?
そこは、いいから(汗)
そうすると、さきほどの「ニューラルネットワーク」の判断回路が間違っていた事に他なりません。
つまり、正しく判断するために、「ニューラルネットワーク」の回路修正が必要となります。
1つの考え方として、下記図のように、「各因子の重要度」の点数が間違っていたと考えられ、「各因子の重要度」を修正してみるという手があると思います。
修正後、「貯金」は重要度は2で、「フィーリング」が10だった、とかですね!
・・・・・・・・
(フィーリングで結婚したカップルの離婚率が、一番高かった筈だけど・・)
なぜ、ニューラルネットワークを多段構造にする必要があるのか?
多層ニューラルネットワークにすると言ってたど、先程の例は1層しか無いよ!?
多層ニューラルネットワークとは、下記のイメージです。(因子が3つずつの例)
なぜ多層にすると良くなるのか、さきほどのたとえ話を使ってお話してみたいと思います。
例えば、下絵のような女性は、いかがっすか?
きっつ〜〜〜
先程の「結婚判断ニューラルネットワーク」で判断しようにも、男性の貯金が分からないと、点数付けができないため、破綻してしまいます。
しかし直接、男性に貯金を聞いてしまうと、「痛い娘」扱いされてしまうので、何とかする必要が発生します。
- つまり、他の何かの情報で、「貯金」を予測する必要が発生します。
この状況は、多層構造のニューラルネットワークを使うと、解決する事ができます。
その手法とは、
- 1層目で、貯金を予測して、
- 2層目の入力に、その予測した貯金を入れる
というものです。
貯金を予測するのに、
- 持っている車種
- 普段、身につけている服のブランド
- 職歴
- 勤め先(上場企業とか)
- 学歴(一流大学とか)
等々の情報により、精度高く予想できると思います。(現実でも、みんな、無意識にやっていると思いますが・・・)
その時の、「ニューラルネットワーク」は以下の通りになります。(「貯金」以外の1層目は、省略しています。)
つまり、どういう事?(3回目)
つまり多層にする事で、
- 基本的な情報をもとに、複雑な情報処理をする事が可能
となります。
今回の例では、「Bさんが持っている車等の情報から、貯金を予想して、最終的に結婚するかどうかの判断をする」という、複雑な情報処理が実行されています。
そして、ディープラーニングとは、多層構造をもつニューラルネットワークを使った機械学習になります。
ディープラーニングと人の脳構造との関係性について
人の脳を構成する神経細胞は、ニューロンと呼ばれており、概念図は以下になります。
- 青丸部分:他のニューロンから、電気信号が入力される箇所
- 赤丸部分:他のニューロンへ、電気信号を出力する箇所
先程まで説明してきた、ニューラルネットワークは、このニューロンの機能を模倣して、数理モデル化したものになります。
入力側の電気信号は、青丸部分(シナプスと呼ばれる)を通して、伝わってきます。
そして、入力側の全信号の合計値がある閾値以上になると、出力(上図の赤色箇所部分)側に信号が出力されるという構造になっています。
そしてこのニューロンも、多層構造になっています。
私は初めてこの構造を知った時、生物の脳もデジタル回路だという事に、びっくりしました。
生物の構造は、アナログ構造だと思い込んでいたからです。
よく考えたら、遺伝子もデジタル情報なので、やっぱりノイズ対策を考えると、デジタルの方が利点があるのでしょうか・・?
雑談
今回、あまりにもくだけた例を使ってしまったので、こんな説明で良かったんだろうか? と思っております。
また分かり易さ優先で解説したため、実際は若干異なる部分もあります。
一例としては、ニューラルネットワークには、「人間には理解しがたい情報」が入力される事が多いです。
ご承知おき下さい。
また本記事では、基本的なニューラルネットワークの構造のみの説明で、当分野に精通している方にとっては、「CNN、RNN、Attention等々は?」と思ったかもしれません。
加えて今回の説明だけでは、ディープラーニングの魅力が、全然伝え切れていないと思っております。
本ブログでも、引き続きディープラーニングの魅力を語っていきたいと思っています。
本記事を書いた後の記事になりますが、
ディープラーニングのフレームワークとして
- 何を選択するべきか?
を記事にしてみました。
各種データを基に、分析して、まとめました。併せて、どうぞ。
それではまた、お会いしましょう。