Fishlake-scripts.ru

Образование и уроки
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Основы машинного обучения

Гид по структуре машинного обучения

Контент-маркетолог Мария Пушикова специально для блога Нетологии перевела статью Charles-Antoine Richard о том, что такое машинное обучение и какие методы машинного обучения существуют.

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

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

Машинное обучение — это…

Вот самое простое определение, которое я нашел:

Машинное обучение — это «[…] класс методов искусственного интеллекта, которые позволяют улучшить результаты работы компьютеров путем обучения на известных данных», — Berkeley.

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

…подраздел искусственного интеллекта (ИИ)

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

…способ решения практических задач

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

… способ увеличить эффективность компьютеров

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

…технология, основанная на опыте

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

Простой пример:

  1. Выбираются входные данные и задаются условия ввода (например, банковские операции с использованием карт).
  2. Строится алгоритм машинного обучения и настраивается на конкретную задачу (например, выявлять мошеннические транзакции).
  3. Используемые в ходе обучения данные дополняются желаемой выходной информацией (например, эти транзакции — мошеннические, а эти нет).

Как работает машинное обучение

Машинное обучение часто называют волшебным или черным ящиком:

Вводишь данные → «волшебный черный ящик» → Миссия выполнена.

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

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

Очистка

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

Разделение

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

Обучение

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

Чтобы было проще, сосредоточимся на нейронных сетях.

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

Оценка

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

Оптимизация

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

Какие существуют типы машинного обучения и чем они отличаются

