4.1 Függvény, határérték és derivált

4.1.1 Cél, előismeret és induló kérdés

Ez az egység a valós függvények differenciálszámításának azt a minimális részét építi fel, amelyre a neurális hálózatok tanításának matematikája épül. A 3.1. Vektor, norma és skalárszorzat alfejezetben bevezetett távolságfogalmat használjuk: a differenciahányados nevezője két pont távolsága, a számláló pedig a hozzájuk tartozó függvényértékek különbsége. A 3.4. Sajátérték, SVD és spektrális határ alfejezetből most csak annyit használunk fel, hogy a lineáris leképezés a későbbi többdimenziós derivált központi gondolata; ebben az alfejezetben minden objektum skalár–skalár függvény.

Induló becslés: egy képfeldolgozó eljárás a 0,310{,}31 bemenetre 0,2520{,}252 értéket ad, a 0,320{,}32 bemenetre pedig 0,2610{,}261 értéket. Körülbelül mennyit változik a kimenet, ha a bemenetet 0,310{,}31-ről 0,3130{,}313-ra állítjuk? A válaszhoz a változás és a bemenetváltozás hányadosát kell értelmeznünk.

4.1.2 A differenciahányados és a derivált definíciója

Legyen f:D⊆ℝ→ℝf:D\subseteq\mathbb R\to\mathbb R valós függvény, és legyen a∈Da\in D a DD tartomány belső pontja, azaz valamely δ>0\delta>0 esetén az (a−δ,a+δ)(a-\delta,a+\delta) intervallum is DD-ben van. Minden olyan h≠0h\neq 0 lépésközre, amelyre a+h∈Da+h\in D, definiáljuk a differenciahányadost (difference quotient):

Dhf(a)=f(a+h)−f(a)h. D_h f(a)=\frac{f(a+h)-f(a)}{h}.

A kifejezés az (a,f(a))(a,f(a)) és (a+h,f(a+h))(a+h,f(a+h)) pontokon átmenő szelő meredeksége. A hh lehet negatív is; ekkor a szelő a bal oldali pont felé mutat.

A derivált (derivative) az aa pontban a differenciahányados határértéke, ha ez a véges határérték létezik:

f′(a)=limh→0Dhf(a)=limh→0f(a+h)−f(a)h. f'(a)=\lim_{h\to 0}D_h f(a) =\lim_{h\to 0}\frac{f(a+h)-f(a)}{h}.

Pontosabban: f′(a)=L∈ℝf'(a)=L\in\mathbb R, ha minden ε>0\varepsilon>0 számhoz van olyan δ>0\delta>0, hogy minden 0<|h|<δ0<|h|<\delta, a+h∈Da+h\in D esetén |Dhf(a)−L|<ε|D_h f(a)-L|<\varepsilon. A 0<|h|0<|h| feltétel fontos: a differenciahányados h=0h=0-ban nincs értelmezve, a határérték mégis közelíthető mindkét oldalról. Ha a határérték nem létezik vagy nem véges, akkor ff az aa pontban nem differenciálható.

Az induló kérdésben a két adat közötti differenciahányados

0,261−0,2520,32−0,31=0,0090,01=0,9. \frac{0{,}261-0{,}252}{0{,}32-0{,}31} =\frac{0{,}009}{0{,}01}=0{,}9.

Ha feltesszük, hogy a kimenet közelítőleg ezzel a lokális sebességgel változik, akkor a 0,3130{,}313 bemenethez tartozó becsült kimenet

0,252+0,9⋅(0,313−0,31)=0,252+0,0027=0,2547. 0{,}252+0{,}9\cdot(0{,}313-0{,}31) =0{,}252+0{,}0027=0{,}2547.

Ez a gondolatmenet pontosan a derivált elsőrendű közelítését használja; a hibáját a későbbi Taylor-részben vizsgáljuk.

4.1.3 Folytonosság és differenciálhatóság viszonya

