AI-For-Beginners/translations/fi/lessons/3-NeuralNetworks/03-Perceptron
localizeflow[bot] 7a9b37f3b1 chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:07:34 +00:00
..
lab chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:07:34 +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:07:34 +00:00

README.md

Johdanto neuroverkkoihin: Perceptron

Ennakkokysely

Yksi ensimmÀisistÀ yrityksistÀ toteuttaa jotain modernin neuroverkon kaltaista tehtiin Frank Rosenblattin toimesta Cornellin ilmailulaboratoriossa vuonna 1957. KyseessÀ oli laitteistototeutus nimeltÀ "Mark-1", joka oli suunniteltu tunnistamaan yksinkertaisia geometrisia kuvioita, kuten kolmioita, neliöitÀ ja ympyröitÀ.

Frank Rosenblatt The Mark 1 Perceptron

Kuvat Wikipedia-sivustolta

Syötekuva esitettiin 20x20 valokennon matriisina, joten neuroverkolla oli 400 syötettÀ ja yksi binÀÀrinen ulostulo. Yksinkertainen verkko sisÀlsi yhden neuronin, jota kutsutaan myös kynnyslogiikkayksiköksi. Neuroverkon painot toimivat kuin potentiometrit, joita piti sÀÀtÀÀ manuaalisesti koulutusvaiheen aikana.

✅ Potentiometri on laite, joka mahdollistaa piirin vastuksen sÀÀtĂ€misen.

The New York Times kirjoitti tuolloin perceptronista: sÀhkötietokoneen alkio, jonka [laivasto] odottaa pystyvÀn kÀvelemÀÀn, puhumaan, nÀkemÀÀn, kirjoittamaan, lisÀÀntymÀÀn ja olemaan tietoinen olemassaolostaan.

Perceptron-malli

Oletetaan, ettÀ mallissamme on N ominaisuutta, jolloin syötevektori olisi kooltaan N. Perceptron on binÀÀriluokittelumalli, eli se pystyy erottamaan kahden syötedataluokan vÀlillÀ. Oletamme, ettÀ jokaiselle syötevektorille x perceptronin ulostulo olisi joko +1 tai -1 riippuen luokasta. Ulostulo lasketaan kaavalla:

y(x) = f(wTx)

missÀ f on askelaktivointifunktio

Perceptronin kouluttaminen

Perceptronin kouluttamiseksi meidÀn tÀytyy löytÀÀ painovektori w, joka luokittelee suurimman osan arvoista oikein, eli tuottaa pienimmÀn virheen. TÀmÀ virhe E mÀÀritellÀÀn perceptron-kriteerin avulla seuraavasti:

E(w) = -∑wTxiti

missÀ:

  • summa otetaan niistĂ€ koulutusdatapisteistĂ€ i, jotka johtavat vÀÀrÀÀn luokitteluun
  • xi on syötedata, ja ti on joko -1 tai +1 negatiivisille ja positiivisille esimerkeille vastaavasti.

TÀtÀ kriteeriÀ pidetÀÀn painojen w funktiona, ja meidÀn tÀytyy minimoida se. Usein kÀytetÀÀn menetelmÀÀ nimeltÀ gradienttimenetelmÀ, jossa aloitetaan jollain alkuperÀisillÀ painoilla w(0), ja sitten jokaisessa vaiheessa pÀivitetÀÀn painot kaavan mukaan:

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

TĂ€ssĂ€ η on niin sanottu oppimisnopeus, ja ∇E(w) tarkoittaa E:n gradienttia. Kun laskemme gradientin, pÀÀdymme seuraavaan:

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

Algoritmi Pythonissa nÀyttÀÀ tÀltÀ:

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

Yhteenveto

TÀssÀ oppitunnissa opit perceptronista, joka on binÀÀriluokittelumalli, ja kuinka sitÀ koulutetaan kÀyttÀmÀllÀ painovektoria.

🚀 Haaste

Jos haluat kokeilla rakentaa oman perceptronin, kokeile tÀtÀ Microsoft Learn -laboratoriota, joka kÀyttÀÀ Azure ML designeria.

JĂ€lkikysely

Kertaus ja itseopiskelu

Jos haluat nÀhdÀ, kuinka perceptronia voidaan kÀyttÀÀ leikkimielisen ongelman ratkaisemiseen sekÀ todellisiin ongelmiin, ja jatkaa oppimista - siirry Perceptron-muistikirjaan.

TÀssÀ on myös mielenkiintoinen artikkeli perceptroneista.

TehtÀvÀ

TÀssÀ oppitunnissa toteutimme perceptronin binÀÀriluokittelutehtÀvÀÀ varten, ja kÀytimme sitÀ kahden kÀsinkirjoitetun numeron luokitteluun. TÀssÀ laboratoriossa sinua pyydetÀÀn ratkaisemaan numeroluokittelun ongelma kokonaisuudessaan, eli mÀÀrittÀmÀÀn, mikÀ numero todennÀköisimmin vastaa annettua kuvaa.