Читать нас в Telegram
Иллюстрация: Женя Родикова

Машинное обучение 

Машинное обучение — это набор методов, которые позволяют компьютеру решать задачи, не используя заранее заданный человеком алгоритм решения. Например, машинное обучение позволяет обучить компьютер отличать кошек от собак на фотографиях, хотя у компьютера нет конкретных инструкций, вроде «если есть острые уши и усы, то это кошка».

Вместо инструкций и правил компьютеру «показывают» много разных примеров с ответами. В случае с классификацией животных образцом будет изображение кошки или собаки с правильным названием объекта.

Когда компьютеру показывают примеры, он обучается извлекать из них не только все необходимые закономерности, но и информацию о том, как использовать эти закономерности для решения задачи. Машинное обучение изучает методы обучения. Набор примеров образует выборку, а результатом процесса обучения является обученная модель.

Модель

Модель — это математическое описание зависимости между входными данными и выходными. В задаче классификации кошек и собак входные данные — это изображение, а выходные данные — название животного на изображении. Другой пример: входные данные — дата, выходные данные — температура воздуха в этот день. 

Есть много способов описывать зависимости математически. Каждый способ имеет определённые свойства и подходит под определённый вид зависимости. Например, в экономике зачастую используют линейные модели, которые описывают пропорциональное изменение выходной величины (количество товара) при изменении входной величины (цены/спроса и т. д.).

Модели почти всегда содержат параметры — числа, настройка которых определяет, как именно устроена зависимость. Например, в зависимости количества товара от спроса на него параметром является коэффициент пропорциональности между этими величинами. Процесс обучения модели — настройка её параметров таким образом, чтобы она выдавала на входных данных правильные выходные данные.

Способность модели описывать разные зависимости называется выразительностью.

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

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

Примеры других популярных моделей, помимо линейных: деревья решений, случайный лес, нейросети.

Выборка

Выборка — это набор данных, который используется для обучения или анализа модели.

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

Примеры выборок с разметкой: изображения цветов и их названия, песни и их жанры, аудиодорожки и их расшифровки.

Примеры выборок без разметки: списки просмотренных видео пользователей YouTube, набор текстов одного писателя.

Часто встречаются термины обучающая выборка и тестовая выборка. Обучающая выборка используется для настройки параметров модели (иными словами — для обучения), а тестовую выборку используют для проверки, как модель работает на данных, которые она не видела во время обучения (как хорошо модель обобщается на новые данные).

Существует более широкое определение выборки, о котором можно прочитать в другом нашем материале.

Недообучение

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

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

Переобучение

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

Среди причин переобучения могут быть тип модели и количество её параметров, качество и объём обучающих данных, а также неправильная настройка процедуры обучения. Например, если обучающих данных значительно меньше, чем параметров модели, существует высокая вероятность, что модель «запишет» всю обучающую выборку в свои параметры, что приведёт к нулевой ошибке на обучающих данных, но высокой на тестовых.

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

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

Чтобы избежать переобучения, применяют техники регуляризации. Например, аугментацию данных — создание новых обучающих данных на основе исходных; регуляризацию параметров модели с помощью штрафов за запоминание данных в процессе обучение(L1- и L2-регуляризация); и случайное отключение некоторых параметров модели во время обучения (Dropout).

Нейросеть

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

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

Нейросети хорошо масштабируются: при правильном увеличении количества параметров и обучающих данных качество нейросети растёт.

Глубинное обучение

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

Языковая модель

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

Современные языковые модели вроде GPT могут не только оценивать вероятность продолжений (и тем самым продолжать входной текст), но и следовать инструкциям пользователя, например: суммаризировать текст (пример соответствующей инструкции: «Сделай выжимку»), придумывать стихи («Сочини стихотворение в стиле Маяковского»), оценивать эмоциональную окраску текста («Определи, является ли отзыв положительным или нет») и т. д. Такие способности у модели появляются за счёт дополнительного дообучения на выборке из инструкций и соответствующих ответах. Такое обучение называют инструктивным.

Благодаря выразительной способности языка и инструктивному обучению языковые модели могут выполнять широкий спектр задач. Подробнее об этом можно узнать в нашем материале.

Галлюцинация

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

Галлюцинации в языковых моделях возникают из-за несовершенства обучающих данных. Для обучения таких моделей обычно используются большие массивы текстов из интернета, качество и достоверность которых могут значительно варьироваться. Кроме того, модель обучается на данных, собранных до определённого момента времени, поэтому она не способна отвечать на вопросы о событиях, произошедших после этого периода.

Исследователи активно работают над способами уменьшения количества галлюцинаций в языковых моделях. Одним из самых известных методов является Retrieval-Augmented Generation (RAG). Этот метод позволяет интегрировать внешние источники данных, такие как база с документацией компании, энциклопедии или интернет, в работу языковой модели, чтобы повысить точность ответов.

Еще одним подходом к минимизации ложных ответов является инструктивное обучение, включая методы Supervised Fine-Tuning (SFT), Reinforcement Learning from Human Feedback (RLHF), Direct Preference Optimization (DPO). В процессе инструктивного обучения модели обучаются следовать инструкциям. В частности, модели явно обучают указывать, что она не знает ответа, если она не уверена в «своих знаниях».

Эмбеддинги

Эмбеддинг, или векторное представление данных, — это семантическое представление данных, которое может обрабатывать компьютер. В виде эмбеддинга можно представить практически любые данные: изображения, видео, тексты, аудио, а также более специфичные данные, такие как профиль пользователя соцсети, товар в магазине или молекулы.

Эмбеддинги — это компактные наборы чисел фиксированной длины. Каждое число в таком наборе отвечает за определённую характеристику данных, а весь набор в целом описывает данные. Например, эмбеддинг слова может состоять из 128 чисел, где пятое число указывает на род слова, а 100-е — на принадлежность слова к категории, описывающей животных. Похожие объекты имеют «близкие» эмбеддинги, то есть их числовые наборы мало различаются, а разные объекты — «далёкие» эмбеддинги.

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

В отличие от исходных представлений данных, которые обычно не содержат семантической информации, эмбеддинги предлагают компактное и содержательное представление. Например, эмбеддинги изображений занимают в десятки или сотни раз меньше памяти, чем их JPEG-представления.Эмбеддинги обычно получаются с помощью моделей машинного обучения: PCA, t-SNE или нейросетей. Для построения эмбеддингов слов часто используют Word2Vec, для текстов — BERT, для изображений и других данных — автоэнкодеры или нейросети, обученные для этих типов данных (классификаторы и нейросети, обученные без учителя).