Az ff folytonos az aa pontban, ha limx→af(x)=f(a)\lim_{x\to a}f(x)=f(a). Szavakkal: elég kis bemenetváltozásra a kimenet is tetszőlegesen kis változást mutat. A folytonosság gyengébb feltétel, mint a differenciálhatóság.

Tétel (differenciálhatóságból következik a folytonosság). Ha ff differenciálható az aa pontban, akkor ff folytonos is aa-ban.

Bizonyítás. A különbséget szorzattá alakítjuk. Minden x≠ax\neq a esetén, amelyre a hányados értelmes,

f(x)−f(a)=f(x)−f(a)x−a⋅(x−a). f(x)-f(a)=\frac{f(x)-f(a)}{x-a}\cdot(x-a).

Ha x→ax\to a, akkor az első tényező a definíció szerint f′(a)f'(a)-hoz tart, a második pedig 00-hoz. A szorzat határértéke a két véges határérték szorzata, tehát

limx→a(f(x)−f(a))=f′(a)⋅0=0. \lim_{x\to a}\bigl(f(x)-f(a)\bigr)=f'(a)\cdot 0=0.

Ebből limx→af(x)=f(a)\lim_{x\to a}f(x)=f(a), vagyis ff folytonos aa-ban. A x=ax=a eset triviálisan teljesíti az egyenlőséget. Az állítást beláttuk.

A megfordítás nem igaz. Az f(x)=|x|f(x)=|x| függvény folytonos 00-ban, de nem differenciálható ott. Valóban, h>0h>0 esetén

Dhf(0)=|h|−|0|h=hh=1, D_h f(0)=\frac{|h|-|0|}{h}=\frac{h}{h}=1,

míg h<0h<0 esetén

Dhf(0)=|h|h=−hh=−1. D_h f(0)=\frac{|h|}{h}=\frac{-h}{h}=-1.

A jobb és bal oldali hányados különböző, így a kétoldali határérték nem létezik.

4.1.4 Levezetés: a négyzetfüggvény deriváltja

A kötelező levezetést a q:ℝ→ℝq:\mathbb R\to\mathbb R, q(x)=x2q(x)=x^2 függvényre végezzük el, közvetlenül a definícióból. Rögzített a∈ℝa\in\mathbb R és h≠0h\neq 0 esetén

Dhq(a)=(a+h)2−a2h=a2+2ah+h2−a2h=2ah+h2h=2a+h. \begin{aligned} D_h q(a) &=\frac{(a+h)^2-a^2}{h} \\ &=\frac{a^2+2ah+h^2-a^2}{h} \\ &=\frac{2ah+h^2}{h} \\ &=2a+h. \end{aligned}

Az utolsó lépésben h≠0h\neq 0 miatt egyszerűsíthetünk. A 2a+h2a+h kifejezés h→0h\to 0 esetén a 2a2a értékhez tart, mert a konstans 2a2a-hoz egy nullához tartó tagot adunk. Ezért

q′(a)=limh→0(2a+h)=2a. q'(a)=\lim_{h\to 0}(2a+h)=2a.

Mivel az aa tetszőleges volt, a deriváltfüggvény q′(x)=2xq'(x)=2x minden x∈ℝx\in\mathbb R pontban. A levezetés feltétele pusztán h≠0h\neq 0; a négyzetfüggvény mindenütt differenciálható.

Ellenőrzésként az a=3a=3 pontban a valódi derivált q′(3)=6q'(3)=6. A h=0,1h=0{,}1 differenciahányados:

3,12−320,1=9,61−90,1=6,1. \frac{3{,}1^2-3^2}{0{,}1} =\frac{9{,}61-9}{0{,}1}=6{,}1.

A h=0,01h=0{,}01 hányados 6,016{,}01; a 2a+h2a+h képlet éppen ezt adja. A hiba a fenti levezetésből pontosan hh.

4.1.5 Taylor első rendű közelítése

