DEVELOPER’s BLOG

技術ブログ

最初に学ぶ ニューラルネットワークの特徴と利用例

2019.08.02 富田浩世
ニューラルネットワーク 機械学習
最初に学ぶ ニューラルネットワークの特徴と利用例

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

 ニューラルネットワークとはAI (人工知能)のうちの一つ。また、AIの一つである機械学習のうちの一つでもある。(図1)また、人間の脳内にある神経細胞(ニューロン)とそのつながり、つまり神経回路網を数理モデル化したもの。(図2)

image(図1)

 ニューラルネットワークを構成している最小単位は、パーセプトロン(単純パーセプトロン)という。パーセプトロンとは、複数の入力に対して1つの値を出力する関数のこと。パーセプトロンへの入力値を(X1~Xn)とすると、それぞれの入力に対して重み(W1~Wn)が存在する。また、バイアスW0が存在する。

 f(x)(それぞれの入力値(X1~Xn)に対して重み(W1~Wn)を掛け合わせ、それにW0を足したもの)の値が0より大きい場合は1が出力され、0より小さい場合は0が出力される。(図2)f(x)が0より大きくなり1が出力されることをニューロンの発火という。発火のしやすさはバイアス(W0)によって決まり、バイアス(W0)は発火のしやすさを調整する役割をすると言える。

 図のように1つのパーセプトロンは単純パーセプトロンといい、単純パーセプトロンを複数組み合わせたものを多層パーセプトロンという。単純パーセプトロンを複数組み合わせて多層パーセプトロンにすることで、より複雑な関数近似を行うことができ、出力の精度を高めることができる。   image(図2)

 (図2)において

f(x) < 0 → 1

f(x) = 0 → 0 or 1

f(x) > 0 → 0

のような数式は活性化関数といい、ニューラルネットワークやパーセプトロンで用いられている、モデルを表現するための関数である。活性化関数を用いて変換を行うと様々な値の出力が行え、モデルの表現力を高めることができる。​

 パーセプトロンにおいてはステップ関数、ニューラルネットワークではシグモイド関数が主に使われている。

image(図3)

(シグモイド関数はステップ関数を連続的に表現したもの)

 ここで1つ指摘しておきたいのは、単純パーセプトロンを複数組み合わせてできた多層パーセプトロンはほぼニューラルネットワークと言うが、等しいわけではないということである。多層パーセプトロンはステップ関数を用いているが、ニューラルネットワークはシグモイド関数を用いているという点で違いがある。

ニューラルネットワークの構造

image(図4)

(画像や音声などの情報も数値として入力する)

 ニューラルネットワークは、入力層、中間層、出力層の3つから成り立っている。入力層は人間の脳で言う感覚層、出力層は判別層、中間層は情報の処理を行っている部分に置き換えることができる。

 ニューラルネットワークの入力層と中間層、中間層と出力層の間にはニューロン同士のつながりの強度を示す強度W(重み)というものが存在する。ニューラルネットワークでは、この重みを調節することによって、入力したものに対して望む出力(教師データ)に近づけることができる。

※中間層が2層以上のニューラルネットワークをディープラーニングという​

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

 ニューラルネットワークには様々な種類がある。その中でも特によく使われているのが次の3種類である。

  1. RNN(再帰型ニューラルネットワーク)
  2. CNN(畳み込みニューラルネットワーク)
  3. LSTM(Long Short Term Memory)

RNNとLSTMの違い

 (今回は一つ一つを説明することができないため、詳しい内容は別の記事で扱っていく)

 1. RNN(再帰型ニューラルネットワーク)

 再帰型ニューラルネットワーク(Recurrent Neural Network)は主に自然言語処理の分野で使われている。

 それまでのニューラルネットワークでは、入力値は互いに独立したものである必要があった。この場合、画像処理などでは問題ないが言語のように入力値に連続性がある場合は適さない。そこで、RNNでは中間層にループを組み込むことによって前のデータの入力を記憶できるようにした。そのことによって前後のデータが関連付けられるようになり、自然言語処理などの時系列データにも対応できるようになった。RNNは主に、機械翻訳、文章生成、音声認識などに使われている。

