ニューラルネットワークとは?人工知能の基本を初心者向けに解説!

AI・機械学習

2017/10/06

AI・機械学習

本記事では、近年の人工知能(AI)ブームを理解するための基本である「ニューラルネットワーク」について解説します。

現在話題になっているディープラーニングはニューラルネットワークの発展形です。

実用例はわかりやすくするため、すべてディープラーニングを使ったものにしていますが、なぜ現在ニューラルネットワーク≒ディープラーニングとなっているかということも含めてご紹介することで、初心者でも理解できるように解説していますので、ぜひ最後まで読んで、ニューラルネットワークとは何かを理解してください。

ニューラルネットワークとは?わかりやすく解説!

ニューラルネットワークとは、人間の脳神経系のニューロンを数理モデル化したものの組み合わせのことです。

ニューラルネットワークは、人間の脳のしくみ(ニューロン(*1)間のあらゆる相互接続)から着想を得たもので、脳機能の特性のいくつかをコンピュータ上で表現するために作られた数学モデルです。

ニューラルネットワーク

これは、ニューロンの振る舞いを簡略化したモデルです。人工のニューラルネットワークは生物学的な脳とは異なり、データの伝達方法は事前に層、接続、方向について個別に定義され、それと異なる伝達はできません。

(*1)ニューロン

神経細胞のこと。脳には数多くの神経細胞が存在しており、その結びつきにより情報が伝達されたり、記憶が定着する。神経細胞は細胞体、軸索、樹状突起からなり、ニューロン(神経単位)とは、細胞体と軸索と樹状突起で一つの単位として考えたときの呼び方。

ニューラルネットワークの学習について

ニューラルネットワークは、教師データ(正解)の入力によって問題に最適化されていく教師あり学習と、教師データを必要としない教師なし学習に分けられます。

ニューラルネットワークにおいて、学習とは、出力層で人間が望む結果(正しい答え、正解)が出るよう、パラメータ(重みとバイアス)を調整する作業を指します。機械学習においてニューラルネットワークを学習させる際に用いられるアルゴリズムは誤差逆伝播法です。

誤差逆伝播法は、バックプロパゲーション(BP)ともよばれ、損失関数の微分を効率的に計算する方法の1つです。殆ど毎回正しい答えを出せるようになるまでニューロンの入力に対する重みが最適化されるには、何十万、何百万もの枚数の画像を読み込む必要があります。

ネットワークの最適化はトレーニングあるのみであり、この学習段階を経てニューロンネットワークは正解にたどり着くためのルールを独習できるようになります。そして、正しい出力を得るために必要な、入力層と出力層の間にある層(中間層や隠れ層と呼ばれる層)それぞれにおける入力データに対する適切な重みと勾配がわかってきます。学習用の入力データが多ければ多いほど、出力の精度は上がります。

(*2)シナプス

ニューロン同士の結合間には、シナプスが存在する。シナプスは電気信号を化学物質の信号に変換し、情報を伝達する特別な構造になっている。

 

ニューラルネットワークにおける重みとバイアスとは?

ニューラルネットワークにおいて、学習とは、出力層で人間が望む結果(正しい答え、正解)が出るよう、パラメータ(重みとバイアス)を調整する作業を指します。

一般的に、重み、という場合は、特定の個体ごとに値を設定するのに対し、バイアスという場合は、値を偏らせるるために広く同じ値を設定する際に使います。

ニューラルネットワークにおいて、重み(重みづけ)はシナプス結合の強さを表しています。学習によって重みはシナプスごとにその値が変化していきます。

ニューラルネットワークには、閾値が不可欠です。閾値は判定基準で、基本的に変化しないものです。例えるならニューロンの感度のようなものです。

 

ニューラルネットワークとパーセプトロン

パーセプトロンは、1943年にマッカロック(McCulloch)とピッツ(Pitts)が提案した形式ニューロン(formal neuron)を使い、1958年に ローゼンブラットF.Rosenblattが提案したものです。