A derivált definíciójának átrendezésével kapjuk a lokális lineáris közelítést.

Lemma (elsőrendű Taylor-maradék). Ha ff differenciálható aa-ban, akkor megadható olyan ε(h)\varepsilon(h) függvény, amelyre ε(h)→0\varepsilon(h)\to 0, ha h→0h\to 0, és minden elég kis |h||h| esetén

f(a+h)=f(a)+f′(a)h+hε(h). f(a+h)=f(a)+f'(a)h+h\varepsilon(h).

Bizonyítás. h≠0h\neq 0-ra legyen

ε(h)=Dhf(a)−f′(a)=f(a+h)−f(a)h−f′(a). \varepsilon(h)=D_h f(a)-f'(a) =\frac{f(a+h)-f(a)}{h}-f'(a).

A derivált definíciója szerint ε(h)→0\varepsilon(h)\to 0. Ezt átrendezve:

f(a+h)−f(a)h=f′(a)+ε(h), \frac{f(a+h)-f(a)}{h}=f'(a)+\varepsilon(h),

majd hh-val szorozva és f(a)f(a)-t mindkét oldalhoz adva a kívánt alakot kapjuk. A hε(h)h\varepsilon(h) maradéktag tehát o(h)o(h) rendű: nullához tart akkor is, ha elosztjuk hh-val.

Az elsőrendű Taylor-közelítés ennek a maradéktag elhagyásával kapott lineáris függvénye:

T1(x)=f(a)+f′(a)(x−a). T_1(x)=f(a)+f'(a)(x-a).

A négyzetfüggvénynél a=3a=3 esetén T1(x)=9+6(x−3)T_1(x)=9+6(x-3). Például x=3,1x=3{,}1-re T1(3,1)=9+6⋅0,1=9,6T_1(3{,}1)=9+6\cdot 0{,}1=9{,}6, míg a pontos érték 3,12=9,613{,}1^2=9{,}61. A hiba 0,01=h20{,}01=h^2, és ez a négyzetfüggvényre minden hh-ra pontosan így alakul, mert

(3+h)2=9+6h+h2. (3+h)^2=9+6h+h^2.

Általános sima függvényre a maradék h2h^2 nagyságrendű, ha a második derivált korlátos; ennek formális, Lagrange-féle alakját itt nem bizonyítjuk, mert a következő numerikus hibaelemzéshez elegendő a fenti konkrét eset.

4.1.6 Numerikus lépésköz és a kerekítési határ

A számítógépes gyakorlatban a deriváltat gyakran véges differenciákkal közelítjük. Az előre mutató (forward) differencia a már ismert Dhf(a)D_h f(a). A középső (central) differencia:

δhf(a)=f(a+h)−f(a−h)2h. \delta_h f(a)=\frac{f(a+h)-f(a-h)}{2h}.

A q(x)=x2q(x)=x^2 függvényre a középső differencia valós aritmetikában minden h≠0h\neq 0-ra pontosan 2a2a, mert

(a+h)2−(a−h)22h=4ah2h=2a. \frac{(a+h)^2-(a-h)^2}{2h} =\frac{4ah}{2h}=2a.

A forward differencia hibája ezzel szemben hh, amint fent láttuk. Ez az algebrai, más néven csonkolási hiba.

A lebegőpontos számítás azonban egy második hibaforrást is bevezet. Jelölje u≈2,22⋅10−16u\approx 2{,}22\cdot 10^{-16} a float64 gépi pontosságot. Ha f(a)≈9f(a)\approx 9 nagyságrendű, akkor f(a+h)f(a+h) és f(a−h)f(a-h) kiértékelése egyenként körülbelül u|f(a)|u|f(a)| abszolút hibát hordozhat. A kivonás után a két hiba legfeljebb összeadódik, így a számláló abszolút hibája nagyjából 4u|f(a)|4u|f(a)|. Ezt a 2h2h nevezővel osztva a kerekítési eredetű deriválthiba

