Перейти к основному содержимому

Нейросети — итоги

Всем

Кратко — что стоит унести из раздела "Нейросети". Если пункт кажется туманным, откройте соответствующую главу или оглавление.


FAQ — Часто задаваемые вопросы

Типичные проблемы при первом коде и выборе архитектуры. Ниже — также формулировки из поиска ("как работает нейросеть", "что такое backpropagation", "PyTorch или TensorFlow"). Здесь — краткий ответ и ссылка на главу; определения для самопроверки — в чек-листе.

Вопрос. Loss не падает — перцептрон на NumPy "не учится".

Ответ. Проверьте learning rate, форму обратного прохода, совпадение размерностей матриц и что deriv=True вызывается на выходе sigmoid. Слишком большой шаг даёт расходимость, слишком маленький — застой. Подробнее здесь — глава 2, глава 1.

Вопрос. В логе обучения появился nan — что сломалось?

Ответ. Частые причины — слишком большой learning rate, деление на ноль, не нормализованные входы, взрыв градиента. Уменьшите lr, добавьте BatchNorm, проверьте данные на inf. Подробнее здесь — глава 114, глава 1.

Вопрос. CUDA out of memory на первой же эпохе.

Ответ. Уменьшите batch size, разрешение картинок или число слоёв; для инференса — квантование и gradient checkpointing. На CPU учат маленькие модели или используют облако. Подробнее здесь — глава 114.

Вопрос. Перцептрон выдает 0.49 вместо 0 и 0.51 вместо 1 — это провал?

Ответ. Sigmoid даёт вероятность, а не жёсткий класс; для решения берут порог 0.5 или подбирают по val. На малой выборке несколько ошибок нормальны. Подробнее здесь — глава 2.

Вопрос. Зачем смотреть на биологический нейрон, если код — матрицы?

Ответ. Биология — аналогия для интуиции (вход → сумма → активация → выход); реализация — линейная алгебра и градиенты. Не путайте метафору с устройством мозга. Подробнее здесь — глава 1.

Вопрос. ReLU или sigmoid на скрытых слоях — что выбрать?

Ответ. В глубоких сетях скрытые слои чаще на ReLU (меньше затухание градиента); sigmoid/softmax — на выходе для вероятностей. Для перцептрона в курсе — sigmoid на одном выходе. Подробнее здесь — глава 1, глава 113.

Вопрос. Одна эпоха — это один проход по всем данным?

Ответ. Да: эпоха — полный цикл по train; внутри эпохи батчи дают шаги оптимизатора. Число шагов = ceil(размер_train / batch_size). Подробнее здесь — глава 114.

Вопрос. Обучение на CPU идёт сутки — это нормально?

Ответ. Для больших CNN и трансформеров — да, без GPU долго. Начинайте с MNIST и маленьких сетей, используйте Google Colab или уменьшайте модель. Подробнее здесь — глава 114, глава 2.

Вопрос. Train loss падает, val loss растёт — что делать?

Ответ. Переобучение: ранняя остановка, dropout, меньше слоёв, больше данных, аугментация. Не подгоняйте гиперпараметры под test. Подробнее здесь — смещение и дисперсия, глава 113.

Вопрос. Dropout включён при predict — результаты случайные.

Ответ. На инференсе dropout отключают (в Keras — training=False); иначе нейроны случайно обнуляются. При обучении dropout включён. Подробнее здесь — глава 113.

Вопрос. Таблицу Melbourne загнал в CNN — accuracy странная.

Ответ. CNN для решёток с локальной структурой (пиксели); табличные признаки — sklearn/MLP. Неверная архитектура под данные — частая ошибка новичка. Подробнее здесь — глава 113, Melbourne.

Вопрос. LSTM для классификации картинок — имеет смысл?

Ответ. RNN/LSTM — для последовательностей (текст, временные ряды); для изображений — CNN или ViT. Подбирайте архитектуру под тип входа. Подробнее здесь — глава 113.

Вопрос. Нужен ли трансформер для задачи на 500 примерах?

Ответ. Скорее перебор: мало данных, много параметров — переобучение. Начните с baseline (логрег, маленький MLP) или fine-tune готовой модели. Подробнее здесь — transfer learning, трансформеры.

Вопрос. Backprop "магия" — можно без формул?

Ответ. Интуиция: ошибка на выходе распределяется назад, каждый вес чуть сдвигается против градиента loss. В Keras/TF градиенты считает фреймворк; руками — в перцептроне NumPy. Подробнее здесь — глава 2, глава 1.

