AI技術をぱっと理解する(基礎編)

ディープラーニングと機械学習の違い (Vol.5)

  • 2018.02.05
  • 株式会社システムインテグレータ
ディープラーニングと機械学習の違い (Vol.5)

はじめに

前回は飲み屋の女の子に「機械学習ってなに?」って聞かれたときにうろたえないための勉強をしました。今回は「そもそもディープラーニングって機械学習とどう違うの?」って追い打ちで質問されたときにサラサラ答えられることを目指します。ポイントを理解して難しい原理をわかりやすく説明できるスキルを付けておけば、飲み屋の女の子(仮に麻里ちゃんにしましょう)だけでなく、社内の女性にも尊敬の眼差しで見られるはずです(まだ、妄想中…)。 

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

Vol.5まできて今更ですが、「機械学習(Machine Learning)と深層学習(Deep Learning)は、どう違うのでしょうか」。インターネット上のあちこちに見かける解説で言えば、「機械学習 ⊃ 深層学習」です。え、なんだっけその記号って声が聞こえてきそうですね。⊃ は学校の数学の授業で習った部分集合で、「深層学習は機械学習の一部である」ということです。他の例をあげれば「スポーツ ⊃ トラック競技」や「料理 ⊃ 煮物」という感じです。 

でも、麻里ちゃんがこの説明で満足してくれなかったとします。ここからがモテるかどうかの本当のポイントです。順序を変えてもう一度質問します。「深層学習(Deep Learning)は機械学習(Machine Learning)と何が違うのでしょうか」 

この質問に対してわかりやすく答えるために、まず”スポーツとトラック競技の違い”は何かの答え方を考えてみましょう。その場合は「あらゆるスポーツの中で、競技場のトラックで行われる陸上競技がトラック競技」という感じの説明になります。トラック内のフィールド競技や競技場外のマラソンは含まれないことも付け加えれば完璧な解答となります。 

つまりマシーンラーニングとディープラーニングの違いを説明するには、ディープラーニングが他のマシーンラーニングとどう違うかを理解する必要があります。集合関係だけで分かったような気になっていてはだめなのです。そして、そのためにはニューラルネットワークの構造を理解する必要がありますので、まずはニューラルネットワークについて説明します。 
 

ニューラルネットワークとは

人間の脳はニューロン(neuron)という神経細胞のネットワーク構造となっています。ニューロンから別のニューロンにシグナルを伝達する接続部位のことをシナプスと言い、ニューロンはシナプスから電気や化学反応のシグナルを発信して情報をやり取りします。そして、ニューラルネットワークは、こうした人間の脳の仕組みを模倣したネットワーク構造となっており、これが現在の人工知能(昔は人工頭脳とも言っていましたね)のモデルです(図1)。  

5-1.png

図1:ニューロンとニューラルネットワーク 

ニューラルネットワークは、入力層から入った信号がさまざまなノード(丸の部分:ニューロンに相当、人工ニューロンとも言う)を伝搬して出力層に伝わる仕組みになっています。これは、神経細胞のニューロンを通じて信号が伝搬する仕組みと同じです。入力層と出力層の間の中間層が隠れ層で、これが何層にも重なっているものが深層学習です。 

ノードとノードを結ぶ線の接続部分がシナプスに相当します。図では線の太さは同じですが、実際は太さが違います。この線の太さ(情報伝搬しやすさの違い)のことを重み(weight)と言います。 

シグモイドニューロン

重みについて、図2の例を使ってもう少し説明しましょう。あなたは友達から「明日、焼肉行こう」と誘われました。最近、金欠病のあなたがOKと返事するかどうかの判断に影響を及ぼすファクターは次の3つだとしましょう。 

・値段が高くない(w = 4.3) 

・店が遠くない(w = 1.3) 

・麻里が来る(w = 7.14) 

このとき、各ファクターの重要さ(重み)は均等ではありません。あなたにとっては、麻里ちゃんが来ることが一番重要で、次が値段、そして近さの順番で優先順位があります。人工ニューロンには閾値(バイアス)があり、この閾値を超えると信号が伝わって発火(スパイク)します。図のように閾値が6.2だとすると、「麻里ちゃんが来るならば高くても遠くても参加」ということになります。  

久しぶりに焼肉もいいなって思って(焼肉に行きたい気持ちが高くなって)閾値を5に下げたらどうでしょうか。この場合は”価格要素”+”距離要素”の値が5.6で閾値を超えるので、「麻里ちゃんが来る。または来なくても、高くなくて遠くなければ参加」と発火の可能性が高まります。「個々のファクターの重み VS. バイアス」ではなく、「Σ個々のファクターの重み VS. バイアス」となる点に注意してください。 

