AI研究所 - AI(人工知能)に脅かされないために、AI(人工知能)を作る側の人間になる -

HOME  >  ニューラルネットワークの種類まとめ

公開日:2020.10.20 

ニューラルネットワークの種類まとめ

機械学習

現代のAI(人工知能)ブームを支えている手法は機械学習と深層学習になります。
特に機械学習の中の1つニューラルネットワークは、深層学習(ディープラーニング)の基礎ともなる手法です。
今回は、このニューラルネットワークにはどのような種類があるのか代表的なものを紹介していきます。

本記事の内容

ニューラルネットワークとは
ニューラルネットワークの種類
オートエンコーダ
畳み込みニューラルネットワーク(CNN)
リカレントニューラルネットワーク(RNN)
LSTM
敵対的生成ネットワーク(GAN)
まとめ

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

ニューラルネットワークとは、コンピュータ上で人間の脳の働きをモデル化したものです。
人間の脳には、神経細胞(ニューロン)が大量にあり、これらが結びつき神経回路と呼ばれるネットワークを構成しています。
神経細胞での電気信号の伝達によって脳内の情報は処理されます。
このことを数理モデルで表したものがニューラルネットワークと呼ばれます。
ニューラルネットワークは機械学習の一つであり、さまざまな手法が研究されてきました。
現在の最先端分野であるディープラーニングはニューラルネットワークを応用した手法で、ディープニューラルネットワークとも呼ばれます。
ニューラルネットワークの構造は、「入力層」「隠れ層」「出力層」からなります。
「隠れ層」は複数の層を持つこともできます。
この層が特に深くなったものをディープラーニング(深層学習)と呼びます。
各層は「活性化関数」と呼ばれる関数を持ち、つながりは「重み」で表されます。
この形をニューラルネットワークの基本形として、さまざまな学習方法が考案されています。
ニューラルネットワークについてのページはこちらにもあります。

 

ニューラルネットワークの種類

ニューラルネットワークにはさまざまな種類があります。
代表的なものを順番に紹介していきます。

オートエンコーダ

2006年にジェフリー・ヒントンによってオートエンコーダ(自己符号化器)が提唱されました。
オートエンコーダは、入力と出力が同じになるようなニューラルネットワークになります。
入力層から隠れ層には情報の圧縮が行われ、隠れ層から出力層へはそれを元に戻すといった処理が行われます。
一度入力情報を要約して、それを元に戻そうとして出力するので、大事な情報だけが隠れ層に反映されます。
入力層→隠れ層となる処理をエンコード、隠れ層→出力層となる処理をデコートと呼びます。
ジェフリー・ヒントンはさらにオートエンコーダを積み重ねる「積層オートエンコーダ」と呼ばれる手法も提唱しています。
オートエンコーダは異常検知などに用いられます。

畳み込みニューラルネットワーク(CNN)

畳み込みニューラルネットワーク(CNN)は、2次元データをそのまま入力として用いることができるので主に画像処理で用いられます。
構造は、入力層と出力層の間に「畳み込み層」と「プーリング層」の2種類の層を交互に組み合わせた形になっています。
「畳み込み層」では、カーネルと呼ばれるフィルタを用いて入力データの特徴を抽出します。
畳み込みニューラルネットワークではこのフィルタの各値が重みとなります。
畳み込みにより得られたデータは特徴マップと呼ばれます。
また、「プーリング層」では、maxプーリングやavgプーリングと呼ばれる処理を行い、特徴マップの最大値や平均値をとります。
これにより、特徴に対する依存性を減らすことができます。
畳み込み層と違うのは、学習すべきパラメータは存在せず、決められたルールに従って計算するだけとなります。
この二つの層をペアとして繰り返し処理を行い、特徴量を組み合わせることで画像を認識するのが畳み込みニューラルネットワークになります。
畳み込みニューラルネットワークの発展形として、AlexNet、VGC、GoogLeNetや
ResNetなどの種類のモデルがあります。

