Поиск по сайту:

Введение в машинное обучение


Введение

Машинное обучение — это подраздел искусственного интеллекта (ИИ). Целью машинного обучения обычно является понимание структуры данных и встраивание этих данных в модели, понятные и используемые людьми.

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

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

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

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

Методы машинного обучения

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

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

Контролируемое обучение

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

Например, при контролируемом обучении алгоритм может получать данные с изображениями акул, помеченными как fish, и изображениями океанов, помеченными как water. Обучившись на этих данных, алгоритм обучения с учителем должен впоследствии идентифицировать непомеченные изображения акул как рыбы, а непомеченные изображения океана — как воду.

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

Неконтролируемое обучение

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

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

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

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

подходы

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

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

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

k-ближайший сосед

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

Мы сосредоточимся на классификации k-NN. В этом методе результатом является членство в классе. Это присвоит новый объект классу, наиболее распространенному среди k его ближайших соседей. В случае k=1 объект относится к классу единственного ближайшего соседа.

Давайте рассмотрим пример k-ближайшего соседа. На приведенной ниже диаграмме есть объекты с голубым ромбом и объекты с оранжевой звездой. Они принадлежат к двум отдельным классам: алмазному классу и звездному классу.

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

Когда мы выбираем k=3, алгоритм найдет трех ближайших соседей зеленого сердца, чтобы отнести его либо к классу алмазов, либо к классу звезд.

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

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

Обучение дереву решений

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

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

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

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

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

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

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

Глубокое обучение

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

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

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

Компьютерное зрение и распознавание речи добились значительных успехов по сравнению с подходами глубокого обучения. IBM Watson — хорошо известный пример системы, использующей глубокое обучение.

Языки программирования

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

Python — один из самых популярных языков для работы с машинным обучением благодаря множеству доступных фреймворков, включая Matplotlib.

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

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

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

C++ — предпочтительный язык для машинного обучения и искусственного интеллекта в играх или приложениях для роботов (включая передвижение роботов). Разработчики встраиваемого вычислительного оборудования и инженеры-электронщики с большей вероятностью отдадут предпочтение C++ или C в приложениях машинного обучения из-за их владения языком и уровня контроля над ним. Некоторые библиотеки машинного обучения, которые вы можете использовать с C++, включают масштабируемую Shark.

Человеческие предубеждения

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

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

При использовании исторических фотографий ученых в качестве обучающих данных компьютер может неправильно классифицировать ученых, которые также являются цветными людьми или женщинами. Фактически, недавнее рецензируемое исследование показало, что программы искусственного интеллекта и машинного обучения демонстрируют человеческие предубеждения, включая расовые и гендерные предрассудки. См., например, «Мужчинам тоже нравится ходить по магазинам: уменьшение усиления гендерных предубеждений с помощью ограничений на уровне корпуса» [PDF].

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

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

Заключение

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

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

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