人工知能(AI)に関するお役立ち資料

この例では3つの入力と1つの出力で書いていますが、実際には”おいしい”、”少人数”、”断ると気まずい”など入力ファクターは多数あり、人はそれらをΣで積み上げて総合的に判断しているわけです。また、出力も「参加」「断る」のほかに「返事を保留」など複数の選択肢があり得ます。  

このように重みと閾値(バイアス)により信号が伝わるモデルのことを、パーセプトロン、最近はシグモイドニューロンとも言われています。 

5-22.png 
図2:シグモイドニューロンモデル 

パーセプトロンとシグモイドニューロン

パーセプトロンもシグモイドニューロンも人工ニューロンです。なにが違うのかざっくり説明します。パーセプトロンは、1957年に考案された歴史のある理論で、上記で説明したように人間の脳をモデル化したものです。これをベースに1985年にパーセプロンを使った2層のモデル(ボルツマンマシン)が考案されましたが、そのときのパーセプトロンは入出力が1か0の二値でした。 

 

そして層が増えたものが多層パーセプトロンで、入出力が1か0ではなく実数となったものがシグモイドニューロンです。さらに、この後説明するように層が何層にも深くなったのがディープラーニングです。 

制限付きボルツマンマシン(RBM) 

制限付きボルツマンマシン(Restricted Boltzmann machine)という言葉も抑えておきましょう。手っ取り早く言えば、図1のようなノードと接続線(Connection)を使ったモデルにおいて、入力層(bisible layer)と隠れ層(hidden layer)の2層のみのものがボルツマンマシンです。ディープラーニングで中間層のことを隠れ層と呼んでいるのは、このボルツマンマシンからの流れです。 

 

そして、同一層内では情報伝達をしないという条件を付けているのが”制限付き”という意味になります。制限を付けているのは、もし制限を付けないと複雑になりすぎるからです。多層化して、同一層は情報伝達しないというモデルにすることで、コンピュータで行列計算処理しやすくなっているのです。 

さて、現実社会に戻ってみましょう。毎日の生活では、図2のように入力と出力からなる単純なモデルは多くありません。本当に麻里ちゃんが来るのかどうか分からない状況で、どう返事をしようか迷うことは多いでしょう。それに対応するために層を1つ増やして3層にしてみましょう。この場合、麻里が(たぶん)来ると判断するファクターとして次の3つを追加します(図3)。 
 

5-3.png

33階層のニューラルネットワーク 

・麻里も誘った 

・麻里は焼肉が好き 

・麻里の家に近い 

閾値を5とした場合、3つのファクターの合計がかろうじて閾値の5を超えるので、たぶん麻里が来ると総合判断して「参加」と答えることにするわけです。このあたりまでは多層パーセプトロンと呼ばれているのですが、もっと複雑な思考回路に対応するにはさらに層を増やす必要があります。 

例えば、恥ずかしいので「麻里も誘ったか」と聞けなかった場合、もう1層足して次のようなファクターにより「麻里も誘った」の可能性を判断するわけです。  

・友人の彼女の玲奈ちゃんと麻里は仲がいい 

・玲奈ちゃんは来るみたい 

・2ヶ月前のカラオケでも友人は麻里を誘った  

さて、ここまで構造を理解するとようやく機械学習と深層学習の違いについて説明できます。先程のトラック競技の言い方を借りれば、「ディープラーニングは、あらゆる機械学習の中で隠れ層(Hidden Layers)が多層化して深くなっているもの」ということになります。 

なお、実際のニューロンはきれいに階層で分かれているわけではないのですが、ニューラルネットワークではこのように層に分けることにより行列演算処理しやすくしているのです。

誤差逆伝搬(Back propagation)

これまでの解説で納得してくれた麻里ちゃんが、さらに追加で次のような質問をしてきました。「深層学習ではどうして頭が良くなってゆくの?」。
話が盛り上がるのは嬉しいのですが、素直な質問は本質を問うものなので、こちらの理解度を試されることにもなります(^^;)。 

この素朴な疑問に対する答えが誤差逆伝搬(バックプロパゲーション)です。え、なんだか難しそうな言葉ですが、麻里ちゃんにわかるように説明しなければなりません。これは、一言で言えば「責任の所在を明らかにして、信頼を下げる」です。ここで言う責任が「誤差」で信頼が「重み」です。 

