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

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

本記事では、近年の人工知能(AI)ブームを理解するための基本である「ニューラルネットワーク」について解説します。現在話題になっているディープラーニングはニューラルネットワークの発展形です。

実用例はわかりやすくするため、すべてディープラーニングを使ったものにしていますが、なぜ現在ニューラルネットワーク≒ディープラーニングとなっているかということも含めてご紹介します。

初心者の方でも理解できるように解説していますので、ぜひ最後まで読んで、ニューラルネットワークとは何かを理解してください。

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

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

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

ニューラルネットワーク

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

ちなみに、ニューラルネットワークはディープラーニングととても深い関係性があります。現在、ディープラーニングは自動運転や新薬開発などに欠かせない技術です。このディープラーニングもニューラルネットワークの一部になります。

ディープラーニングは、多層ニューラルネットワークを用いた学習方法のことです。つまり、ニューラルネットワークという大きい枠組みにディープラーニングが含まれると考えれば理解しやすいでしょう。また、ニューラルネットワークを過去のものとして捉え、“ディープラーニングの前身”と表現する方も少なくありません。

詳しくは、「話題のディープラーニングとは?初心者向けに1から徹底解説!」をご覧ください。

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

ニューラルネットワークの仕組み

ニューラルネットワークの仕組みを見ていきましょう。ニューラルネットワークは、入力層、出力層、中間層(隠れ層とも呼ばれる、入力層と出力層の間にある層)の3つの層から構成されています。

ニューラルネットワークの仕組み

入力層にデータを入力して、データの指標で特徴量を入力し、出力層にニューロンを入力することで最終結果の算出が可能です。はじめて開発されたパーセプトロンには、隠れ層がありませんでした。そのため、線形分離不可能な問題を解決できないという欠点があったのです。

しかし、隠れ層を複数持つことで、複雑な問題にも解決できるようになりました。隠れ層を複数所有するのがディープラーニングであり、ニューラルネットワークのアルゴリズムで主流の手法です。

ニューラルネットワークの学習とは?

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

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

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

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

学習用の入力データが多ければ多いほど、出力の精度は上がります。この適切な重みを求める方法が勾配法です。

入力データ画像

勾配とは?

『勾配』とは、文字の通り傾斜の程度のことです。ニューラルネットワークにおける勾配は、バイアスやニューラルネットワークの重みを最適化するために、損失関数の最大値から最小値へ数値が移動する勾配のことを指します。そして、このように損失関数を定義してパラメーターをなるべく小さく調整する学習方法が勾配法です。

勾配法には、勾配下降法や誤差逆伝播法があります。勾配下降法は、重みを徐々に小さくし最小になるポイントを探すアルゴリズムのことです。勾配下降法には、最急降下法やバッチ勾配降下法などが広く知られています。

誤差逆伝播法は、先述の通り、別名バックプロパゲーションとも呼ばれ、複雑な数式を分解してシンプル化し、数式の最適化を繰り返し、後ろから順に解いていくアルゴリズムです。

 

ニューラルネットワークの重みとは?バイアスとの関係も

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

ニューラルネットワークにおいて、重み(重みづけ)はシナプス  (*2)結合の強さを表しています。学習によって重みはシナプスごとにその値が変化していきます。そして、重みを求める際は、勾配法を用いるのが一般的です。

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

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

伝達画像

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

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

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

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

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

ニューロン画像

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

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

 

ニューラルネットワークの種類とは?代表的な3種類

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

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

ディープニューラルネットワークとエキスパートシステムは混合してしまう方も多いです。しかし、“人間が教えるエキスパートシステム”と“機械が自ら学習するディープニューラルネットワーク”は大きく異なります。詳しくは、「人工知能「エキスパートシステム」とは?実用例で簡単に理解できる!」をご覧ください。

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

画像認識処理でよく利用される深層学習モデルですが、自然言語処理にも利用され、成果を出しているモデルです。層間が全結合ではない順伝播型ニューラルネットワークをさします。詳しくは、「畳み込みニューラルネットワークとは?手順も丁寧に解説」をご覧ください。

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

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

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

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

 

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

 

AI・機械学習・データサイエンスを基礎から学ぶ

初心者向けの人工知能と機械学習

みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習 【2020年最新版】
みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習 【2020年最新版】

Pythonを使って、機械学習とプログラミングの基礎、必要な数学を勉強しましょう!

機械学習がよくわかる

【キカガク流】人工知能・機械学習 脱ブラックボックス講座 - 初級編 -
【キカガク流】人工知能・機械学習 脱ブラックボックス講座 - 初級編 -

機械学習の考え方、微分、単回帰分析まで一気通貫で解説します。

データサイエンスを深堀り

【世界で34万人が受講】データサイエンティストを目指すあなたへ〜データサイエンス25時間ブートキャンプ〜
【世界で34万人が受講】データサイエンティストを目指すあなたへ〜データサイエンス25時間ブートキャンプ〜

データサイエンティストになるために必要な一連のツールについて学べる!

ディープラーニングを理解!

【Hands Onで学ぶ】PyTorchによる深層学習入門
【Hands Onで学ぶ】PyTorchによる深層学習入門

機械学習・深層学習の復習やPyTorchのライブラリの基本的な使い方など基礎的な内容から段階的にステップアップ