Вопрос. Веса инициализировал нулями — сеть не учится.

Ответ. Нулевая инициализация даёт симметрию — нейроны обновляются одинаково. Используйте Xavier/He или малый случайный шум. Подробнее здесь — глава 114.

Вопрос. Глубокая сеть — градиент на первых слоях почти ноль.

Ответ. Затухание градиента; помогают ReLU, skip-соединения (ResNet), нормализация, меньшая глубина на старте. Подробнее здесь — глава 113.

Вопрос. PyTorch или TensorFlow — что учить первым?

Ответ. В курсе — Keras/TF (114) и отдельно PyTorch. Концепции одни; синтаксис разный. Освоив один, второй переносится быстрее. Подробнее здесь — глава 114.

Вопрос. Скопировал код MNIST из статьи — ImportError: tensorflow.

Ответ. Установите совместимую пару Python + TensorFlow (на Windows проверьте версию CUDA для GPU). Для первого прогона хватит CPU-сборки. Подробнее здесь — глава 114.

Вопрос. Fine-tuning — замораживать все слои кроме последнего?

Ответ. На малом датасете сначала замораживают backbone, учат "голову", потом осторожно размораживают верхние слои с малым lr. Полное размораживание с нуля на 100 картинках часто портит веса. Подробнее здесь — глава 3 ML.

Вопрос. ChatGPT написал нейросеть — можно сразу в прод?

Ответ. Код из чата нужно разобрать, протестировать и проверить на утечки; иначе получите нейрослоп. ИИ — репетитор, merge делает инженер. Подробнее здесь — глава 111.

Вопрос. GAN рисует одно и то же лицо — "mode collapse"?

Ответ. Да: генератор нашёл узкий обман дискриминатора. Лечат архитектурой, другими loss, больше данных; GAN капризны в обучении. Подробнее здесь — глава 112.

Вопрос. Нейросеть vs линейная регрессия на тех же данных — когда NN оправдана?

Ответ. Когда зависимость нелинейная (текст, картинка, сложные взаимодействия признаков) и baseline упёрся. На линейной таблице сначала бустинг часто выигрывает проще. Подробнее здесь — глава 112, ML.

Вопрос. Pooling "размывает" картинку — зачем он нужен?

Ответ. Pooling уменьшает размерность карты признаков, даёт устойчивость к сдвигу и снижает вычисления. Детали теряются осознанно ради обобщения. Подробнее здесь — глава 113.

Вопрос. Sequential API или Functional — что выбрать в Keras?

Ответ. Sequential — цепочка слоёв для простых MLP/CNN; Functional — несколько входов/выходов, skip-связи. Начните с Sequential на MNIST. Подробнее здесь — глава 114.

Вопрос. Модель сохранил в .h5, на другом ПК другая accuracy.

Ответ. Проверьте ту же версию TF, препроцессинг и порядок классов. Сохраняйте вместе с pipeline нормализации; для прода — SavedModel. Подробнее здесь — глава 114.

Вопрос. "Чёрный ящик" — можно ли объяснить, почему сеть ошиблась?

Ответ. Полная прозрачность редка; смотрят важность признаков, saliency maps, ошибки на подгруппах. Для регулируемых доменов нужен процесс аудита, а не только accuracy. Подробнее здесь — глава 112, применение ИИ.

Вопрос. Сначала ML на таблицах или сразу нейросети?

Ответ. Рекомендуемый порядок в курсе — train/test и Melbourne, затем перцептрон и 114. Без метрик табличного ML глубокие сети труднее отладить. Подробнее здесь — intro нейросетей.

Вопрос. Adam всегда лучше SGD?

Ответ. Adam часто быстрее сходится "из коробки"; SGD с schedule иногда даёт лучшее обобщение на CV. Начните с Adam, при плато экспериментируйте. Подробнее здесь — глава 114, глава 1.

Вопрос. Нейросеть и "ИИ" в заголовке статьи — одно и то же?

Ответ. Нейросеть — конкретная модель; ИИ — широкая область. Не каждый "ИИ" в рекламе содержит нейросеть. Подробнее здесь — глава 111, введение в ИИ.

Вопрос. Что такое нейросеть простыми словами?

Ответ. Нейросеть — цепочка слоёв: входные числа умножаются на веса, проходят через функцию активации, на выходе — прогноз. Веса подбирают обучением на примерах. Подробнее здесь — глава 1.

Вопрос. Как работает нейросеть — пошагово для начинающих?

