【数学科出身者の目】"ニューラルネット"は"関数"? 241107

"関数"とは何でしょうか?/
私は、今、この文章を「"純粋数学"を学んだ者」の立場で書いています。
"関数"とは"入力"と”出力”との"2項関係"で次の条件を満たすものです。

すべての x,y1,y2 に対し、<x,y1>∈F かつ <x,y2>∈F ならば、y1=y2 が成立する。

"ニューラルネット"が"関数"であるためには、"入力述定層"と"出力述定層"とが必要です。
"入力述定層"の"述定状態"が与えられると、活性伝搬し、"出力述定層"の"述定状態"が一意に決まります。
"入力述定層"の"述定状態"を「入力述定状態」、"出力述定層"の"述定状態"を「出力述定状態」と呼ぶことにします。

"訓練データ"は <"入力述定状態","出力述定状態"> の"セット(/集団)"です。
"訓練データ"は"関数"です。これを「目標関数」と呼ぶことにします。

"ニューラルネット"に於いて、”パラメータ集団”に それぞれ "値"を割り当て(「パラメータ値集団」)たものを「モデル」と呼びます。
"モデル"は、"入力述定状態"を与えると、活性伝搬し、"出力述定状態"が一意に決まります。つまり、"モデル"は"関数"です。

"モデル"を"訓練"して、”パラメータ集団”を"調整"し、"目標関数”の"定義域"に於いて、"モデル"の"関数値"を "目標関数”の"関数値"に近づけることが"学習"です。

"目標関数”から"モデル"への"差分(/損失)”を正の実数値で評価するものが"損失関数"です。"損失関数"の"入力"は"モデル(/パラメータ値集団)"です。
※"モデル"と"パラメータ値集団"とは、その"アーキテクチャー"上で"1対1対応"するので同一視します。

「"関数”は"入力"を"出力"へ"写像"している。」
故に、
「"モデル”は"入力"を"出力"へ"写像"している。」

これは事実です。しかし、しばしば、次の言い方をされます。

「"関数”は"入力"を"出力"へ"写像"しているに過ぎない。」
故に、
「"モデル”は"入力"を"出力"へ"写像"しているに過ぎない。」

これが専門家を含む多くの人々に「誤った認識」を植え付けています。


この記事が気に入ったらサポートをしてみませんか?