Основы
Нейросеть — это математическая модель, собранная из множества простых элементов, нейронов. Нейроны делятся на слои: входной получает данные, скрытые их преобразуют, выходной выдаёт ответ. Каждая связь между нейронами имеет вес, и именно в весах хранится всё, что сеть «знает».
Правила решения задачи в такую модель заранее не вписывают. Её показывают примеры, а она подбирает веса так, чтобы ответы совпадали с правильными.
Один нейрон
Нейрон перемножает входы на веса, складывает результаты вместе со смещением и пропускает сумму через функцию активации. Подвигайте ползунки и посмотрите, как меняется ответ.
Включите 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) | Хранит состояние между шагами последовательности | Прогноз нагрузки, распознавание речи |
| Трансформер | Механизм внимания связывает любые части входа между собой | Перевод, языковые модели, подпись к фото |
| Диффузионная | Шаг за шагом убирает шум из случайной картинки | Генерация изображений по описанию |
| Автоэнкодер | Сжимает данные и восстанавливает их обратно | Поиск аномалий, удаление шума |
Краткая история
- 1943 Уоррен Маккаллок и Уолтер Питтс описали математическую модель нейрона.
- 1958 Фрэнк Розенблатт создал перцептрон, первую обучаемую сеть.
- 1986 Румельхарт, Хинтон и Уильямс популяризировали метод обратного распространения ошибки.
- 1998 Ян Лекун представил LeNet-5 для распознавания рукописных цифр.
- 2012 Сеть AlexNet победила в конкурсе ImageNet с большим отрывом, начался бум глубокого обучения.
- 2017 Появилась архитектура «трансформер», на которой построены современные языковые модели.
- 2020-е Большие языковые и диффузионные модели вошли в повседневное использование.
Где применяют
Работают хорошо
- рекомендации и поиск;
- распознавание речи и текста на фото;
- машинный перевод;
- анализ медицинских снимков как второе мнение;
- выявление подозрительных платежей.
Требуют осторожности
- решения о выдаче кредитов и найме;
- юридические и медицинские выводы без проверки;
- факты и цитаты, которые модель выдаёт по памяти;
- данные, непохожие на обучающие.
Частые вопросы
Нейросеть думает так же, как человек?
Нет. Название взято из биологии, но модель только перемножает и складывает числа. Сходство с мозгом очень приблизительное.
Сколько нужно данных для обучения?
Зависит от задачи. Для простой классификации хватает сотен примеров, для больших языковых моделей нужны триллионы слов. Часто берут готовую обученную модель и дообучают на небольшом наборе.
Почему сеть уверенно ошибается?
Она выдаёт наиболее вероятный ответ по тому, что видела при обучении, и не проверяет его на истинность. Если данных по теме мало, ответ может быть неверным, но выглядеть убедительно.
Чем это отличается от обычной программы?
В обычной программе правила пишет человек. В нейросети человек задаёт структуру и данные, а правила появляются в процессе обучения и хранятся в весах.
Словарь
- Вес
- Число на связи между нейронами, определяющее силу влияния.
- Смещение
- Число, которое добавляют к сумме перед активацией, сдвигая порог срабатывания.
- Функция активации
- Нелинейное преобразование суммы на выходе нейрона. Без неё сеть сводилась бы к одной линейной формуле.
- Функция потерь
- Число, которое показывает, насколько ответ сети далёк от правильного.
- Градиент
- Направление, в котором ошибка растёт быстрее всего. Веса двигают в противоположную сторону.
- Эпоха
- Один полный проход по всем обучающим примерам.
- Переобучение
- Сеть запомнила обучающие примеры и плохо работает на новых.
- Параметры
- Все веса и смещения модели. Современные модели имеют миллиарды параметров.
- Инференс
- Использование уже обученной модели для получения ответа.
- Токен
- Единица текста для языковой модели: слово или его часть.
Ничего не найдено.
Источники и что почитать
- Википедия: искусственная нейронная сеть
- Goodfellow, Bengio, Courville. Deep Learning, книга в открытом доступе
- Vaswani и др. Attention Is All You Need, статья про трансформер
- Учебные материалы PyTorch