Hoppa till innehållet
AI-grafen
D· AI-utvecklarematematik· ca 45 min· grundläggande — ändras sällan· verifierad 2026-09-20

Exponentialfunktioner

Kunna beskriva tillväxt och avtagande med exponentialfunktioner och koppla dem till e^x.

Öva i Mattegrafen ↗ · Matematik 1c

Förkunskaper

Intuition

Linjärt: du lägger till lika mycket varje gång. 100, 110, 120, 130 …

Exponentiellt: du multiplicerar med lika mycket varje gång. 100, 110, 121, 133,1 …

Skillnaden verkar liten i början och blir sedan gigantisk.

StegLinjärt (+10)Exponentiellt (×1,1)
0100100
10200259
5060011 739
1001 1001 378 061

Formen är f(x)=a⋅bxf(x) = a \cdot b^x där bb är tillväxtfaktorn:

bbVad som händer
b>1b > 1växer
b=1b = 1står still
0<b<10 < b < 1avtar mot noll, men når den aldrig

Talet e≈2,718e \approx 2{,}718 är det val av bas som gör derivatan enklast möjlig: ddxex=ex\frac{d}{dx}e^x = e^x. Funktionen är sin egen derivata. Det är därför ee dyker upp överallt i matematiken bakom ML.

Formellt

Halveringstid och fördubblingstid. Om något avtar med faktorn bb per steg:

halveringstid=ln⁡0,5ln⁡b\text{halveringstid} = \frac{\ln 0{,}5}{\ln b}

För tillväxt används samma formel med ln⁡2\ln 2. Tumregeln «72-regeln» är en approximation av just detta: vid pp procents tillväxt per period är fördubblingstiden ungefär 72/p72/p perioder.

Var exponentialfunktioner dyker upp i ML:

SammanhangUttryckVarför
Lärhastighetsschemaηt=η0⋅γt\eta_t = \eta_0 \cdot \gamma^tstora steg först, små sedan
Glidande medelvärde (Adam)mt=βmt−1+(1−β)gtm_t = \beta m_{t-1} + (1-\beta)g_tgamla gradienter tappar vikt exponentiellt
Softmaxezi/∑jezje^{z_i} / \sum_j e^{z_j}gör tal till sannolikheter, förstärker skillnader
Diskontering i RLγt\gamma^tframtida belöningar väger mindre
Glömskekurvane−t/τe^{-t/\tau}kunskap bleknar utan repetition

Den sista raden är AI-grafens egen: plattformens mastery-modell låter behärskningen avta exponentiellt med tiden, med en tidskonstant τ\tau som växer varje gång du repeterar. Det är därför andra repetitionen håller längre än den första.

Numerisk fälla. e1000e^{1000} svämmar över i flyttal. Därför räknar man med logaritmer i stället — och därför normaliserar softmax alltid genom att dra bort det största värdet först:

ezi∑jezj=ezi−max⁡z∑jezj−max⁡z\frac{e^{z_i}}{\sum_j e^{z_j}} = \frac{e^{z_i - \max z}}{\sum_j e^{z_j - \max z}}

Samma svar, men inga överflöden. Det är ett av de vanligaste numeriska knepen i hela fältet.

Kod

import math

# Linjärt mot exponentiellt
for steg in (0, 10, 50, 100):
    print(f"{steg:4d}  linjärt {100 + 10 * steg:>10,}   exp {100 * 1.1 ** steg:>15,.0f}")

# e är sin egen derivata — kontrollera numeriskt
h = 1e-7
for x in (0.0, 1.0, 2.0):
    derivata = (math.exp(x + h) - math.exp(x)) / h
    print(f"x={x}  f(x)={math.exp(x):.5f}  f'(x)≈{derivata:.5f}")

# Halveringstid vid 5 % minskning per steg
b = 0.95
print(round(math.log(0.5) / math.log(b), 1), "steg")     # 13.5 steg

# Lärhastighetsschema
eta0, gamma = 0.1, 0.95
for epok in (0, 10, 50, 100):
    print(f"epok {epok:3d}: lr = {eta0 * gamma ** epok:.6f}")

# Numerisk fälla — och lösningen
z = [1000.0, 1001.0, 1002.0]
try:
    naiv = [math.exp(v) for v in z]
except OverflowError as e:
    print("naiv softmax:", e)                 # math range error

m = max(z)
exp_stabil = [math.exp(v - m) for v in z]
s = sum(exp_stabil)
print([round(v / s, 4) for v in exp_stabil])   # [0.0900, 0.2447, 0.6652]

De sista raderna visar knepet i sin renaste form: att dra bort maxvärdet ändrar inte svaret (faktorn förkortas bort) men tar bort överflödet helt.

Behärskning innebär

  • Skiljer exponentiell från linjär förändring
  • Använder e^x och tolkar tillväxtfaktorn
  • Känner igen exponentiellt avtagande i ML-sammanhang

Logga in för att göra övningarna och bygga upp din behärskning.

Källor

Alla källor och licenser