Глава 6 · Искусственные нейроны: с 1943 года до языковых моделей
Нейросети и ИИ
Нейрон из арифметики
В вашем мозге нейрон собирает сигналы от других и срабатывает, если их сумма достаточно сильна. Таких клеток в человеческом мозге примерно 86 миллиардов. Искусственный нейрон — лишь грубая карикатура на них, а не копия. Он принимает числа, умножает каждое на вес, показывающий важность, складывает их вместе со смещением и пропускает сумму через функцию активации, которая сжимает её в диапазон, например от 0 до 1. Идея восходит к Маккаллоку и Питтсу в 1943 году и к перцептрону Фрэнка Розенблатта в 1958 году.
Один нейрон в числах
Дадим нейрону входы 0,5 и 0,8, веса 0,9 и 0,3 и смещение −0,2. Сумма равна 0,5 × 0,9 + 0,8 × 0,3 − 0,2 = 0,45 + 0,24 − 0,2 = 0,49. Сигмоида, 1 / (1 + e в степени −x), превращает 0,49 примерно в 0,62. Положительный вес подталкивает нейрон, отрицательный удерживает. Вот и всё: умножение и сложение. Всё, что знает сеть, записано в её весах. На картинке толстые линии — сильные веса, тонкие — слабые.
Слои
Один нейрон умеет провести лишь прямую линию между двумя группами. Сложите нейроны слоями, и сеть сможет рисовать кривые. Входной слой держит данные, скрытые слои их объединяют, выходной даёт ответ. Для картинки цифры 28 × 28 подойдут 784 входа, скрытый слой из 128 нейронов и 10 выходов. Весов и смещений получается 784 × 128 + 128 + 128 × 10 + 10 = 101 770 ручек. Сигнал течёт вперёд слой за слоем. У самых больших нынешних моделей миллиарды или триллионы ручек.
Учиться — значит подправлять
В начале веса случайны, и ответы бессмысленны. Покажите сети пример с известным ответом и измерьте ошибку — одно число, потерю. Затем спросите каждый вес: если ты чуть вырастешь, потеря увеличится или уменьшится? Градиент показывает, где подъём, и вы делаете шаг вниз: новый вес = вес − η × градиент, где η — небольшая скорость обучения. При w = 0,80, градиенте +0,5 и η = 0,1 новый вес равен 0,80 − 0,05 = 0,75. Повторите на тысячах примеров. Это и есть градиентный спуск.
Вина, переданная назад
В настоящей сети тысячи и миллионы весов. Как найти все градиенты? Метод обратного распространения ошибки применяет цепное правило математического анализа от выхода к входу, распределяя вину слой за слоем. Идею описали Сеппо Линнаинмаа и Пол Вербос в 1970 и 1974 годах, а статья Дэвида Румельхарта, Джеффри Хинтона и Рональда Уильямса в Nature в 1986 году прославила её. В 2024 году Хинтон и Джон Хопфилд разделили Нобелевскую премию по физике за основы машинного обучения на искусственных нейросетях. Нажмите «обучить» в песочнице и смотрите, как сдвигается разделяющая линия.
Читаем цифру
MNIST — набор из 70 000 рукописных цифр, каждая из 28 × 28 серых пикселей. 60 000 идут на обучение, 10 000 отложены для проверки. Яркость каждого пикселя, от 0 до 1, попадает на один входной нейрон. В выходном слое десять нейронов, по одному на цифру, и побеждает самый сильный: например, 0,93 для цифры 7 и крошечные значения у остальных. Небольшие сети правильно распознают около 98 процентов незнакомых проверочных цифр, а свёрточные сети, ищущие края и формы, проходят отметку 99 процентов. Они сопоставляют узоры, но цифры не понимают так, как вы.
Предсказать следующее слово
Большая языковая модель, движок большинства чат-ботов, работает с токенами — кусочками слов. Получив токены, написанные до сих пор, сеть выдаёт вероятность каждого возможного следующего токена. Один выбирается и добавляется к тексту, и всё повторяется. Модель обучена на огромном количестве текста и имеет миллиарды весов. Архитектура, которой пользуются сегодня, трансформер, появилась в статье 2017 года «Attention Is All You Need». Модель не ищет готовый ответ, а порождает его слово за словом.
Гладко — не значит верно
Поскольку языковая модель предсказывает, какой текст вероятен, она может написать гладкую, уверенную фразу, которая ложна: выдуманное название книги, неверную дату, неверную сумму. Это называют галлюцинацией. У модели нет встроенного способа проверить факты, если её не подключили к инструментам или источникам. Считайте её ответ полезным черновиком, а не оракулом, и важное проверяйте по надёжным источникам, вроде тех, что перечислены под главой. И наконец, обучите свою крошечную сеть в песочнице и убедитесь, как мало нужно, чтобы научиться.
В цифрах
- 101 770
- ручек в небольшой сети для цифр, 784-128-10
- 1986
- Nature: статья об обратном распространении ошибки
- 2024
- Нобелевская премия по физике за нейросети