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

Прежде чем говорить о машинном обучении, давайте убедимся, что мы понимаем, что обучение означает для нас, людей. Википедия утверждает, что «Обучение — это процесс приобретения нового понимания, знаний, поведения, навыков, ценностей, отношений и предпочтений». Иногда мы довольно быстро обретаем понимание, например, если я коснусь горячей плиты, я обожжусь. Мы получаем знание, что печь горячая, потому что это дало нам непосредственное последствие обжечь палец. Однако обучение часто происходит не так быстро. Нам часто приходится осознавать модели действий и реакций. Урок накапливается по мере того, как мы продолжаем получать новые идеи. Это базовое наблюдение того, как соотносятся ввод и вывод или действие и последствие, помогло ученым-компьютерщикам разработать первое представление о машинах, принимающих решения на основе того, что они знают.
Основная цель машинного обучения — предоставить машинам возможность выполнять задачи, которые не запрограммированы алгоритмически. Это часто делается путем предоставления машине большого набора данных и выставления «оценок» для определенных атрибутов или уверенности машины в этих атрибутах.

Как выглядит процесс принятия решения? Давайте сравним яблоки и апельсины (ну, серьезно). Оба плода шаровидные, одинаковые по размеру и весу. Как машина могла бы лучше всего отличить их друг от друга? Машина начнется с основ. Типичная система машинного обучения может выбрать характеристики, оценить их и принять решение на основе этих оценок. Например, мы могли бы посмотреть на форму, цвет и текстуру. Яблоки, скорее всего, красные, гладкие сферические объекты. Апельсины также являются сферами, но, скорее всего, будут грубыми и оранжевыми. Хорошо обученная система, которая оценила миллионы яблок и апельсинов, скорее всего, сможет отличить яблоко от апельсина. Чем больше данных вы предоставляете своей машине и насколько эффективно вы можете запрограммировать машину для обработки этих данных, тем выше качество ваших выходных данных.

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

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

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

В качестве альтернативы существует контрастное обучение без учителя. Он пытается вывести структуру из данных при обучении и использовать эти выводы на практике. Это лучше всего подходит для определения того, какие функции можно использовать для классификации. Также может быть проще использовать немаркированные данные, поскольку помеченные данные обычно требуют маркировки вручную. Там, где обучение с учителем может классифицировать на основе обученного ввода, модель обучения без учителя может искать общие черты или общие различия, например, какие покупатели покупают одни и те же вещи или какие зрители просматривают одно и то же видео.
Далее идет обучение с подкреплением. Вот как это звучит: мы используем положительное/отрицательное поощрение на основе результатов, чтобы обеспечить обратную связь с нашей моделью. На протяжении многих итераций мы даем положительное подтверждение для более правильного вывода и отрицательное подтверждение для неправильного вывода. Со временем у нас появится машина, которая знает, что делать для получения правильного результата. Лучшим примером такого процесса является знаменитая машина AlphaGo. По сути, машина играла сама в настольную игру Го снова и снова, чтобы усилить аспекты игры. Со временем машина учится лучшим методам продвижения и защиты. Это намного эффективнее, чем предоставление машине библиотеки заранее определенных последовательностей ходов или совпадений для обучения и анализа.
Машинное обучение — это обширная область исследований с бесконечным потенциалом и приложениями. Это важно понимать не только как инженеру-программисту, но и как потребителю, который предпочитает использовать эти продукты каждый день. Эти методы машинного обучения позволят нам расширить наш потенциал и вывести наши сознательные способности за пределы нас самих. Мы можем использовать машины для выполнения работы быстрее, эффективнее и почти без накладных расходов, необходимых для человеческих коллег, что позволяет нам переключить внимание на менее тривиальные вещи.

Использованная литература: