Термин «машинное обучение» приобретает все большую популярность, особенно в последние пару десятилетий. Стало обычным делом слышать или читать о достижениях в области технологий, таких как современное программное обеспечение для распознавания лиц, голосовые агенты, интеллектуальные роботы и так далее. Гипотетически за такой шумихой может стоять несколько причин. Одной из очевидных причин может быть тот факт, что такие достижения призваны играть облегчающую роль в повседневной жизни людей. Поэтому волнение людей за такую ​​руку помощи не должно вызывать удивления. Еще одной потенциальной причиной распространенности термина «машинное обучение» может быть его название. Название каким-то образом предполагает, что машины изучают специальные задачи, интригующее, но противоречивое предположение. Следовательно, это письмо направлено на обсуждение, а также разъяснение процесса обучения машин и попытку ответить на вопрос «но как машины учатся?». В зависимости от характера данных, помеченных или нет, и характера задачи алгоритмы обучения можно условно разделить на три основные категории: обучение с учителем, обучение без учителя и обучение с подкреплением. Это письмо углубляется в контролируемый вариант использования, где предполагаемые данные будут помечены.

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

Начнем с того, что процесс обучения вполне аналогичен процессам обучения человека, где обучение достигается в результате повторяющихся проб и неудач. Рассмотрим задачу распознавания зрения, в которой машина должна различать собак и кошек. Для конкретных задач существует несколько методов и подходов машинного обучения. Не вдаваясь в дополнительные технические нюансы, мы говорим, что искусственные или сверточные нейронные сети могут быть подходящими инструментами для нашего примера дифференциации собак и кошек. Чтобы процесс обучения был надежным, количество данных, которые будут предоставлены машине, имеет жизненно важное значение. При недостатке данных машина будет лишена возможности узнать больше. Таким образом, скажем, у нас есть 20 000 изображений собак и кошек вместе взятых. Кроме того, важно иметь сбалансированный набор данных, то есть достаточно равные пропорции каждого класса. В противном случае, скажем, если бы мы предоставили машине 18 000 изображений собак и 2 000 изображений кошек, то машина была бы предвзятой и думала, что собак в мире намного больше, чем кошек. Итак, предположим, что в идеале у нас есть 10 000 изображений собак и 10 000 изображений кошек. После того, как мы определились с нашим исходным содержанием данных, мы далее разделяем наши данные на примерно 80%, 10% и 10% соотношения для фактического обучения, проверки и тестовых наборов соответственно. В итоге у нас есть обучающий набор из 16 000 изображений, в том числе 8 000 кошек и 8 000 собак.

Двигаясь дальше, нам еще предстоит обсудить, как происходит обучение. Для этого нужно сразу оговориться, что нейронные сети — это не что иное, как очень сложные функции, иногда состоящие из миллионов, а то и миллиардов параметров! Итак, как и любая другая функция, нейронные сети также имеют параметры для использования. Фактически, эти уникальные комбинации параметров делают нейронные сети хорошими или плохими классификаторами. Имея это в виду, мы изначально присваиваем этим параметрам случайные значения. Отсюда мы получаем нашу первую версию функции нейронной сети. Мы перемешиваем 16 000 изображений и просим нашу первую версию нейронной сети классифицировать их. Поскольку параметры были сгенерированы чисто случайным образом, предоставленные исходные классификации также являются случайными. Один полный проход по всем изображениям обучающей выборки мы называем эпохой. В конце первой эпохи мы сравниваем случайные предсказания нейронной сети со значениями истинности. Разница между предсказаниями и реальной истиной называется «потерей». Обычно точность классификации двух классов (собак и кошек) после первой эпохи составляет около 50%, если не меньше. Математически, чем ниже точность, тем больше потеря между предсказанием и истинностью. Мы стремимся к тому, чтобы потери были как можно меньше. Как мы уже говорили ранее, процесс обучения очень похож на процессы обучения человека, в которых обучение происходит в результате повторяющихся проб и неудач. Таким образом, мы отправляем нашу обратную связь обратно в нейронную сеть и упоминаем как правильные, так и ошибочно предсказанные случаи. Сеть учитывает эту обратную связь и соответствующим образом настраивает значения своих параметров; он наказывает (уменьшает) тех, кто выполнял отрицательную работу, и вознаграждает (увеличивает) тех, кто выполнял положительную работу. С математической точки зрения этот процесс называется обратным распространением, когда значения параметров обновляются частными производными функции потерь, относящимися к этим конкретным параметрам.

После того, как все обновления параметров сделаны, мы получаем вторую версию нейронной сети. Затем мы снова перемешиваем 16 000 изображений и просим нашу вторую версию нейронной сети классифицировать их. Поскольку параметры были скорректированы, мы надеемся увидеть уменьшение потерь в конце второй эпохи. Наш алгоритм уже был запущен дважды. Мы будем повторять этот процесс несколько раз, пока не убедимся, что потеря достаточно мала и что наша сеть способна отличить кошек от собак. Одна важная деталь заключается в том, что если мы будем повторять наш алгоритм более чем достаточно, сеть начнет переобучаться. Другими словами, сеть скорее запомнит, чем выучит эти 16 000 изображений. Однако в мире существуют миллионы других собак и кошек, несущих другие признаки, поэтому мы хотим скорее обобщить наши прогнозы. Это момент, когда мы видим важность набора проверки.

Затем проверочный набор получает 10% долю всех данных. Следовательно, у нас есть 1000 изображений собак и кошек, по 500 изображений каждого. Одна из причин, по которой мы используем проверочный набор, состоит в том, чтобы проверить обобщаемость сети. Прогнозы этих новых 1000 невидимых изображений предоставляют полезную информацию о том, насколько хорошо сеть используется в целом. Чтобы проверить обобщаемость, мы можем построить график потерь в зависимости от числа эпох для обучающего и проверочного наборов. До определенного момента в номере эпохи потери при обучении и проверке будут уменьшаться вместе. Однако после определенного момента, хотя потери при обучении продолжают уменьшаться, потери при проверке либо перестают уменьшаться, либо начинают увеличиваться. Это точка, в которой происходит максимальное обобщение и начинается запоминание обучающей выборки. Следовательно, это значение эпохи выбирается в качестве начальной точки остановки алгоритма для обучения. Мы также используем набор проверки для настройки гиперпараметров. Гиперпараметры — это неявные параметры, такие как количество эпох, глубина и структура сети, количество параметров, скорость обучения и так далее. Мы можем протестировать различные комбинации этих гиперпараметров, чтобы создать даже улучшенную версию сети.

Наконец, когда мы закончим обучение и проверку, у нас должна быть достаточно надежная модель (сеть). Чтобы проверить окончательную производительность модели, мы используем последнюю часть данных, которая представляет собой последние невидимые 10% доли, состоящей из 1000 изображений. Строго важно помнить, что тестовый набор используется только для оценки окончательной производительности модели, и любые дальнейшие настройки этого набора запрещены. Оценка тестового набора обеспечивает окончательную производительность модели, и мы надеемся, что она даст достоверные результаты прогнозирования. Если нет, то процесс следует пересмотреть с нуля, начиная с этапа обучения.

Почему мы должны заботиться о машинном обучении?

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

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

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