ニューラルネットワークとはヒトの脳の学習機構をソフト的に模倣する手段の一つである。ニューラルネットワークはニューロン同士の結合により構成される。右に示したのがニューロンのイメージである。
ニューラルネットワークにはニューロンの結合の仕方などによりいくつかの種類がある。
出力yは以下のように計算される。
fは活性化関数(入出力関数ともいう)であり、ステップ関数、区分線形関数、シグモイド関数などが用いられる。特にシグモイド関数は、全領域で微分可能であり、また、常に有界の出力(0〜1)なので最もよく用いられている。
複数の単純パーセプトロンの出力ベクトルに行列をかけた物が、多層パーセプトロンである。
単にニューラルネットワークといった場合、フィードフォワードニューラルネットワーク(Feedforward Neural Network; FFNN)を指す。機械学習の非線形モデルにおいて最も単純な物であり、多くの機械学習のモデルの基礎となっている。
アルゴリズムは、入力に行列1をかけ、活性化関数を適用し、行列2をかけた物を出力とする。活性化関数にはシグモイド関数やガウシアン関数などを使う。行列1と行列2を求めるのが学習である。この学習は最適化問題となり、バックプロパゲーション(誤差逆伝播)と呼ばれる。学習には、最急降下法、慣性法、RPROP、Levenberg-Marquardt法、準ニュートン法、共役勾配法などが使われる。なお、これら勾配法では、最小解ではなく局所解に陥る問題があるので、複数の初期値からパラメータ探索を行う必要がある。0に近いパラメータから探索を行うと、0に近い局所解に収束する可能性が高くなり、正則化項をつけたのと似た効果を生んでしまうので、初期値は適切に選ぶ必要がある。
分類問題に使う場合は、色々な手法があるが、出力をシグモイド関数にかけ、0〜1に変換し、それを確率と見なし、交差エントロピー誤差関数を最小化する形で最適化問題を解くというやり方がある。
なお、単純にアルゴリズムを使用した場合、不適切に過学習するので、予測能力向上のため、隠れユニット数を最適数に調整する、誤差関数に正則化項をつけるなどの対策が必要である。隠れ層に対して正則化項をつけると、入力軸方向の高周波成分を除去する働きがある。出力層に対して正則化項をつけると、出力軸方向の小さな変化を除去する働きがある。
フィードフォワードニューラルネットワークにおいて、隠れ層で入力ベクトルとパラメータベクトルの内積をとるところを、入力ベクトルとパラメータベクトルの距離に置き換え、活性化関数をガウシアン関数などの放射基底関数に置き換えた物。入力ベクトルが1次元の場合、つまり実数の場合、単に活性化関数をガウシアン関数などに置き換えるだけで、RBFネットワークになる。
RBFネットワークを発展させた物が、ガウス過程やサポートベクターマシンである。