Как устроено разбор
Как работает нейросеть: как устроен искусственный интеллект
Нейросеть — это программа из множества простых вычислительных узлов, соединённых связями с весами. Каждый узел умножает входные числа на веса, складывает и передаёт дальше. При обучении сеть много раз ошибается на примерах, и веса понемногу подстраиваются, пока ответы не станут верными.
Редакция «Как устроено», разборы по первоисточникам 6 мин чтения
Моё избранноеНейросеть — это программа, которая учится на примерах, а не выполняет заранее прописанные правила. Она состоит из множества простых узлов — искусственных нейронов, — соединённых связями. У каждой связи есть вес: число, которое показывает, насколько сильно сигнал с одного узла влияет на другой. Всё, что сеть «знает», хранится в этих весах. Обучение — это подбор весов: сети показывают тысячи и миллионы примеров с правильными ответами, и после каждой ошибки веса чуть-чуть подправляются. Название пришло из биологии: первые модели в середине XX века придумывали по мотивам нервных клеток, хотя устроены они намного проще.
Из чего состоит нейросеть
| Часть | Что делает |
|---|---|
| Входной слой | Принимает данные в виде чисел: яркость пикселей картинки, кусочки текста, закодированные числами, показания датчиков |
| Искусственный нейрон | Берёт входные числа, умножает каждое на свой вес, складывает и прибавляет смещение |
| Веса и смещения | Настраиваемые числа, в которых хранится всё, чему сеть научилась |
| Функция активации | Решает, какой сигнал нейрон передаст дальше; например, всё отрицательное превращает в ноль |
| Скрытые слои | Слои между входом и выходом; в них сеть выделяет признаки — от простых к сложным |
| Выходной слой | Выдаёт ответ: вероятность, что на фото кошка, или какое слово должно идти следующим |
| Функция ошибки | Сравнивает ответ сети с правильным и выражает промах одним числом |
| Обучающая выборка | Набор примеров с правильными ответами, на которых сеть учится |
Один нейрон умеет очень мало — по сути, взвешенно проголосовать за «да» или «нет». Сила появляется, когда их тысячи и миллионы, выстроенных слоями. Грубо говоря, первые слои сети, распознающей лица, реагируют на перепады яркости, следующие — на линии и углы, дальше — на глаза и нос, и только последние — на лицо целиком. Никто этого не программировал: такие «детекторы» сами складываются при обучении.
Как нейросеть учится
Возьмём классическую задачу — узнать рукописную цифру на картинке 28 × 28 точек. На вход подаются 784 числа, яркость каждой точки. На выходе десять нейронов, по одному на каждую цифру.
- Случайное начало. Веса задают случайными числами. Сеть пока отвечает наугад.
- Пример. Ей показывают картинку с цифрой 7. Сигнал проходит через все слои, и на выходе, скажем, сильнее всех горит нейрон «3».
- Подсчёт ошибки. Функция ошибки сравнивает ответ с правильным: должно было гореть «7», а горит «3». Ошибка большая.
- Разбор вины. Метод обратного распространения ошибки идёт от выхода ко входу и считает для каждого веса, в какую сторону его сдвинуть, чтобы ошибка стала меньше.
- Маленький шаг. Все веса чуть-чуть сдвигаются в нужную сторону. Шаг специально маленький, чтобы сеть не «переучилась» под один пример.
- Повторение. Так прогоняют десятки тысяч картинок, потом ещё и ещё раз. Ошибка постепенно падает.
- Экзамен. Сеть проверяют на картинках, которых она не видела. Если и там отвечает верно, значит, она выучила закономерность, а не запомнила примеры.
Похоже на то, как ребёнок учится узнавать собак: ему не объясняют правила «четыре лапы, хвост, лает», а просто много раз показывают и поправляют.
Как устроены большие языковые модели
Чат-боты, которые пишут тексты и отвечают на вопросы, — это большие языковые модели. Внутри та же идея — слои нейронов и веса, только весов десятки и сотни миллиардов.
- Текст режут на токены — кусочки слов. Каждый токен превращается в набор чисел.
- Задача обучения одна: угадать следующий токен. Модели показывают огромные объёмы текста — книги, статьи, код — и учат продолжать фразу. Чтобы угадывать хорошо, ей приходится уловить грамматику, факты, логику и стиль.
- Механизм внимания. Основа современных моделей — архитектура «трансформер», предложенная в 2017 году. В ней каждое слово при обработке «смотрит» на все остальные и решает, какие важны. Так в предложении «Кошка не запрыгнула на шкаф, потому что он был высоким» модель связывает «он» со шкафом, а не с кошкой.
- Дообучение. Потом модель учат быть полезным собеседником: на примерах хороших ответов и на оценках людей, какой из двух ответов лучше.
- Ответ. Когда вы задаёте вопрос, модель пишет ответ по одному токену: каждый раз выбирает вероятное продолжение и добавляет его к тексту.
Такие модели обучают на тысячах видеокарт в дата-центрах: видеокарта умеет выполнять множество однотипных умножений одновременно.
Чем нейросеть отличается от мозга и от обычной программы
От обычной программы. Программист пишет правила: «если нажали кнопку — открой окно». В нейросети правил нет, есть веса, подобранные на примерах. Поэтому она справляется с задачами, для которых правила не сформулировать, — узнать лицо, перевести шутку. Но и объяснить, почему она решила именно так, трудно.
От мозга. Живой нейрон — сложная клетка с химией, тысячами связей и собственными ритмами. Искусственный — одна строчка арифметики. Мозг учится на немногих примерах и тратит мощность как тусклая лампочка, а большой модели нужны горы данных и тысячи видеокарт, работающих неделями. Как устроен настоящий, рассказано в статье о строении мозга.
Нейросеть и искусственный интеллект. Искусственный интеллект — широкое название для программ, которые решают «человеческие» задачи. Нейросети — самый успешный сейчас способ их делать, но не единственный: шахматные программы десятилетиями играли сильно без всяких нейросетей.
Интересные факты
- Первую обучаемую модель нейрона — перцептрон — американский учёный Фрэнк Розенблатт описал в 1958 году. Идее больше полувека, а взлёт случился в 2010-х, когда появились огромные наборы данных и мощные видеокарты.
- Языковая модель не хранит тексты, на которых училась, как архив. Она хранит веса, в которых «размазаны» закономерности. Поэтому она может пересказать стиль Пушкина, но не всегда точно процитирует строчку.
Почему нейросеть ошибается и как с этим жить
- Уверенно выдумывает. Языковая модель пишет правдоподобное продолжение, а не проверяет факты. Если точного ответа в данных было мало, она сочинит похожий: несуществующую книгу, неверную дату, ссылку в никуда. Это называют «галлюцинациями».
- Не знает свежего. Знания заканчиваются на дате сбора данных для обучения, если к модели не подключён поиск.
- Повторяет перекосы данных. Если в обучающих примерах чего-то было мало или оно было подано однобоко, сеть унаследует этот перекос.
- Путается в счёте и мелочах. Модель видит токены, а не отдельные буквы и цифры, поэтому ей бывает трудно посчитать буквы в слове или сложить длинные числа без калькулятора.
- Нельзя проверить «внутри». Невозможно открыть веса и прочитать, почему сеть ответила так. Поэтому важное — дату, дозу, формулу, закон — проверяют по надёжному источнику.
Что умеет ИИ, а что нет
| Хорошо получается | Плохо получается |
|---|---|
| Пересказать и объяснить сложный текст другими словами | Гарантировать точность дат, цифр и цитат |
| Набросать черновик письма, план, список идей | Отвечать за решение: медицинское, юридическое, денежное |
| Перевести текст и исправить ошибки | Знать то, что случилось после обучения, без подключённого поиска |
| Распознать речь, текст и предметы на фото | Честно сказать «не знаю», если его специально этому не учили |
| Найти ошибку в коде и подсказать решение | Понять ситуацию, которой не было в данных |
Простое правило: нейросеть — сильный помощник для черновой работы и объяснений, а проверка фактов и последнее слово остаются за человеком.
Вопросы
Нейросеть думает?
В человеческом смысле — нет. Она выполняет огромное число умножений и сложений, и результат иногда выглядит как рассуждение. Есть ли за этим понимание, спорят учёные, но у сети нет своих целей, желаний и опыта жизни в мире.
Почему для нейросетей нужны видеокарты?
Обучение и работа сети — это миллиарды однотипных умножений, которые можно делать одновременно. Видеокарта изначально создана для такой параллельной работы с пикселями, поэтому считает нейросети во много раз быстрее обычного процессора.
Откуда нейросеть знает свежие новости?
Сама по себе — ниоткуда: её знания заканчиваются на дате, когда собрали данные для обучения. Если чат-бот рассказывает о свежих событиях, значит, ему подключили поиск в интернете, и он пересказывает найденные страницы.
Можно ли доверять нейросети в учёбе?
Как помощнику — да: объяснить тему другими словами, придумать вопросы для самопроверки, найти ошибку в рассуждении. Как источнику фактов, дат и формул — только с проверкой по учебнику.
Автор
разборы по первоисточникам
Пишем по учебникам, исследованиям и клиническим рекомендациям, источники под каждым материалом. Нашли ошибку — напишите на redakciya@kakustroeno.ru, исправим.
Источники
- Хайкин С. Нейронные сети: полный курс. 2-е изд. М.: Вильямс, 2006.
- Гудфеллоу Я., Бенджио И., Курвилль А. Глубокое обучение. М.: ДМК Пресс, 2018.