ハッカーの系譜(10)マービン・ミンスキー (10) 多層化することで問題を解決

牧野武文

March 30, 2017 08:00
by 牧野武文

多層化することでXOR問題を乗り越えられる

パーセプトロンの第1の進化は多層化だ。ミンスキーが指摘したように、パーセプトロンはXORの論理演算結果を学習することができない。前回示したように、XORの演算結果は線形分離不可能、つまり直線で真と偽のグループにわけることができないからだ。

しかし、実はちょっとした数学的な工夫をすることで、XORの演算結果を線形分離させることができる。つまり、パーセプトロンに学習させることができる。

それは上記の表のように、AとBの数値以外にA and Bの演算結果をつけたすことだ。これでA xor Bの真偽を線形分離できるようになる。このようにA and Bをつけ加えているので、座標にとると3つ、つまりxyzの空間に真または偽の点が置かれることになる。空間なので、直線ではなく、平面で真と偽をわけることができれば、直接XORの論理演算を学習することができなくても、パーセプトロンは間接的に学習することができる。もちろん、後でつけ加えたANDの結果を取り除くことが必要になる。

下の図を見ていただければわかるように、このような操作をした真と偽であれば、平面できれいに分離することができる。

では、実際のパーセプトロンでこのような効果をもたらすにはどうしたらいいだろうか。パーセプトロンは「入力層・連合層・出力層」という3層構造になっていた。しかし、入力層と連合層の間はランダムに配線されていてそのままいじらない。連合層と出力層の間の配線を、結果によって、重みづけを変えていくことで、学習をしていった。つまり、学習をするのは連合層と出力層の間の配線だけなのだ。このようなパーセプトロンの次元をあげるには、「入力層・隠れ層・連合層・出力層」と層をひとつ増やしてやればいい。

その代わり、隠れ層と連合層の間の配線、連合層と出力層の間の配線の2つを、出力結果によって変えていくことで学習をさせていかなければならないので、学習方法はかなり複雑になってしまう。

とは言え、パーセプトロンに層をひとつ追加することで、XOR演算を含む事象についても学習できるようになる。現在の多層パーセプトロンは、20層、30層というものも珍しくなく、多次元での学習がおこなえるようになっている。いずれにしろ、ミンスキーの指摘したパーセプトロンの限界は、乗り越えることができたのだ。

多層パーセプトロンを学習させるバックプロパゲーションアルゴリズム

さらに多層パーセプトロンを効率的に学習させるアルゴリズムも開発された。バックプロバゲーションと呼ばれる方法だ。ローゼンブラットのパーセプトロンは単純で、入力層・連合層、出力層の3層しかなく、学習をするのは連合層と出力層の間の配線だ。この各配線の重みづけを変えることで学習をしていく。

しかし、入力層・隠れ層・連合層・出力層という多層パーセプトロンでは、隠れ層・連合層、連合層・出力層の間という2カ所で学習をする。隠れ層は何層でも設定することができるが、そのたびに学習をする配線の箇所が増えていく。このように複数の層で学習をするにはどうしたらいいだろうか。これを解決したのがバックプロパゲーションだ。

バックプロパゲーションを利用して多層パーセプトロンに学習させるには、あらかじめ正解がわかっている材料で学習をさせる。たとえば、猫の写真を大量に見せて学習をさせ、それから未知の猫の写真や犬の写真を見せて、それが猫であるかどうか判定させるというようなものだ。

猫の写真を見せて、出力層の結果を見れば、学習が完全だった場合の出力結果と実際の結果の誤差が各素子ごとに計算できる。この出力素子は、複数の連合素子と結ばれていて、その配線は太い=重みづけが大きいもの、細い=重みづけが小さものがある。出力素子に生じた誤差は、結ばれている連合素子のうち、重みづけが大きいものにより多くの原因があるはずだ。したがって、重みづけに応じて出力素子の誤差を連合素子に割り振っていく。すると、連合層の各素子の誤差が計算できる。これも同じように、隠れ層の複数の素子に結ばれているので、やはり重みづけに応じ誤差を割り振っていく。こうして、出力層から遡っていくことで、隠れ層が何層あろうとも、隠れ層の各素子の誤差を決定することができる。こうして、各誤差がもっとも小さくなるように重みづけを調整していく。このようにすれば、多層パーセプトロンは学習をしていくことができるのだ。

