近年、音声認識やビックデータ解析、自動運転、自律型ロボットなど様々な分野で活用されているAI(人工知能)。そんなAIを理解するのに重要なのが「ニューラルネットワーク」という技術です。ニューラルネットワークはAI分野でよく耳にする「機械学習」や「ディープラーニング」とも密接な関係にあり、現代のAIを理解するのには欠かせない技術・概念です。
そこで今回はニューラルネットワークとは一体なにか、ディープラーニング・機械学習との関係、その問題点などについて解説していきます。
ニューラルネットワークの基本的な仕組み
ニューラルネットワークは一言で表すと「人間の脳の構造をソフトウェアで人工的に模倣したもの」です。
人間の脳は千数百億個の神経細胞(ニューロン)と、それらが網目状につながった神経回路網で構成されています。そこを電気信号が流れることにより情報を記憶に定着させたり、物や人を認識したり、論理的に思考したりすることができます。
このような人間の脳の仕組みから着想を得て、学習したり、論理的に思考するなどの脳機能のいくつかをコンピューターとソフトウェアで「人工ニューロン」という数式的なモデル(アルゴリズム)で表現しているのがニューラルネットワークです。
ニューラルネットワークは、「入力層」「出力層」「隠れ層」という3つの層で構成されていて、それぞれの層の間が人工ニューロンによって繋がっています。そして人工ニューロン同士の繋がりの強さを示すのが重み「W」であり、繋がりが強さによって情報の伝わりやすさが異なります。
今、ブームになっている「機械学習」や「ディープラーニング」という技術はこのニューラルネットワークを利用することで実現されています。
ニューラルネットワークによる認識・学習の仕組み
ニューラルネットワークが人間の脳の知的・論理的思考プロセスの仕組みをコンピューターで数式的に模倣して表現したものであることは説明しましたが、ニューラルネットワークによる処理には「学習」と「推論」という2つの過程があります。ここからは具体的な処理の仕組み・流れを見ていきましょう。
たとえば、犬の画像があります。その画像に写っているのが「犬」であると認識し識別するためには特徴的な点に着目する必要があります。特徴的な点として尻尾が長いこと、四足歩行であること、皮膚の模様、尖った耳などを指定します。ちなみに指定する特徴点を「特徴量」と言います。
アルゴリズムは指定された画像の特徴量に反応するようなニューロンを生成し、さらに複数の特徴量に対するニューロンが生成され組み合わされていきます。そしてニューロンの生成と組み合わせが何層にも繰り返されることで、最終的に「犬」という画像が入力されると強く反応するニューロンが生成されます。
しかし、犬には様々な種類が存在するので1つの犬種の画像だけでは不十分です。そこで複数の犬種の画像を大量に読み込ませることで、それらの画像すべてに共通した特徴量に対して反応するニューロンを生成し、組み合わせていきます。
このようにして様々な犬種の画像に対して反応するニューロンの繋がりができます。これが「ニューラルネットワーク」です。そしてこのニューラルネットワーク生成の一連のプロセスのことを「学習」と呼びます。
なんらかの画像をこのニューラルネットワークに認識させると、画像が犬であればニューラルネットワークが強く反応し、画像が犬であると識別しますし、そうでなければ反応せず識別されません。このように「学習」によって生成されたニューラルネットワークを「推論モデル」と言い、画像などを「推論モデル」に認識させ識別する行為を「推論」と言います。
現在のAIは「学習」と「推論」という2つの過程を通して処理を行います。
汎用型AIと特定型AI
AIという考え方が登場したのは1950年代で、当時、想定されていた人口知能は「人間のあらゆる知能や感覚を超える驚異的なマシン」という「汎用型AI」でした。しかし現在、実現されているのは「特定のタスク」では人間と同等かそれ以上の処理を行える「特化型AI」です。画像・音声認識や将棋や囲碁などのゲーム、ビックデータ解析など様々な分野で活用されています。
この特化型AIがある特定のタスクに関して学習して処理能力を向上させる際に用いられるのが「機械学習」という手法です。
機械学習は先程の「学習」の過程を通して特徴量からニューラルネットワークを生成していき、「推論」をできるようにすることです。
機械学習と同様にニューラルネットワークを利用した技術に「ディープラーニング(深層学習)」がありますが、これは機械学習方式の一種であり、発展形になります。発展形ということで、ディープラーニングが機械学習よりも優れているところは「特徴量を人間が指定する必要がなく、ニューラルネットワーク自身がデータの特徴量を自動的に抽出し、見つけ出せる」ことです。
要するに大量のデータを入力すれば、データの特徴量を自動的に見つけ出し、自ら「学習」して賢くなっていくことができます。そのため、人間が見つけ出せなかった特徴量を見つけたり、人間が処理するには多すぎるデータ(ビックデータ)などのから一定の法則などの特徴量を見つけることができるのです。
このディープラーニングの誕生が昨今様々な分野でビックデータの活用が進んでいる理由です。
ニューラルネットワークの種類とその仕組み
ディープニューラルネットワーク(DNN)
ニューラルネットワークの中で最もよく利用されている深層学習モデルです。人間の脳の仕組みを模倣したニューラルネットワークを何層にも重ねることで実現されています。
DNNが注目されるようになったのはコンピューターの処理能力が劇的に向上したことにより、大規模に何層にも重ねたニューラルネットワークを構築できるようになったためです。
畳み込みニューラルネットワーク(CNN)
主に画像認識のAIでよく利用される深層学習モデルです。画像認識以外にも音声認識などの自然言語処理にも利用されていて、最も成果を出している学習モデルの1つでもあります。
CNNの特徴はそれぞれの層間すべてが結合している(全結合)わけではない「順伝播型ニューラルネットワーク」になっていることです。
CNNの例として、画像認識ではGoogle フォトの自動タグ付けやGoogle レンズの画像認識による検索、自然言語処理ではSiri,Amazon Alexa,Googleアシスタントなどの音声AIやニューラル機械翻訳を導入して翻訳精度が向上したGoogle翻訳などがあります。
再帰型ニューラルネットワーク(RNN)
通常のニューラルネットワークを拡張して時系列データを処理することができるようにしとのが「再帰型ニューラルネットワーク」です。別名リカレントニューラルネットワーク、フィードバックニューラルネットワークとも呼ばれます。
時系列データというのは時間の経過とともに値が変化していくデータのことで、Webサイトのアクセス数やセンサーのデータなど様々なデータを時系列データとして扱う事ができます。
さらに過去の文脈を考慮した処理も行えるためGoogle翻訳のような機械翻訳やAIスピーカーなどの自然言語処理による音声認識に利用され、効果を発揮しています。
ニューラルネットワークの分類と回帰
ニューラルネットワークを理解するうえで重要なのが、「分類」と「回帰」という2つの概念です。
分類
分類は「教師あり学習」の1つで、複数の条件分岐などから予測を行う際に利用されます。音声認識では、過去のデータと照合しその音声が持つ特徴を見つけ出す際に応用されています。
また、人物のプロフィールなどからその人の性格を予測したり、天気予報から数日後の天気を予測したりすることにも応用が可能です。
回帰
回帰は分類と同様に教師あり学習の1つで、連続性のあるデータを読み取り、その傾向を読み取る際に利用されます。
分類との違いは、その後どうなるかを予測するのではなく、データからどのような傾向が読み取れるかを分析する際に利用されることです。統計学に似た技術でもあります。
ニューラルネットワークの問題点
ニューラルネットワーク、特に畳み込みニューラルネットワークは、画像認識や音声認識など近年のAIの発展に大きく貢献しました。しかし、CNNには大きな欠点があるとグーグルの天才AI研究者Hinton氏は述べています。
それはCNNの「プーリング」という操作です。プーリングとはたとえば画像をいくつかのウィンドウに区切り、それぞれのウィンドウの中から重要な情報だけを残して、画像を縮小する方法です。その時、各ウィンドウから最大値を取るため、縮小された画像は元の画像の特徴量を維持しています。
しかし、プーリングは画像から取り出した重要な情報(特徴量)の位置までは気にすることはなく、空間的な位置情報を損失しているとHinton氏は述べています。
たとえば、顔の認識では顔全体ではなく、目や口、鼻などのそれぞれのパーツごとに認識しますが、顔のどこにそれぞれのパーツがあるかは気にしません。そのため、パーツだけでも揃っていれば位置が適当でも正しい顔であると認識してしまうのです。
さらに1つの物体を認識させるために様々な角度の画像を大量に読み込ませる必要があるなどの欠点があります。このようなニューラルネットワークの欠点を克服しようとしたのが「カプセルネットワーク」です。
ニューラルネットワークを超える「カプセルネットワーク」の仕組み
「カプセルネットワーク」はHinton氏が発表した論文の中で提案した学習モデルで、従来のニューラルネットワークであるCNNの欠点であった空間的位置関係の損失を回避することができます。
カプセルネットワークはそれぞれのパーツの特徴量を独立的に捉えるだけではなく、それぞれが全体でどのような位置関係にあるのかまでも着目します。ひとつひとつのカプセルに入ったニューロンがそれぞれの特徴に着目し、その上それぞれの位置関係にも着目します。
これにより、従来よりも少ないデータの学習で効率よく「機械学習」を行えるようになり、より人間に近い形での「学習」が可能になるため、 これまでよりも「機械学習」の可能性を広げる技術として注目されています。
ニューラルネットワークはAIの基本技術
今、話題のAIや機械学習、ディープラーニングを理解する上で欠かせないニューラルネットワークについて解説しました。少し難しいかもしれないですが、様々なAI技術を理解するためにも大切な技術・概念になっているので、ここでしっかりと理解しておきましょう。