「重みをガウス分布(正規分布)で初期化」「対称性の破れ」が、なぜ必要なのか分からない。
学習前の重みを、平均0・小さな分散の正規分布でランダムに置く。全部同じ値だと各重みの区別がつかず学習が進まない(対称性の破れ)。
実績のない新設子会社の引当率を、最初は根拠の薄いまま、ゼロ近傍で少しずつ違う値としてばらまくのに似ている。
なぜ全科目を同じ値にしないか。全部同じだと、どの科目がどう効いたのか区別がつかなくなり、月次実績で修正しようにも動かしようがない。少しずつ違えておくから、実績との差で各々を別々に寄せていける。
平均0・小さい分散にするのは、最初から大きく振らずに「ほぼ横並びの当て推量」から出発し、データで妥当値へ寄せていくため。
新設子会社の引当率を、実績がないままゼロ近傍で少しずつ違う値として置いた状態。 全科目を同じ値にすると区別がつかず(=対称性が破れず)、月次実績で各々を別々に寄せられない。だからわざとバラす。
⚠️ 初期化の分散の取り方には理論(Xavier等)がある。ここは「区別をつける」直感に絞った例示。
この簿記アナロジーが、Karpathy のオリジナル200行のどの行に当たるか。
matrix = lambda nout, nin, std=0.08: [[Value(random.gauss(0, std))
for _ in range(nin)] for _ in range(nout)]
state_dict = {'wte': matrix(vocab_size, n_embd),
'wpe': matrix(block_size, n_embd),
'lm_head': matrix(vocab_size, n_embd)}random.gauss(0, std=0.08)=平均0・小さな分散の正規分布で各重みを別々の値に。全部違えるから後で個別に修正できる(対称性の破れ)。
出典: karpathy / microgpt.py (本体は原文ママ、コメントのみ日本語に補足)