Ekerek(h)≈4u|f(a)|2h=2u|f(a)|h. E_{\text{kerek}}(h)\approx \frac{4u|f(a)|}{2h} =\frac{2u|f(a)|}{h}.

Ez hh csökkenésével nő. A forward differencia teljes hibája a q=x2q=x^2 esetben közelítőleg

Eforward(h)≈|h|+2u|f(a)|h. E_{\text{forward}}(h)\approx |h|+\frac{2u|f(a)|}{h}.

Két ellentétes tag összege: a csonkolási hiba hh-val csökken, a kerekítési hiba 1/h1/h-val nő. A minimum nagyságrendileg ott van, ahol a két tag egyenlő:

h≈2u|f(a)|. h\approx \sqrt{2u|f(a)|}.

a=3a=3 esetén ez körülbelül 2⋅2,22⋅10−16⋅9≈6⋅10−8\sqrt{2\cdot 2{,}22\cdot 10^{-16}\cdot 9}\approx 6\cdot 10^{-8}. Általános sima függvényre a középső differencia csonkolási hibája h2h^2 rendű, ezért ott az optimális lépésköz nagyságrendje u1/3≈6⋅10−6u^{1/3}\approx 6\cdot 10^{-6}. Ezek heurisztikus nagyságrendbecslések, nem univerzális képletek: a konstans függ az ff nagyságától, a deriváltak méretétől és a hardveres kerekítési módtól.

A szélsőséges eset jól mutatja a korlátot. Ha a=3a=3 és h=10−16h=10^{-16}, akkor float64-ben a 3+10−163+10^{-16} összeg a 33 legközelebbi lebegőpontos számára kerekedik, mert a 33 körüli két ábrázolható szám távolsága körülbelül 4,44⋅10−164{,}44\cdot 10^{-16}. Ekkor f(a+h)−f(a)=9−9=0f(a+h)-f(a)=9-9=0, így mind a forward, mind a középső differencia 00-t ad a valódi 66 helyett. A tetszőlegesen kis lépésköz tehát nem garantál egyre pontosabb deriváltat.

4.1.7 Kézi példa

Tekintsük a q(x)=x2q(x)=x^2 függvényt az a=3a=3 pontban. A valódi derivált 66. Kézi számítással:

Valós aritmetikában a középső differencia a négyzetfüggvényre mindig 66-ot ad. A forward differencia hibája éppen hh. A float64-ben a nagyon kis hh-nál a fenti kerekítési határ érvényesül: h=10−16h=10^{-16} esetén a függvényértékek numerikusan egybeesnek, és a deriváltbecslés 00 lesz.

4.1.8 Labor: hibagörbe és ellenőrző kód

A következő önálló, CPU-s Python munkamenet a lab/n013_numerical_derivative.py fájlba menthető. A feladat determinisztikus, ezért seedre és GPU-ra nincs szükség. A Python float típusa alapértelmezés szerint float64, ezt a kommentben rögzítjük. Futtatás: python n013_numerical_derivative.py.

"""n013 labor: forward es central difference hibagorbéje q(x)=x^2-re.

Futtatas: python n013_numerical_derivative.py
Kornyezet: CPU, Python 3, float64; nincs veletlen es nincs GPU.
"""
import numpy as np

def q(x):
    """A vizsgalt negyzetfuggveny."""
    return x * x

def forward_diff(f, x, h):
    """Elore mutato differenciahanyados, h > 0."""
    return (f(x + h) - f(x)) / h

def central_diff(f, x, h):
    """Kozepso differencia, h > 0."""
    return (f(x + h) - f(x - h)) / (2.0 * h)

