STEP 5・モデル本体(Transformer)

活性化関数 ReLU ― 赤字なら税額ゼロの非対称性

記事で詰まったところ

「ReLU」「活性化関数」「max(0,x)」「非線形性」が、何のためにあるのか分からない。

機械学習ではこう言う

ReLU(x)=max(0,x)。負は0・正はそのまま通す。微分は x>0 で1、x≤0 で0。「効く/効かない」の非対称性をネットに持ち込む。

赤字なら税額0の非対称性

法人税の非対称性に形がよく似ている。税額 = 税率 × max(0, 課税所得)。黒字なら所得に比例して税が増え、赤字なら税額は0で打ち止め(負の税は出ない)。

この「正の側だけ比例して効き、負の側はピタッと止まる」非対称性が ReLU の本質。これがあるから、ネットは単なる比例計算を超えて複雑なパターンを表現できる。

ただし完全一致ではない。純粋な ReLU は黒字域の傾きが1だが、税額は傾きが税率(例 0.3)。「赤字は0で打ち止め」という形は同じで、傾きの大きさだけが違う。

言葉の対応表

microGPT(機械学習)
会計・簿記の言葉
ReLU(x)=max(0,x)
税額=税率×max(0,課税所得)
負は0で打ち止め
赤字なら税額0(負の税はない)
微分: 正で1・負で0
黒字で税率・赤字で0

触って確かめる

税額 = 0.3 × max(0, 課税所得)
税額 18.0 / 傾き(微分) 0.3=税率0.3
純粋な ReLU(x) = max(0, x)
ReLU 60.0 / 傾き(微分) 1=1

どちらも「赤字(負)はゼロで打ち止め、黒字(正)は比例して効く」という形は同じ。 違うのは黒字側の傾きだけ(税額は税率0.3、ReLUは1)。この非対称性が ReLU の本質。

⚠️ 税額は傾きが税率、ReLU は傾き1。形(赤字は0)は同じだが完全一致ではない、という例示。

実際のコード(microgpt.py L50)

この簿記アナロジーが、Karpathy のオリジナル200行のどの行に当たるか。

def relu(self):
    return Value(max(0, self.data), (self,), (float(self.data > 0),))

max(0, x) で負は0・正はそのまま。局所勾配 float(self.data > 0) は正で1.0・負で0.0=黒字だけ効く非対称性。

出典: karpathy / microgpt.py (本体は原文ママ、コメントのみ日本語に補足)