ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ

Как нейросеть учится на самом деле

Нейросеть не «понимает» мир и не запоминает правила — она просто миллионы раз ошибается и чуть-чуть подкручивает свои настройки. Разбираемся, как из этой бесконечной работы над ошибками рождается то, что выглядит как ум.

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

Не правила, а настройки

Сначала разберёмся, из чего вообще состоит нейросеть. Внутри неё нет ни одного готового правила вроде «если на картинке есть усы и хвост — это кот». Вместо правил там тысячи, миллионы, а у больших моделей и миллиарды чисел. Эти числа называют весами (по-английски weights). Каждый вес — это что-то вроде маленькой ручки громкости, которая решает, насколько сильно один сигнал влияет на другой.

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

Главный учитель — ошибка

Чтобы что-то улучшать, надо сначала измерить, насколько всё плохо. Для этого у нейросети есть особое число — ошибка (её ещё называют функцией потерь, loss). Это просто оценка того, насколько ответ сети отличается от правильного. Сеть сказала «это кот на 30%», а на картинке точно кот — значит, ошибка большая. Сказала «кот на 99%» — ошибка крохотная.

Учиться — значит делать ошибку как можно меньше. Не «понимать», не «запоминать», а уменьшать одно-единственное число.

И вот тут начинается самое интересное. Сеть смотрит на свою ошибку и задаёт себе вопрос: если я чуть поверну вот эту ручку, ошибка станет больше или меньше? А если эту? А вон ту? И так — для каждого из миллионов своих весов сразу.

Спуск с горы в тумане

Вот тут пора вспомнить обещанную аналогию. Представь, что ты стоишь на склоне горы, вокруг густой туман, и тебе нужно спуститься в самую низкую точку долины. Видно только под ногами. Что ты сделаешь? Нащупаешь ногой, в какую сторону земля уходит вниз круче всего, сделаешь маленький шаг туда. Потом снова осмотришься, снова шагнёшь вниз. Шаг за шагом ты доберёшься до низа, хотя всей долины так ни разу и не увидел.

Нейросеть делает ровно то же самое. «Долина» — это все возможные настройки её весов. «Высота» в каждой точке — это размер ошибки. Сеть нащупывает, в какую сторону крутить ручки, чтобы ошибка убывала быстрее всего, и делает крошечный шаг туда. Этот приём так и называется — градиентный спуск. Градиент — это просто математическое слово для «направления самого крутого склона».

Почему шаги маленькие? Потому что если рвануть огромным прыжком, можно перелететь нужную точку и оказаться на другом склоне, ещё выше. Поэтому сеть движется осторожно, понемногу — зато тысячи и миллионы раз.

Обратное распространение: разбор полётов

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

Здесь работает приём с красивым названием обратное распространение ошибки (backpropagation). Идея такая: сеть берёт итоговую ошибку и пускает её обратно, от ответа к началу, по тем же связям, по которым шёл сигнал. По пути она вычисляет, какой вклад в общую ошибку внёс каждый вес. Представь футбольную команду, которая пропустила гол: тренер на разборе прокручивает момент назад и считает, кто из игроков и насколько ошибся в этой атаке. Кто виноват сильнее — тому и больше работать над собой.

Дальше всё повторяется по кругу:

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

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

Так в чём же фокус

Получается, у нейросети нет ни учебника, ни понимания, ни заученных правил. Есть только гора чисел, одно число-ошибка и упрямый алгоритм, который миллионы раз делает маленький шаг под гору. Никто не пишет внутри «кот — это пушистое животное». Сеть сама нащупывает нужные настройки, потому что именно при них она меньше ошибается.

Звучит почти обидно просто, правда? И всё же из этой бесконечной работы над ошибками вырастают модели, которые рисуют картины и пишут код. Самое поразительное в искусственном интеллекте, наверное, как раз это: сложное, похожее на ум поведение рождается не из хитрых правил, а из миллиардов крошечных шагов в верную сторону. Просто проб и ошибок — но очень, очень много.

#искусственный интеллект#как это работает#машинное обучение#нейросети