image(図5)

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

 畳み込みニューラルネットワーク(Convolutional Neural Network)は一般的なニューラルネットワークと違い、畳み込み層とプーリング層でできている。

 ここでいう畳み込みとは、簡単に言うと画像の特徴を際立たせることである。画像全体から様々な特徴を取り出していき、画像全体をそのまま分析するのではなく、画像より小さなフィルターを画像全体にスライドさせながら、部分部分で分析していく。フィルターを複数枚使って様々な特徴を抽出していく。そして、畳み込み層で抽出した特徴をもとに特徴マップを作成する。

 プーリング層では、特徴マップの要約を行う。特徴マップを小さなウィンドウに区切り、区切ったウィンドウ内の最大値をとっていく。プーリングを行うことによって、特徴の厳密な位置の変化を気にすることなく画像内での特徴を検出することが可能になる。これは、移動普遍性と呼ばれ、画像認識にCNNが向いている大きな理由の一つである。実際のCNNは畳み込み層とプーリング層が何層にも重なってできている。

 プーリング層の後に、多次元のデータを1次元のデータにフラット化していき、ソフトマックス法を用いて分類し、出力していく。​

image(図6)  

 3. LSTM(Long Short Term Memory)

 先ほどのRNNには複雑な構造が故に1つ問題があった。RNNでは入力したデータは全て記憶されてしまい、必要でないデータも記憶してしまうということがあった。そこで、LSTMでは情報を忘れる機能が追加された。それによって、「この情報は必要」と「この情報は必要じゃない」という判断ができるようになった。

 それまでRNNが苦手としていた予測情報と関係情報の距離が長いケースでもLSTMで対処できるようになった。これにより、機械翻訳の精度が飛躍的に向上した。

image(図7)

ニューラルネットワークによって可能になること

 ニューラルネットワークでは、主に以下のことが可能になる。

  1. 画像認識...主にCNNを用いる
  2. 音声認識...主にRNNを用いる
  3. 自然言語処理...主にRNNを用いる
  4. 異常検知...主にCNNを用いる

関連記事

【物体検出】SSD(Single Shot MultiBox Detector)の解説

概要 先日の勉強会にてインターン生の1人が物体検出について発表してくれました。これまで物体検出は学習済みのモデルを使うことが多く、仕組みを知る機会がなかったのでとても良い機会になりました。今回の記事では発表してくれた内容をシェアしていきたいと思います。 あくまで物体検出の入門ということで理論の深堀りや実装までは扱いませんが悪しからず。 物体検出とは ディープラーニングによる画像タスクといえば画像の分類タスクがよく挙げられます。例としては以下の犬の画像から犬

記事詳細
【物体検出】SSD(Single Shot MultiBox Detector)の解説
ニューラルネットワーク 物体検知
【論文】

概要 小説を丸ごと理解できるAIとしてReformerモデルが発表され話題になっています。今回はこのReforerモデルが発表された論文の解説を行います。 自然言語や音楽、動画などのSequentialデータを理解するには広範囲における文脈の依存関係を理解する必要があり困難なタスクです。"Attention is all you need"の論文で紹介されたTransformerモデルは広くこれらの分野で用いられ、優秀な結果を出しています。 例えば機械翻訳

記事詳細
【論文】"Reformer: The Efficient Transformer"の解説
ニューラルネットワーク 論文解説
【論文】

機械学習では、訓練データとテストデータの違いによって、一部のテストデータに対する精度が上がらないことがあります。 例えば、水辺の鳥と野原の鳥を分類するCUB(Caltech-UCSD Birds-200-2011)データセットに対する画像認識の問題が挙げられます。意図的にではありますが訓練データを、 水辺の鳥が写っている画像は背景が水辺のものが90%、野原のものが10% 野原の鳥が写っている画像は背景が水辺のものが10%、野原のものが90% となるように

記事詳細
【論文】"Distributionally Robust Neural Networks"の解説
ニューラルネットワーク 機械学習 論文解説
強力な物体検出M2Detで動画の判別する(google colaboratory)

はじめに この記事では物体検出に興味がある初学者向けに、最新技術をデモンストレーションを通して体感的に知ってもらうことを目的としています。今回紹介するのはAAAI19というカンファレンスにて精度と速度を高水準で叩き出した「M2Det」です。one-stage手法の中では最強モデル候補の一つとなっており、以下の図を見ても分かるようにYOLO,SSD,Refine-Net等と比較しても同程度の速度を保ちつつ、精度が上がっていることがわかります。 ※https:

記事詳細
強力な物体検出M2Detで動画の判別する(google colaboratory)
ニューラルネットワーク 機械学習 画像認識

お問い合わせはこちらから