Ответ. Forward: данные → слои → предсказание. Сравнение с ответом → loss. Backprop считает, как изменить веса, чтобы loss уменьшился. Цикл повторяется тысячи раз. Подробнее здесь — глава 2, глава 112.

Вопрос. Чем нейросеть отличается от обычной программы?

Ответ. В обычной программе правила заданы явно; в нейросети поведение задают данные и обучение весов. Код описывает архитектуру и шаг оптимизации, а не каждое решение вручную. Подробнее здесь — глава 111, машинное обучение.

Вопрос. Что такое перцептрон и с чего начать код нейросети?

Ответ. Перцептрон — простейший нейрон с сигмоидой; в курсе его обучают на NumPy за ~40 строк. Лучший первый код перед TensorFlow. Подробнее здесь — глава 2.

Вопрос. Что такое backpropagation обратное распространение ошибки?

Ответ. Backpropagation — алгоритм, который по цепочке слоёв распределяет ошибку назад и вычисляет градиент для каждого веса. В фреймворках он автоматический; в учебнике — на перцептроне NumPy. Подробнее здесь — глава 1, глава 2.

Вопрос. Что такое функция активации ReLU sigmoid softmax?

Ответ. Активация добавляет нелинейность: ReLU на скрытых слоях, sigmoid/softmax на выходе для вероятностей классов. Без активации сеть — один большой линейный слой. Подробнее здесь — глава 1, глава 113.

Вопрос. Что такое глубокое обучение deep learning?

Ответ. Deep learning — нейросети с множеством скрытых слоёв (CNN, RNN, трансформеры). "Глубина" — число слоёв, через которые проходит сигнал. Подробнее здесь — глава 112, введение в ИИ.

Вопрос. CNN свёрточная нейросеть — для чего используется?

Ответ. CNN ищут локальные паттерны на изображениях (края, текстуры, объекты) через свёртки и pooling. Стандарт для фото, видео, медицинских снимков. Подробнее здесь — глава 113, глава 114.

Вопрос. Что такое трансформер transformer в нейросетях?

Ответ. Трансформер обрабатывает последовательность через механизм внимания, без рекуррентных связей; основа GPT, BERT и современных LLM. Подробнее здесь — глава 113, трансформеры и NLP.

Вопрос. LSTM нейросеть — что это и когда нужна?

Ответ. LSTM — тип RNN с "памятью" для длинных последовательностей (текст, временные ряды). Сейчас во многих NLP-задачах LSTM заменили трансформеры, но идея последовательности остаётся. Подробнее здесь — глава 113.

Вопрос. PyTorch или TensorFlow — что выбрать новичку в 2025–2026?

Ответ. Оба стандарта: в курсе — Keras/TensorFlow (114) и отдельно PyTorch (333). Освоив один, второй переносится быстрее. Подробнее здесь — глава 114.

Вопрос. Как обучить нейросеть на Python с нуля?

Ответ. Путь: перцептрон NumPyKeras MNIST → при необходимости PyTorch. Перед этим — split и метрики из ML. Подробнее здесь — intro раздела.

Вопрос. Зачем NumPy для нейросети, если есть TensorFlow?

Ответ. NumPy показывает матрицы весов и backprop вручную — без "магии" фреймворка. После этого API Keras/PyTorch понятнее. Подробнее здесь — глава 2.

Вопрос. Датасет MNIST — зачем его используют в обучении?

Ответ. MNIST — классические рукописные цифры 28×28; маленький, быстро учится, удобен для первой CNN в Keras. Подробнее здесь — глава 114.

Вопрос. Что такое эпоха epoch и batch size при обучении нейросети?

Ответ. Batch — порция примеров за один шаг обновления весов; эпоха — один полный проход по всему train. Несколько эпох — пока loss на val не перестанет улучшаться. Подробнее здесь — глава 114.

Вопрос. Learning rate что это и как подобрать?

Ответ. Learning rate — размер шага при обновлении весов. Слишком большой — loss прыгает и NaN; слишком маленький — обучение вечное. Начинают с 1e-3…1e-2 и смотрят кривую loss. Подробнее здесь — глава 2, глава 114.

Вопрос. Что такое dropout в нейросети?

Ответ. Dropout случайно "выключает" часть нейронов на шаге обучения — снижает переобучение. На инференсе отключают. Подробнее здесь — глава 113.

Вопрос. GAN нейросеть — что она генерирует?