現在の深層学習をする多層パーセプトロンは、隠れ層が20も30も組みこまれている。写真を見せたとき、第1隠れ層では、小さな点や丸、直線といった微細な図形を認識し、抽出する。第2隠れ層では、このような微細図形が組み合わされた集合パターンを認識する。第3隠れ層では、微細図形の集合同士の関連を認識するというように、出力層の方向に向かって、微細なパターンから統合されたパターンへと、次第に高次元の認識をしながら、学習を進めていく。

深層学習の最大のメリットは、人間が手取り足取り教える必要がないということだ。猫の写真を認識させるには、以前であれば、「猫は耳が尖っている」「顔が丸い」などの猫の特徴を人間が教えて、画像分析により、その量を計算させ、それに従って学習を進めていく必要があった。しかし、多層パーセプトロンは、ただ写真を見せるだけで、「猫の特徴」をパーセプトロン自身が分析して学習していくのだ。

つまり、余計なことを考えず、ただ学習材料を大量に学ばせるだけで、自分でその特徴を見わけて認識できるようになる。チェスのプログラムをつくるには、チェスに深い見識をもつ人間が、チェスの勝ち方を教えてやる必要があった。しかし、深層学習では、ただ棋譜を大量に読みこませれば、多層パーセプトロンが自分で勝ち方を編みだしてくれる。このため、さまざまな分野で深層学習は利用されるようになった。これが現在の人工知能ブームを支えている。専門家でなくても、公開されている深層学習エンジンを使って、さまざまな学習をさせることができるからだ。

パーセプトロンの考え方は現在でも生きている

ミンスキーは、パーセプトロンを完全否定したわけではない。あまりに能力が限定であるために、当時としてはパーセプトロンの研究をしても、知能というものにたどりつくことはむずかしいだろうと感じたのだ。一方で、パーセプトロンが知能を支える基本的な機構であることも認めていた。ミンスキーの見通しどおり、パーセプトロンは長い時間かかって、多くの人の知恵で進化をしてきて深層学習ができるまでになった。

しかし、ミンスキーはもうこの世にいないが、深層学習をする多層パーセプトロンを見て、なんと発言しただろうか。おそらく、再び「多層パーセプトロンが学習できることは限定的」と批判をしたのではないだろうか。実際、深層学習でできることはパターン判別だけなのだ。「ある動物の写真が猫であるかどうかを見わける」という程度のことしかできない。

それでも応用分野はとてつもなく広い。街頭の監視カメラ映像を見て、写っている個人を特定する。株式相場のグラフを見て、上昇相場であるかどうかを見わける。工作機械などの振動パターンを見て、故障率が一定以上に高まっているかどうかを見わける。さまざまな分野に応用ができる。

(その11に続く)




1年に1度 ラスベガスで開催されるハッカー達のお祭りアジア勢が健闘したDEFCON 25 CTF&PHVレポート

September 19, 2017 08:00

by tessy

今年もDEF CONがアメリカ・ラスベガスで行われた。25回目の記念となるDEF CON25は昨年までのバリーズ、パリスと2つのホテルが会場となっていたが、今年はシーザース・パレスに変更され、7月27日から30日までの日程で開催された。 筆者も今回で9回目の参加であり、会場も4つ目となる。初めてDE…

46万5000台のペースメーカーに存在した脆弱性(後編)脆弱性情報は投資会社に伝えるほうが「うまくいく」のか?

September 15, 2017 08:00

by 江添 佳代子

前編記事→死に直結する医療機器のセキュリティホール Abbott Laboratories(旧St Jude Medical)のペースメーカーの脆弱性を最初に報告したのは、米国のスタートアップのセキュリティ企業MedSec Holdings(以下MedSec)だった。その発見は当時、珍しい展開のセキ…