Существует множество моделей для машинного обучения, но они, как правило, относятся к одному из трех типов:

  • обучение с учителем (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.

Вместо заключения

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

Мнение автора и редакции может не совпадать. Хотите написать колонку для «Нетологии»? Читайте наши условия публикации.

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

Перевод статьи разработчика алгоритмов машинного обучения, бизнес-консультанта и популярного автора Ганта Лаборде «Machine Learning: from Zero to Hero».

Начнешь c “Зачем?”, придешь к “Я готов!”

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

Почему машинное обучение сейчас в тренде

Искусственный интеллект (далее ИИ) всегда имел применение, начиная от перемещения ракетки в пинг понге и заканчивая выполнением комбо в Street Fighter.

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

Несмотря на это, компьютер поддается обучению для игры в видеоигры, понимания языка и распознавания людей и предметов. Этот навык исходит из старой концепции, которая только недавно получила необходимые вычислительные мощности для существования вне теории. Я имею в виду машинное обучение (ML, Machine learning).

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

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

Впечатлены? Как это возможно? К счастью, Элон Маск представил некоммерческую компанию, которая предоставляет возможность подключения ИИ к любым играм и задачам с помощью дюжины строк кода. Посмотрите, как это работает.

Зачем следует использовать машинное обучение?

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

Во-вторых, если не влияете на мир, мир повлияет на вас. Компании инвестируют в ML, и эти инвестиции уже меняют мир. Лидеры мысли предупреждают, что нельзя позволить алгоритмам машинного обучения быть в тени. Представьте себе, если бы монополия из нескольких корпораций контролировала Интернет. Если мы не “возьмемся за оружие”, наука не будет нашей.

Christian Heilmann высказал правильную мысль в беседе о машинном обучении:

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

Хорошо, теперь я заинтересован…

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

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

Классно, не правда ли? Видео демонстрирует, что каждый новый слой становится проще, а не сложнее. Будто бы функция пережевывает данные в более мелкие кусочки, которые потом выстраиваются в задуманный концепт. Поиграйтесь с этим процессом здесь.

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

Классический пример машинного обучения в действии — датасет прямиком из 1936-го года, называемый ирисами Фишера. На презентации эксперта JavaFX, посвященной машинному обучению, я узнал, как использовать этот инструмент, чтобы визуализировать прикрепление и обратное распространение весов к нейронам в нейронной сети. Понаблюдайте за тем, как тренируется нейронная сеть.

Обучение нейронной сети Ирисы

Готовы стать Эйнштейном новой эры? Прорывы происходят каждый день, поэтому начинайте сейчас.

С чего мне начать?

Доступных ресурсов много. Я рекомендую два подхода.

Основы

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

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

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

Гонщик

Если вы не заинтересованы в написании алгоритмов, но хотите использовать их для создания сайтов и приложений, то используйте TensorFlow и погрузитесь в crash course.

TensorFlow — это библиотека с открытым исходным кодом для машинного обучения. Ее можно использовать любым способом, даже с JavaScript. А вот crash source.

Услуги ML

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

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

Давайте быть созидателями

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

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

Надеюсь, эта статья вдохновила вас и ваше окружение изучать ML!

Руководство по машинному обучению для новичков

Простое объяснение с примерами из математики, программирования и реальной жизни.

Для кого это руководство?

  • Для технических специалистов, которые хотят повторить основы машинного обучения.
  • Для тех, кто не смыслит в технике, но хочет ознакомиться с машинным обучением и не знает, с чего начать.
  • Для тех, кто считает, что машинное обучение “тяжело” освоить.
Читать еще:  Контекстная реклама яндекс директ для начинающих обучение

Почему именно машинное обучение?

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

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

Подготовка к изучению машинного обучения

Чтобы разобраться в представленных концепциях, нужно обладать следующими знаниями:

  • Углубленные знания начального уровня алгебры: Вы должны разбираться в таких понятиях, как переменные, коэффициенты, линейные уравнения, исчисления, а также графики.
  • Владение основами программирования, а также опыт написания кода на Python: Опыт в машинном обучении не требуется, однако вы должны уметь читать и писать код Python с базовыми конструкциями, такими как определения функций, списки, словари, циклы и условные выражения.
  • Базовые знания следующих библиотек Python:
  1. NumPy
  2. Pandas
  3. SciKit-Learn
  4. SciPy
  5. Matplotlib (и/или Seaborn)

Семантическое дерево:

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

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

Что такое машинное обучение?

Артур Сэмюэл описывает машинное обучение как: “Область науки, благодаря которой компьютеры могут обучаться без явного программирования.” Это старое и неформальное определение, которое на данный момент почти потеряло смысл.

Том Митчелл дает более современное определение: “Компьютерная программа обучается на основе опыта E по отношению к некоторому классу задач T и меры качества P, если качество решения задач из T, измеренное на основе P, улучшается с приобретением опыта E.”

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

Алгоритмы машинного обучения относятся к следующим категориям: обучение с учителем (Supervised Learning), обучение без учителя (Unsupervised Learning) и обучение с подкреплением (Reinforcement Learning).

  • Supervised Learning: Алгоритм обучения с учителем принимает маркированные данные и создает модель, которая выполняет предсказания, предоставляя новые данные. Это могут быть как задачи классификации, так и задачи регрессии.
  • Unsupervised Learning: Приобучении без учителя предоставляются непомеченные и неклассифицированные данные, в которых нужно найти закономерности и создать структуру данных для получения значения. Формы обучения без учителя: кластеризация (clustering) и уменьшение размерности (dimensionality reduction).
  • Reinforcement Learning: Обучение с подкреплением использует систему поощрений и метод проб и ошибок в целях максимизации долгосрочного поощрения.

Roadmap для начала изучения машинного обучения:

  1. Начать стоит с изучения/повторения линейной алгебры. MIT предоставляет отличный open course по линейной алгебре, с помощью которого можно ознакомиться с ключевыми концепциями. Особое внимание следует уделить изучению векторов, умножению матриц, детерминантам и спектральному разложению матрицы — они играют важную роль в работе алгоритмов машинного обучения.
  2. Затем уделите внимание высшей математике. Изучите производные и способы их использования для оптимизации. Обязательно разберите все темы в Single Variable Calculus и (как минимум) первые два раздела Multivariable Calculus.
  3. Изучите библиотеки Python, используемые в машинном обучении, такие как Numpy, Pandas, Matplotlib и SKLearn. Разобраться в машинном обучении без этих ‘инструментов’ будет довольно сложно.
  4. Начните программировать! Советую реализовать все алгоритмы из scratch вPython, прежде чем использовать готовые модели в SciKit — Learn, чтобы разобраться, как все это работает. Я делал алгоритмы в следующем порядке по возрастанию сложности:
  • Линейная регрессия (Linear Regression)
  • Логистическая регрессия (Logistic Regression)
  • Наивный байесовский классификатор (Naive Bayes Classifier)
  • Метод k-ближайших соседей (K — Nearest Neighbors — KNN)
  • Метод k-средних (K — Means)
  • Метод опорных векторов (Support Vector Machine — SVM)
  • Дерево принятия решений (Decision Trees)
  • Random Forests
  • Gradient Boosting

Roadmap для реализации алгоритма:

  1. Соберите данные для работы. В интернете доступны миллионы наборов данных, удовлетворяющих даже самым причудливым потребностям. Kaggle и UCI— отличные ресурсы для просмотра наборов данных. Вы также можете сгенерировать собственные данные.
  2. Выберите алгоритм(ы). После сбора данных можно начать работу над алгоритмами. На изображении показан приблизительный ориентир. (Из документации SKLearn)

На этой стадии следует пройтись по краткой теории каждого алгоритма, которые я разместил на Github с каждой реализацией.

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

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

5. Оцените модель. БиблиотекаPython SKLearn предоставляет множество инструментов для анализа модели и проверки показателей, таких как правильность, показатель f1, точность и т. д.

Примечания:

  • Ознакомившись с несколькими алгоритмами и концепциями, попробуйте выполнить один или несколько простых и краткосрочных проектов (для начала).
  • Не бойтесь совершать ошибки. По-началу вы будете тратить большую часть времени на попытки разобраться в математике и причинах возникновения ошибок. Однако терпение — ключ к успеху.
  • Маленькие модели — основа для изучения чего-то большего. Пробуйте все подряд и тогда у вас получится создать лучшую модель.
  • Наилучший способ изучить библиотеки Python — пройти Datacamp courses или начать с изучения документации.

Все вышеописанное можно найти на Github в репозитории Machine-Learning. Все алгоритмы систематизированы, как с реализациями из scratch, так и с использованием SciKit-Learn. Также представлены используемые наборы данных и краткая теория о работе алгоритмов вместе с примерами из реальной жизни.

Руководство по машинному обучению для новичков

Простое объяснение с примерами из математики, программирования и реальной жизни.

Для кого это руководство?

  • Для технических специалистов, которые хотят повторить основы машинного обучения.
  • Для тех, кто не смыслит в технике, но хочет ознакомиться с машинным обучением и не знает, с чего начать.
  • Для тех, кто считает, что машинное обучение “тяжело” освоить.

Почему именно машинное обучение?

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

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

Подготовка к изучению машинного обучения

Чтобы разобраться в представленных концепциях, нужно обладать следующими знаниями:

  • Углубленные знания начального уровня алгебры: Вы должны разбираться в таких понятиях, как переменные, коэффициенты, линейные уравнения, исчисления, а также графики.
  • Владение основами программирования, а также опыт написания кода на Python: Опыт в машинном обучении не требуется, однако вы должны уметь читать и писать код Python с базовыми конструкциями, такими как определения функций, списки, словари, циклы и условные выражения.
  • Базовые знания следующих библиотек Python:
  1. NumPy
  2. Pandas
  3. SciKit-Learn
  4. SciPy
  5. Matplotlib (и/или Seaborn)

Семантическое дерево:

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

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

Что такое машинное обучение?

Артур Сэмюэл описывает машинное обучение как: “Область науки, благодаря которой компьютеры могут обучаться без явного программирования.” Это старое и неформальное определение, которое на данный момент почти потеряло смысл.

Том Митчелл дает более современное определение: “Компьютерная программа обучается на основе опыта E по отношению к некоторому классу задач T и меры качества P, если качество решения задач из T, измеренное на основе P, улучшается с приобретением опыта E.”

Читать еще:  Применение тестирования в электронном обучении

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

Алгоритмы машинного обучения относятся к следующим категориям: обучение с учителем (Supervised Learning), обучение без учителя (Unsupervised Learning) и обучение с подкреплением (Reinforcement Learning).

  • Supervised Learning: Алгоритм обучения с учителем принимает маркированные данные и создает модель, которая выполняет предсказания, предоставляя новые данные. Это могут быть как задачи классификации, так и задачи регрессии.
  • Unsupervised Learning: Приобучении без учителя предоставляются непомеченные и неклассифицированные данные, в которых нужно найти закономерности и создать структуру данных для получения значения. Формы обучения без учителя: кластеризация (clustering) и уменьшение размерности (dimensionality reduction).
  • Reinforcement Learning: Обучение с подкреплением использует систему поощрений и метод проб и ошибок в целях максимизации долгосрочного поощрения.

Roadmap для начала изучения машинного обучения:

  1. Начать стоит с изучения/повторения линейной алгебры. MIT предоставляет отличный open course по линейной алгебре, с помощью которого можно ознакомиться с ключевыми концепциями. Особое внимание следует уделить изучению векторов, умножению матриц, детерминантам и спектральному разложению матрицы — они играют важную роль в работе алгоритмов машинного обучения.
  2. Затем уделите внимание высшей математике. Изучите производные и способы их использования для оптимизации. Обязательно разберите все темы в Single Variable Calculus и (как минимум) первые два раздела Multivariable Calculus.
  3. Изучите библиотеки Python, используемые в машинном обучении, такие как Numpy, Pandas, Matplotlib и SKLearn. Разобраться в машинном обучении без этих ‘инструментов’ будет довольно сложно.
  4. Начните программировать! Советую реализовать все алгоритмы из scratch вPython, прежде чем использовать готовые модели в SciKit — Learn, чтобы разобраться, как все это работает. Я делал алгоритмы в следующем порядке по возрастанию сложности:
  • Линейная регрессия (Linear Regression)
  • Логистическая регрессия (Logistic Regression)
  • Наивный байесовский классификатор (Naive Bayes Classifier)
  • Метод k-ближайших соседей (K — Nearest Neighbors — KNN)
  • Метод k-средних (K — Means)
  • Метод опорных векторов (Support Vector Machine — SVM)
  • Дерево принятия решений (Decision Trees)
  • Random Forests
  • Gradient Boosting

Roadmap для реализации алгоритма:

  1. Соберите данные для работы. В интернете доступны миллионы наборов данных, удовлетворяющих даже самым причудливым потребностям. Kaggle и UCI— отличные ресурсы для просмотра наборов данных. Вы также можете сгенерировать собственные данные.
  2. Выберите алгоритм(ы). После сбора данных можно начать работу над алгоритмами. На изображении показан приблизительный ориентир. (Из документации SKLearn)

На этой стадии следует пройтись по краткой теории каждого алгоритма, которые я разместил на Github с каждой реализацией.

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

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

5. Оцените модель. БиблиотекаPython SKLearn предоставляет множество инструментов для анализа модели и проверки показателей, таких как правильность, показатель f1, точность и т. д.

Примечания:

  • Ознакомившись с несколькими алгоритмами и концепциями, попробуйте выполнить один или несколько простых и краткосрочных проектов (для начала).
  • Не бойтесь совершать ошибки. По-началу вы будете тратить большую часть времени на попытки разобраться в математике и причинах возникновения ошибок. Однако терпение — ключ к успеху.
  • Маленькие модели — основа для изучения чего-то большего. Пробуйте все подряд и тогда у вас получится создать лучшую модель.
  • Наилучший способ изучить библиотеки Python — пройти Datacamp courses или начать с изучения документации.

Все вышеописанное можно найти на Github в репозитории Machine-Learning. Все алгоритмы систематизированы, как с реализациями из scratch, так и с использованием SciKit-Learn. Также представлены используемые наборы данных и краткая теория о работе алгоритмов вместе с примерами из реальной жизни.

Machine Learning

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

Что такое Machine Learning

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

Типы и суть Machine Learning

Выделяют 2 типа машинного обучения [1]:

  1. Индуктивное или по прецедентам, которое основано на выявлении эмпирических закономерностей во входных данных;
  2. Дедуктивное, которое предполагает формализацию знаний экспертов и их перенос в цифровую форму в виде базы знаний.

Дедуктивный тип принято относить к области экспертных систем, поэтому общий термин «машинное обучение» означает обучение по прецедентам. Прецеденты или обучающая выборка – это наборы входных объектов и соответствующих им результатов. При этом не существует четкой формулы, которая аналитически описывает зависимость между результатами и входами. Например, какая погода будет завтра, если на протяжении недели дни были морозные, солнечные, с низкой влажностью воздуха, без ветра и осадков? При этом следует учесть еще множество параметров: географические координаты, рельеф местности, движение теплых и холодных фронтов воздуха и пр. Необходимо построить алгоритм, который выдаст достаточно точный результат для любого возможного входа. Точность результатов регулируется оценочным функционалом качества. Таким образом, решение формируется эмпирически, на основе анализа накопленного опыта. При этом обучаемая система должна быть способна к обобщению – адекватному отклику на данные, выходящие за пределы имеющейся обучающей выборки. На практике входные данные могут быть неполными, неточными и разнородными. Поэтому существует множество методов машинного обучения [2]. Можно сказать, что машинное обучение реализует подход Case Based Reasoning (CBR) — метод решения проблем рассуждением по аналогии, путем предположения на основе подобных случаев (прецедентов).

Суть и смысл машинного обучения (Machine Learning)

Методы Machine Learning

Существует множество методов машинного обучения. Мы перечислим самые популярные, оставив их подробную классификацию специализированным ресурсам [1, 2, 3]. Выделяют 2 вида классического Machine Learning:

  1. С учителем (supervised learning), когда необходимо найти функциональную зависимость результатов от входов и построить алгоритм, на входе принимающий описание объекта и на выходе выдающий ответ. Функционал качества, как правило, определяется через среднюю ошибку ответов алгоритма по всем объектам выборки. К обучению с учителем относятся задачи классификации, регрессии, ранжирования и прогнозирования.
  2. Без учителя (unsupervised learning), когда ответы не задаются, и нужно искать зависимости между объектами. Сюда входят задачи кластеризации, поиска ассоциативных правил, фильтрации выбросов, построения доверительной области, сокращения размерности и заполнения пропущенных значений.

К неклассическим, но весьма популярным методам относят обучение с подкреплением, в частности, генетические алгоритмы, и искусственные нейронные сети. В качестве входных объектов выступают пары «ситуация, принятое решение», а ответами являются значения функционала качества, который характеризует правильность принятых решений (реакцию среды). Эти методы успешно применяются для формирования инвестиционных стратегий, автоматического управления технологическими процессами, самообучения роботов и других подобных задач [2].

Ниже на рисунке показана классификация наиболее часто используемых методов Machine Learning [3].

Классификация методов Machine Learning [3]

Средства реализации Machine Learning

Сегодня чаще всего для создания программ машинного обучения используются языки R, Python, Scala и Julia [4]. Они поддерживаются многими интегрированными средами разработки, в частности, R-Studio, R-Brain, Visual Studio, Eclipse, PyCharm, Spyder, IntelliJ IDEA, Jupyter Notebooks, Juno и др. [4]. На наших практических курсах мы научим вас успешной работе с этими инструментами, чтобы потом вы могли самостоятельно формировать наборы входных данных, строить эффективные алгоритмы для решения прикладных задач своей области: от нефтегазовой промышленности до биржевой аналитики. Выбирайте свой обучающий интенсив и приходите к нам на занятия!

Ссылка на основную публикацию
Adblock
detector