Ответ. GAN (Generative Adversarial Network) — два сети: генератор создаёт картинки, дискриминатор отличает фейк от реала. Используют для синтеза изображений (до эры диффузии — широко). Подробнее здесь — глава 112.

Вопрос. Нейросеть для распознавания лиц и объектов — какая архитектура?

Ответ. Обычно CNN или современные детекторы (YOLO и др.) на свёрточных backbone; для продакшена — предобученные веса + fine-tuning. Подробнее здесь — глава 113, применение CV.

Вопрос. Сколько слоёв нужно в нейросети?

Ответ. Зависит от задачи и данных: для MNIST хватит пары слоёв; для ImageNet — десятки. Ориентир — val loss: добавляйте сложность, пока val улучшается. Подробнее здесь — глава 8 ML, глава 113.

Вопрос. Можно ли обучить нейросеть на обычном ноутбуке без GPU?

Ответ. Перцептрон, MNIST, малые MLP — да на CPU. Большие CNN и LLM — нужен GPU или облако (Colab). Подробнее здесь — глава 2, глава 114.

Вопрос. Keras что это и как связан с TensorFlow?

Ответ. Keras — высокоуровневый API для сборки и обучения сетей; в TensorFlow 2.x встроен как tf.keras. Упрощает Sequential-модели и callbacks. Подробнее здесь — глава 114.

Вопрос. Что такое веса нейросети weights?

Ответ. Веса — числа на связях между нейронами; именно их обучение подгоняет под данные. Файл .h5 / SavedModel хранит обученные веса. Подробнее здесь — глава 1, глава 114.

Вопрос. Нейросеть и машинное обучение — в чём разница?

Ответ. Машинное обучение — зонт (деревья, SVM, нейросети). Нейросеть — один класс моделей ML, основа глубокого обучения. Подробнее здесь — ML, глава 111.

Вопрос. Что такое loss function функция потерь?

Ответ. Loss — число, насколько предсказание далеко от правды (MSE для регрессии, cross-entropy для классов). Обучение минимизирует loss градиентным спуском. Подробнее здесь — глава 1, глава 112.

Вопрос. Как нейросеть связана с ChatGPT?

Ответ. ChatGPT — сервис поверх большой трансформерной нейросети (LLM), обученной предсказывать следующий токен. Подробнее здесь — генеративный ИИ, глава 112.


Как пользоваться этой страницей

Итоги работают в трёх режимах —

  1. Перед повторением — пробегите таблицу блоков и отметьте, какие главы нужно перечитать.
  2. После раздела — воспроизведите перцептрон на NumPy без подсказок и объясните forward/backward своими словами.
  3. Перед переходом к трансформерам — сверьтесь с чек-листом и закройте пробелы по CNN/RNN из 113.

Если формулировка "знакома, но объяснить не могу" — это сигнал вернуться в главу, а не "зубрить" итоги.


Что запомнить

Шесть блоков раздела

БлокГлавная мысльГлава
НейронВход → взвешенная сумма → активация → выход1
ПрактикаПерцептрон NumPy — полный цикл обучения в ~40 строк2
Контекст ИИНейросеть — инструмент ML, не субъект с целями111
ОбзорСлабый/сильный ИИ, пайплайн, семейства моделей112
АрхитектурыFC, CNN, RNN, трансформер — разные типы входа113
Keras/TFSequential, MNIST, callbacks, сохранение модели114

Три принципа, которые связывают темы

  1. Архитектура следует за данными — таблица, последовательность и картинка требуют разных слоёв (113).
  2. Градиент и loss — руль обучения — без понимания backprop сложно отладить "не учится" (2).
  3. Фреймворк не заменяет ML-гигиену — split, метрики и baseline из раздела ML остаются обязательными (intro ML).

Частые путаницы

ПутаютНа самом делеГде повторить
Нейрон и нейросетьНейрон — узел; сеть — граф слоёв с обучаемыми весами1
Обучение и инференсОбучение меняет веса; инференс — forward с фиксированными весами1
Параметры и гиперпараметрыlr, batch size — гиперпараметры; веса syn0 — параметры2
DL и весь MLDL — ML на глубоких нейросетях; не единственный метод112
Точность на train100% train при слабом val — переобучение, а не успех8 ML

Куда идти дальше

ЦельРаздел
Трансформеры и NLP6.09 Трансформеры
PyTorchPyTorch для разработчика
LLM и промптыМодели и инструменты
CV в продеПрименение ИИ

Проверьте себя — Чек-лист самопроверки.


См. также

Другие статьи этого же раздела в боковом меню (как на странице "О разделе").