def main():
    x0 = 3.0
    exact = 2.0 * x0
    steps = [1.0, 1e-1, 1e-2, 1e-3, 1e-4, 1e-5,
             1e-6, 1e-8, 1e-10, 1e-12, 1e-16]
    print(f"{'h':>9} {'forward':>14} {'central':>14} "
          f"{'err_forward':>14} {'err_central':>14}")
    for h in steps:
        fwd = forward_diff(q, x0, h)
        cen = central_diff(q, x0, h)
        print(f"{h:9.1e} {fwd:14.10e} {cen:14.10e} "
              f"{abs(fwd-exact):14.6e} {abs(cen-exact):14.6e}")

if __name__ == "__main__":
    main()

A kód által kiírt táblázat valós aritmetikai (csonkolási) részét az alábbi, képletből számított szemléltető táblázat mutatja. A 10−1610^{-16}-os sor a float64 kerekítés következményét jelöli; ez nem elvégzett futtatás, hanem a fenti kerekítési elemzésből származó várt jelenség.

hh forward (valós) középső (valós) forward hiba középső hiba
11 77 66 11 00
10−110^{-1} 6,16{,}1 66 0,10{,}1 00
10−210^{-2} 6,016{,}01 66 0,010{,}01 00
10−610^{-6} 6,0000016{,}000001 66 10−610^{-6} 00
10−1210^{-12} 6,0000000000016{,}000000000001 66 10−1210^{-12} 00
10−1610^{-16} 00 (float64) 00 (float64) 66 66

A hibagörbe szerkezete a forward differenciára:

Forward differencia hibája q(x)=x² esetén, x=3 - Képletből számított szemléltetés, nem mért futás; az utolsó pont a float64 kerekítési határt jelzi.

Az értelmezés: valós aritmetikában a forward hiba egyenesen arányos hh-val, ezért a pontok a grafikon bal alsó tartománya felé haladnak. A float64 tartományban egy ponton túl a kerekítési hiba dominál, és a becslés összeomlik: a 10−1610^{-16} lépésnél a kimenet 00, a hiba pedig a teljes derivált értéke.

4.1.9 Feladatok

F1 (fogalmi, nehézség 1). Definiálja a differenciahányadost és a deriváltat. Magyarázza el, miért következik a differenciálhatóságból a folytonosság, és adjon olyan függvényt, amely folytonos, de nem differenciálható. A példán számítsa ki a jobb és bal oldali differenciahányadosokat.

F2 (levezetési, nehézség 2). Vezesse le a c(x)=x3c(x)=x^3 függvény deriváltját a definícióból. Adja meg a deriváltat az x=2x=2 pontban, majd az elsőrendű Taylor-közelítést h=0,1h=0{,}1 esetén. Számítsa ki a pontos függvényértéket, a közelítést és a különbséget.

F3 (implementációs, nehézség 1). Írjon Python-függvényt, amely az ff függvényhez, az xx ponthoz és a hh lépésközhöz visszaadja a forward és a középső differenciát. Tesztelje a q(x)=x2q(x)=x^2, x=3x=3, h=10−2h=10^{-2} bemenettel. Ellenőrizze, hogy a forward érték 6,016{,}01-hez, a középső érték 66-hoz van 10−1210^{-12} abszolút tűrésen belül.

F4 (hibakeresési, nehézség 2). Egy hallgató a deriváltat a lehető legkisebb hh-val akarja pontosabbá tenni, ezért h=10−30h=10^{-30}-at ír a kódba. A q(x)=x2q(x)=x^2, x=3x=3 esetben a függvény 0,00{,}0 deriváltat ad vissza. Lokalizálja a hiba okát, mondja meg a következményt, javítsa a lépésközt, és ellenőrizze h=10−5h=10^{-5} esetén a javított eredményt.

F5 (kísérlettervezési, nehézség 3). Tervezzen kísérletet egy általánosabb, de zárt alakban deriválható függvény, például f(x)=sinxf(x)=\sin x, x=1x=1 esetén annak meghatározására, hogy a középső differencia mely hh értéknél adja a legkisebb abszolút hibát a cos1\cos 1 referenciaértékhez képest. Adja meg a hh-rácsot, a metrikát, a döntési szabályt, az ismétlés szükségességét és az érvényességi korlátokat. Nem egyetlen előre megadott „helyes” hh-t várunk, hanem korrekt protokollt.

