В этой статье мы рассмотрим машинное обучение (ML) с точки зрения нисходящего подхода, рассмотрим, как оно работает, в чем оно хорошо, и приведем примеры реализации. Важно отметить, что я допускаю некоторые вольности в своих объяснениях, чтобы привлечь более широкую аудиторию.

Почему машинное обучение (ML) актуально?

За последние несколько месяцев машинное обучение часто упоминалось в новостях благодаря новым продуктам OpenAI, таким как Chat-GPT и GPT-4. Хотя технологии, лежащие в основе этих продуктов, не были чем-то неслыханным до их соответствующих выпусков, эти новые технологии расширяют и без того впечатляющую область.

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

Чем хорошо машинное обучение (ML)?

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

Прогнозирование – это попытка оценить неизвестное значение или состояние* на основе текущего значения или состояния.

Классификация – это попытка пометить значение или состояние на основе предварительно определенного набора меток.

состояние*: неизменное представление данных; его снимок.

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

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

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

  • Генерация текста
  • Распознавание изображений
  • Аудио Классификация

Чтобы увидеть некоторые другие распространенные задачи ML и решения для них с открытым исходным кодом, перейдите по этой ссылке: https://huggingface.co/tasks

Как вообще работает машинное обучение (ML)?

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

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

Точно так же, как модель представлена ​​в виде своего рода матрицы, таковы и вход, и выход.

Поэтому, когда мы пытаемся предсказать значение, мы на самом деле занимаемся матричной математикой (линейной алгеброй). Описанная здесь математика может быть представлена ​​в виде векторов, которые аналогичны математическим уравнениям.

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

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

Как обучается модель машинного обучения?

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

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

Чтобы обучить модель, обычно вы берете все свои данные и разбиваете их на разделы. Для простоты у нас будут данные для обучения и данные для проверки.

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

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

Пример обучения без математики:

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

Через несколько дней или недель ребенок, скорее всего, сможет назвать собак в лицо.

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

Обучение здесь привело к переобучению.

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

Сведение сложных проблем к решаемым:

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

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

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

Генерация текста. Как правило, текстовый корпус разбивается на ряд объектов, называемых токенами, которые содержат много информации о каждом слове или важном символе. Простой способ подумать об этом — присвоить каждому необычному слову число, обозначающее его. Вы вводите эти числа в модель ML. Затем, когда в результате вы получаете ряд чисел, вы конвертируете их обратно в слова каким-то образом, например, используя ближайшее целое число. Таким образом, мы сокращили эту задачу до задачи прогнозирования.

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

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

Как я могу использовать машинное обучение (ML)?

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

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

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

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