9.1 Neuron és perceptron

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

Ebben az alfejezetben a legkisebb paraméterezett osztályozót, a perceptront építjük fel. A cél, hogy három, gyakran összemosott fogalmat pontosan szétválasszunk: a döntési határt (decision boundary), az aktivációt (activation) és a tanulási szabályt (learning rule). Előismeretként a 4.4. I. ellenőrző pont: matematika és kód megfelelése jelölés- és gradientszemléletét, a 7.4. Numerikus stabilitás és jelentésmegőrző implementáció stabil numerikáját és a 8.4. II. ellenőrző pont: korrekt tanulási állítás tanulási állítások feltételrendszerét idézzük fel. A bináris cél fogalma az 5.1. Esemény, feltétel és véletlen változó alfejezetből ismerős, az empirikus kockázat pedig a 8.1. Kockázat, mintavétel és baseline alfejezetből.

Induló kérdés: az ÉS (AND) kapu négy bemeneti pontja elválasztható-e egyetlen egyenessel, a kizáró VAGY (XOR) négy pontja pedig miért nem? A válasz előtt pontos definíciókra van szükség.

9.1.2 Definíciók és jelölések

Legyen a bemenet x∈ℝdx\in\mathbb R^d oszlopvektor; egy NN elemű batch sorvektoros jelölése X∈ℝN×dX\in\mathbb R^{N\times d}. A bináris cél a perceptron konvenciója szerint yi∈{−1,+1}y_i\in\{-1,+1\}; ez nem azonos a 0/10/1 kódolással, és a tanulási szabály miatt fontos.

Affin score. A perceptron a döntéshez egyetlen valós score-t számol:

s(x)=w⊤x+b,w∈ℝd,b∈ℝ.s(x)=w^\top x+b,\qquad w\in\mathbb R^d,\ b\in\mathbb R.

A könyv általános affin konvenciójában ez a W∈ℝ1×dW\in\mathbb R^{1\times d} súlysor transzponáltja: w=W⊤w=W^\top. Batchben tehát S=Xw+b𝟏NS=Xw+b\mathbf 1_N, alakja N×1N\times 1, a bb skalár sorirányban broadcastolódik. A ww vektor a döntési határ normálisa, bb az eltolás.

Threshold és aktiváció. Klasszikusan küszöbértékkel is írható: a neuron akkor ad +1+1-et, ha w⊤x≥θw^\top x\ge \theta. A θ\theta küszöb és a bb bias közötti kapcsolat b=−θb=-\theta. Az aktiváció a score-ra alkalmazott nemlineáris függvény:

