Машинное обучение, ИИ, нейросети: общие свойства и различия
Что такое машинное обучение?
Стандартное применение компьютерных алгоритмов или математических расчетов можно описать так: программист может задать входные данные, описать последовательность действий с ними, провести некоторые преобразования — и получить ответ с помощью получившегося программного кода. Теперь представим ситуацию, когда имеются входные условия и примеры действий в похожих случаях, но нет конкретной инструкции по поиску ответа и самого ответа для данной задачи. Машинное обучение — это методология, с помощью которой можно построить «умную» модель: она научится решать задачу, исходя из данных ей примеров, но без информации о том, как правильно поставленную задачу решать.
Это существенно облегчает работу со многими прикладными вопросами. Например, можно классифицировать изображения: собрать сотни иллюстраций грибов и облаков, маркировать их и таким образом создать обучающую выборку правильного решения задачи по определению объекта на картинке. Затем «соединить» эти данные с выбранной моделью, и та на примерах обучится отличать грибы от облаков самостоятельно. Пример с грибами и облаками достаточно простой, такое можно реализовать и с помощью обычной программы. Но если типов изображений становится не 2, а 1000, написать программу окажется очень сложно, и здесь приходит на помощь машинное обучение.
Модель на практике — это та или иная математическая функция с различными параметрами. В процессе обучения модели ее параметры меняются таким образом, чтобы ошибка работы алгоритма была минимальной. Правильные параметры заранее не известны — в этом и суть работы модели. После перехода от обучающей выборки к реальным примерам модель должна проявить способность к верному предсказанию ответа.
Что такое искусственный интеллект?
Кто-то может сказать, что искусственный интеллект — это частный случай машинного обучения. Скорее всего, наоборот: машинное обучение — частный случай искусственного интеллекта, потому что решение интеллектуальных задач можно реализовать разными способами, в том числе и через ML.
При этом искусственный интеллект — термин с разными значениями. Во-первых, это направление исследований в науке, которое занимается алгоритмами, в чем-то воспроизводящими интеллект человека или процесс решения интеллектуальных задач. Во-вторых, это и некоторая технология создания алгоритмов — сегодня это в основном символьный или нейросетевой интеллект.
Символьный ИИ — это такой подход в искусственном интеллекте, с помощью которого происходит попытка моделирования рассуждений человека. Представим себе задачу: есть математик, который доказывает теорему. Давайте попробуем смоделировать этот процесс. Математик совершает какие-то действия, записывая их на некотором формальном языке математических обозначений. В результате этого процесса появляются доказательства теоремы. И есть некоторые правила, определяющие, какой это язык, как на нем писать, что писать можно и нужно. Система, которая позволяет на формальном языке вести некие рассуждения, называется символьным искусственным интеллектом, потому что основана на манипуляции с символами.
Что такое нейросети?
Нейросети — еще один подход к построению искусственного интеллекта, который отстраивается не от моделирования того, как рассуждает человек, а от того, как работает наш мозг в процессе обучения. Для этого создается сеть из «нейронов», которые представляют собой математическое описание модели нейрона «настоящего» (это, как и в головном мозге, структурно-функциональная единица, базовый элемент обработки информации). Из нейронов формируется сеть, и результат обработки информации определяется связью между элементами нашей сети.
Отсюда нейросеть может быть моделью, которая используется для машинного обучения, то есть мы можем использовать нейронную сеть с множеством параметров, которые будут определять передачу сигналов между отдельными нейронами. Параметры этой модели будут в процессе обучения меняться, так чтобы минимизировать ошибку.
ChatGPT — это нейросеть или языковая модель?
Быть языковой моделью — это функция ChatGPT, и реализовано это с помощью нейросети. В широком смысле реализовать такую функцию можно разными способами (как и наоборот: с помощью нейросетей можно реализовать не только языковую модель, но и звуковую, графическую и так далее).
Например, можно собрать большой объем текстов и посчитать, с какой вероятностью то или иное слово встречается во всех этих материалах. Тогда мы можем построить самую простую вероятностную модель языка таким образом, что каждое следующее слово в предложении будет выбираться пропорционально рассчитанным вероятностям. Качество такой модели будет очень низким, но все же это языковая модель. Таким образом, языковое моделирование — это реализация предсказания того, что должно быть в тексте.
При этом ChatGPT — не просто языковая модель, а модель, адаптированная под имитацию живого взаимодействия людей в интернете, «очеловеченная» версия. Что происходит, когда мы даем чату задание? Если мы просим написать сказку, модель генерирует продолжение, которое обычно следует за словами «напиши сказку». Представьте, что у вас есть много текстов, где в некоторых случаях встречался текст «напиши сказку»; после этих слов в большинстве случаев была написана какая-то сказка. И нейросеть напишет что-то похожее на сказку, исходя из имеющихся у нее примеров. Но также нейросеть может ответить: «Я сейчас не в настроении и не буду этого делать», потому что и такой пример в наборе ее данных мог встретиться. Но вероятность этих ответов обычно понижают специально, чтобы пользователь не сталкивался с отказом.
Еще один интересный вопрос — можно ли считать частным случаем машинного обучения процесс, когда пользователь корректирует работу ChatGPT под собственные цели путем разговора с ней, внесения уточнений? С формальной точки зрения это нельзя считать обучением, ведь это никак не влияет на параметры самой модели. Но, изменяя исходный запрос, вы можете повлиять на то, какой ответ она предоставит — конкретно для вас.
Возможен ли синтез символьной методологии и нейросетей?
Примером такого синтеза можно считать программу Alpha Go, разработанную компанией Google DeepMind в 2015 году. В 2016-м она обыграла игрока Ли Седоля, который на момент матча имел второе место по количеству выигранных чемпионатов мира. «Внутри» Alpha была нейросеть, которая давала оценку состоянию доски, и модель поиска по дереву решений, которая является фактически символьной. Сегодня похожие разработки ведутся и для других задач, в том числе для языковых моделей.
Кроме того, можно предположить, что в будущем модели смогут общаться друг с другом и делиться опытом, консолидировать ресурсы в решении разных задач и проблем. Это порождает гораздо более загадочные сценарии, предсказывать которые заранее очень сложно. Но работы и в этом направлении ведутся по всему миру.
Михаил Бурцев