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

Вступление

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

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

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

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

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

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

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

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

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

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

Например, при контролируемом обучении алгоритм может снабжать данные изображениями акул, помеченных как «+ рыба », и изображениями океанов, помеченными как « вода ». Будучи обученным на этих данных, контролируемый алгоритм обучения должен быть в состоянии позже идентифицировать изображения без метки акулы как ` fish ` и изображения без метки океана как ` water +`.

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

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

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

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

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

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

подходы

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

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

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

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

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

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

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

изображение: https: //assets.digitalocean.com/articles/machine-learning/intro-to-ml/k-NN-1-graph.png [набор исходных данных k-ближайшего соседа]

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

изображение: https: //assets.digitalocean.com/articles/machine-learning/intro-to-ml/k-NN-2-graph.png [набор данных k-ближайшего соседа с новым объектом для классификации]

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

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

изображение: https: //assets.digitalocean.com/articles/machine-learning/intro-to-ml/k-NN-3-graph.png [набор данных k-ближайшего соседа с завершенной классификацией]

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

Изучение дерева решений

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

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

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

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

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

изображение: https: //assets.digitalocean.com/articles/machine-learning/intro-to-ml/decision-tree-diagram.png [пример дерева решений для рыбалки]

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

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

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

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

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

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

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

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

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

Из data, извлеченного из объявлений о вакансиях на самом сайте.com в декабре 2016 года, можно сделать вывод, что Python является наиболее востребованным программным обеспечением. язык в области машинного обучения. За Python следует Java, затем R, затем C ++.

Популярность * Python * может быть связана с возросшим развитием сред глубокого обучения, доступных в последнее время для этого языка, включая TensorFlow, PyTorch, и Keras. Будучи языком с читаемым синтаксисом и возможностью использования в качестве языка сценариев, Python оказывается мощным и простым как для предварительной обработки данных, так и для работы с данными напрямую. Http://scikit-learn.org/stable/[scikit-learn] библиотека машинного обучения построена на основе нескольких существующих пакетов Python, с которыми разработчики Python могут быть уже знакомы, а именно http://www.numpy.org/ [NumPy], SciPy и Matplotlib.

Чтобы начать работу с Python, вы можете прочитать серию наших руководств на странице «https://www.digitalocean.com/community/tutorial_series/how-to-code-in-python-3[How To Code in Python 3]» или Прочитайте, в частности, по ссылке «https://www.digitalocean.com/community/tutorials/how-to-build-a-machine-learning-classifier-in-python-with-scikit-learn[How для создания классификатора машинного обучения в Python с scikit-learn] »или« How для выполнения переноса нейронного стиля с помощью Python 3 и PyTorch. »

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

К библиотекам машинного обучения для Java относятся Deeplearning4j, библиотека с открытым исходным кодом и распределенная библиотека глубокого обучения, написанная как для Java, так и для Scala; MALLET ( MA chine L заработок для L anguag * E * T oolkit) позволяет для приложений машинного обучения по тексту, включая обработку естественного языка, моделирование тем, классификацию документов и кластеризацию; и Weka - набор алгоритмов машинного обучения для использования в задачах интеллектуального анализа данных.

  • R * - это язык программирования с открытым исходным кодом, используемый в основном для статистических вычислений. За последние годы его популярность возросла, и многие в академических кругах его поддерживают. R обычно не используется в промышленных производственных средах, но вырос в промышленных приложениях из-за возросшего интереса к науке данных. Популярные пакеты для машинного обучения на R включают caret (сокращение от C lassification A nd RE gression T дождь) для создания прогнозных моделей, randomForest для классификации и регрессии и https://cran.r-project.org/web/ packages / e1071 / index.html [e1071], который включает функции для статистики и теории вероятностей.

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

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

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

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

При использовании исторических фотографий ученых в качестве обучающих данных компьютер может неправильно классифицировать ученых, которые также являются цветными людьми или женщинами. Фактически, недавнее рецензируемое исследование показало, что программы искусственного интеллекта и машинного обучения демонстрируют уклоны, подобные человеческим, которые включают расовые и гендерные предрассудки. См., Например, «http://science.sciencemag.org/content/356/6334/183[Semantics, автоматически получаемые из языковых корпусов, содержащих уклоны, подобные человеческим»] и «https://homes.cs.washington.edu/ % 7Emy89 / publishing / bias.pdf [Мужчины также любят делать покупки: уменьшение усиления гендерного смещения с помощью ограничений на уровне корпуса] »[PDF].

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

Поскольку предвзятость человека может негативно повлиять на других, очень важно знать об этом, а также работать над тем, чтобы максимально устранить его. Один из способов добиться этого - обеспечить, чтобы над проектом работали разные люди и чтобы его проверяли и проверяли разные люди. Другие призвали regulatory третьего лица для мониторинга и аудита алгоритмов , building альтернативные системы, которые могут обнаружить отклонения, и https: //www.fidelitylabs.com/2017/06/14/combating-machine-learning-bias/[ethics reviews] как часть планирования проекта по науке о данных. Повышение осведомленности о предвзятости, помня о наших собственных бессознательных предубеждениях и структурирование справедливости в наших проектах машинного обучения и конвейерах может работать для борьбы с предвзятостью в этой области.

изображение: https: //assets.digitalocean.com/articles/machine-learning/intro-to-ml/machine-learning-book.png [Машинное обучение DigitalOcean]

Заключение

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

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

В дополнение к чтению наших руководств по «https://www.digitalocean.com/community/tutorials/how-to-build-a-machine-learning-classifier-in-python-with-scikit-learn[How To Build a Классификатор машинного обучения на языке Python с помощью scikit-learn] »или« How To Perform Neural Style Transfer с Python 3 и PyTorch, «вы можете узнать больше о работе с данными в технологической отрасли, прочитав наши учебники Data Analysis ,

Related