Внутри ИИ

Мягкое введение в машинное обучение

Любая достаточно развитая технология неотличима от магии

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

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

  • Демистифицировать, что такое машинное обучение?
  • Подход к обучению
  • Обучение с учителем и без учителя
  • Обзор регрессии, классификации и кластеризации
  • Два практических примера наборов данных.
  • Бесплатные ресурсы, чтобы узнать больше

Итак, что такое машинное обучение и зачем оно нам?

«Любая достаточно продвинутая технология неотличима от магии».

- Артур Кларк

Мы знаем, что люди учатся на прошлом опыте, а машины следуют инструкциям людей.

Что, если люди смогут обучать машины на основе прошлых данных и делать то, что могут делать люди?

Что ж, это машинное обучение, давайте углубимся в него.

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

Традиционная разработка программного обеспечения против машинного обучения

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

  • Входные данные
  • Разработайте алгоритм, применив к нему логику
  • Выход произведен

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

  • Дайте набор входных данных
  • Дайте набор желаемых выходных данных
  • Через нейронные сети (будет рассмотрено в другой статье) вы получите алгоритм, который предсказывает желаемый результат.

Некоторые приложения машинного обучения

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

  1. Когда вы заходите на Netflix, как вы определяете, какой фильм хотите посмотреть? Netflix рекомендует использовать машинное обучение.
  2. Когда вы используете кредитную карту для совершения покупки, на ней есть защита от мошенничества - машинное обучение.
  3. Другими приложениями машинного обучения являются распознавание речи, языковой перевод, беспилотные автомобили и многие другие.

Как происходит обучение?

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

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

Индукция (конкретный → общий) - это обобщающий вывод на основе конкретных примеров, основанный на нашем ограниченном опыте, здесь вывод может быть не всегда на 100% точным.

  • Мы наблюдаем восход солнца каждый день.
  • Итак, мы предсказываем, что солнце тоже взойдет завтра.
  • Следовательно, мы предсказываем, что Солнце тоже взойдет завтра.

Дедукция (Общие → Конкретные) - это процесс получения определенного вывода из общих утверждений. Здесь вывод факт.

  • Все люди смертны.
  • Уильям - мужчина.
  • Следовательно, Уильям Смертен.

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

Обучение с учителем

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

В задаче «Регрессия» мы пытаемся предсказать что-то, что дает непрерывный результат. Например, имея изображение человека, мы должны предсказать его возраст на основе данного изображения.

В задаче «Классификация» мы пытаемся предсказать результаты, которые имеют дискретный вывод. Например, для пациента с опухолью мы должны предсказать, является ли опухоль злокачественной или доброкачественной.

5 ЭТАПОВ машинного обучения

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

  1. Ввод, также известный как функции: x
  2. Вывод, также известный как ярлыки: y
  3. Целевая функция: f: x → y (нам неизвестно)
  4. Сбор данных (x1, y1), (x2, y2),…., (Xn, yn)
  5. Гипотеза: h: x → y

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

Пример 1: классификация

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

Мы пытаемся предсказать на основе прошлых собранных данных, будет ли зачислен студент C или нет? Для наглядности мы можем нанести это на график.

На изображении выше мы сначала разделили данные «хорошие» и «плохие» линией. Эта линия будет нашей моделью. Синие точки представляют собой точки данных учащихся, которые были приняты, а красные точки - учащихся, которые были отклонены на основании их контрольных отметок и оценок. Глядя на диаграмму, мы можем заметить, что студенты, расположенные выше линии, принимаются, а учащиеся, находящиеся под линией, отклоняются. Вы могли подумать, что есть пара красных точек над линией и пара синих точек под линией, да, вы правы, модель допускает пару ошибок, поэтому это вероятность, а не стопроцентная уверенность. Таким образом, можно с уверенностью предсказать, если точка находится над линией, тогда ученик будет принят. Учащийся C с оценкой (6) и тестовой оценкой (7) находится выше черты, поэтому мы можем с некоторой уверенностью предположить, что ученик C, скорее всего, будет принят. Это проблема классификации, потому что вывод дискретный (принят, отклонен).

Пример 2: регрессия (немного для продвинутых)

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

Наша цель - с учетом обучающего набора изучить функцию h: X → Y, чтобы h (x) был «хорошим» предиктором для соответствующего значения y. По историческим причинам эта функция h называется гипотезой. Гипотеза принимает входные данные и выдает оценочное значение, поэтому она отображает x → y.

Мы можем использовать «линейную» линию (розовую линию на изображении ниже), чтобы она соответствовала набору данных, и на основе этого кажется, что он может продать ее за 150 000 долларов. Однако может быть алгоритм обучения лучше, чем линейный. Вместо того, чтобы вставлять прямую линию в данные, мы можем попробовать «квадратичный» для этой функции (синяя линия на изображении ниже). Затем, сделав прогноз, похоже, он сможет продать его за 200 000 долларов. Теперь встает вопрос о том, какой из них использовать? Нет справедливости в выборе того, что дает нашему другу лучшую цену. Это проблема регрессии, потому что ответ может быть непрерывным.

Обучение без учителя

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

Кластеризация: возьмите коллекцию из 50 разных людей и найдите способ автоматически группировать этих людей в группы. Возможно, вы захотите сгруппировать их на мужчин и женщин, поэтому вы можете решить, как бы вы это сделали. Вы, возможно, можете разделить их по растительности на лице, цвету кожи, одежде и т. Д. В конце концов, вы можете сказать, что вас 27 мужчин и 23 женщины.

Ключевые термины

  • Функция: входные данные для нашей модели
  • Примеры: пара ввода / вывода, используемая для обучения.
  • Ярлыки: результат модели.
  • Слой: набор узлов, связанных вместе в нейронной сети.
  • Модель: представление вашей нейронной сети.

Резюме

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

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

Некоторые бесплатные полезные ресурсы, чтобы узнать больше:

  1. Приключения Google с искусственным интеллектом
  2. Курс машинного обучения Udacity
  3. Машинное обучение стало веселым и интересным
  4. Курс машинного обучения Калифорнийского технологического института
  5. Курс Эндрю Нг на Coursera

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

Оставайтесь любопытными и продолжайте учиться :)