図4を使って説明しましょう。”焼肉に参加”したのに期待はずれ(期待との誤差が大きい)だったとしましょう。その原因が思ったよりも価格が高かったことにあれば、「価格が高くない」の重み(信頼性)を減らします。 

一方、麻里がこなかったというなんとも悲しい現実だったなら、「麻里が来る」の誤差原因を”激しく”追求します。なんと実は友人はそもそも麻里を誘っていなかったのです。それはないだろうってことで、今度は「麻里も誘った」という誤差(思い違い)を追求します。驚くことに実は今回は玲奈ちゃんも来なかったのです。なんだよ「玲奈ちゃんは来るみたい」がそもそも間違っていたんじゃないか…。 

mari

図4:誤差逆伝搬

このトヨタのなぜなぜ5回のような原因分析(誤差伝搬)により、各層での犯人(原因)がわかり、その犯人への信頼度(重み)を少し下げるわけです。そして、次からは「玲奈ちゃんは来るみたい」「麻里も誘った」「麻里が来る」という話を今回より少し信用しなくなるというのが学習により頭が良くなる仕組みなのです。 

Input LayerからOutput Layerに向けた情報の流れが順方向(順伝搬)なのに対し、上記ように誤差(見込み違い)をOutput側から順に遡るので、これを誤差逆伝搬と言うわけです。  

品質不良が発覚した際に原因を遡って分析し、悪かったところを改善してミスが発生しにくい体質になるのと仕組みがよく似ていますね。同じような原理で、誤差逆伝搬を繰り返すことでニューラルネットワークは賢くなってゆくのです。 

ニューラルネットワークは階層構造 

 

図1のように横向きだと気づきにくいのですが、図を90度起こして下から上に順伝搬するようにしてみると、ニューラルネットワークが階層構造であることがわかります。縦にしてみると、今度は会社組織が思い浮かびます。会社でトラブルが発生した際に、社長からの指示で取締役に原因追求され、取締役から部長、部長から課長へと原因追求がなされて、トラブルの原因になった人たちは信頼を失ってしまうわけです。 

機械学習アルゴリズムとディープラーニングの違い

さて、これで機械学習とディープラーニング(深層学習)の違いは次の2つだと分かったから、もうばっちり麻里ちゃんに説明できるぞ~。 
定義1:ディープラーニングは、機械学習の一部である。 
定義2:ディープラーニングは、あらゆる機械学習の中で隠れ層(Hidden Layers)が多層化して深くなっているもの。 

な~んて思うのはまだ早く、実は最も重要なのに「機械学習⊃深層学習」の説明により見落とされがちな次の定義があるのです。 
定義3:機械学習はルールベースの計算で、ディープラーニングはブラックボックス。 

これを説明するために、 今度は観点を変えて学習方法の違いに着目してみます。機械学習は、学習のアルゴリズムが数式で表され、どのようなロジックでその結果が導き出されたかが明確です。一方、ディープラーニングは、基本的にAIがどのようにしてその結論を導いたかはブラックボックスです(図5)。 

これ、慣れないと気持ち悪いのでしょうね。ときどき、「どういうロジックで結果を出すかわからないからディープラーニングを使わない」などとバカげた発言をする人がいてびっくりします。どうして、そんなことにこだわるのでしょう。例えば、自分の子供が成長とともに、食べられるものと食べられないものを見分けらるようになったとき、子供が何をどう判断したかなんてわかるわけありません(当の本人も無意識です)。大切なのは、間違わずに見分けられるかという結果であって、アルゴリズムは理解不能と割り切ればいいのです。つまり、機械学習は数学であり統計学ですが、ディープラーニングは相手が人間のようなものと考えて対峙することが肝要なのです。

16_1

図5:深層学習は納得感がない 

従来、機械学習ベース(ルールベースのアルゴリズム)で行われていた異常検知や分類、回帰などの処理の多くが、ディープラーニングベースに置き換わりつつあります。まだまだ機械学習ベースの方が優れている処理も多く、すべてがディープラーニングに置き換わる訳ではないのですが、いろんな処理がディープラーニングベースに塗り替えられていきそうです。 

まとめ

さて、機械学習とディープラーニングの違いはわかりましたでしょうか。そして、そもそもディープラーニングがどうやって賢くなってゆくのかのメカニズムにトヨタのなぜなぜ5回があるっていう衝撃の事実も理解できたことと思います。 

梅田弘之 株式会社システムインテグレータ :Twitter @umedano

AIをビジネスに活用するための基礎知識

新規CTA