Chapter 03

対数関数

対数は「底を何回かけたらその数になるか」を表します。指数の逆演算であり、ディープラーニングの損失・確率の式で指数とともに使われます。

home.mathDiagramTitle

home.mathDiagramDescription

対数は指数の逆です。y=log2xy = \log_2 x2y=x2^y = x を満たします。以下は y=log2xy = \log_2 x とその逆関数 y=2xy = 2^x のグラフです。

012345678012345678xy(x=1.0, y=0.00)(x=0.0, y=1.0)

例: log21=0\log_2 1 = 0, log22=1\log_2 2 = 1, log24=2\log_2 4 = 2, log28=3\log_2 8 = 32y=x2^y = x のとき yylog2x\log_2 x

紫: y=log2xy=\log_2 x、青緑: y=2xy=2^x

対数関数とは何か

対数は指数の逆の概念です。ax=ba^x = b のとき、「aa を何乗すると bb になるか」を logab=x\log_a b = x と書きます。aabb真数xx対数値(指数)です。
例: 23=82^3 = 8 なので log28=3\log_2 8 = 3log10100=2\log_{10} 100 = 2102=10010^2 = 100)。底が ee のときは自然対数 ln\ln と書き、ディープラーニング・統計でよく使います。
対数の和・商: loga(bc)=logab+logac\log_a(b \cdot c) = \log_a b + \log_a c(積は対数では和に)、loga(b/c)=logablogac\log_a(b/c) = \log_a b - \log_a c(商は差に)。AIでは確率をかけるときこの形がよく出ます。
AIでは損失関数(例: 交差エントロピー)や確率の式で log\log が使われます。かけ算を足し算に変えるので計算・微分が楽になります。なぜ対数か? 確率を何度もかけると数が小さくなりすぎるため、log\log で積をにすると計算が安定し勾配降下法でも扱いやすくなります。
ディープラーニング損失関数は、確率に log\log をかけて「どれだけ外れたか」を測ることが多いです。対数を押さえると「なぜ log\log を使うか」が分かります。
確率を何度もかけると数が非常に小さくなります。log\log を使うと積がになり計算が安定し、勾配降下法でも扱いやすくなります。
AIでは対数は「確率・スコアを対数スケールにする」ために使われます。交差エントロピー損失は正解クラスの対数確率の符号を反転させ、正解に近づくほど損失が 0 に近づくようにします。対数の和 log(p1p2)=logp1+logp2\log(p_1 \cdot p_2) = \log p_1 + \log p_2 が損失・確率の式に頻出します。
log28\log_2 83(23=82^3=8
log24\log_2 42
log39\log_3 92
真数が底のべき乗のときだけ対数が整数になります。
対数でよく使う演算(AIの損失・確率の式でよく使われます):
演算公式説明
対数の和logab+logac=loga(bc)\log_a b + \log_a c = \log_a(b \cdot c)積 → 和
対数の差logablogac=loga(b/c)\log_a b - \log_a c = \log_a(b/c)商 → 差
べき乗loga(bn)=nlogab\log_a(b^n) = n \cdot \log_a b指数は前に
計算
対数の和log22+log24=1+2=3\log_2 2 + \log_2 4 = 1 + 2 = 3
対数の差log28log22=31=2\log_2 8 - \log_2 2 = 3 - 1 = 2
下の問題で対数の値・真数・対数の和対数の差を求めてください。