В этом посте мы узнаем:

  1. Что такое машинное обучение? Чем машинное обучение отличается от искусственного интеллекта и что делает его таким мощным?
  2. Как машины «учатся»? Как компьютер может понять, как выполнять задачу, не получая инструкций?

1. Что такое машинное обучение?

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

  • Искусственный интеллект (ИИ): это компьютерная программа любого типа, которая может делать что-то, что обычно требует человеческого интеллекта, например, играть в игры или понимать человеческий голос.
  • Машинное обучение (ML): это особое подмножество ИИ, в котором «инструкции» для компьютера не передаются ему напрямую, а изучаются из данных.

Взгляните на диаграмму Венна ниже:

Обратите внимание на то, что AI включает более простые задачи, например, куда должен идти Roomba дальше или в каком направлении должны идти призраки, чтобы съесть PacMan. Вы можете довольно просто ответить на эти вопросы, написав список правил: если вы ударились о стену, поверните. Если PacMan поднимется, призраки должны подняться. Это называется обучение на основе правил, потому что мы буквально просто дали компьютеру список правил, которым нужно следовать. Но это работает только для простых задач, которые можно решить с помощью простых инструкций.

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

2. Как машина может «учиться»?

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

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

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

Для этого примера мы продолжим с теми же 6 изображениями. Что произойдет, если мы покажем эти изображения нашему алгоритму ниже и сообщим алгоритму, представляет ли каждое изображение положительный или отрицательный пример («Собака» или «Не собака»). Алгоритм генерирует гипотезу случайным образом. Допустим, он генерирует гипотезу: «Коричневый, пушистый = собака». Насколько хорошо он будет работать?

Выше мы видели, что «коричневый, пушистый» - не лучшее определение собаки. Это работает для 2/3 собак, но также путает коричневую пушистую белку и коричневую пушистую кошку с собаками. В целом, его точность составляет 50%, что является той же точностью, которую мы получили бы, если бы случайно угадали Dog или Not-Dog, подбрасывая монетку. Так что это не очень хорошо. Но мы только начали! Теперь алгоритм попытается учиться, изменяя свою гипотезу и наблюдая за тем, что происходит.

Давайте попробуем еще несколько возможных определений:

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

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

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

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

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

Это часть курса MedML, организации, целью которой является демистификация машинного обучения - как для студентов-медиков, так и для студентов-медиков. Этот контент изначально был представлен на живом семинаре; посмотрите запись ниже:

Проверьте свое понимание

  1. Можно ли решить следующие проблемы с помощью обучения на основе правил, обучения на основе примеров или того и другого?
    (1) программное обеспечение для распознавания голоса, такое как Siri или Alexa
    (2) программа, которая может воспроизводить крестики-нолики
    (3) видео рекомендации на Youtube
    (4) хирургические роботы
  2. Подумайте, как этот алгоритм измеряет точность каждого определения. Какого рода определение вы ожидали бы увидеть, что алгоритм «учится», если бы мы показали алгоритм только белых собак или чихуахуа?