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

README.md

Úvod do neuronových sítí: Perceptron

Kvíz před lekcí

Jedním z prvních pokusů o implementaci něčeho podobného moderní neuronové síti byl projekt Franka Rosenblatta z Cornell Aeronautical Laboratory v roce 1957. Šlo o hardwarovou implementaci nazvanou "Mark-1", která byla navržena k rozpoznávání primitivních geometrických tvarů, jako jsou trojúhelníky, čtverce a kruhy.

Frank Rosenblatt The Mark 1 Perceptron

Obrázky z Wikipedie

Vstupní obraz byl reprezentován maticí 20x20 fotobuněk, takže neuronová síť měla 400 vstupů a jeden binární výstup. Jednoduchá síť obsahovala jeden neuron, který se také nazývá jednotka logického prahu. Váhy neuronové sítě fungovaly jako potenciometry, které bylo nutné manuálně upravovat během fáze učení.

Potenciometr je zařízení, které umožňuje uživateli upravit odpor v obvodu.

New York Times tehdy o perceptronu napsaly: embryo elektronického počítače, od kterého [námořnictvo] očekává, že bude schopné chodit, mluvit, vidět, psát, reprodukovat se a být si vědomo své existence.

Model perceptronu

Předpokládejme, že máme N vlastností v našem modelu, v takovém případě by vstupní vektor měl velikost N. Perceptron je model binární klasifikace, tj. dokáže rozlišit mezi dvěma třídami vstupních dat. Předpokládáme, že pro každý vstupní vektor x bude výstup našeho perceptronu buď +1, nebo -1, v závislosti na třídě. Výstup se vypočítá podle vzorce:

y(x) = f(wTx)

kde f je aktivační funkce typu schod.

Trénování perceptronu

Abychom perceptron natrénovali, musíme najít vektor vah w, který klasifikuje většinu hodnot správně, tj. vede k nejmenší chybě. Tato chyba E je definována pomocí kritéria perceptronu následujícím způsobem:

E(w) = -∑wTxiti

kde:

  • součet se bere přes ty tréninkové datové body i, které vedou k nesprávné klasifikaci
  • xi je vstupní data a ti je buď -1 nebo +1 pro negativní a pozitivní příklady.

Toto kritérium je považováno za funkci vah w, kterou je třeba minimalizovat. Často se používá metoda gradientního sestupu, při které začneme s počátečními váhami w(0) a v každém kroku aktualizujeme váhy podle vzorce:

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

Zde η je tzv. rychlost učení a ∇E(w) označuje gradient E. Po výpočtu gradientu získáme:

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

Algoritmus v Pythonu vypadá takto:

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

Závěr

V této lekci jste se naučili o perceptronu, což je model binární klasifikace, a jak jej natrénovat pomocí vektoru vah.

🚀 Výzva

Pokud si chcete zkusit vytvořit vlastní perceptron, zkuste tento lab na Microsoft Learn, který využívá Azure ML designer.

Kvíz po lekci

Přehled & Samostudium

Chcete-li vidět, jak lze perceptron použít k řešení jednoduchého problému i reálných problémů, a pokračovat v učení, podívejte se na notebook Perceptron.

Zajímavý článek o perceptronech také stojí za přečtení.

Úkol

V této lekci jsme implementovali perceptron pro úlohu binární klasifikace a použili jsme jej k rozlišení mezi dvěma ručně psanými číslicemi. V tomto labu máte za úkol vyřešit problém klasifikace číslic kompletně, tj. určit, která číslice nejpravděpodobněji odpovídá danému obrázku.