Lensa ML

Cara Kerja Logaritma dan Eksponensial

Langkah 1 dari 6: Pertumbuhan Eksponensial

Fungsi yang laju tumbuhnya sama dengan nilainya sendiri

Nilai x1.00
xeˣ(1.0, 2.72)
x
1.0
exp(x)
2.72
Kemiringan
2.72

Untuk x positif, pertumbuhannya makin cepat. Kemiringan (garis putus-putus kuning) tetap sama dengan nilainya, jadi makin besar exp(x), makin cepat pula ia tumbuh.

Geser slider Nilai x dari −3 ke 3 dan bandingkan kartu exp(x) dan Kemiringan. Keduanya selalu sama, karena turunan eˣ adalah eˣ. Sifat itulah yang mendefinisikan e: dari semua basis b, hanya e yang menghasilkan kurva dengan kemiringan tepat 1 di x = 0. Basis lain berbeda sebesar sebuah konstanta, karena bˣ = e^(x·ln b). Pada x = 3 nilainya sekitar 20,1, dan pada x = 10 nilainya sekitar 22.000, jadi eksponensial cepat mengalami overflow pada floating point.

Langkah 2 dari 6: Logaritma Natural

Invers dari exp, yang mengubah perkalian menjadi penjumlahan

Nilai x2.72
y = xeˣln(x)
x
2.72
ln(x)
1.001
exp(ln(x))
2.72

ln(2.7) = 1.00, dan ln tumbuh lambat. Kedua kurva saling mencerminkan terhadap y = x karena ln adalah invers dari exp.

Geser slider Nilai x di antara 0,1 dan 10, lalu pastikan exp(ln(x)) mengembalikan x. Log hanya terdefinisi untuk input positif, dan nilainya menuju minus tak hingga saat x mendekati 0. Log dengan basis lain adalah log natural yang diskalakan ulang: log₂(x) = ln(x)/ln 2. Teori informasi memakai basis 2 dan mengukur dalam bit; sebagian besar kode ML memakai basis e dan mengukur dalam nat. Satu nat sekitar 1,44 bit.

Langkah 3 dari 6: Perkalian → Penjumlahan

Kenapa logaritma mengubah hasil kali menjadi jumlah

a3.00
b4.00
Skala linear3.0a4.0b12.0a × bSkala log01.10log(a)1.39log(b)2.48log(a)+log(b)
a × b
12.0
log(a)
1.099
log(b)
1.386
log(a)+log(b)
2.485

log(3.0) + log(4.0) = 2.48 = log(12.0). Logaritma mengubah perkalian menjadi penjumlahan, dan penjumlahan stabil secara numerik serta mudah diturunkan.

Atur a dan b dengan kedua slider, lalu bandingkan log(a) + log(b) dengan kartu a × b. Identitas log(ab) = log(a) + log(b) adalah alasan mistar hitung bisa bekerja dan alasan skala log menampilkan perubahan perkalian sebagai langkah yang sama besar. Dua aturan terkait mengikutinya: log(a/b) = log(a) − log(b) dan log(aᵏ) = k·log(a). Dalam ML, aturan ini mengubah hasil kali probabilitas per contoh menjadi jumlah loss per contoh, sehingga gradient mini-batch menjadi unbiased estimate dari gradient penuh.

Langkah 4 dari 6: Log dalam Cross-Entropy

Kenapa prediksi salah yang penuh keyakinan dihukum berat

Probabilitas prediksi p0.70
p−log(p)0.250.50.751zona bahaya−log(0.70) = 0.36
p
0.70
−log(p)
0.357
Penalty
RENDAH

Pada p = 0.70, loss-nya 0.36. Model belum yakin, dan penalty mendorongnya ke jawaban yang benar.

Geser Probabilitas prediksi p menuju 0,01 dan lihat −log(p) naik. Pada p = 0.9, loss-nya 0,105; pada p = 0.5, nilainya 0,693; dan pada p = 0.01, nilainya 4,61. Penalty ini tidak punya batas atas, jadi satu kesalahan yang penuh keyakinan bisa mengalahkan banyak jawaban benar. Untuk model yang mengeluarkan probabilitas lewat softmax, gradient loss ini terhadap setiap logit hanyalah p dikurangi target, dan ini membuat training stabil.

Langkah 5 dari 6: Eksponensial dalam Softmax

Dari logit mentah ke probabilitas yang terkalibrasi

Logit A2.00
Logit B1.00
Logit C-0.50
Temperature T1.00
Logit mentahA2.0B1.0C-0.5↓ softmax(z / T) ↓ProbabilitasA69.0%B25.4%C5.7%
Temp
1.0
Prob. maks
69.0%
Entropy
1.106

Di dekat nilai standar T = 1, selisih d antara dua logit menjadi rasio probabilitas exp(d/T). Normalisasi membuat jumlah probabilitasnya 1.

Atur ketiga logit dan Temperature T. Dengan logit awal 2, 1, dan −0,5 pada T = 1, probabilitasnya sekitar 69%, 25%, dan 6%. Menambahkan konstanta yang sama ke setiap logit tidak mengubah apa-apa, karena konstanta itu saling menghapus dalam rasio. Pustaka memanfaatkan fakta ini untuk keamanan numerik: mereka mengurangi logit terbesar sebelum memangkatkan, sehingga tidak ada pemanggilan exp yang mengalami overflow. Trik yang sama, bernama log-sum-exp, menghitung log(Σ exp(zᵢ)) tanpa overflow.