形式ニューロンは、例えば入力が3つあり、入力それぞれに対し重みを掛け算した時、その値が閾値を超えていれば出力は1、そうでなければ出力は0、という考え方をします。これは、神経細胞とは発火するかしないかの2パターンであるという意味では似ています。出力もコンピュータに扱いやすい01かのどちらかです。入力に掛け算する重みは、ヘッブ則(*1)から考えられたものです。

ローゼンブラットは形式ニューロンを複数並列に組み合わせた後、出力ニューロンで束ねるという2層の構造をとり、入力と出力の組み合わせを学習し、正しい応答をすることを示しました。

パーセプトロンは流行したものの、すぐに理論的に学習できない問題が存在すること、世の中の問題の大部分はパーセプトロンでは解けない(パーセプトロンでは教師あり学習の線形分離可能な問題しか解けない)ことがわかったことから廃れていきました。

しかし、1986年、ラメルハート(Rumelhart)がパーセプトロンを改良したバックプロパゲーション(Backpropagation, BP)を提唱したことで、非線形分離可能な問題も解けるようになりました。パーセプトロンを組み合わせて3層構造にしたバックプロパゲーションの登場で、ニューラルネットワークは再び注目されることになったのです。

————————————

(*1)ヘッブ則(ヘブ則)

ヘッブ法則は心理学者のドナルド・ヘブ(Donald Hebb)1949年によって提唱された、神経の可逆性の理論の1つで、脳のシナプス可塑性に関する法則。神経細胞Aが神経細胞Bとの接合部であるシナプスにおいて、ニューロン間を頻繁に発火させるのなら、神経細胞Aの情報の伝達効率が良くなるが、長期間発火が起こらなければ神経細胞Bとの情報伝達効率は減退する、という説。繰り返し行う動作は強化され、行わない動作は減退することから、形式ニューロンでは、入力の強化=重みの数値を大きくする、入力の減退=重みの数値を小さくする。

 

色々ある!ニューラルネットワークの種類3選

1.ディープニューラルネットワーク(DNN

もっとも広く利用されている深層学習モデルで、脳の仕組みを模したニューラルネットワークを多層に重ねたものです。近年、コンピュータの計算処理能力が劇的に向上し、ニューラルネットワークを大規模化したDNNを構築可能になったことで真価を発揮できるようになりました。

 

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

画像認識処理でよく利用される深層学習モデルですが、自然言語処理にも利用され、成果を出しているモデルです。層間が全結合ではない順伝播型ニューラルネットワークをさします。

画像認識処理では、Facebook の写真の自動タギング、自然言語処理ではGoogle 翻訳のアップグレードでも話題になったニューラル機械翻訳が有名な例でしょう。

 

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

RNNは、時系列データを扱うことができるニューラルネットワークです。リカレントニューラルネット、フィードバックニューラルネットとも言われます。

文脈を考慮することのできるニューラルネットワークのモデルなので、機械翻訳や音声認識に使われます。近年翻訳の精度が劇的に向上したGoogle翻訳にも採用されています。

 

ニューラルネットワークとは何かの解説は以上になります。

ニューラルネットワークには、現在注目されている人工知能を理解するための基本が詰まっています。

udemyでは、初心者でも人工知能についてわかりやすく学べる動画講座を用意しています。

プロのエンジニアが丁寧に解説しているので、ぜひニューラルネットワークを学んでみませんか?

  

ニューラルネットワークの理解には動画講座がおすすめ

【NumPy・Python3で】ゼロから作るニューラルネットワーク(バックプロップを徹底マスター)

【NumPy・Python3で】ゼロから作るニューラルネットワーク(バックプロップを徹底マスター)

Python 3とNumPyで単層・多層ニューラルネットワークを自作して、機械学習の仕組みを理解しよう。バックプロパゲーションの仕組みをスクラッチで理解することで、ディープラーニングのライブラリを使いこなせるようになります。

動画で学習する

  • シェア
  • ツイート
  • Poket
  • はてなブックマーク
  • フォロー
  • シェア
  • ツイート
  • Poket
  • はてなブックマーク
  • フォロー

関連記事