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

Мотивация для этой статьи пришла на выходных. Я встречался с другом, болтая на разные темы, когда в какой-то момент разговора мы затронули тему машинного обучения. «Машинное обучение… разве это не когда компьютеры пишут код?», — сказал мой друг. Я сделал паузу, немного удивленный. Он был не совсем в восторге, но я ожидал, что все уже будут иметь четкое представление о том, что такое машинное обучение, учитывая недавний бум искусственного интеллекта (ИИ) и соответствующую шумиху в СМИ. Мой друг не невежественен и не луддит, поэтому, если они несут это заблуждение, мне интересно, сколько других людей также не знакомы с машинным обучением. Итак, я решил написать этот короткий нетехнический пост, чтобы объяснить концепцию, ее важность и то, как в целом работают современные методы.

Уф, ты уже надоел мне, какое мне дело?

Прежде чем перейти к описаниям, стоит ответить на вопрос почему. Проще говоря, машинное обучение и, в более широком смысле, искусственный интеллект становятся повсеместными — основным продуктом, встроенным во все новые технологии. Вы когда-нибудь задумывались, как такие компании, как Spotify и Netflix, рекомендуют идеальные песни и фильмы? Или как Facebook может идентифицировать лица для пометки на изображениях? Ну, все эти подвиги достигаются с помощью машинного обучения. И это только царапины на поверхности. В будущем самоуправляемые автомобили, холодильники с самосознанием, портативные устройства для перевода — все это и практически любые другие гаджеты, которые вы можете придумать, наверняка будут содержать некоторый элемент машинного обучения. Дайте это, стоит знать, что происходит. Итак, это почему, а теперь что.

Машинное обучение... могут ли это быть... обучающиеся машины?

Да, имя выдает все. Машинное обучение — это просто идея научить машины учиться. Революционный, я знаю. Примером этого может быть определение того, содержит ли фотография изображение вашего любимого пса Догги или его заклятого врага лиса Фокси (оригинал я знаю).

Чтобы понять, как для этого можно использовать машинное обучение, давайте рассмотрим подход, не связанный с машинным обучением. Если бы я хотел создать программу, которая могла бы отличить двух непримиримых соперников, я мог бы создать простой набор правил. Например, и у Фокси, и у Песика короткие заостренные уши и оранжевая шерсть, но у Фокси черный мех вокруг ног, а у Песика — нет. Следовательно, мы могли бы написать правило для обнаружения этого. Что, если бы Песик пробежал по грязи, вымазав свое прекрасное пальто черной грязью, чтобы выглядеть как Фокси. Наше правило может не сработать. Чтобы преодолеть это, мы могли бы добавить еще одно правило, чтобы понять, что Doggy носит ошейник. А что, если Догги потерял свой ошейник? Опять провал? Ургх, вы видите, что мы уже копаем кроличью нору, которая, вероятно, закончится кучей исключений, и, например, я не могу придумать больше правил.

Добро пожаловать, машины для изучения правил. Благодаря современному машинному обучению мы можем забыть об этом кропотливом процессе создания правил и просто собрать кучу разных изображений Собачки и Фокси и передать их в программу, чтобы автоматически распознать разницу. Как оно работает? Что ж, программа просто берет изображение и угадывает ответ. Сравнивая вывод с ожидаемым ответом, мы можем предоставить программе обратную связь, чтобы помочь ей улучшить свои возможности угадывания. Если это неправильно, мы наказываем его, чтобы избежать подобных ошибок, а если это правильно, мы поощряем подобное поведение. Таким образом, мы контролируем обучение программы.

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

Машинное обучение немного похоже на настройку радио

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

Чтобы слушать любимые джемы, которые играет ваша любимая станция CoolJams.fm (убивая эти названия, я знаю), вам нужно настроить частоту приемника, чтобы ловить сигнал станции. Если бы вы не настроили его ранее, приемник работал бы на какой-то случайной частоте, скорее всего, улавливая белый шум. Итак, вы начинаете вращать ноб влево и вправо в поисках какого-то сигнала. И через какое-то время вы начинаете слышать прерывистый звук и мчитесь к нему. По мере того, как он становится громче и четче, вы краснеете от волнения и поворачиваетесь быстрее. Вы промахиваетесь, но в конце концов возвращаетесь на канал — SlowJams.fm — не совсем то, что вы искали, путешествуя вдоль побережья со своими мальчиками. Итак, вы снова вращаетесь, на этот раз находя то, что искали.

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

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

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