Перцептрон
Один нейрон учится разделять классы: ошибка сдвигает веса.
1class Perceptron {2 w1 = 0; w2 = 0; b = 03 4 predict(x: number, y: number): 0 | 1 {5 return this.w1 * x + this.w2 * y + this.b > 0 ? 1 : 06 }7 8 train(points: Array<[x: number, y: number, c: 0 | 1]>, epochs: number): void {9 for (let e = 0; e < epochs; e++) {10 for (const [x, y, c] of points) {11 const pred = this.predict(x, y)12 const err = c - pred // ошибка: −1, 0 или +113 // сдвигаем веса в сторону правильного ответа14 this.w1 += err * x15 this.w2 += err * y16 this.b += err17 }18 }19 }20}Проблема
Один нейрон учится разделять классы: ошибка сдвигает веса.
Что вы видите
w1·x + w2·y + b = 0 — линия; каждая ошибка двигает её в нужную сторону.
Как это работает
Правило обучения: при ошибке веса сдвигаются на величину ошибки, умноженную на вход. Для линейно разделимых данных сходимость доказана. Стоп-нейрон из 1958 года — прародитель глубоких сетей.
Пошаговый разбор
- 01
Предсказание
w·x + b > 0?
- 02
Ошибка
Разница с правильным классом.
- 03
Сдвиг
Веса += ошибка · вход.
Complexity и ограничения
Сложность см. в шапке страницы.
Edge cases
- Пустой вход
Корректная тривиальная обработка.
- Вырожденный случай
Минимум работы — сразу ответ.
Где встречается в реальности
История ML
Перцептрон Розенблатта.
Нейросети
Линейный слой + активация.
Спам-фильтры
Простейшие линейные классификаторы.
Связанные алгоритмы
«1958: один нейрон научился видеть»
Тот же сценарий StepSequence в вертикальной композиции — с safe zones и записью WebM ниже на странице.
Shorts 9:16
Вертикальная композиция строится той же последовательностью шагов, что и страница: safe zones отмечены пунктиром (там живёт UI платформ), биты сценария подсвечиваются по прогрессу. Кнопка записи сохраняет WebM — детерминированная StepSequence даёт воспроизводимый ролик без монтажа.