ニューラルネットワークとは、人間の脳の仕組みを模倣した論理モデルのことです。
脳の仕組みを極度に単純化すると次のようになります。
上の仕組みを論理モデルにしたものをニューラルネットワークといいます。最も単純なニューラルネットワークが単純パーセプトロンです。
複数のニューロン間の情報伝播を単純化したものが階層型ニューラルネットワークあるいは多層パーセプトロンといいます。
入力層のニューロンでは信号処理を行わず、受け取った入力信号をそのまま中間層(隠れ層という)のニューロンへ伝えるとする。中間層と出力層は上式により入力→出力の処理をして、出力信号を他のニューロンへ伝える。
ここでは中間層を一層としたが、通常は多層にしています。人間の脳はもっと複雑なメカニズムになっていますが、5層~10層程度で近似できるといわれています。
出典:村上・泉田研究室「生体ニューロンについて」(2017)
(
http://ipr20.cs.ehime-u.ac.jp/column/neural/chapter2.html)
入力層に多様な信号を与えて出力層からの信号を得たとき、それが正しいか誤りであるかを人間が判定します(実際には、正解を付けた入力データを与える)。中間層での重み(w)を変更することにより、正しい結果を得る確率を大にすることができます。その代表的な方法にバックプロパゲーション(誤差逆伝播法)があります。
2006年にジェフリー・ヒントンらは、オートエンコーダとディープ・ビリーフ・ネットワークを提唱しました。
オートエンコーダとは、機械学習において、ニューラルネットワークを使用した次元圧縮のためのアルゴリズムです。
右図において、xが動物の写真だとして、ニューラルネットワークが足の数、毛並み、鼻の位置などの特徴を分析して、新しい層zを作りだす。このときxの個数よりもzの個数のほうが小さい(次元圧縮)のが通常なので、xの代わりにzを使えば、処理量が少なくなります。それをエンコードといいます。逆に、zからx(x')に復元することをデコードといいます。
オートエンコーダは、データを小さな情報量に圧縮する方法をニューラルネットワークに学習する方法です。
ディープ・ビリーフ・ネットワークとは、多層ニューラルネットワークで良い初期解を得る方法です。
これらにより、4層以上のニューラルネットワークにおいて、単純なバックプロパゲーションよりも、効果的な学習ができるようになります。
オートエンコーダとディープ・ビリーフ・ネットワークにより、人工知能は急速に発展し、2010年代にはディープラーニングへといわれるようになりました。深層学習と訳されますが、この深層(ディープ)とは多層に近い意味です。
ディープラーニングでは、例えば画像のデータを与えた場合、コンピュータは与えられた画像のデータの一部を消して、「消えた部分を残った部分から推測せよ」という問題に変更して自分自身に質問するのです。これにより、画像を1つ与えるだけで、多数のの擬似的問題を作ることができます。また、推測の過程で特徴の分析など次元圧縮が行われます。
ディープラーニングでは、教師なし学習が取り入れられています。例えば、人の顔を識別するとき、識別の特徴を人間が指定すると、髪や眼の色、顔の輪郭など観念的な項目になりがちです。コンピュータが自動的に行うのであれば、大量データから統計的に人間が気づかない識別特徴を見つけることがあります。しかも、人間よりも細部にまで調べることができます。そのため、特定の人を探すポイントが多くなります。
CNN(convolutional neural network, 畳み込みニューラルネットワーク)は主に画像認識の分野で用いられるディープラーニングの方法です。
CNNの構造は、通常のディープラーニングと似ています。
中間層(隠れ層)に相当するのが、畳み込み層とプーリング層のペアです。
出力層は、全結合層と出力層になります。
畳み込み層は、単純型細胞のような役割で、画像の1点の情報を持ちます。また、入力画像とは別にカーネルという重み行列を用意します。カーネルの移動間隔をストライドと呼びます。
プーリング層は、複雑型細胞フィルタのような役割で、画像内のある領域毎に画像のサンプリング操作を行います。空間的な位置のずれを吸収し、同一の特徴であるとみなす。
全領域でのプーリング層をまとめて全結合層にします。これで画像全体の特徴が得られることになります。
ハッシュ関数とは、入力されたデータに一定の手順で計算を行い、入力値の長さによらずあらかじめ決められた固定長の出力データを得る関数のことで、配列の検索や暗号通信などに広く用いられてきました。近年ビッグデータや画像など超大規模データを対象とするディープラーニングの分野で、ハッシュ関数による効率化が注目されています。
これらのデータは、元データが巨大であり、それらの要素の組合せの数も巨大になるが実際に起こる組合せは少ないという内在的希薄性があります。
それに着眼して、ハッシュ関数を用いることにより、計算量を劇的に小さくすることができるといわれています。
ニューロコンピュータとは、ニューロンやシナプスの構造や情報処理メカニズムを基礎とし、脳を模倣した回路をもつチップから構成され、脳の持つ情報処理を人工的に実現させることを目的としたコンピュータです。通常は、多層ニューラルネットを持ち、バックプロパゲーションによる学習の仕組みを実装しています。
エキスパートシステムなどの実装はノイマン型コンピュータで可能です。「ニューラルネットワーク」などもプログラムや学習システムの構造を意味する概念で、ハードウェアとしての回路などを示すものではなく、ノイマン型コンピュータでソフトウェアによりシミュレートすることができます。これはニューロコンピュータとはいいません。
ニューロコンピュータは、1990年頃までは、人工知能理論実証のために実験的なハードウェアが試作されたことはあるが、実務用途にはなりませんでした。1990年代には、産業用ロボットなどの機器の制御に小規模なニューロ的なチップが組み込まれるようになりましたが、特定用途に特化したものでした。実務的なニューロコンピュータが注目されるようになったのは2010年代に入ってからです。
ニューロコンピュータを構成しているのはニューロチップです。それをSyNAPSEチップということもあります。この分野ではIBMがリーダ的存在です。
2011年に、IBMはコグニティブ・コンピューティング・チップを開発しました。コグニティブとは認知という意味。ニューロコンピューティングに特化したSyNAPSEチップです。2014年には、これを発展させてTrueNorthを開発しました。郵便切手サイズのチップ1個内に100万個相当のニューロン、2.56億個相当のシナプスをもっていました。
人間の脳のニューロンは1000億個、シナプスは150兆個程度だとされているので、到底比較にはなりませんが、このチップ1個だけでもゴキブリ程度ですし、1000個並べれば猫程度になるのですから、特定の分野に限定すれば実用化の時代になったといえるでしょう。
IBMは、AIを「Artificial Intelligence(人工知能)」ではなく、「Augmented Intelligence (拡張知能)」として人間の知識を拡張し増強するものと定義しています。それにならったのか、ニューロコンピュータをブレインコンピュータということもあります。