ニューラルネットワーク(神経網、英: neural network, NN)とは、
- 脳の神経細胞(ニューロン)同士の結び付きで構成された神経回路のこと。(生物学的ニューラルネットワーク、英: biological neural networks, neural circuit)
- 1の特性に類似した数理的モデルのこと。(人工ニューラルネットワーク、英: artificial neural networks, ANN) 本稿ではこちらを記述する。
概要
日本語の「ニューラルネットワーク」は、専ら「人工ニューラルネットワーク」(以下、ANN。)のことを指す。今日では多層ANN系機械学習のことを「ディープラーニング」(深層学習)と称する。
1943年、形式ニューロン(英: formal neuron)[1]と称する人工ニューロンの登場により、ANNの歴史が幕を開ける。形式ニューロンは、以下の数式で表される。
N
H ( ∑wi xi - h )
n=1
今日のANNでは、「閾値」は正負が逆転して「バイアス」と称し、「ヘヴィサイドの階段関数」は同名の関数に限定せず「活性化関数」と称する様になったものの、上記の形式ニューロンは今日のANNのニューロン部分の原型であるといえる。
形式ニューロンをプログラミング言語Python3で擬似的に実装したコードを以下に記す。
import numpy
def like_formal_neuron(in_vec: numpy.ndarray, weight_vec: numpy.ndarray, threshold: float, actfun: object=lambda a: 1.0 if a > 0 else 0.0) -> float:
"""形式ニューロン的なもの。
Extended description of function.
Parameters
----------
in_vec : numpy.ndarray
入力ベクトルを指定します。
weight_vec : numpy.ndarray
重みベクトルを指定します。
threshold : float
閾値(負のバイアス)を指定します。
actfun : object
活性化関数を指定します。
(初期値: ヘヴィサイドの階段関数)
Returns
-------
float
計算結果を出力します。
"""
affine = numpy.dot(in_vec, weight_vec) - threshold
return actfun(affine)
# 閾値(負のバイアス)
h = -1.0
# 重みベクトル
w = numpy.array([0, 1])
# 入力ベクトル
x = numpy.array([0, 0])
# 計算して出力
print(like_formal_neuron(in_vec=x, weight_vec=w, threshold=h)) # --> 1.0
後に、正解の出力を得る為に前述の「重み」(w)と「バイアス」(h)を調節して行くという形の学習能力を備えたパーセプトロン(英: Perceptron)が登場し、ANNの機械学習への応用が始まった。だがしかし、1969年に人工知能学者マービン・ミンスキーらに「線型分離可能なものしか学習できない」と指摘されたことによってANN系機械学習の研究は下火となってしまい、以後暫くの間、サポートベクターマシン(英: support vector machine, SVM)等の非ANN系が機械学習研究の主流派となった。
その後、ボルツマンマシン(英: Boltzmann machine)や誤差逆伝播法(英: Backpropagation)という多層パーセプトロンでも「重み」と「バイアス」の調整を容易にする手段が登場したことにより、「線型分離可能なものしか学習できない」を克服することができた。
ディープラーニング[2]
21世紀に入って、ジェフリー・ヒントンが、ニューラルネットワークのレイヤー(階層)を何段にも重ねれば、高度な推論ができることを示した。これが「ディープラーニング(深層学習)」と呼ばれているものの原型である(ニューラルネットワークのレイヤーが何段にも重ねられていて深い(=ディープ)ことから、この名前が付いている)。
ヒントンらが開発したディープラーニングを採用したトロント大学の「スーパービジョン」は2012年のILSVRC(ImageNet Large Scale Visual Recognition Challenge。世界的な画像認識技術のコンペ)において、他のプログラムに大差をつけて優勝。これがきっかけとなり、ディープラーニングは世界的な注目を集めるようになった。 → ディープラーニング
関連動画
関連項目
脚注
- *「Threshold Logic Unit」とも称する。1943年に神経生理学者・外科医であるウォーレン・マカロックと論理学者・数学者であるウォルター・ピッツが発表した。
- *「人類を超えるAIは日本から生まれる」 松田卓也 廣済堂 2016 pp.42-45
- 6
- 0pt