リカレントニューラルネットワーク(RNN)

次は、時系列データ分野で用いられるリカレントニューラルネットワーク(RNN)について見ていきましょう。
音声認識などにおいて、音声の意味をより理解するためには前後の時系列データの情報が必要になってきます。
リカレントニューラルネットワークは、時系列データを時間軸に沿ってそのまま入力できるようにし、時間情報を反映できるようにしたものです。
構造としては、前の時系列データの隠れ層を次の時系列データの入力と合わせて学習に用いる形になっています。
リカレントニューラルネットワークでも、ニューラルネットワーク同様、誤差逆伝番法を用います。
誤差は過去に遡って時間軸に沿って反映する必要があり、リカレントニューラルネットワークではこの誤差をBack-Propagation Through Time(BPTT)と呼んでいます。
この技術は主に、自然言語処理や音声処理などに用いられます。
スマートスピーカーなどに使われている技術です。

LSTM

リカレントニューラルネットワークには、主な問題点が2つあります。
それは、勾配消失問題と、入力・出力重み衝突と呼ばれる問題です。
勾配消失問題は通常のニューラルネットワークでも起こるもので、誤差を逆伝番する際に、過去に遡るにつれて勾配が消失していってしまう問題です。
また入力・出力重み衝突とは、今の時点と将来の時点での関係性で重みの大きさに矛盾が生じるといった問題です。
この問題は、時系列データを扱ううえでの問題点と言えます。
これらの問題を解決するために考えられた手法が、LSTMになります。
LSTMでは、ニューラルネットワークにおけるユニットごとに2つの機構からなるLSTMブロックを導入しています。
一つ目の機構はセルと言われるものです。
これは、誤差を内部にとどめ、勾配消失を防ぐためのものです。
二つ目の機構はゲートと言われるものです。
必要な情報を必要なタイミングで保持または消却させるためのもので、入力ゲート、出力ゲート、忘却ゲートの3つからなります。
入力ゲートと出力ゲートによって入力・出力重み衝突が解決でき、忘却ゲートでは誤差がセルに溜まるのを防ぐリセットの役割を担っています。
LSTMはリカレントニューラルネットワークを応用させたものですが、その他の発展形として、GRU、BiRNN、RNN Encoder-DecoderやAttentionなどもあります。

敵対的生成ネットワーク(GAN)

最後に、生成モデルと呼ばれ、今非常に注目を集めている敵対的生成ネットワーク(GAN)について見ていきましょう。
ここで、生成モデルとは、元データの分布を推測し、それに基づいて元データと同じようなデータを生成するためのモデルになります。
敵対的生成ネットワーク(GAN)の考え方は簡単に言うと、いたちごっこで競い合うイメージです。
構造としては、ジェネレータとディスクリミネータの2種類のネットワークを構成されています。
ジェネレータでは入力としてランダムベクトルを受け取り、データを生成して出力します。
ディスクリミネータで入力として受け取ったデータが本物かジェネレータで生成された偽物かを予測して出力します。
つまり、ジェネレータはディスクリミネータが間違えるようなデータを生成するように学習し、ディスクリミネータは生成されたデータをきちんと見抜けるように学習します。
このいたちごっこにより、最終的に本物と偽物の見分けがつかないデータが作られることになるのが敵対的生成ネットワーク(GAN)になります。
GANについての動画もあります。

まとめ

ニューラルネットワークの種類について代表的なものを紹介しました。
ニューラルネットワークの基本の形から、画像データや時系列データなど、それぞれの分野の問題点を解決する手法がたくさん開発されています。
それぞれの手法の特徴を理解していただけたでしょうか。
最後までご覧いただきありがとうございました。

 


参考になったら「いいね!」と「シェア」をお願いします!!

このエントリーをはてなブックマークに追加
AI(人工知能)セミナー開催中