Внутри ИИ
Мягкое введение в машинное обучение
Любая достаточно развитая технология неотличима от магии
Добро пожаловать! Эта статья - моя первая попытка немного углубиться в такую сложную тему, как машинное обучение. Я написал эту статью по двум причинам. Во-первых, эта тема мне показалась очень интересной, и если вам интересно машинное обучение, но вы не знаете, с чего начать, то эта статья для вас. Во-вторых, эта статья - способ обобщить полученные знания и поделиться знаниями со страстными поклонниками машинного обучения.
Я ожидаю, что у вас есть некоторые базовые знания «Теории вероятностей», чтобы продолжить. Поскольку машинное обучение - очень обширная тема, и я хочу, чтобы вы получали удовольствие от чтения, в этой статье основное внимание будет уделено:
- Демистифицировать, что такое машинное обучение?
- Подход к обучению
- Обучение с учителем и без учителя
- Обзор регрессии, классификации и кластеризации
- Два практических примера наборов данных.
- Бесплатные ресурсы, чтобы узнать больше
Итак, что такое машинное обучение и зачем оно нам?
«Любая достаточно продвинутая технология неотличима от магии».
- Артур Кларк
Мы знаем, что люди учатся на прошлом опыте, а машины следуют инструкциям людей.
Что, если люди смогут обучать машины на основе прошлых данных и делать то, что могут делать люди?
Что ж, это машинное обучение, давайте углубимся в него.
Мир наполнен данными, множеством данных - изображениями, музыкой, текстом, видео, электронными таблицами. Машинное обучение - это наука и отрасль искусственного интеллекта, в которой компьютеры обучаются на основе данных для выполнения определенной задачи, а не путем их явного программирования.
Традиционная разработка программного обеспечения против машинного обучения
В традиционном подходе к разработке программного обеспечения входные данные и алгоритм известны, и вы пишете функцию для получения выходных данных.
- Входные данные
- Разработайте алгоритм, применив к нему логику
- Выход произведен
Однако при использовании подхода машинного обучения вы знаете ввод и желаемый результат, но не знаете алгоритм, который дает результат.
- Дайте набор входных данных
- Дайте набор желаемых выходных данных
- Через нейронные сети (будет рассмотрено в другой статье) вы получите алгоритм, который предсказывает желаемый результат.
Некоторые приложения машинного обучения
Компании используют алгоритмы машинного обучения для оптимизации результатов для своих продуктов.
- Когда вы заходите на Netflix, как вы определяете, какой фильм хотите посмотреть? Netflix рекомендует использовать машинное обучение.
- Когда вы используете кредитную карту для совершения покупки, на ней есть защита от мошенничества - машинное обучение.
- Другими приложениями машинного обучения являются распознавание речи, языковой перевод, беспилотные автомобили и многие другие.
Как происходит обучение?
В большинстве приложений машинного обучения: основное внимание уделяется не столько построению моделей («пониманию лежащего в основе процесса»), сколько прогнозированию.
Так же, как люди учатся на собственном опыте, то же самое и с машинным обучением: вы даете им много примеров (данных), и они начинают понимать, что происходит. Мы, люди, используем индуктивное рассуждение, а не дедуктивное рассуждение. Давайте рассмотрим эти две концепции, поскольку они очень важны для машинного обучения.
Индукция (конкретный → общий) - это обобщающий вывод на основе конкретных примеров, основанный на нашем ограниченном опыте, здесь вывод может быть не всегда на 100% точным.
- Мы наблюдаем восход солнца каждый день.
- Итак, мы предсказываем, что солнце тоже взойдет завтра.
- Следовательно, мы предсказываем, что Солнце тоже взойдет завтра.
Дедукция (Общие → Конкретные) - это процесс получения определенного вывода из общих утверждений. Здесь вывод факт.
- Все люди смертны.
- Уильям - мужчина.
- Следовательно, Уильям Смертен.
Важно помнить, что любая обучающаяся система имеет «индуктивное смещение» или предварительные знания, и машинное обучение нацелено на автоматизацию процесса «индуктивного вывода». Ярким примером такого разнообразия машинного обучения является разделение контролируемого обучения и неконтролируемого обучения. Я не буду здесь говорить об обучении с подкреплением.
Обучение с учителем
В контролируемом обучении нам предоставляется помеченный набор данных, и мы уже знаем, как должен выглядеть наш правильный результат, учитывая, что между входом и выходом существует некоторая взаимосвязь. Беспилотный автомобиль - это пример обучения с учителем. Курируемые проблемы подразделяются на задачи «Регрессия» и «Классификация».
В задаче «Регрессия» мы пытаемся предсказать что-то, что дает непрерывный результат. Например, имея изображение человека, мы должны предсказать его возраст на основе данного изображения.
В задаче «Классификация» мы пытаемся предсказать результаты, которые имеют дискретный вывод. Например, для пациента с опухолью мы должны предсказать, является ли опухоль злокачественной или доброкачественной.
5 ЭТАПОВ машинного обучения
Вот 5 основных шагов, которые необходимо выполнить для разработки алгоритма машинного обучения:
- Ввод, также известный как функции: x
- Вывод, также известный как ярлыки: y
- Целевая функция: f: x → y (нам неизвестно)
- Сбор данных (x1, y1), (x2, y2),…., (Xn, yn)
- Гипотеза: 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 женщины.
Ключевые термины
- Функция: входные данные для нашей модели
- Примеры: пара ввода / вывода, используемая для обучения.
- Ярлыки: результат модели.
- Слой: набор узлов, связанных вместе в нейронной сети.
- Модель: представление вашей нейронной сети.
Резюме
- Любая обучающаяся система имеет «индуктивное смещение» или «предварительные знания».
- Машинное обучение направлено на автоматизацию процесса «индуктивного вывода».
- Нам нужно иметь представление о том, что мы ищем (индуктивное смещение)
- Поскольку машинное обучение - это форма индуктивного справочника, мы никогда не можем быть полностью уверены в результатах.
- В большинстве приложений машинного обучения основное внимание уделяется не столько построению моделей, сколько прогнозированию.
Эта статья представляет собой лишь небольшое ознакомление с областью машинного обучения, в ней гораздо больше, и есть множество онлайн-ресурсов, доступных для расширения ваших знаний. Ниже я привел 5 ресурсов, которые лично мне показались очень полезными.
Некоторые бесплатные полезные ресурсы, чтобы узнать больше:
- Приключения Google с искусственным интеллектом
- Курс машинного обучения Udacity
- Машинное обучение стало веселым и интересным
- Курс машинного обучения Калифорнийского технологического института
- Курс Эндрю Нг на Coursera
Эта статья была моей первой попыткой углубиться в такую сложную тему, как машинное обучение. Я напишу больше статей, посвященных математике, лежащей в основе машинного обучения. Я надеюсь, что я проделал достойную работу по объяснению, и вы нашли эту статью проницательной.
Оставайтесь любопытными и продолжайте учиться :)