4.1.10 Megoldások és indoklás

F1. A definíciókat a fenti szakasz tartalmazza. A differenciálhatóságból a folytonosság a szorzat határértékén keresztül következik; a bizonyítás a tételnél olvasható. Ellenpélda: f(x)=|x|f(x)=|x|, folytonos 00-ban, mert limx→0|x|=0=|0|\lim_{x\to 0}|x|=0=|0|. A jobb oldali differenciahányados h>0h>0-ra 11, a bal oldali h<0h<0-ra −1-1. A két oldali határérték különbözik, ezért a derivált nem létezik.

F2. Rögzített aa-ra és h≠0h\neq 0-ra:

Dhc(a)=(a+h)3−a3h=a3+3a2h+3ah2+h3−a3h=3a2h+3ah2+h3h=3a2+3ah+h2. \begin{aligned} D_h c(a) &=\frac{(a+h)^3-a^3}{h} \\ &=\frac{a^3+3a^2h+3ah^2+h^3-a^3}{h} \\ &=\frac{3a^2h+3ah^2+h^3}{h} \\ &=3a^2+3ah+h^2. \end{aligned}

h→0h\to 0 esetén a 3ah3ah és h2h^2 tagok nullához tartanak, tehát c′(a)=3a2c'(a)=3a^2. Az a=2a=2 pontban c′(2)=12c'(2)=12. Az elsőrendű Taylor-közelítés:

T1(2+h)=c(2)+c′(2)h=8+12h. T_1(2+h)=c(2)+c'(2)h=8+12h.

h=0,1h=0{,}1-re T1(2,1)=8+1,2=9,2T_1(2{,}1)=8+1{,}2=9{,}2. A pontos érték 2,13=9,2612{,}1^3=9{,}261, a hiba 0,0610{,}061. A hiba összetevői az elhagyott 3ah2+h3=6⋅0,01+0,001=0,0613ah^2+h^3=6\cdot 0{,}01+0{,}001=0{,}061 tagok.

F3. Az előírt függvény:

import numpy as np

def q(x):
    return x * x

def numdiff(f, x, h):
    forward = (f(x + h) - f(x)) / h
    central = (f(x + h) - f(x - h)) / (2.0 * h)
    return forward, central

fwd, cen = numdiff(q, 3.0, 1e-2)
print(fwd, cen)  # varhatoan 6.01 es 6.0 kornyeken
assert abs(fwd - 6.01) < 1e-12
assert abs(cen - 6.0) < 1e-12

A h pozitív, az x float64 skalár. A középső differencia a qq-ra valós aritmetikában pontosan 2x2x, a 10−1210^{-12} tűrés a kerekítési zajt is elnyeli; a forward érték analitikusan 2x+h=6,012x+h=6{,}01.

F4. A hiba oka: h=10−30h=10^{-30} esetén float64-ben 3+h3+h a legközelebbi ábrázolható számra, gyakorlatilag 3,03{,}0-ra kerekedik, mert a 33 körüli gépi felbontás nagyjából 4,44⋅10−164{,}44\cdot 10^{-16}. Ezért q(3+h)−q(3)=0q(3+h)-q(3)=0, és a hányados 00. A következmény: a derivált becslése a valódi 66 helyett 00, vagyis a hiba 100%100\%-os. Javítás: válasszunk mérsékelt lépésközt, például h=10−5h=10^{-5}-öt. Ekkor q(3,00001)−q(3)q(3{,}00001)-q(3) kiszámítható, és a forward differencia körülbelül 6,000016{,}00001; a középső differencia 66-hoz közeli. A visszaellenőrzés: a fenti F3 kódban h=10−5h=10^{-5}-re a forward hiba 10−510^{-5} körüli, a középső hiba 10−1210^{-12} alatti tűréssel elfogadható.