Langkah 6 dari 6: Kenapa Kita Memakai Log

Log-likelihood menjaga angka tetap stabil saat data bertambah

Observasi N8
Parameter p (probabilitas heads)0.60
Data (lemparan koin)HTHHHHHHLog-likelihood (setiap observasi)Jumlah = log-likelihood-4.492
Hasil kali (likelihood)
0.60H × … × 0.60H × 0.40T × … × 0.40T
= 0.607 × 0.401 = 0.011197
Jumlah (log-likelihood)
log(0.60) + … + log(0.60) + log(0.40) + … + log(0.40)
= 7×(-0.511) + 1×(-0.916) = -4.492
Likelihood
0.0112
Log-likelihood
-4.492
MLE heads/N
0.88

Dengan 8 observasi, likelihood sudah 0.011197, sementara log-likelihood -4.49 masih angka biasa.

Naikkan Observasi N dan geser probabilitas heads p untuk mencari puncak log-likelihood. Lemparan koin tetap sama saat p berubah, karena p milik model, bukan milik data. Puncaknya ada di p = heads/N, yaitu maximum likelihood estimate, dan log tidak menggesernya karena log naik secara ketat. Pada nilai awal N = 8, datanya berisi 7 heads, jadi puncaknya di dekat p = 0.88. Pada floating point 64-bit, nilai positif terkecil sekitar 5 × 10⁻³²⁴. Pada p = 0.5, likelihood dari 1.075 lemparan koin adalah 2⁻¹⁰⁷⁵, yang lebih kecil lagi dan dibulatkan menjadi nol.

Apa itu logaritma dan eksponensial dalam machine learning?

Fungsi eksponensial exp(x) = eˣ memangkatkan bilangan Euler e ≈ 2.718 dengan x, dan logaritma natural ln(x) adalah inversnya: ln(eˣ) = x. Eksponensial mengubah jumlah menjadi hasil kali dan tumbuh lebih cepat daripada polinomial mana pun. Logaritma mengubah hasil kali menjadi jumlah dan memampatkan rentang angka yang sangat besar menjadi kecil.

Keduanya muncul di seluruh machine learning. Softmax dan sigmoid memakai eksponensial untuk mengubah skor mentah menjadi probabilitas. Cross-entropy loss, log-likelihood, KL divergence, dan perplexity semuanya memakai logaritma. Skala log juga standar untuk pencarian learning rate, dan model sering memprediksi log-variance atau log-odds karena nilainya bisa berupa angka apa pun, positif maupun negatif.

Ide utama

  • exp(x) adalah turunannya sendiri, dan nilainya selalu positif.
  • ln(x) adalah invers dari exp(x) dan hanya terdefinisi untuk x > 0.
  • Logaritma mengubah hasil kali menjadi jumlah: log(ab) = log(a) + log(b).
  • Cross-entropy loss adalah −log dari probabilitas yang diberikan pada jawaban benar.
  • Softmax memangkatkan logit secara eksponensial lalu menormalkannya; temperature mengatur setajam apa hasilnya.
  • Bekerja di ruang log mencegah likelihood dari dataset besar mengalami underflow menjadi nol.

Pertanyaan umum

Kenapa e menjadi basis yang dipakai dalam machine learning?

Karena turunan eˣ adalah eˣ dan turunan ln(x) adalah 1/x, tanpa konstanta tambahan. Basis lain menambahkan faktor ln(b) ke setiap gradient. Pilihan basis tidak mengubah parameter mana yang optimal, hanya satuan loss-nya.

Apa arti log loss?

Log loss adalah nama lain dari binary cross-entropy: −[y·log(p) + (1 − y)·log(1 − p)], dirata-ratakan atas seluruh contoh. Model yang selalu memprediksi 0,5 mendapat skor ln 2 ≈ 0.693, dan ini baseline yang berguna. Makin rendah makin baik, dan model sempurna mendapat skor 0.

Kenapa model memprediksi log-variance, bukan varians?

Varians harus positif, tetapi output network bisa berupa bilangan real apa pun. Memprediksi s = log σ² lalu memakai σ² = exp(s) menjamin varians positif tanpa constraint. Variational autoencoder dan banyak model ketidakpastian memakai parameterisasi ini.

Apa hubungan antara sigmoid dan exp?

Sigmoid adalah σ(x) = 1/(1 + e⁻ˣ), dan nilainya sama dengan softmax dua kelas dengan logit x dan 0. Inversnya adalah logit, ln(p/(1 − p)), yaitu log-odds dari p. Regresi logistik memodelkan log-odds ini sebagai fungsi linear dari feature.

Penjelasan terkait

Referensi

  1. Goodfellow, Bengio & Courville, "Deep Learning", ch. 3 Probability and Information Theory
  2. Deisenroth, Faisal & Ong, "Mathematics for Machine Learning"
  3. Zhang et al., "Dive into Deep Learning", section 4.1 Softmax Regression

Terakhir diperbarui