- Виды машинного обучения
- Машинное обучение
- Обучение с учителем
- Обучение без учителя
- Обучение с подкреплением
- Связываем все вместе
- Гид по структуре машинного обучения
- Машинное обучение — это…
- …подраздел искусственного интеллекта (ИИ)
- …способ решения практических задач
- … способ увеличить эффективность компьютеров
- …технология, основанная на опыте
- Простой пример:
- Как работает машинное обучение
- Очистка
- Разделение
- Обучение
- Оценка
- Оптимизация
- Какие существуют типы машинного обучения и чем они отличаются
- Обучение с учителем (supervised learning)
- Обучение без учителя (unsupervised learning)
- Обучение с подкреплением
- Для чего можно использовать машинное обучение
- Логистика и производство
- Продажи и маркетинг
- Кадры
- Финансы
- Здравоохранение
- Вместо заключения
Виды машинного обучения
Машинное обучение
Говоря в общем, машинное обучение — это обучение компьютерной программы или алгоритма постепенному улучшению исполнения поставленной задачи. С исследовательской стороны машинное обучение можно рассматривать через призму теоретического и математического моделирования процесса его работы. Тем не менее, на практике, это изучение того, как создавать приложения, демонстрирующие итеративное улучшение. Типы машинного обучения можно выделять по разным критериям, но вот основные три: обучение с учителем, обучение без учителя и обучение с подкреплением.
В мире, насыщенном искусственным интеллектом, машинным обучением и чрезмерным количеством разговоров о них, интересно научиться понимать и определять типы машинного обучения, с которыми можно столкнуться. Для обычного пользователя компьютера это означает понимание того, как машинное обучение проявляет себя в используемых ими приложениях. Для практиков, создающих эти приложения, важно знать типы машинного обучения, чтобы для любой конкретной задачи создать правильную среду обучения.
Обучение с учителем
Обучение с учителем — не только самая популярная парадигма машинного обучения, но и самая простая для понимания и реализации. Она очень похожа на обучение ребенка с использованием карточек.
Имея данные в виде примеров с метками, мы можем подавать алгоритму их один за другим, дожидаться прогноза и давать обратную связь: предсказал ли он правильно или нет. Со временем алгоритм научится приближаться к точному предсказанию отношений между примерами и их метками. Будучи полностью обученным, алгоритм сможет наблюдать никогда ранее не встречавшийся пример и предсказывать верную метку для него.
Из-за такого подхода обучение с учителем часто описывается как ориентированное на задачу: алгоритм сильно сфокусирован на одной единственной задаче. С этим типом обучения вы обязательно столкнетесь, поскольку он представлен во многих из следующих приложений:
- Правильный подбор рекламы. Выбор хорошо работающей рекламы часто является задачей обучения с учителем. Многие встречаемые вами объявления размещаются именно на этом ресурсе, потому что обученный алгоритм сказал, что они уже имели популярность и кликабельность именно здесь.
- Классификация спама. Если вы используете электронную почту, скорее всего, вы сталкивались с спам-фильтром. Этот спам-фильтр — система, обученная с учителем. Системы почтовых рассылок учатся, как превентивно отфильтровывать вредоносные письма и учитывать предпочтения пользователя.
- Распознавание лиц. Если вы используете Facebook, то ваше лицо использовалось в алгоритме обучения с учителем: вы загружаете фотографию, система находит на ней лица, определяет конкретного человека, а затем предлагает вам отметить его на фото.
Обучение без учителя
Обучение без учителя во многом противоположность обучения с учителем. Здесь данные не имеют меток. Вместо этого алгоритм получает в свое распоряжение много, очень много, данных и инструментов для понимания их свойств. Благодаря этому он может научиться группировать и организовывать старые данные в новые таким образом, чтобы человек (или другой интеллектуальный алгоритм) смог понять их смысл.
Обучение без учителя интересно тем, что подавляющее большинство данных в этом мире не имеет меток. Наличие алгоритмов, способных извлекать терабайты и терабайты непомеченных данных и осмысливать их, является огромным источником потенциальной прибыли для многих отраслей.
Например, если бы у нас была большая база данных по каждой когда-либо опубликованной исследовательской работе, то мы могли бы обучить алгоритм, который бы знал, как сгруппировать данные таким образом, чтобы мы всегда были в курсе текущего прогресса в конкретной области знаний. Алгоритм мог бы предлагать нам связанные работы для цитирования или дальнейшего изучения. С таким инструментом производительность значительно повысилась бы.
Поскольку обучение без учителя основано на данных и их свойствах, мы можем смело утверждать, что оно исходит от данных. Результаты обучения без учителя контролируются данными и способом их представления. Вот некоторые области, где вы можете столкнуться с обучением без учителя:
- Системы рекомендаций. Если вы когда-либо пользовались YouTube или Netflix, вы, скорее всего, сталкивались с системой рекомендаций по видео. Она обладает информацией о видео (длина, жанр и так далее) и знает историю просмотров многих пользователей. Принимая во внимание пользователей, которые смотрели похожие на ваши видео, а затем наслаждались другими (теми, которые вы еще не смотрели), система рекомендаций может проследить взаимосвязь и предложить интересное видео именно для вас.
- Потребительские предпочтения. Вероятно, ваши потребительские предпочтения лежат в огромных базах данных и в настоящее время активно покупаются и продаются. Такие предпочтения могут использоваться в алгоритмах обучения без учителя, чтобы группировать клиентов по сегментам, что в свою очередь позволяет компаниям строить более продвинутые рекомендательные системы.
- Группировка проблем пользователей помогает компаниям определить основные проблемы клиентов, чтобы затем исправить их, улучшить продукт или разработать гайд по решению наиболее распространенных проблем.
Обучение с подкреплением
Обучение с подкреплением значительно отличается от обучений с учителем и без, между которым мы легко можем проследить разницу: наличие или отсутствие меток. Я предпочитаю смотреть на обучение с подкреплением как на обучение на ошибках. Поместите алгоритм обучения с подкреплением в любую среду и в начале он будет совершать много ошибок, однако мы будем подавать алгоритму положительный или отрицательный сигнал, который свяжет его поведение с положительным или отрицательным результатами. Таким образом мы можем улучшить наш алгоритм, отдавая предпочтение хорошему поведению, а не плохому. Со временем алгоритм обучения с подкреплением научится делать меньше ошибок, чем раньше.
Обучение с подкреплением базируется на поведении. Оно черпает вдохновение в области нейробиологии и психологии. Если вы слышали о собаке Павлова, то, возможно, вы уже знакомы с идеей усиления агента, хотя и биологического.
Однако, чтобы по-настоящему понять обучение с подкреплением, давайте разберем конкретный пример и посмотрим на обучение агента играть в игру Марио. Для любой проблемы обучения с подкреплением нам нужен агент и среда, а также способ соединить их петлей обратной связи. Чтобы подключить агент к среде, мы предоставляем ему набор действий, которые он может предпринять и которые влияют на среду. Чтобы подключить окружение к агенту, мы постоянно посылаем агенту два сигнала: обновленное состояние и вознаграждение (наш подкрепляющий сигнал).
В игре Марио наш агент — алгоритм обучения, а наша среда — игра (скорее всего, определенного уровня). У агента есть множество действий — состояния игровых кнопок. Обновление состояния происходит при смене каждого игрового кадра, а сигнал — изменение счета. До тех пор, пока мы соединяем все эти компоненты вместе, мы строим сценарий обучения с подкреплением для игры Марио.
Где используется обучение с подкреплением в реальном мире?
- Видеоигры. Одно из самых распространенных мест применения обучения с подкреплением — обучение игре в игры. Посмотрите на приложения AlphaZero и AlphaGo, которые научились играть в игру Go. Наш пример Марио также является распространенным примером. В настоящее время я не знаю ни одной массовой игры, в которой агент обучения с подкреплением был бы использован в качестве игрового искусственного интеллекта, но я могу предположить, что скоро это будет основным вариантом для разработчиков игр.
- Промышленное моделирование. Для многих роботизированных приложений (например, сборочных линий) полезно, чтобы машины учились выполнять свои задачи без необходимости императивного программирования. Это помогает сэкономить и повысить безопасность. Мы также можем стимулировать машины использовать меньше электроэнергии и, более того, мы можем разрабатывать все это виртуально, чтобы не тратить деньги и ничего не сломать физического.
- Управление ресурсами. Обучение с подкреплением полезно для принятия решения в сложных условиях. Взять, к примеру, дата-центры Google. Они используют обучение с подкреплением, чтобы уравновесить затраты на электроэнергию и качество оказываемой услуги. Как это влияет на обычного человека? Хранение данных дешевле, а влияние на окружающую среду меньше.
Связываем все вместе
Теперь, когда мы обсудили три разных типа машинного обучения, важно отметить, что во многих случаях границы между ними стираются. Более того, существует множество задач, которые легко формулируются как один тип обучения, а затем преобразовываются в другую парадигму.
Например, возьмите систему рекомендаций. Мы обсуждали ее как задачу обучения без учителя, но она также может быть легко переформулирована как задача обучения с учителем: учитывая огромное множество историй просмотров пользователей, предсказать, следует ли рекомендовать определенный фильм или нет. Причина кроется в том, что в конечном итоге любое обучение — это обучение. Все зависит от того, как мы сформулируем проблему. Просто определенные задачи легче сформулировать так, а не иначе.
Отсюда следует вывести еще одну интересную идею. Мы можем смешивать типы обучения, проектируя системы, которые учатся тем или иным способом, но объединяются в один более крупный алгоритм.
- Агент, играющий в Марио? Почему бы не дать ему способность распознавать и отмечать врагов?
- Система, классифицирующая предложения? Почему бы не дать ей стимул извлекать выгоду из определения смысла предложения?
- Хотите объединить людей в социальной сети в группы? Почему бы не добавить в процесс подкрепление, которое уточнит результаты?
Опять же, я думаю, что очень важно, чтобы все вокруг хотя бы немного разбирались в машинном обучении. Мир кардинально меняется и машинное обучение все больше проникает в нашу повседневную жизнь. Понимание основ поможет лучше ориентироваться в мире, демистифицировать то, что может показаться магией, и позволит лучше рассуждать об используемой технологии.
Источник
Гид по структуре машинного обучения
Контент-маркетолог Мария Пушикова специально для блога Нетологии перевела статью Charles-Antoine Richard о том, что такое машинное обучение и какие методы машинного обучения существуют.
Совсем недавно мы обсуждали необходимость использования методов машинного обучения в бизнесе. Это подтолкнуло меня изучить основы методов машинного обучения, во время чего я сознал: большая имеющейся часть информации направлена на разработчиков или специалистов по Big Data.
Поэтому я решил, что читателям будет интересно прочесть объяснение методов машинного обучения от человека нетехнической специальности.
Машинное обучение — это…
Вот самое простое определение, которое я нашел:
Машинное обучение — это «[…] класс методов искусственного интеллекта, которые позволяют улучшить результаты работы компьютеров путем обучения на известных данных», — Berkeley.
Теперь давайте разложим все по полочкам, чтобы выстроить основы знаний в области машинного обучения.
…подраздел искусственного интеллекта (ИИ)
ИИ — это наука и технология по разработке мероприятий и методов, позволяющих компьютерам успешно выполнять задачи, которые обычно требуют интеллектуального осмысления человека. Машинное обучение — часть этого процесса: это методы и технологии, с помощью которых можно обучит компьютер выполнять поставленные задачи.
…способ решения практических задач
Методы машинного обучения все еще в развитии. Некоторые уже изучены и используются (рассмотрим дальше), но ожидается, что со временем их количество будет только расти. Идея в том, что совершенно разные методы используются для совершенно разных компьютеров, а различные бизнес-задачи требуют различных методов машинного обучения.
… способ увеличить эффективность компьютеров
Для решения компьютером задач с применением искусственного интеллекта нужны практика и автоматическая поднастройка. Модель машинного обучения нуждается в тренировке с использованием базы данных и в большинстве ситуаций — в подсказке человека.
…технология, основанная на опыте
ИИ нуждается в предоставлении опыта — иными словами, ему необходимы данные. Чем больше в систему ИИ поступает данных, тем точнее компьютер взаимодействует с ними, а также с теми данными, что получает в дальнейшем. Чем выше точность взаимодействия, тем успешнее будет выполнение поставленной задачи, и выше степень прогностической точности.
Простой пример:
- Выбираются входные данные и задаются условия ввода (например, банковские операции с использованием карт).
- Строится алгоритм машинного обучения и настраивается на конкретную задачу (например, выявлять мошеннические транзакции).
- Используемые в ходе обучения данные дополняются желаемой выходной информацией (например, эти транзакции — мошеннические, а эти нет).
Как работает машинное обучение
Машинное обучение часто называют волшебным или черным ящиком:
Вводишь данные → «волшебный черный ящик» → Миссия выполнена.
Давайте посмотрим на сам процесс обучения, чтобы лучше понять, как машинное обучение справляется с данными.
Машинное обучение основывается на данных. Первый шаг — убедиться, что имеющиеся данные верны и относятся именно к той задаче, которую вы пытаетесь решить. Оцените свои возможности для сбора данных, обдумайте их источник, необходимый формат и т. д.
Очистка
Данные зачастую формируются из различных источников, отображаются в различных форматах и языках. Соответственно, среди них могут оказаться нерелевантные или ненужные значения, которые потребуется удалить. И наоборот, каких-то данных может не хватать, и потребуется их добавить. От правильной подготовки базы данных прямым образом зависит и пригодность к использованию, и достоверность результатов.
Разделение
В зависимости от размера набора данных в некоторых случаях может потребоваться только небольшая их часть. Обычно это называется выборкой. Из выбранной части данные надо разделить на две группы: одна для использования алгоритмом, а другая для оценки его действий.
Обучение
Этот этап фактически направлен на поиск математической функции, которая точно выполнит указанную задачу. Обучение разнится в зависимости от типа используемой модели. Построение линий в простой линейной модели — это обучение; генерация дерева принятия решений для алгоритма случайного леса — это также обучение. Изменение ответов при построении дерева решений поможет скорректировать алгоритм.
Чтобы было проще, сосредоточимся на нейронных сетях.
Суть в том, что алгоритм использует часть данных, обрабатывает их, замеряет эффективность обработки и автоматически регулирует свои параметры (также называемый метод обратного распространения ошибки) до тех пор, пока не сможет последовательно производить желаемый результат с достаточной достоверностью.
Оценка
После того как алгоритм хорошо показал себя на учебных данных, его эффективность оценивается на данных, с которыми он еще не сталкивался. Дополнительная корректировка производится при необходимости. Этот процесс позволяет предотвратить переобучение — явление, при котором алгоритм хорошо работает только на учебных данных.
Оптимизация
Модель оптимизируется, чтобы при интеграции в приложение весить как можно меньше и как можно быстрее работать.
Какие существуют типы машинного обучения и чем они отличаются
Существует множество моделей для машинного обучения, но они, как правило, относятся к одному из трех типов:
- обучение с учителем (supervised learning);
- обучение без учителя, или самообучение (unsupervised learning);
- обучение с подкреплением (reinforcement learning).
В зависимости от выполняемой задачи, одни модели могут быть более подходящими и более эффективными, чем другие.
Обучение с учителем (supervised learning)
В этом типе корректный результат при обучении модели явно обозначается для каждого идентифицируемого элемента в наборе данных. Это означает, что при считывании данных у алгоритма уже есть правильный ответ. Поэтому вместо поисков ответа он стремится найти связи, чтобы в дальнейшем, при введении необозначенных данных, получались правильные классификация или прогноз.
В контексте классификации алгоритм обучения может, например, снабжаться историей транзакций по кредитным картам, каждая из которых помечена как безопасная или подозрительная. Он должен изучить отношения между этими двумя классификациями, чтобы затем суметь соответствующим образом маркировать новые операции в зависимости от параметров классификации (например, место покупки, время между операциями и т. д.).
В случае когда данные непрерывно связаны друг с другом, как, например, изменение курса акций во времени, регрессионный алгоритм обучения может использоваться для прогнозирования следующего значения в наборе данных.
Обучение без учителя (unsupervised learning)
В этом случае у алгоритма в процессе обучения нет заранее установленных ответов. Его цель — найти смысловые связи между отдельными данными, выявить шаблоны и закономерности. Например, кластеризация — это использование неконтролируемого обучения в рекомендательных системах (например, люди, которым понравилась эта бутылка вина, также положительно оценили вот эту).
Обучение с подкреплением
Этот тип обучения представляет собой смесь первых двух. Обычно он используется для решения более сложных задач и требует взаимодействия с окружающей средой. Данные предоставляются средой и позволяют алгоритму реагировать и учиться.
Область применения такого метода обширна: от контроля роботизированных рук и поиска наиболее эффективной комбинации движений, до разработки систем навигации роботов, где поведенческий алгоритм «избежать столкновения» обучается опытным путем, получая обратную связь при столкновении с препятствием.
Логические игры также хорошо подходят для обучения с подкреплением, так как они традиционно содержат логическую цепочку решений: например, покер, нарды и го, в которую недавно выиграл AlphaGo от Google. Этот метод обучения также часто применяется в логистике, составлении графиков и тактическом планировании задач.
Для чего можно использовать машинное обучение
В бизнесе можно рассматривать три сферы применения машинного обучения: описательную, прогнозирующую и нормативную.
Описательное применение относится к записи и анализу статистических данных для расширения возможностей бизнес-аналитики. Руководители получают описание и максимально информативный анализ результатов и последствий прошлых действий и решений. Этот процесс в настоящее время обычен для большинства крупных компаний по всему миру — например, анализ продаж и рекламных проектов для определения их результатов и рентабельности.
Второе применение машинного обучения — прогнозирование. Сбор данных и их использование для прогнозирования конкретного результата позволяет повысить скорость реакции и быстрее принимать верные решения. Например, прогнозирование оттока клиентов может помочь его предотвратить. Сегодня этот процесс применяется в большинстве крупных компаний.
Третье и наиболее продвинутое применение машинного обучения внедряется уже существующими компаниями и совершенствуется усилиями недавно созданных. Простого прогнозирования результатов или поведения уже недостаточно для эффективного ведения бизнеса. Понимание причин, мотивов и окружающей ситуации — вот необходимое условие для принятия оптимального решения. Этот метод наиболее эффективен, если человек и машина объединяют усилия. Машинное обучение используется для поиска значимых зависимостей и прогнозирования результатов, а специалисты по данным интерпретируют результат, чтобы понять, почему такая связь существует. В результате становится возможным принимать более точные и верные решения.
Кроме того, я бы добавил еще одно применение машинного обучения, отличное от прогнозного: автоматизация процессов. Прочесть об этом можно здесь.
Вот несколько примеров задач, которые решает машинное обучение.
Логистика и производство
- В Rethink Robotics используют машинное обучение для обучения манипуляторов и увеличения скорости производства;
- В JaybridgeRobotics автоматизируют промышленные транспортные средства промышленного класса для более эффективной работы;
- В Nanotronics автоматизируют оптические микроскопы для улучшения результатов осмотра;
- Netflix и Amazon оптимизируют распределение ресурсов в соответствии с потребностями пользователей;
- Другие примеры: прогнозирование потребностей ERP/ERM; прогнозирование сбоев и улучшение техобслуживания, улучшение контроля качества и увеличение мощности производственной линии.
Продажи и маркетинг
- 6sense прогнозирует, какой лид и в какое время наиболее склонен к покупке;
- Salesforce Einstein помогает предвидеть возможности для продаж и автоматизировать задачи;
- Fusemachines автоматизирует планы продаж с помощью AI;
- AirPR предлагает пути повышения эффективности PR;
- Retention Science предлагает кросс-канальное вовлечение;
- Другие примеры: прогнозирование стоимости жизненного цикла клиента, повышение точности сегментации клиентов, выявление клиентских моделей покупок, и оптимизация опыта пользователя в приложениях.
Кадры
- Entelo помогает рекрутерам находить и отбирать кандидатов;
- HiQ помогает менеджерам в управлении талантами.
Финансы
- Cerebellum Capital and Sentient используют машинное обучение для улучшения процесса принятия инвестиционных решений;
- Dataminr может помочь с текущими финансовыми решениями, заранее оповещая о социальных тенденциях и последних новостях;
- Другие примеры: выявление случаев мошенничества и прогнозирование цен на акции.
Здравоохранение
- Atomwise использует прогнозные модели для уменьшения времени производства лекарств;
- Deep6 Analytics определяет подходящих пациентов для клинических испытаний;
- Другие примеры: более точная диагностика заболеваний, улучшение персонализированного ухода и оценка рисков для здоровья.
Больше примеров использования машинного обучения, искусственного интеллекта и других связанных с ними ресурсов вы найдете в списке, созданном Sam DeBrule.
Вместо заключения
Помните, что совместное использование разных систем и методик — ключ к успеху. ИИ и машинное обучение хоть и сложны, но увлекательны. Буду рад продолжить обсуждение стратегий разработки и проектирования с использованием больших данных вместе с вами. Комментируйте и задавайте вопросы.
Мнение автора и редакции может не совпадать. Хотите написать колонку для «Нетологии»? Читайте наши условия публикации.
Источник