ニューラルネットワークの基礎知識#
ニューラルネットワーク,機械学習プロジェクトで知っておくべきこと
簡単な歴史#
-
Wiki にも記述が ありますが,ウォーレン・マッカロックとワイルダー・ピッツによる形式ニューロンが最初のニューラルネットワークであるとされています
-
1958年にフランク・ローゼンブラット がパターン認識をするモデルパーセプトロンを提案しました。
- 最初の多層ニューラルネットワークは1965年のアレクセイ・イバヒネンコとされています(Schmitthuber, 2014)。
- しかしマービン・ミンスキーが 1969 年にパーセプトロンの限界を指摘します。
- 1975 年ポール・ウェブロス が誤差逆伝播法を最初に提案しました。 これは 排他的論理和 を解くことができました。
-
2009 年から 2012 年にかけて リカレントニューラルネットワークsによるディープニューラルネットワークを用いて ユルゲン・シュミットフーバー のチームが国際コンペで優勝しています。
-
2011 年に畳込みニューラルネットワーク,マックスプーリング,完全結合層からなるアレックスネットが イメージネットコンテストで優勝します。
ニューラルネットワークとは何か?#
ニューラルネットワークとは 合成写像です。 すなわち関数を重ねた複雑な関数といった意味合いです。 構成要素としては以下の 3 要素からなります:
- ニューロン(ユニット)
- 結合係数
- バイアス項


このニューロンを基本構成要素として複雑な関数(すなわち脳)を近似することを 考えるのがニューラルネットワークです。
ニューロン(ユニット) Neurons(Units)#
どのようにニューロンを結合させるかをアーキテクチャといったりします。 いくつのニューロンを用いるかは,場合によりけりです。 いくつのニューロンが必要なのかについては,現在あまり問題にされません。 それは我々の脳がいくつのニューロンから構成されているのかを 問うことにそれほど意味がないからです。 ヒントンは,ニューロン数や層数を問うのは愚かな(silly)ことだとまで言っています。
もっともニューロンは以下のような伝達方程式で表記されます。

ここでそれぞれ は入力, は結合係数, はバイアス, は出力を表し, を 活性化関数(activation function)と呼びます。 <!--Imagine having multiple of these. Since now, you will be computing multiple outputs for the same data-point(input). These outputs then get sent to another unit as well which then computes the final output of the NN.
If all of this flew past you then, keep reading and you should be able to understand more. -->
結合係数 Connection Weights#
ニューロン間の情報伝達はパルス状の電気信号で伝達されます。 伝達効率を表すのが結合係数です。実際のニューロンでは神経伝達物質によって 電気信号が化学的過程によって媒介されることになりますが,ここでは深入りしません。
バイアス Biases#
バイアス項はニューロンの活性化しやすさを表すパラメータとなります。
ハイパーパラメータ Hyper-Parameters#
ニューラルネットワークの学習(訓練とも言う)時には結合係数とバイアス項を変化させる ことが行われます。この訓練によっては変化しない変数のことをハイパーパラメータと呼びます。
- どのようなアーキテクチャを採用するか
- 層数
- 層内のユニット数
- 活性化関数
- 学習率
- 学習打ち切り基準
上記はいずれもハイパーパラメータです。 従って恣意的であるとも言えます。 1980 年代から,ニューラルネットワークは素人の統計学であると批判されてきました(Anderson, 1990)。 この批判は現在でも有効です。
活性化関数 Activation Functions#
伝達関数,写像などとも呼ばれます。あるニューロンに対する入力信号を出力信号へと変換する 関数のことです。いくつかの活性化関数を列挙しました。
層 layers#
解くべき問題が複雑であれば,それだけ層が深くなると考えられます。 層が深くなることによって,入力情報の豊かな表現を獲得できると考えられてきました。 表現学習 representation learning と言ったりします。
3 層までのニューラルネットワークは深層学習とは言いません。 4 層以上を深層学習と呼びます。
学習時に何が起こっているのか?#
学習時には勾配降下法と 呼ばれる最適化手法が用いられます。 勾配降下法は,最近傍の局所最小を求める技法の一つですが, 収束を加速させるための各種技法が提案されています。
外部リンク#
- YouTube:
- Coursera:
- Neural Networks for Machine Learning by University of Toronto]{#2486}
- Deep Learning Specialization by Andrew Ng
- Introduction to Deep Learning by National Research University Higher School of Economics