AI-For-Beginners/translations/sl/lessons/3-NeuralNetworks/03-Perceptron
localizeflow[bot] 2cf3095b7a chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:44:13 +00:00
..
lab chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:44:13 +00:00
Perceptron.ipynb 🌐 Update translations via Co-op Translator 2025-12-12 20:42:50 +00:00
README.md chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:44:13 +00:00

README.md

Uvod v nevronske mreže: Perceptron

Predhodni kviz

Eden prvih poskusov implementacije nečesa podobnega sodobni nevronski mreži je izvedel Frank Rosenblatt iz Cornell Aeronautical Laboratory leta 1957. Šlo je za strojno implementacijo, imenovano "Mark-1", zasnovano za prepoznavanje primitivnih geometrijskih oblik, kot so trikotniki, kvadrati in krogi.

Frank Rosenblatt The Mark 1 Perceptron

Slike iz Wikipedije

Vhodna slika je bila predstavljena z matriko fotocelic velikosti 20x20, kar pomeni, da je imela nevronska mreža 400 vhodov in en binarni izhod. Preprosta mreža je vsebovala en nevron, imenovan tudi enota logičnega praga. Teže nevronske mreže so delovale kot potenciometri, ki so jih morali ročno nastaviti med fazo učenja.

Potenciometer je naprava, ki omogoča uporabniku prilagajanje upornosti v vezju.

New York Times je takrat o perceptronu zapisal: zarodek elektronskega računalnika, za katerega [mornarica] pričakuje, da bo lahko hodil, govoril, videl, pisal, se razmnoževal in bil zavesten svoje eksistence.

Model perceptrona

Predpostavimo, da imamo v našem modelu N značilnosti, v tem primeru bi bil vhodni vektor velikosti N. Perceptron je model za binarno klasifikacijo, kar pomeni, da lahko razlikuje med dvema razredoma vhodnih podatkov. Predpostavljamo, da bo za vsak vhodni vektor x izhod našega perceptrona bodisi +1 ali -1, odvisno od razreda. Izhod se izračuna po formuli:

y(x) = f(wTx)

kjer je f funkcija aktivacije s korakom.

Učenje perceptrona

Za učenje perceptrona moramo najti vektorsko težo w, ki pravilno klasificira večino vrednosti, tj. povzroči najmanjšo napako. Ta napaka E je definirana z merilom perceptrona na naslednji način:

E(w) = -∑wTxiti

kjer:

  • vsota zajema tiste točke učnih podatkov i, ki povzročijo napačno klasifikacijo,
  • xi so vhodni podatki, ti pa je bodisi -1 ali +1 za negativne oziroma pozitivne primere.

To merilo obravnavamo kot funkcijo tež w, ki jo moramo minimizirati. Pogosto se uporablja metoda gradientnega spusta, pri kateri začnemo z začetnimi težami w(0), nato pa pri vsakem koraku posodobimo teže po formuli:

w(t+1) = w(t) - η∇E(w)

Tu je η tako imenovana stopnja učenja, ∇E(w) pa označuje gradient E. Ko izračunamo gradient, dobimo:

w(t+1) = w(t) + ∑ηxiti

Algoritem v Pythonu izgleda takole:

def train(positive_examples, negative_examples, num_iterations = 100, eta = 1):

    weights = [0,0,0] # Initialize weights (almost randomly :)
        
    for i in range(num_iterations):
        pos = random.choice(positive_examples)
        neg = random.choice(negative_examples)

        z = np.dot(pos, weights) # compute perceptron output
        if z < 0: # positive example classified as negative
            weights = weights + eta*weights.shape

        z  = np.dot(neg, weights)
        if z >= 0: # negative example classified as positive
            weights = weights - eta*weights.shape

    return weights

Zaključek

V tej lekciji ste spoznali perceptron, ki je model za binarno klasifikacijo, in kako ga naučiti z uporabo vektorske teže.

🚀 Izziv

Če želite poskusiti zgraditi svoj perceptron, preizkusite to delavnico na Microsoft Learn, ki uporablja Azure ML designer.

Kviz po predavanju

Pregled in samostojno učenje

Če želite videti, kako lahko perceptron uporabimo za reševanje preprostih problemov in resničnih težav ter nadaljevati z učenjem, obiščite zvezek Perceptron.

Tukaj je zanimiv članek o perceptronih.

Naloga

V tej lekciji smo implementirali perceptron za nalogo binarne klasifikacije in ga uporabili za razlikovanje med dvema ročno napisanima številkama. V tej delavnici morate rešiti problem popolne klasifikacije številk, tj. določiti, katera številka najbolj verjetno ustreza dani sliki.