F5. Egy lehetséges protokoll. Cél: hh hatásának feltérképezése a középső differencia hibájára. Megfigyelési egység: egyetlen skalár kiértékelés; nincs mintavételi zaj, ezért ismétlés nem szükséges, legfeljebb több xx ponton való robusztusságvizsgálat. Rács: geometriai sorozat, például h∈{10−1,10−2,…,10−16}h\in\{10^{-1},10^{-2},\ldots,10^{-16}\}, esetleg az u1/3≈6⋅10−6u^{1/3}\approx 6\cdot 10^{-6} környékén sűrítve. Metrika: |δhf(1)−cos1||\delta_h f(1)-\cos 1|, a referencia a zárt alakú derivált. Döntés: azt a hh-t jelentjük, amely a rácson a legkisebb hibát adja, és mellette megadjuk a hibát a szomszédos hh értékeken is, ne csak egyetlen minimumot. Érvényességi korlát: az optimum függ az ff skálájától, a hardveres kerekítéstől és a float64-től; más függvényre vagy más xx pontra nem vihető át automatikusan. A mérést determinisztikus, seed nélküli CPU-kóddal lehet elvégezni, és a nyers hibasorozatot kell rögzíteni.

4.1.11 Tipikus tévedés és ellenpélda

A leggyakoribb tévedés: „minél kisebb a numerikus lépésköz, annál pontosabb a derivált”. A fenti q(x)=x2q(x)=x^2, x=3x=3 példa cáfolja: h=10−16h=10^{-16} esetén float64-ben x+h=xx+h=x, ezért a számláló nulla, és a becsült derivált 00 a valódi 66 helyett. A hiba oka a kivonási jegyvesztés (catastrophic cancellation), amit a 2u|f(a)|/h2u|f(a)|/h nagyságrendű kerekítési tag ír le. A helyes szemlélet: a lépésközt a csonkolási és kerekítési hiba együttes optimuma körül kell választani, és az optimum függ a feladattól.

4.1.12 Önellenőrzés és visszahívás

Ellenőrizze, hogy ki tudja mondani a derivált ε\varepsilon–δ\delta definícióját, le tudja vezetni x2x^2 deriváltját, és el tudja magyarázni, miért folytonos minden differenciálható függvény. Korábbi fogalom visszahívása: a 3.1. Vektor, norma és skalárszorzat alfejezetben a két pont távolságát a különbségvektor euklideszi normájaként definiáltuk; a differenciahányados nevezője éppen ilyen távolság a valós egyenesen, a számláló pedig a függvényértékek különbsége.

4.1.13 Rövid összefoglaló

A differenciahányados két függvényérték különbségét osztja a bemenetek különbségével, és a szelő meredekségét adja. A derivált ennek határértéke, ha a lépésköz nullához tart; a négyzetfüggvényre a definícióból 2x2x adódik. A differenciálhatóságból következik a folytonosság, fordítva nem, amit az abszolútérték-függvény mutat. Az elsőrendű Taylor-közelítés a lokális lineáris helyettesítést adja, o(h)o(h) maradékkal. Numerikusan a túl kicsi lépésköz kivonási jegyvesztést okoz: a csonkolási hiba csökken, a kerekítési hiba nő, ezért van optimális hh.

4.1.14 Következő alkalmazás

A 4.2. Parciális derivált és gradiens a többváltozós függvények parciális deriváltját és gradiensét vezeti be. A 4.3. Jacobi-mátrix, láncszabály és VJP pedig a Jacobi-mátrixszal és a vektor–Jacobi-szorzattal a backpropagation pontos algebrai nyelvét építi fel; ekkor a skalár lépésköz helyett már az iránymenti deriváltakat vizsgáljuk.

4.1.15 Források