f(x)=sign(s(x))={+1,s(x)≥0,−1,s(x)<0.f(x)=\operatorname{sign}(s(x))=\begin{cases}+1, & s(x)\ge 0,\\-1, & s(x)<0.\end{cases}

Rögzítjük, hogy a határon sign(0)=+1\operatorname{sign}(0)=+1. Ez a függvény nem folytonos, ezért a klasszikus értelemben vett deriváltja a nullában nem létezik; ez az oka annak, hogy a perceptron tanítása nem közönséges gradienslépés.

Döntési határ. A ℋ={x∈ℝd:s(x)=0}\mathcal H=\{x\in\mathbb R^d: s(x)=0\} halmaz egy affin hipersík. A döntési határ a paraméterezett modell geometriai objektuma, míg az aktiváció egy pont kiértékelése. A two paraméterezés különböző skálájú w,bw,b párokkal ugyanazt a hipersíkot adhatja; erre az F1 feladat kérdez rá. A score előjeles távolságtartalma: ℋ\mathcal H távolsága egy xx ponttól |s(x)|/∥w∥2|s(x)|/\lVert w\rVert_2. Ez a normálás teszi a ww normáját lényegessé a geometriai margin szempontjából.

Lineáris szeparálhatóság. A 𝒟={(xi,yi)}i=1N\mathcal D=\{(x_i,y_i)\}_{i=1}^N tanítóhalmaz lineárisan szeparálható (linearly separable), ha létezik (w,b)(w,b), amelyre minden ii-re

yi(w⊤xi+b)>0.y_i(w^\top x_i+b)>0.

A szigorú egyenlőtlenség azt jelenti, hogy egyetlen tanítópont sincs a döntési határon. Ha yi=+1y_i=+1, a pontnak a pozitív féltérben, ha yi=−1y_i=-1, a negatív féltérben kell lennie. Ez a feltétel a modell kapacitására vonatkozó adatfüggő tulajdonság, nem az algoritmusé.

Perceptron tanulási szabály. A perceptron algoritmus a hibás pontokra heurisztikus frissítést alkalmaz. Rögzített η>0\eta>0 tanulási rátával, yisi≤0y_i s_i\le 0 esetén:

w←w+ηyixi,b←b+ηyi.w\leftarrow w+\eta\, y_i x_i,\qquad b\leftarrow b+\eta\, y_i.

A yisi≤0y_i s_i\le 0 feltétel a határpontot is hibának tekinti, mert a konvergenciatétel szigorú elválasztást céloz. A frissítés iránya: ha yi=+1y_i=+1 és a score túl kicsi, a ww elmozdul xix_i irányába, így a score nő; ha yi=−1y_i=-1, az ellenkező irányba. Ez a szabály nem egy sima veszteségfüggvény gradiense, ellentétben a 4.4. I. ellenőrző pont: matematika és kód megfelelése alfejezetben vizsgált differenciálható gráffal.

Klasszikus konvergenciatétel. Ha a tanítóhalmaz lineárisan szeparálható, akkor a perceptron algoritmus tetszőleges rögzített η>0\eta>0 mellett, tetszőleges sorrendben véges sok frissítés után olyan (w,b)(w,b)-t ad, amely az összes tanítópontot helyesen osztályozza. Az eredmény Rosenblatt klasszikus tétele; tárgyalását lásd [B02]. A tétel itt a lineáris szeparálhatóságot és rögzített pozitív tanulási rátát feltételező alakjában szerepel. Nem szeparálható adatra a tétel nem ígér konvergenciát.

9.1.3 XOR lineáris szeparálhatatlansága

A kötelező levezetési állítást a négy ponton bizonyítjuk. Legyenek a bemenetek a [0,1]2[0,1]^2 négyzet csúcsai, a cél pedig a kizáró VAGY:

(0,0)↦−1,(1,1)↦−1,(0,1)↦+1,(1,0)↦+1.(0,0)\mapsto -1,\quad (1,1)\mapsto -1,\quad (0,1)\mapsto +1,\quad (1,0)\mapsto +1.

A bizonyításhoz a konvex burok fogalmát használjuk. Egy S⊆ℝdS\subseteq\mathbb R^d halmaz konvex burka

$$\operatorname{conv}(S)=\Bigl\{\sum_{i=1}^m \lambda_i x_i:\ m\in\mathbb N,\ x_i\in S,\ \lambda_i\ge 0,\ \sum_i\lambda_i=1\Bigr\}.$$

Lemma. Ha egy S+⊆ℝdS_+\subseteq\mathbb R^d halmaz minden xix_i pontjára w⊤xi+b>0w^\top x_i+b>0, akkor conv(S+)\operatorname{conv}(S_+) minden pontjára is w⊤z+b>0w^\top z+b>0. Bizonyítás: legyen z=∑iλixiz=\sum_i\lambda_i x_i. A score linearitása miatt

w⊤z+b=∑iλi(w⊤xi+b)>0,w^\top z+b=\sum_i\lambda_i(w^\top x_i+b)>0,

mert a λi\lambda_i együtthatók nemnegatívak és a zárójeles tagok mind pozitívak. Ugyanígy, ha minden xi∈S−x_i\in S_- pontra w⊤xi+b<0w^\top x_i+b<0, akkor a teljes conv(S−)\operatorname{conv}(S_-)-ra is negatív. ▫\square

Állítás. Nincs olyan (w,b)∈ℝ2×ℝ(w,b)\in\mathbb R^2\times\mathbb R, amelyre a fenti négy XOR-pont mindegyikére sign(w⊤x+b)=y\operatorname{sign}(w^\top x+b)=y.

Bizonyítás. Indirekt tegyük fel, hogy létezik ilyen (w,b)(w,b). Legyen S+={(0,1),(1,0)}S_+=\{(0,1),(1,0)\} és S−={(0,0),(1,1)}S_-=\{(0,0),(1,1)\}. A feltétel szerint S+S_+ a pozitív nyílt féltérben, S−S_- a negatív nyílt féltérben van. A lemma miatt conv(S+)\operatorname{conv}(S_+) a pozitív féltérben, conv(S−)\operatorname{conv}(S_-) a negatív féltérben fekszik.

A pozitív osztály konvex burka a (0,1)(0,1) és (1,0)(1,0) közötti szakasz, a negatívé a (0,0)(0,0) és (1,1)(1,1) közötti szakasz. A két szakasz azonban metszi egymást, mert

(0.5,0.5)=12(0,1)+12(1,0)=12(0,0)+12(1,1).(0.5,0.5)=\frac12(0,1)+\frac12(1,0)=\frac12(0,0)+\frac12(1,1).

Tehát ugyanaz a z=(0.5,0.5)z=(0.5,0.5) pont eleme conv(S+)\operatorname{conv}(S_+)-nak és conv(S−)\operatorname{conv}(S_-)-nak is. A lemmából erre a pontra egyszerre kellene w⊤z+b>0w^\top z+b>0 és w⊤z+b<0w^\top z+b<0, ami lehetetlen. Az ellentmondás bizonyítja, hogy ilyen lineáris osztályozó nem létezik. ▫\square

Geometriai olvasatban: a döntési határ egy egyenes, amely a síkot két félre osztja. A pozitív pontok konvex burka a másik átló, a negatívé az egyik átló; a két átló metszi egymást, ezért egyetlen egyenes sem tudja a két halmazt szigorúan elválasztani. Az állítás típusa tétel, a bizonyítás saját, elemi levezetés.

9.1.4 Kézi példa: az AND kapu

Az ÉS kapu célja a 0/10/1 kódolásból a perceptron ±1\pm1 céljára áttérve:

(0,0)↦−1,(0,1)↦−1,(1,0)↦−1,(1,1)↦+1.(0,0)\mapsto -1,\quad (0,1)\mapsto -1,\quad (1,0)\mapsto -1,\quad (1,1)\mapsto +1.

Válasszuk a w=(1,1)⊤w=(1,1)^\top, b=−1.5b=-1.5 paramétereket. A score:

s(x1,x2)=x1+x2−1.5.s(x_1,x_2)=x_1+x_2-1.5.

Bemenet Score Aktiváció Cél
(0,0)(0,0) −1.5-1.5 −1-1 −1-1
(0,1)(0,1) −0.5-0.5 −1-1 −1-1
(1,0)(1,0) −0.5-0.5 −1-1 −1-1
(1,1)(1,1) 0.50.5 +1+1 +1+1

Mind a négy pont helyes, tehát a halmaz lineárisan szeparálható. A döntési határ:

x1+x2−1.5=0,azazx2=1.5−x1.x_1+x_2-1.5=0,\qquad \text{azaz}\qquad x_2=1.5-x_1.

Az AND döntési határa: x1+x2=1.5 - Képletből számított szemléltetés, nem mérés.

A (1,1)(1,1) pont |0.5|/2|0.5|/\sqrt2 távolságra van a határtól, a negatív pontok pedig a határ túloldalán. A megadott (w,b)(w,b) nem az egyetlen helyes paraméterezés: például a (2,2)⊤(2,2)^\top és −3-3 ugyanazt a döntési határt adja, de a score-ok kétszeresek.

9.1.5 Labor: perceptron NumPy-ban

A labor célja: tanítsunk perceptront kis szeparálható adaton, majd mutassuk meg, hogy a nem szeparálható XOR-on a tanítási ciklus soha nem éri el a nulla hibát. Munkakönyvtár: lab/n033_perceptron/. A kód CPU-n fut, NumPy-val, float64 dtype-tal. A seed a keverés determinisztikusságát biztosítja, nem globális bitazonossági ígéret.

# lab/n033_perceptron/perceptron_lab.py
# Futtatás: python perceptron_lab.py
import numpy as np

def train_perceptron(X, y, eta=1.0, max_epochs=100, seed=20261020):
    """Perceptron-tanítás. X: (N,d) float64, y: (N,) float64 ±1."""
    rng = np.random.default_rng(seed)
    d = X.shape[1]
    w = np.zeros(d, dtype=X.dtype)
    b = 0.0
    for epoch in range(max_epochs):
        idx = rng.permutation(len(y))
        errors = 0
        for i in idx:
            x_i = X[i]
            y_i = y[i]
            s = float(np.dot(w, x_i) + b)
            # A határpontot is hibának tekintjük: y_i*s <= 0.
            if y_i * s <= 0.0:
                w += eta * y_i * x_i
                b += eta * y_i
                errors += 1
        if errors == 0:
            return w, b, epoch + 1
    return w, b, max_epochs

# AND: lineárisan szeparálható tanítóhalmaz
X_and = np.array(
    [[0.0, 0.0], [0.0, 1.0], [1.0, 0.0], [1.0, 1.0]],
    dtype=np.float64,
)
y_and = np.array([-1.0, -1.0, -1.0, 1.0], dtype=np.float64)

w_and, b_and, epochs_and = train_perceptron(X_and, y_and, eta=1.0, max_epochs=50)
print(f"AND: w={w_and}, b={b_and}, konvergencia epoch={epochs_and}")

# XOR: nem szeparálható, a ciklus nem állhat meg
X_xor = np.array(
    [[0.0, 0.0], [0.0, 1.0], [1.0, 0.0], [1.0, 1.0]],
    dtype=np.float64,
)
y_xor = np.array([-1.0, 1.0, 1.0, -1.0], dtype=np.float64)

w_xor, b_xor, epochs_xor = train_perceptron(X_xor, y_xor, eta=1.0, max_epochs=100)
pred_xor = np.where(X_xor @ w_xor + b_xor >= 0.0, 1.0, -1.0)
print(f"XOR: w={w_xor}, b={b_xor}, lefutott epoch={epochs_xor}, "
      f"hibák={int(np.sum(pred_xor != y_xor))}")

Az ellenőrzés két részből áll. Az AND futásnak epochs_and < 50 értéket kell adnia, vagyis a ciklus azelőtt megáll, mielőtt a maximális epochot elérné; ekkor a kapott (w,b)(w,b) mind a négy pontot jól osztályozza. Egy lehetséges tanult eredmény például w=(1,1)w=(1,1), b=−1.5b=-1.5, de a frissítések sorrendje más elválasztó hipersíkhoz is vezethet. A XOR futás ezzel szemben epochs_xor == 100 lesz, és a végső paraméterekre a hibaszám legalább 11. Ez nem a kód hibája, hanem a fenti tétel következménye: nincs olyan lineáris osztályozó, amely mind a négy XOR-pontot helyesen osztályozná.

Az ellenőrzött laborjelentések mintáját a kezdőlabor lab/ellenorzott_report.json fájlja rögzíti; a fenti kód futtatása a hallgató feladata, a megadott kimeneti értékek matematikailag ellenőrzött példák, nem ténylegesen lefuttatott gépi napló.

9.1.6 Feladatok

F1 (fogalmi, nehézség 1). Definiálja egy-egy mondatban a döntési határt, az aktivációt és a tanulási szabályt a perceptron esetében. Ezután adjon meg két különböző (w,b)(w,b) párt a fenti AND-példához, amelyek ugyanazt a döntési határt határozzák meg, és mutassa meg, hogy a predikciók azonosak, de a score értékek nem. Átadandó: a három definíció és a két konkrét paraméterezés ellenőrzéssel.

F2 (levezetési, nehézség 2). Bizonyítsa, hogy az OR (VAGY) függvény a négy [0,1]2[0,1]^2 ponton lineárisan szeparálható. Adjon meg egy (w,b)(w,b) párt, írja fel mind a négy pontra a yi(w⊤xi+b)>0y_i(w^\top x_i+b)>0 egyenlőtlenséget, és igazolja, hogy mindegyik teljesül. Átadandó: a paraméterek és a négy numerikus egyenlőtlenség.

F3 (implementációs, nehézség 1). Adott w=(0.5,−0.5)⊤w=(0.5,-0.5)^\top, b=0.5b=0.5, x=(1,2)⊤x=(1,2)^\top, y=+1y=+1 és η=0.1\eta=0.1. Számítsa ki kézzel a score-t, a predikciót és a perceptron frissített w,bw,b értékét. Írjon ehhez egy rövid NumPy kódot, amely assert utasításokkal ellenőrzi a kézi számítást. Átadandó: a kézi számolás és a futtatható kód.

F4 (hibakeresési, nehézség 2). Az alábbi kód AND-ra nem konvergál:

for x_i, y_i in zip(X_and, y_and):
    s = float(w @ x_i)      # bias hiányzik a score-ból
    if y_i * s <= 0.0:
        w += eta * y_i * x_i
        # b += eta * y_i   # a bias frissítése kimaradt

Magyarázza el, miért lehetetlen ezzel a kóddal az AND megtanulása, mi a következménye a (0,0)(0,0) pontra nézve, javítsa a hibát, és mutassa meg, hogy a javított változat nulla hibát ér el. Átadandó: ok, következmény, javított kód és az ellenőrzés módja.

F5 (kísérleti/transzfer, nehézség 3). Tervezzen perceptron-kísérletet a GlyphLab vertical és horizontal osztályaira. Két, Ön által definiált jellemzőt használjon, például az átlagos vízszintes és függőleges élenergiát. A terv tartalmazza: a megfigyelési egységet, a split kezelését, a baseline-t, a metrikát, a maximális epochok számát és az érvényességi korlátot arra az esetre, ha az adat nem lineárisan szeparálható. Átadandó: írott protokoll; futtatás nem kötelező.

9.1.7 Megoldások és indoklás

F1. A döntési határ a {x:w⊤x+b=0}\{x:w^\top x+b=0\} hipersík; az aktiváció a score-ra alkalmazott sign\operatorname{sign} függvény, amely ±1\pm1 predikciót ad; a tanulási szabály a hibás pontokon végrehajtott w←w+ηyixiw\leftarrow w+\eta y_i x_i, b←b+ηyib\leftarrow b+\eta y_i frissítés. Ugyanazt a határt adják például a (1,1)⊤,−1(1,1)^\top,-1 és a (2,2)⊤,−2(2,2)^\top,-2 párok: az első egyenlete x1+x2−1=0x_1+x_2-1=0, a másodiké 2x1+2x2−2=02x_1+2x_2-2=0, ami ugyanaz az egyenes. Minden xx-re a második score az első kétszerese, így pozitív skálázás miatt az előjelek és a predikciók azonosak, de a score-ok nem.

F2. Az OR célja ±1\pm1 kódolásban: (0,0)↦−1(0,0)\mapsto -1, (0,1)↦+1(0,1)\mapsto +1, (1,0)↦+1(1,0)\mapsto +1, (1,1)↦+1(1,1)\mapsto +1. Válasszuk w=(1,1)⊤w=(1,1)^\top, b=−0.5b=-0.5. A négy feltétel:

−1⋅(0+0−0.5)=0.5>0,+1⋅(0+1−0.5)=0.5>0,-1\cdot(0+0-0.5)=0.5>0,\quad +1\cdot(0+1-0.5)=0.5>0, +1⋅(1+0−0.5)=0.5>0,+1⋅(1+1−0.5)=1.5>0.+1\cdot(1+0-0.5)=0.5>0,\quad +1\cdot(1+1-0.5)=1.5>0.

Mind a négy szigorú egyenlőtlenség teljesül, tehát a halmaz lineárisan szeparálható. A döntési határ x1+x2=0.5x_1+x_2=0.5, amely a (0,0)(0,0) pontot elkülöníti a másik háromtól.

F3. A score:

s=0.5⋅1+(−0.5)⋅2+0.5=0.5−1.0+0.5=0.0.s = 0.5\cdot 1 + (-0.5)\cdot 2 + 0.5 = 0.5-1.0+0.5=0.0.

A rögzített konvenció szerint sign(0)=+1\operatorname{sign}(0)=+1, tehát a predikció +1+1. A tanulási szabály azonban a yisi≤0y_i s_i\le 0 feltételt használja, és itt 1⋅0=0≤01\cdot 0=0\le 0, ezért frissít:

w=(0.5,−0.5)+0.1⋅1⋅(1,2)=(0.6,−0.3),b=0.5+0.1⋅1=0.6.w = (0.5,-0.5)+0.1\cdot 1\cdot(1,2) = (0.6,-0.3),\qquad b=0.5+0.1\cdot 1=0.6.

A kód:

import numpy as np
w = np.array([0.5, -0.5], dtype=np.float64)
b = 0.5
x = np.array([1.0, 2.0], dtype=np.float64)
y = 1.0
eta = 0.1
s = float(w @ x + b)
assert y * s <= 0.0
w += eta * y * x
b += eta * y
assert np.allclose(w, [0.6, -0.3], atol=1e-12)
assert np.isclose(b, 0.6, atol=1e-12)

Alakellenőrzés: ww és xx is (2,)(2,) alakú, a belső szorzat skalár, a frissítés dimenzióhelyes.

F4. A hiba oka: a score-ból hiányzik a bb, és a frissítés sem módosítja a bias-t. Ekkor a döntési határ mindig átmegy az origón, mert s(0,0)=0s(0,0)=0 függetlenül ww értékétől. Az AND célja szerint (0,0)(0,0) a −1-1 osztályba tartozik, tehát a yisi≤0y_i s_i\le 0 feltétel minden epochban hibát jelez erre a pontra. A frissítés azonban w←w−η⋅(0,0)w\leftarrow w-\eta\cdot(0,0), vagyis ww nem változik az origóra; a hiba örökké fennmarad. A javítás a bias beillesztése és frissítése:

s = float(w @ x_i + b)
if y_i * s <= 0.0:
    w += eta * y_i * x_i
    b += eta * y_i

Visszaellenőrzés: a javított kódban a (0,0)(0,0) pontra bb negatívvá válik, így s(0,0)<0s(0,0)<0, és a hiba megszűnik; a labor kódja epochs_and < max_epochs értékkel tér vissza.

F5. Egy lehetséges protokoll. Kérdés: a két jellemzőn lineárisan szeparálható-e a vertical/horizontal osztály? Adat: data/images.npy és data/metadata.csv; a két osztály szűrése, csak train/val/test címkék. Jellemzők: vízszintes élenergia f1f_1 = a szomszédos oszlopok abszolút különbségének átlaga, függőleges élenergia f2f_2 = a szomszédos sorok abszolút különbségének átlaga; mindkettő float32 átlag a képből. Megfigyelési egység: kép, de a split scene_id szerint már adott; a perceptron csak train/train részt használ, a validáció a tanítási hiba. Baseline: mindig a gyakoribb osztály predikciója. Metrika: 0/10/1 hiba a train képeken és a független val/test halmazokon. Erőforrás: CPU, NumPy, maximum 100100 epoch. Korlát: ha a tanítási hiba nem éri el a nullát, a perceptron modell a két jellemzőn nem lineárisan szeparálható; ekkor nem vonhatunk le következtetést a perceptron „pontosságáról”, legfeljebb a baseline-hoz viszonyított heurisztikus eltérést mérhetjük. A teszt csak a végleges paraméterek rögzítése után értékelhető, ahogy azt a 8.4. II. ellenőrző pont: korrekt tanulási állítás lezárta.

9.1.8 Tipikus tévedés, önellenőrzés és visszahívás

Tipikus tévedés. „A perceptron azért tanul, mert az agy neuronjait utánozza.” Ez a biológiai analógia motiválhatja a modellt, de nem matematikai bizonyíték semmilyen tulajdonságra. Ellenpélda: a biológiai idegsejtek létezése nem segít az XOR megtanulásában; a fenti tétel bizonyítja, hogy egyetlen perceptron erre matematikailag képtelen, bármennyire is „neuron-szerű”. Az analógia heurisztika, a szeparálhatóság tétel.

Önellenőrzés. Tudja-e: (1) felírni a score, a döntési határ és az aktiváció képletét; (2) megmagyarázni, miért yisi≤0y_i s_i\le 0 a frissítési feltétel és miért nem yisi<0y_i s_i<0; (3) bizonyítani a XOR állítást a két átlós konvex burok metszetével; (4) megmondani, miért nem gradienslépés a perceptron frissítés?

Visszahívás. A 4.4. I. ellenőrző pont: matematika és kód megfelelése gráfjában a frissítés egy differenciálható loss gradiense volt; itt a sign\operatorname{sign} nemsimas művelet, ezért a tanulási szabály külön fogalom. A 8.1. Kockázat, mintavétel és baseline empirikus kockázat nyelvén a perceptron a 0/10/1 hibát csökkenti heurisztikus módon, anélkül hogy a populációs kockázatra koncentrációs korlátot adnánk. Az 5.1. Esemény, feltétel és véletlen változó bináris célja itt ±1\pm1 kódolásban jelenik meg; a valószínűségi értelmezéshez a következő fejezetekben a logisztikus modellre lesz szükség.

9.1.9 Rövid összefoglaló

A perceptron egyetlen affin score-t, s(x)=w⊤x+bs(x)=w^\top x+b, számol, majd a sign\operatorname{sign} aktivációval ±1\pm1 előrejelzést ad. A döntési határ a s=0s=0 hipersík, és a tanítóhalmaz linearitási feltétele, hogy minden yisi>0y_i s_i>0. A tanulási szabály hibás pontokon w←w+ηyixiw\leftarrow w+\eta y_i x_i, b←b+ηyib\leftarrow b+\eta y_i frissítést végez; lineárisan szeparálható adatra a klasszikus tétel véges konvergenciát ígér. Az XOR négy pontján konvex burkokkal bizonyítottuk, hogy nincs elválasztó hipersík: a két osztály konvex burka metszi egymást. A modell tehát világosan korlátozott, és a korlát nem biológiai, hanem geometriai állítás.

9.1.10 Következő alkalmazás és források

A következő 9.2. MLP és nemlinearitás egységben az MLP-t vezetjük be, ahol rejtett rétegek és nemlineáris aktivációk teszik lehetővé a nemlineáris döntési határok, így az XOR megtanulását is. A perceptron a legegyszerűbb építőelem, amelynek korlátja motiválja a mélyebb modelleket.