近年では「人工知能」や「AI」、「ディープラーニング」といった言葉をよく耳にするようになりましたが、これらの基本となるのが「ニューラルネットワーク」です。ニューラルネットワークは、現代テクノロジーを理解するうえでの入口部分であると共に、私たち人間の神経細胞とも深く関係しているのです。
ここでは、そんなニューラルネットワークの基礎知識や学習方法、主な種類について紹介します。
ニューラルネットワークの基礎知識
現代テクノロジーの基盤となるニューラルネットワークですが、具体的にどんなものかを知らない人は多いと思いますので、まずは基礎知識についてみていきましょう。
ニューラルネットワークとは
ニューラルネットワークとは、人間の脳神経系である「ニューロン」の仕組みを数理化し、計算機上でシミュレーションできるようにした数式モデルのことです。
ニューロンというのは「細胞体」「軸索」「樹状突起」の3つから成りたっている神経細胞です。人間の脳には多くの神経細胞があって、これらの結びつきによって情報が記録されたり、伝達されたりします。
これまで人工知能の開発には60年以上もの年月が費やされてきましたが、ニューラルネットワークの誕生により開発のスピードは飛躍的に向上しました。これにより、これまで人間が教えていた知識を機械が自ら学習するという、問題解決能力を持ち合わせた人工知能モデルへと進化を遂げたのです。
ニューラルネットワークの仕組み
ニューラルネットワークは、私たち人間の「脳から情報を伝達する仕組み」を応用しているもので、入力層・出力層・隠れ層の3層で構成されています。そして、層と層の間(ニューロンのつながり)が結びついている強さは「重み」で示されるのが一般的です。
これらの層(ニューロン)は、単体では「受け取った信号を処理して受け渡す」という単純なものとなりますが、2つ、3つと組み合わせていくと、結びつきを表す「重み(W)」と定数項の「バイアス(b)」が足され、単体のときよりもいろいろな処理ができるようになります。そのため、層を数多く組み合わせることによって、人間と同じような対応をすることができるのです。
ニューラルネットワークとディープラーニングの違い
人工知能の開発が飛躍的に進化するきっかけとなった「ディープラーニング(深層学習)」も、実はニューラルネットワークを発展させたもので、中間層が多数存在する「多層構造のニューラルネットワーク」でできています。
このディープラーニングは学習能力を持っており、必要な能力を自動形成できるため、これまでコンピュータが苦手としていた画像認識や音声認識などの処理が可能となりました。これにより、機械に複雑な学習をさせることが可能となり、人工知能技術を大きく進展させているのです。
また、ニューラルネットワークが脳細胞の数式化モデルであるのに対し、ディープラーニングはニューラルネットワークを用いた機械学習システムを指しています。
ニューラルネットワークを使った機械学習の方法
ニューラルネットワークは、人間の脳細胞モデルを利用し機械の自動学習を可能にしていますが、これには主に3つの方法が用いられています。
教師あり学習
まず一つ目は「教師あり学習(Supervised Learning)」といって、学習データに正解のラベルを貼り付けて学習するという方法です。
例えば、人間が画像の学習データに「犬」という正解ラベルを貼り付け、これを機械に学習させれば、それ以降は機械が自動で犬の画像を認識できるようになります。
ただ、講師あり学習の場合は、どんなに優秀な機械(学習モデル)であっても学習していないものは認識できません。
教師なし学習
二つ目は、逆に正解ラベルを貼り付けずに学習する「教師なし学習(Unsupervised Learning)」という方法で、機械が自分で学習するというものです。教師なし学習では、機械にWeb上の画像や動画を一定期間読み込ませることで、自動でモノや知識を認識できるようにしていきます。
2012年、Googleが開発した「猫を認識できるAI」が話題となりましたが、その際に使用したのが教師なし学習で「まるで幼児が自然と認識してゆくようだ」と大きなニュースになりました。
強化学習
そしてもう一つの学習方法が、正解ラベルを貼り付けるとともに将来の価値を最大化する「強化学習(Reinforcement Learning)」です。
強化学習では、教師あり学習と同じように正解ラベルを貼り付けた学習を行いますが、正解をそのまま学習するのではなく、「正解の価値を最大化する行動」を学習します。
例えば、「テトリスで高得点を出す」という強化学習の場合、コンスタントにブロックを消すのではなく、限界までブロックを積み上げてから一気に消す方がより高得点を出すことができ、この「価値の最大化」を機械に学習させるのです。
2016年にGoogleの「AlphaGo」が囲碁や将棋のプロ棋士を破ったと大きなニュースとなりましたが、このAlphaGoこそ強化学習の良い例だといえます。強化学習では人間でもわからない将来の可能性まで学習することができるため、「人間を超える知能を身に付けられるのでは!?」と非常に期待されているのです。
ニューラルネットワークの主な種類
さまざまな方法で機械学習を可能としているニューラルネットワークですが、実はニューラルネットワークにも3つの種類があって、それぞれ違った特徴を持っています。
ディープニューラルネットワーク
ニューラルネットワークでも主流となっているのが「ディープニューラルネットワーク(DNN)」です。ディープニューラルネットワークは、脳神経を数式化したニューラルネットワークを多層に重ねたディープラーニング(深層学習)モデルの一つで、コンピュータの計算処理能力が向上したことで発展しました。
処理の層を深くしていくことでより複雑な判断が可能となり、主要な機械学習の問題を解くうえでも最先端の技術として活用されています。
畳み込みニューラルネットワーク(CNN)
畳み込みニューラルネットワーク(CNN)とは、主に画像認識処理や自然言語処理で利用されるネットワークで、特に画像認識分野では実用化が急速に進んでいます。層と層の間が全結合ではなく順伝播型となっているのが特徴で、情報を一方向に伝播させ、最後に全結合層によって認識を行います。
身近なところでは、Facebookの写真のタグ付けやGoogle翻訳の自動翻訳機能などが有名です。
再帰型(リカレント)ニューラルネットワーク(RNN)
3つ目は再帰型ニューラルネットワーク(RNN)といって、時系列データの取り扱いを得意とするネットワークで、「リカレントニューラルネット」や「フィードバックニューラルネット」とも呼ばれています。
再帰型ニューラルネットワークは文脈を考慮することができるモデルなので、機械翻訳や音声認識、自然言語処理、さらに強化学習をしたロボットの制御などに多く使われています。
このモデルの特徴は、3種類のうち唯一中間層へフィードバックができるというところです。例えば、前の層の出力を考慮して中間層の出力を計算したり、次の層の出力を考慮して中間層との両方向に情報をフィードバックしたりと、柔軟に対応することができます。
このネットワークは、最近翻訳の制度が大幅にアップしたGoogle翻訳にも採用されており、非常に注目されているモデルといえます。
今後も進化を続けるニューラルネットワーク
人間の脳神経を数式化してできたのがニューラルネットワークですが、このニューラルネットワークが発展したことでディープラーニングが誕生し、複雑なデータ処理が可能となってきました。
そして最近、Google研究員であるジェフ・ヒントン氏が40年の歳月をかけて開発した、ニューラルネットワークの新技術「カプセルネットワーク」が発表され、ニューラルネットワークの進化に終わりがないことを物語っています。
そのため、今後人工知能はこれまで経験したことのない進化を遂げることとなるでしょう。現代の子供たちが成人するころには、今では想像もつかないようなテクノロジーが誕生し、より便利な世界となっているに違いありません。