Искусственный интеллект есть везде. Если вы не знакомы с его концепциями, вы можете подумать о чем-то из I-Robot или Альтрона из кинематографической вселенной Marvel (отказ от ответственности: мне нравится его сухой юмор). Однако в этой статье я собираюсь демистифицировать машинное обучение, ветвь ИИ, таким образом, чтобы это было легко усвоить и не заставило вас ломать голову. Машинное обучение имеет так много применений в реальной жизни, особенно в бизнесе, таких как рекомендации по рекламе, самоуправляемые автомобили, обнаружение объектов, процессы естественного языка и т. д., и многие предприятия уже используют или позиционируют себя, чтобы воспользоваться этим.

Для начала мы собираемся ответить на несколько вопросов, начиная с того, что такое искусственный интеллект (ИИ)? ИИ — это в основном исследование/процесс, который позволяет машинам имитировать интеллектуальное поведение человека с помощью определенного алгоритма. На атомарном уровне ИИ — это просто способность машин имитировать разумное поведение человека. Существует шесть основных ветвей ИИ. Это нейронные сети глубокое обучение компьютерное зрение обработка естественного языка, когнитивные вычисления и машины. Обучение, о котором мы сегодня поговорим.

Второй вопрос: «Что такое алгоритм?» Алгоритм — это просто последовательность шагов, предпринимаемых для выполнения задачи. Вспомните шаги, которые вы предпринимаете, готовя свой любимый суп. Это алгоритм. Шаги, которые вы предпринимаете, чтобы собраться на работу, завязать шнурки, решить математическую задачу, — все это алгоритмы.

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

Машинное обучение в двух словах

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

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

Типы машинного обучения.

Машины могут обучаться четырьмя способами. Первые 3 типа обучения основаны на данных, то есть они учатся на исторических данных. 4 типа обучения

  1. Контролируемое обучение
  2. Неконтролируемое обучение
  3. Полуконтролируемое обучение
  4. Обучение с подкреплением

ОБУЧЕНИЕ С КОНТРОЛЕМ

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

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

  1. Классификация
  2. Регрессии

Классификация.

Здесь выходная переменная является категориальнойс двумя или более категориями. То есть является ли это письмо спамом или не спамом, это собака или кошка, или кенгуру ? Примерами алгоритмов классификации являются K-ближайший сосед, дерево решений, случайный лес, SVM, наивный байесовский метод, логистическая регрессия и т. д.. Обратите внимание, что некоторые из этих алгоритмов можно использовать и для задач регрессии.

Регрессия

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

Алгоритмы контролируемого обучения

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

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

На диаграмме ниже набор данных состоит из зеленых квадратов и оранжевых треугольников. Однако в набор данных был добавлен новый объект — синий кружок. K означает количество ближайших соседей, которые должны быть включены в процесс голосования. В нашем примере, где K = 5, алгоритм K-ближайшего соседа будет рассматривать 5 ближайших точек данных, ближайших к неопознанному объекту, то есть к синему кругу. Затем 5 точек данных будут проголосованы, и группа, набравшая наибольшее количество голосов, добавит новый синий кружок в свою группу. Итак, KNN в приведенном ниже примере предсказывает, что синий круг — это зеленый квадрат.

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

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

Наивный байесовский метод. Наивный байесовский алгоритм использует теорему Байеса для определения вероятности наступления события с учетом вероятности другого события, которое уже произошло. Теперь я знаю, что сказал, что не буду говорить о математике, но теорема Байеса работает на предположении, что вероятность того, что А произойдет при данном В, равна вероятности В при данном А, умноженной на вероятность А, деленной на вероятность B. Это условная вероятность. Он используется для классификации таких вещей, как спам или отсутствие спама. Это вероятность того, что электронное письмо является спамом, учитывая, что предыдущее электронное письмо с определенным стилем/словом было спамом.

Логистическая регрессия. Несмотря на свое название, логистическая регрессия является линейным классификатором. Если вы читаете Документацию Scikit-Learn, то на самом деле это первое предложение. Он часто используется для классификации и прогнозной аналитики. Логистическая регрессия оценивает вероятность возникновения события, например голосовал или не голосовал, на основе данный набор данных независимых переменных. Поскольку результат является вероятностью, зависимая переменная ограничена между 0 и 1. Значения/точки данных ниже 0,5 будут принадлежать, скажем, к категории не голосовал, а те, что выше 0,5, будут принадлежать к категории голосовали.

Линейная регрессия. Модель линейной регрессии описывает взаимосвязь между зависимой переменной, y и одной или несколькими независимыми переменными, X. Зависимая переменная называется переменной ответа, а независимые переменные называются переменными-предикторами. Например, сколько налогов я буду платить, будет зависеть от того, сколько я заработал в этом году. Модели линейной регрессии легко понять, потому что они используют формулу прямой линии, с которой мы все знакомы.

Formular for a straight line

y = mx + c

where 
y = dependent variable (how much tax I will pay)
m = the slope of the line(calculated from the data set)
x = the independent variable (how much I made this year)
c = y intercept(the point where the line crosses the y axis)

ОБУЧЕНИЕ БЕЗ КОНТРОЛЯ

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

Неконтролируемое обучение имеет 3 подкатегории или задачи, которые оно может выполнять.

  1. Кластеризация
  2. Ассоциация
  3. Уменьшение размерности

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

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

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

Алгоритм обучения без учителя

Кластеризация K-средних: это неконтролируемый алгоритм обучения, который группирует немаркированный набор данных в разные кластеры. Здесь K определяет количество предопределенных кластеров, которые необходимо создать в процессе. Если K=2, будет два кластера, а при K=3 будет три кластера и так далее.

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

Алгоритм априори: Алгоритм априори относится к алгоритму, который используется для вычисления правил ассоциации между объектами. Это означает, как два или более объекта связаны друг с другом. Другими словами, мы можем сказать, что априорный алгоритм — это изучение правила ассоциации, которое анализирует, что люди, купившие продукт А, также купили продукт Б. Используется многими веб-сайтами электронной коммерции, такими как Amazon и Alibaba.

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

На изображении ниже вы понимаете, что изображение слева имеет более высокое измерение (3 высоты, ширины и глубины), в отличие от изображения справа, которое имеет только 2 измерения (высота и ширина). Посмотрите это потрясающее видео о многомерности. Этот алгоритм используется для удаления шума с изображений во время предварительной обработки ваших данных.

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

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

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

Обучение с подкреплением

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

В обучении с подкреплением и агент (наша модель машинного обучения) сначала действуют в среде (игра, которую мы учим, например, Go). После каждого действия алгоритм/агент получает обратную связь, которая помогает ему определить, был ли сделанный им выбор правильным, нейтральным или неправильным. Если действие, которое они предприняли, было правильным, то мы вознаградим алгоритм, и он будет знать, что нужно повторить это действие, но если алгоритм неправильный, мы накажем его.

Не волнуйтесь, никто не бьет крошечного маленького робота, который возненавидит нас и захватит мир. Обучение с подкреплением основано на так называемой оптимальной политике, которая означает, что агент будет предпринимать только те действия, которые максимизируют его вознаграждение. Наградой является положительный отзыв, который мы даем агенту для формирования его будущих действий. Примерами алгоритмов обучения с подкреплением являются Q-learning, Deep Q Network (DQN), State-Action-Reward-State-Action (SARSA) и т. д.

Заключение

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

Удачного кодирования!