Нейросети

Справочник с примерами, которые можно покрутить руками

Основы

Нейросеть — это математическая модель, собранная из множества простых элементов, нейронов. Нейроны делятся на слои: входной получает данные, скрытые их преобразуют, выходной выдаёт ответ. Каждая связь между нейронами имеет вес, и именно в весах хранится всё, что сеть «знает».

Правила решения задачи в такую модель заранее не вписывают. Её показывают примеры, а она подбирает веса так, чтобы ответы совпадали с правильными.

Рис. 1. Сеть с тремя входами, двумя скрытыми слоями и двумя выходами. Всего 13 нейронов и 36 связей.

Один нейрон

Нейрон перемножает входы на веса, складывает результаты вместе со смещением и пропускает сумму через функцию активации. Подвигайте ползунки и посмотрите, как меняется ответ.

Включите JavaScript, чтобы увидеть расчёт.

Как сеть учится

Обучение повторяет один цикл: получить ответ, измерить ошибку, чуть поправить веса в сторону уменьшения ошибки. Правка считается по градиенту функции потерь, этот метод называется градиентным спуском.

w = w − lr · gradient

Ниже обучается модель из одного веса: она должна понять, что y = 3·x, глядя на четыре примера (1→3, 2→6, 3→9, 4→12). Попробуйте разные значения скорости обучения lr. При очень большом значении ошибка начнёт расти.

Шаг: 0 · вес w: 0 · ошибка: 0

График в логарифмическом масштабе: чем ниже линия, тем меньше ошибка.

Реальные модели устроены так же, только весов у них миллионы или миллиарды, а градиент находят методом обратного распространения ошибки.

Основные виды

ТипОсобенностьПример задачи
Полносвязная (MLP)Каждый нейрон связан со всеми нейронами соседнего слояОценка стоимости квартиры по параметрам
Свёрточная (CNN)Ищет локальные признаки: границы, текстуры, формыРаспознавание лиц, анализ снимков
Рекуррентная (RNN, LSTM)Хранит состояние между шагами последовательностиПрогноз нагрузки, распознавание речи
ТрансформерМеханизм внимания связывает любые части входа между собойПеревод, языковые модели, подпись к фото
ДиффузионнаяШаг за шагом убирает шум из случайной картинкиГенерация изображений по описанию
АвтоэнкодерСжимает данные и восстанавливает их обратноПоиск аномалий, удаление шума

Краткая история

  1. 1943 Уоррен Маккаллок и Уолтер Питтс описали математическую модель нейрона.
  2. 1958 Фрэнк Розенблатт создал перцептрон, первую обучаемую сеть.
  3. 1986 Румельхарт, Хинтон и Уильямс популяризировали метод обратного распространения ошибки.
  4. 1998 Ян Лекун представил LeNet-5 для распознавания рукописных цифр.
  5. 2012 Сеть AlexNet победила в конкурсе ImageNet с большим отрывом, начался бум глубокого обучения.
  6. 2017 Появилась архитектура «трансформер», на которой построены современные языковые модели.
  7. 2020-е Большие языковые и диффузионные модели вошли в повседневное использование.

Где применяют

Работают хорошо

  • рекомендации и поиск;
  • распознавание речи и текста на фото;
  • машинный перевод;
  • анализ медицинских снимков как второе мнение;
  • выявление подозрительных платежей.

Требуют осторожности

  • решения о выдаче кредитов и найме;
  • юридические и медицинские выводы без проверки;
  • факты и цитаты, которые модель выдаёт по памяти;
  • данные, непохожие на обучающие.

Частые вопросы

Нейросеть думает так же, как человек?

Нет. Название взято из биологии, но модель только перемножает и складывает числа. Сходство с мозгом очень приблизительное.

Сколько нужно данных для обучения?

Зависит от задачи. Для простой классификации хватает сотен примеров, для больших языковых моделей нужны триллионы слов. Часто берут готовую обученную модель и дообучают на небольшом наборе.

Почему сеть уверенно ошибается?

Она выдаёт наиболее вероятный ответ по тому, что видела при обучении, и не проверяет его на истинность. Если данных по теме мало, ответ может быть неверным, но выглядеть убедительно.

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

В обычной программе правила пишет человек. В нейросети человек задаёт структуру и данные, а правила появляются в процессе обучения и хранятся в весах.

Словарь

Вес
Число на связи между нейронами, определяющее силу влияния.
Смещение
Число, которое добавляют к сумме перед активацией, сдвигая порог срабатывания.
Функция активации
Нелинейное преобразование суммы на выходе нейрона. Без неё сеть сводилась бы к одной линейной формуле.
Функция потерь
Число, которое показывает, насколько ответ сети далёк от правильного.
Градиент
Направление, в котором ошибка растёт быстрее всего. Веса двигают в противоположную сторону.
Эпоха
Один полный проход по всем обучающим примерам.
Переобучение
Сеть запомнила обучающие примеры и плохо работает на новых.
Параметры
Все веса и смещения модели. Современные модели имеют миллиарды параметров.
Инференс
Использование уже обученной модели для получения ответа.
Токен
Единица текста для языковой модели: слово или его часть.

Источники и что почитать

Данные аккаунта сохраняются только в вашем браузере, на сервер ничего не отправляется.