個々のノードは、入力データ、重み、バイアス(またはしきい値)、および出力で構成される、固有の線形回帰モデルと考えることができます。これを数式で表すと次のようになります。
∑wixi + バイアス = w1x1 + w2x2 + w3x3 + バイアス
出力 = f(x) = 1 if ∑w1x1 + b>= 0; 0 if ∑w1x1 + b < 0
入力層が決定されると、重みが割り当てられます。これらの重みは、ある変数の重要度を判断するのに役立ち、重みが大きい入力ほど、出力に大きな影響を及ぼします。次いで、すべての入力が、それぞれの重みで乗算されたうえで合算されます。そこから、活性化関数を通じて、出力が決定されます。この出力が所定のしきい値を超えた場合、そのノードは「起動」(アクティブ化)し、データがネットワーク内の次の層に渡されます。これにより、1つのノードの出力が次のノードの入力になります。このように、ある層から次の層にデータが渡されるプロセスから、このニューラル・ネットワークはフィードフォワード・ネットワークであると言えます。
バイナリー値を使用して、ある単一ノードがどのような仕組みになっているかを分析してみましょう。この概念は、サーフィンに行くかどうか(はい:1、いいえ:2)など、より具体的な例に適用することができます。行くかどうかの決定が、予測される結果、すなわちyハットとなります。ここで、意思決定に影響する要因として以下の3点が挙げられると仮定します。
- 波の状態は良好ですか。(はい:1、いいえ:0)
- 列は空いてますか。(はい:1、いいえ:0)
- 最近、サメに襲われる事件がありましたか。(はい: 0、いいえ: 1)
次に、それぞれの前提に沿って、入力値を以下のように決定します。
- X1 = 1(良い波がコンスタントに来ているため)
- X2 = 0(人出が多いため)
- X3 = 1(最近はサメが襲ってこないため)
ここで、重みを割り当てて、重要度を決定する必要があります。重みが大きいほど、特定の変数が意思決定または結果にとって、より重要であることを意味します。
- W1 = 5(大きなうねりは頻繁には起きないため)
- W2 = 2(人混みに慣れているため)
- W3 = 4(サメに対する恐怖心があるため)
最後に、しきい値を3と仮定します。これは、-3のバイアス値に変換されます。すべての入力が揃ったら、値を数式に当てはめて、目的の出力値を算出します。
Yハット = (1*5) + (0*2) + (1*4) – 3 = 6
このセクションの冒頭で紹介した活性化関数を使用する場合、6は0より大きいため、このノードの出力は1になると判断できます。この場合、サーフィンに行くことになりますが、重みまたはしきい値を調整すると、このモデルから異なる結果が導き出される場合があります。上記の例のように1つの決定に注目すると、ニューラル・ネットワークが、その前の決定あるいは層の出力に応じて、より一層複雑な決定を行えることがわかります。
上記の例では、パーセプトロンを使用してここに登場する数学の一部を説明していますが、ニューラル・ネットワークではシグモイド・ニューロンを活用します。シグモイド・ニューロンは、0から1の間の連続な値をとれることを特徴とします。ニューラル・ネットワークは決定木と同じように動作し、あるノードから別のノードにデータを伝達します。そのため、0と1の間にあるx値をとることで、単一の変数の変化が任意のノードの出力、そしてニューラル・ネットワークの出力に及ぼす影響は軽減されます。
画像認識や分類など、ニューラル・ネットワークのより実用的なユースケースを視野に入れる場合は、教師あり学習(つまりラベル付きデータ・セット)を活用して、アルゴリズムをトレーニングしていきます。モデルをトレーニングする際には、コスト(または損失)関数を使用して、モデルの精度を評価します。これは、一般的に平均二乗誤差(MSE)と呼ばれることもあります。以下の数式では、
- iは、何番目のサンプルであるかを表し、
- yハットは予測される結果、
- y は実際の値、
- mはサンプル数です。
𝐶𝑜𝑠𝑡 𝐹𝑢𝑛𝑐𝑡𝑖𝑜𝑛= 𝑀𝑆𝐸=1/2𝑚 ∑129_(𝑖=1)^𝑚▒(𝑦 ̂^((𝑖) )−𝑦^((𝑖) ) )^2
最終的な目標は、コスト関数を最小化して、あらゆる観測に適合する精度を確保することです。このモデルはその重みとバイアスを調整する際に、コスト関数と強化学習を使って、収束点(極小値)に到達します。アルゴリズムがその重みを調整するプロセスでは最急降下法が使用されるため、モデルは誤差を減らす(またはコスト関数を最小化する)ための方向を判別することができます。モデルのパラメーターはそれぞれのトレーニング例を使い、最小値に段階的に収束するように調整されます。
ニューラル・ネットワークにおける量的概念の詳しい説明については、このIBM Developerの記事を参照してください。
ほとんどのディープ・ニューラル・ネットワークはフィードフォワードであり、これは入力から出力へと1方向のみに流れることを意味します。ただし、バック・プロパゲーションを通じてモデルをトレーニングすることもできます。これは、出力から入力への反対方向の移動となります。バック・プロパゲーションにより、各ニューロンに関連する誤差を計算し、属性化することができるため、モデルのパラメーターを適切に調整して適合させることが可能になります。