ディープラーニングで学習をしていると、その学習過程で一体どんなことが起きているんだろう、と神秘的な気持ちになることがあります。ニューラルネットワークは人間の脳を模した、比較的単純な数学モデルです。ChatGPTのようなモデルには何千億という膨大なパラメーターが使われていますが、私が扱うパラメーターが数 100 万未満のモデルでさえ、非常に奥深いものがあります。

学習では「損失関数」と呼ばれるものが使われ、ある入力データ から特定の出力データ
を予測する際の誤差を表す関数です。例えば、モデルを関数
として、あるデータペア
に対して
という損失関数を考えます。この関数では、
が
からずれると値が大きくなり、逆にずれが小さいほど
も小さくなります。言い換えれば、損失関数の値が小さければ小さいほど、モデルは正確に入力から出力を予測しているのです。
損失関数 は、ニューラルネットワークのパラメーターに (
を通して) 依存する関数でもあります。訓練データ全体に対する
の値を最小化するパラメーターを見つけることで、モデルは予測能力を獲得します。
パラメーター空間の広さ

わかりやすいように、パラメーターが3つだけ (例えば ) の場合を考えてみましょう。この場合、損失関数
は3つのパラメーターによる空間上で定義されます。これは数学的には、我々が普段暮らしている3次元空間 (
) と同じです。
このパラメーター空間で最適な値を探す過程は、例えるなら「どこからか漂う良い香りの源を突き止めるようなもの」です。「匂いの強さ」を表す量S (Smell)を考えると、Sは三次元空間の各点 (x, y, z) で一意の値を持ちます。これは、損失関数 が (
) の各点で値を持つことに対応します。香りの源(匂いが最大の点)を探すのは、損失関数の最小値を探すのと数学的には同じです。
では、このパラメーター空間はどれほど広いのでしょうか?コンピューター上ではパラメーターの値はデジタル化され、通常、 という形式で表現されます。この形式では各パラメーターが
通りの数字で表されます。例えばパラメーターが3つなら、全体の組み合わせは
通りになります。そして、もしパラメーターが100万個程度(決して大規模ではない)だとすると、その組み合わせは
通りにもなります。これは想像を絶する広さです。
宇宙との比較
この広さを、宇宙の規模と比較してみましょう。観測されている宇宙の広さはおよそ140億光年です。物理学では「プランクスケール」(詳しくは天文学辞典を参照)と呼ばれる、 m と極小の長さの単位があります。これより小さいスケールでは「一般相対性理論」と「量子力学」を融合させなければならないか、あるいはそもそも私達の空間の最小単位かもしれません。
140億光年 ( m) の宇宙をプランクスケールの立方体でデジタル化すると、そのブロックの総数は
個となります。なんとニューラルネットワークのパラメーター空間は、宇宙とはまったく比較にならない広さなのです。

次元の威力
仮に各パラメーターの取りうる値を極端に減らし、 のたった2通りしか取らないとしましょう。それでもその組み合わせ(ブロックの数)は
通りになります。これも、宇宙の広さ (
) とは比べものにならない大きさです。正真正銘、ニューラルネットワークのパラメーター空間は宇宙とは比べ物にならないくらい広いようです。
上の計算を見て気づかれた方もいるかもしれませんが、次元が高くなるほど、空間内の取りうる位置の数が爆発的に増加します。これは、次元が1増えるごとに組み合わせの数が掛け算で増えるためです。
どんな文脈だったかかは忘れましたが、昔父親に「宇宙は頭の中に入ってるんだよ」と言われたことがありますが、このスケール感を知ってしまうと、本当に宇宙が頭の中に収まっているかのようです。むしろ、わたしたちの頭の中にあるニューラルネットワークの世界は、宇宙よりも遥かに広大なのかもしれません。
最新記事の更新情報等はXでお知らせしています。フォローはこちら
コメント