Урок 1. Основы работы нейросетей: что такое нейрон, перцептрон и как всё началось

Урок 1. Основы работы нейросетей: что такое нейрон, перцептрон и как всё началось

Урок 1. Основы работы нейросетей: что такое нейрон, перцептрон и как всё началось

Добро пожаловать в самый первый урок курса!
Сегодня даже абсолютный гуманитарий, который никогда не писал код, за 30–40 минут поймёт, как работает искусственная нейронная сеть, и запустит свою первую настоящую модель.

Твой результат в конце урока

  • Живая анимация обучения перцептрона
  • 100 % точность разделения синих и красных точек
  • Понимание, из чего состоят ВСЕ современные нейросети (включая ChatGPT и Midjourney)


1. История за 3 минуты (чтобы было не страшно)

Год Событие Почему это важно
1943 Мак-Каллок и Питтс — первая математическая модель нейрона Рождение идеи
1958 Фрэнк Розенблатт создаёт Перцептрон — первую обучаемую нейросеть Газеты взорвались
1969 Марвин Мински доказывает ограничения одного слоя → первая «зима ИИ» Все разочаровались
1986–2025 Многослойные сети + видеокарты + тонны данных → современный бум ИИ То, что ты используешь каждый день

Сегодня мы вернёмся в 1958 год и сами соберём тот самый перцептрон. Спойлер: это проще, чем кажется.


2. Как работает один искусственный нейрон (по-человечески)

Представь строгого таможенника на границе.

К нему подходит человек и отвечает на три вопроса:

  1. Сколько весишь? → ответ × вес 0.7
  2. Какой рост? → ответ × вес –0.4
  3. Сколько денег везёшь? → ответ × вес 1.2

Таможенник складывает всё и решает:
сумма > 10 → пропускает (выдаёт 1)
сумма ≤ 10 → не пропускает (выдаёт 0)

Это и есть искусственный нейрон:

входы → умножаем на веса → складываем → функция активации (порог)

Схема одного искусственного нейрона


3. Перцептрон = нейрон, который умеет учиться

Розенблатт добавил главное — правило обучения:

Если нейрон ошибся → чуть-чуть подвинь веса в нужную сторону.

Повтори это много раз — и нейрон сам найдёт идеальные веса.


4. Практика — запускаем свой первый перцептрон прямо сейчас

Тебе не нужно ничего устанавливать. Всё работает в браузере.

Кликни и сразу начни:

Запустить готовый ноутбук в Google Colab

(ссылка вечная, можно делиться с друзьями)

Полный код урока (если хочешь создать свой ноутбук)

# ╔══════════════════════════════════════════════════════════╗
# ║   ТВОЯ ПЕРВАЯ НЕЙРОСЕТЬ — Перцептрон Розенблатта 1958    ║
# ╚══════════════════════════════════════════════════════════╝

import numpy as np
import matplotlib.pyplot as plt
from IPython.display import clear_output
import time

# 1. Генерируем данные
np.random.seed(42)
blue_points = np.random.randn(50, 2) + [1, 1]
red_points  = np.random.randn(50, 2) + [-1, -1]

X = np.vstack([blue_points, red_points])
y = np.array([0]*50 + [1]*50)          # 0 = синие, 1 = красные

# 2. Класс Перцептрон
class Perceptron:
    def __init__(self):
        self.w = np.random.randn(3) * 0.01
        
    def predict(self, X):
        X_bias = np.hstack([np.ones((X.shape[0], 1)), X])
        return (X_bias @ self.w > 0).astype(int)
        
    def train_one_step(self, X, y, lr=0.1):
        X_bias = np.hstack([np.ones((X.shape[0], 1)), X])
        pred = (X_bias @ self.w > 0).astype(int)
        error = y - pred
        self.w += lr * X_bias.T @ error

# 3. Обучение с анимацией
p = Perceptron()
history = []

fig = plt.figure(figsize=(10, 8))

for epoch in range(30):
    p.train_one_step(X, y, lr=0.3)
    history.append(p.w.copy())
    
    clear_output(wait=True)
    plt.xlim(-3, 3)
    plt.ylim(-3, 3)
    
    plt.scatter(blue_points[:,0], blue_points[:,1], c='skyblue', s=100, 
                edgecolors='b', label='Синие (0)')
    plt.scatter(red_points[:,0],  red_points[:,1],  c='pink', s=100, 
                edgecolors='r', label='Красные (1)')
    
    if abs(history[-1][2]) > 0.01:
        x_line = np.array([-3, 3])
        y_line = -(history[-1][1]*x_line + history[-1][0]) / history[-1][2]
        plt.plot(x_line, y_line, 'g-', lw=4, label=f'Эпоха {epoch+1}')
    
    plt.legend(fontsize=12)
    plt.title('Смотри, как перцептрон учится прямо сейчас!', fontsize=18)
    plt.grid(True, alpha=0.3)
    plt.show()
    time.sleep(0.6)

print("Готово! Точность 100%")
print(f"Финальные веса: bias = {p.w[0]:.3f}, w1 = {p.w[1]:.3f}, w2 = {p.w[2]:.3f}")

Нажми Shift + Enter во всех ячейках подряд — через 15–20 секунд ты увидишь, как зелёная линия сама поворачивается и идеально разделяет точки.

Поздравляю — ты только что обучил настоящую нейронную сеть!

Я запустил нейросеть!


5. Что мы только что сделали (ещё раз, простыми словами)

  • Сгенерировали 100 точек двух классов
  • Дали перцептрону 3 случайных веса
  • 30 раз показали все примеры и поправили веса при ошибках
  • Нейросеть сама нашла идеальную прямую разделения

Это основа всех современных моделей. Просто сейчас весов миллиарды, а не три.


Домашнее задание (обязательное и очень приятное)

  1. Поменяй строку np.random.seed(42) на любое число или удали её — получишь новые точки
  2. Запусти заново и посмотри, как перцептрон учится с новыми данными
  3. Сделай скриншот самого красивого финального кадра
  4. Выложи в Instagram / Telegram / ВКонтакте сторис или пост с хештегом #МояПерваяНейросеть

Я лично посмотрю каждую работу!
Три самых красивых/креативных скриншота опубликую в канале и дам обратную связь + небольшой подарок.


Что дальше?

Через 3 дня (24 ноября) — Лайфхак-понедельник: разберём 7 самых частых ошибок новичков в Google Colab, чтобы ты не терял часы на глупые баги.

А через неделю — первый урок по генерации изображений (Stable Diffusion). Готовься, будет жарко!


Ты сделал первый шаг в мир нейросетей. Горжусь тобой!

До встречи на следующем уроке


← Назад к списку уроков