Openbravo-rus.ru

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

Машинное обучение википедия

Машинное обучение (ФЭН)

Содержание

О курсе

Преподаватели: Читает лекции Кантонистова Елена Олеговна, ведут семинары Демешев Борис Борисович, Филатов Артем Андреевич и Петросян Артур Тигранович.

Лекции проходят по пятницам, 12:10 — 13:30, ауд. 5214.

Семинары

Правила выставления оценок

В курсе предусмотрено несколько форм контроля знания:

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

Итоговая оценка вычисляется на основе оценки за работу в семестре и оценки за экзамен:

Оценка за работу в семестре вычисляется по формуле

Oнакопленная = 0.2 * Oсамостоятельные + 0.6 * Одз + 0.2 * Околлоквиум

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

Оценка за самостоятельную работу вычисляется как сумма баллов по всем самостоятельным, переведенная в 10 бальную шкалу. Оценка за домашнюю работу — как сумма баллов по всем практическим заданиям и соревнованию, переведенная в 10 бальную шкалу. Количество баллов за разные задания может различаться в зависимости от их сложности.

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

Коллоквиум

Коллоквиум будет проведен 27 октября в аудитории 2309 с 9:00 до 12:00. Третий курс приходит к 9:00, четвертый курс — к 10:30.

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

Экзамен

Экзамен будет проведен 29 декабря в аудитории 5306 с 9:00 до 13:30.

Лекции

Лекция 1 (7 сентября). Введение в машинное обучение. Слайды

Лекция 2 (14 сентября). Линейные методы регрессии (аналитическое и численное решение задачи МНК, градиентный спуск, методы оценивания градиента). Слайды

Лекция 3 (21 сентября). Линейные методы регрессии (метрики качества регрессии, регуляризация, методы оценивания обобщающей способности, кросс-валидация). Слайды

Лекция 4 (28 сентября). Линейные методы классификации (аппроксимация эмпирического риска, метрики качества в задачах классификации, персептрон). Слайды

Лекция 5 (5 октября). Линейные методы классификации (логистическая регрессия, метод опорных векторов, калибровка Платта). Слайды

Лекция 6 (12 октября). Многоклассовая классификация. Ядровые методы. Слайды

Лекция 7 (19 октября). Работа с признаками (методы отбора признаков, метод главных компонент и сингулярное разложение). Слайды

Лекция 8 (2 ноября). Решающие деревья. Слайды

Лекция 9 (9 ноября). Композиции алгоритмов (общая идея bias-variance decomposition, бэггинг, случайные леса). Слайды

Лекция 10 (16 ноября). Композиции алгоритмов (бустинг, градиентный бустинг над решающими деревьями). Слайды

Лекция 11 (23 ноября). Модификации градиентного бустинга над решающими деревьями. Методы кластеризации и визуализации данных. Слайды

Лекция 12 (30 ноября). Введение в нейронные сети (метод обратного распространения ошибки, полносвязные нейронные сети, свёрточные нейронные сети). Слайды

Лекция 13 (7 декабря). Работа с текстами (методы кодирования текстовых данных, word2vec, рекуррентные нейронные сети). Слайды

Лекция 14 (14 декабря). Прогнозирование временных рядов как задача регрессии: авторегрессия, тренды и сезонности. Адаптивные методы работы с временными рядами, фильтр Калмана. Слайды

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]. На наших практических курсах мы научим вас успешной работе с этими инструментами, чтобы потом вы могли самостоятельно формировать наборы входных данных, строить эффективные алгоритмы для решения прикладных задач своей области: от нефтегазовой промышленности до биржевой аналитики. Выбирайте свой обучающий интенсив и приходите к нам на занятия!

Профессия Data Scientist: машинное обучение

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

Записаться на курс

  • Длительность 13 месяцев
  • Помощь в трудоустройстве
  • 7 курсов в одной программе
  • Доступ к курсу навсегда

На рынке не хватает специалистов по Data Science

  • 2 300 компаний сейчас ищут специалистов в Data Science & Machine Learning
  • 80 000 рублей зарплата начинающего специалиста

Данные сайта hh.ru

Кому подойдёт этот курс

Новичкам в IT

Вы получите базовые навыки по аналитике, статистике и математике, которые откроют путь к карьере в Data Science и Machine Learning.

Читать еще:  Работать в экселе обучение

Программистам

Вы прокачаете свои знания и навыки в программировании на Python. Научитесь использовать алгоритмы машинного обучения, решать бизнес-задачи — и усилите портфолио мощными проектами.

Менеджерам и владельцам бизнеса

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

Чему вы научитесь

Программировать на Python

Визуализировать данные

Работать с библиотеками и базами данных

Применять нейронные сети для решения реальных задач

Строить модели машинного обучения

Писать рекомендательные системы

От первого урока к работе мечты

Студенты и выпускники Skillbox получают индивидуальную поддержку от Центра карьеры на протяжении всего обучения — от помощи с выбором профессии до выхода на работу мечты. Вот как это происходит.

С каждым уроком ваш профессиональный уровень растёт и вы можете планировать карьеру уже во время обучения.

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

Выбираете лучшую вакансию

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

Начинаете карьеру мечты

Вы успешно проходите собеседование, выходите на работу и сразу начинаете выполнять задачи.

Записаться на курс или получить бесплатную консультацию

Похоже произошла ошибка. Попробуйте отправить снова или перезагрузите страницу.

Ваша заявка успешно отправлена

Как проходит обучение

Изучаете тему

В курсе — практические видеоуроки.

Выполняете задания

В том темпе, в котором вам удобно.

Работаете с наставником

Закрепляете знания и исправляете ошибки.

Защищаете дипломную работу

И дополняете ею своё портфолио.

Программа

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

  1. Аналитика. Начальный уровень
  1. Введение.
  2. Основы Python: базовые структуры данных.
  3. Основы Python: циклы и условия.
  4. Основы Python: функции.
  5. Основы Python: классы и объекты.
  6. Основы Python: исключения.
  7. Библиотека NumPy. Часть 1.
  8. Библиотека NumPy. Часть 2.
  9. Библиотека pandas. Часть 1.
  10. Библиотека pandas. Часть 2.
  11. Визуализация данных с помощью matplotlib.
  12. Чтение и запись данных.
  13. Введение в SQL.
  14. Работа со строками.
  1. Основы статистики и теории вероятностей.
  1. Основные концепции Machine Learning (ML).
  2. Жизненный цикл ML-проекта.
  3. Регрессия.
  4. Классификация.
  5. Кластеризация
  6. Дополнительные техники.
  7. Знакомство с Kaggle.
  1. Базовые математические объекты и SymPy. Дроби и преобразования.
  2. Базовые математические объекты и SymPy. Необходимые функции и некоторые дополнительные объекты.
  3. Функции одной переменной, их свойства и графики.
  4. Интерполяция и полиномы.
  5. Аппроксимация и преобразования функций.
  6. Функции нескольких переменных, их свойства и графики.
  7. Линейные функции.
  8. Матрицы и координаты.
  9. Линейные уравнения.
  10. Производная функции одной переменной.
  11. Производная по направлению и градиент + частные производные.
  12. Линейная регрессия.
  13. Собственные векторы и значения. Определитель.
  14. Разложения матриц.
  1. Введение в нейронные сети.
  2. Обучение нейронных сетей.
  3. Нейронные сети на практике.
  4. Свёрточные нейросети для задачи классификации изображений.
  5. Семантическая сегментация. Часть 1. Слабая локализация и полносвёрточные нейросети (FCN).
  6. Семантическая сегментация. Часть 2. Продвинутые архитектуры FCN для семантической сегментации.
  7. Детектирование объектов.
  8. От дискриминативных моделей к генеративным. Style transfer.
  9. Генеративные состязательные сети.
  10. Введение в NLP.
  11. NLP на нейросетях. Рекуррентные нейросети, классификация текстов.
  12. NLP на нейросетях. Языковые модели, Attention, Transformer.
  13. Обучение с подкреплением. Q-Learning.
  14. Обучение с подкреплением. Deep Q-Learning.
  15. Ускорение и оптимизация нейронных сетей.
  16. Внедрение в DL моделей в Production.
  17. Рекомендательные системы.
  18. Вывод моделей машинного обучения в production, post production и мониторинг.
  1. Как стать первоклассным программистом.
  2. Как искать заказы на разработку.
  3. Личный бренд разработчика.
  4. Photoshop для программиста.
  5. Вёрстка email-рассылок. Советы на реальных примерах.
  6. The state of soft skills.
  7. Как мы создавали карту развития для разработчиков.
  8. Как общаться по email и эффективно работать с почтой.
  9. Повышение своей эффективности.
  10. Спор о первом языке программирования.
  11. Саморазвитие: как я не усидел на двух стульях и нашёл третий.
  12. Data-driven подход к продуктивности — инсайты из данных миллиона людей.
  1. IT Resume and CV.
  2. Job interview: questions and answers.
  3. Teamwork.
  4. Workplace communication.
  5. Business letter.
  6. Software development.
  7. System concept development and SRS.
  8. Design.
  9. Development and Testing.
  10. Deployment and Maintenance.

Уже учились на каком-то курсе из программы?

Скажите об этом менеджеру — за этот курс платить не придётся!

Получить полную программу курса и консультацию

Похоже произошла ошибка. Попробуйте отправить снова или перезагрузите страницу.

Словарь: чем различаются машинное и глубокое обучение

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

Рынок искусственного интеллекта продолжает расти быстрее многих других — по данным аналитического агентства Tractica, в 2018 году мировой объем софтверного ИИ составил $9,5 млрд, а к 2025 году он вырастет в 12 раз до $118,6 млрд. Эта оценка учитывает 315 различных варианта применения ИИ в 30 индустриях, среди которых реклама, телекоммуникации, здравоохранение, ритейл и многие другие.

Согласно прогнозам IDC, в 2019 году мировые затраты на ИИ-системы составят $35,8 млрд, на 44% больше, чем в прошлом году. Самыми востребованными на рынке будут решения для автоматизирования клиентского сервиса, рекомендательные системы для повышения продаж и продукты для предотвращения угроз. Gartner стабильно помещает ИИ в свой топ технологий и технологических трендов.

Что такое искусственный интеллект (Artificial intelligence)

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

В качестве научной дисциплины ИИ появился ещё в 1956 благодаря профессору Джону МакКарти, который собрал группу ученых для работы над проектом по созданию «умных» машин, способных выполнять присущие человеку функции. Ранние разработки в области ИИ были направлены в основном на решение абстрактных логических и математических задач.

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

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

  • На данный момент все технологии, например, компьютерное зрение, обработка естественного языка, распознавание изображений и даже автономные автомобили, относятся к ограниченному ИИ (последние являются комбинацией нескольких «ограниченных интеллектов»). Известные примеры ограниченного ИИ — программа Deep Blue от IBM, которая в 1996 году обыграла в шахматы Гарри Каспарова, и программа AlphaGo от Google DeepMind, выигравшая в 2016 году в Го у корейского го-профессионала Ли Седоля.

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

Что такое машинное обучение (Machine learning)

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

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

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

Читать еще:  Машинное обучение и анализ данных это

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

Машинное обучение можно разделить на три группы:

1. Контролируемое машинное обучение, или обучение с учителем (supervised machine learning) — для обучения алгоритмов используются labeled data (размеченные, или маркированные, данные). В контролируемом машинном обучении входные данные (X) и выходные данные (Y) известны. На предоставленном датасете из данных X и Y алгоритм обучается, чтобы затем предсказать значение Y на новом массиве данных.

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

2. Неконтролируемое машинное обучение, или обучение без учителя (unsupervised machine learning) — алгоритмы обучаются на unlabeled data (немаркированные, или неразмеченные, данные). В этом случае алгоритм получает только сырые входные данные, которые не требуют первичной обработки. Алгоритм анализирует датасет и самостоятельно проводит кластеризацию данных, разделяя их на группы со схожими показателями.

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

3. Обучение с подкреплением (reinforcement learning) — алгоритм обучается самостоятельно (на сырых данных), взаимодействуя с незнакомой средой и получая фидбек на свои действия. Основная задача алгоритма — методом проб и ошибок выбрать те тактики, которые позволят максимизировать общую выгоду агента.

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

  • Максимизация прибыли инвестиционного портфеля;
  • Обучение промышленных и складских роботов;
  • Оптимизация загруженности сетей электроснабжения в зависимости от спроса;
  • Оптимизация вождения беспилотных автомобилей.

4. Частичное обучение, или обучение с частичным привлечением учителя (semi-supervised learning) — алгоритмы обучаются одновременно на labeled и unlabeled data, причём количество неразмеченных данных обычно сильно превышает количество маркированных. У этого метода есть несколько преимуществ. Во-первых, маркировка огромного массива данных — долгий и дорогостоящий процесс. Во-вторых, маркировка всех данных в массиве может привести к появлению в модели систематической ошибки, вызванной человеческим фактором. Включение в модель unlabeled data одновременно снижает стоимость обучения алгоритма и позволяет сделать модель более точной.

  • Речевая аналитика;
  • Классификация веб-страниц и веб-контента;
  • Генетическое секвенирование.

Что такое глубокое, или глубинное, обучение (Deep learning)

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

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

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

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

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

  • Диагностика заболеваний по медицинским сканам;
  • Обнаружение продуктов с дефектами на производственной линии;
  • Генерация подписей к фотографиями;
  • Анализ восприятия логотипа и бренда компании для повышения эффективности маркетинга;
  • Перевод с одного языка на другой.

Машинное обучение для чайников

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

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

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

Вводная

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

Любую работающую технологию машинного обучения можно условно отнести к одному из трёх уровней доступности. Первый уровень — это когда она доступна только различным технологическим гигантам уровня Google или IBM. Второй уровень — это когда ей может воспользоваться людей студент с некоторым багажом знаний. Третий уровень — это когда даже бабуля способна с ней совладать.

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

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

Большую часть задач машинного обучения можно разделить на обучение с учителем (supervised learning) и обучение без учителя (unsupervised learning). Если вы представили себе программиста с плёткой в одной руке и куском сахара в другой, вы немного ошиблись. Под «учителем» здесь понимается сама идея вмешательства человека в обработку данных. При обучении с учителем у нас есть данные, на основании которых нужно что-то предсказать, и некоторые гипотезы. При обучении без учителя у нас есть только данные, свойства которых мы и хотим найти. На примерах разницу вы увидите немного яснее.

Обучение с учителем

У нас есть данные о 10 000 квартирах в Москве, причём известна площадь каждой квартиры, количество комнат, этаж, на котором она расположена, район, наличие парковки, расстояние до ближайшей станции метро и так далее. Кроме того, известна стоимость каждой квартиры. Нашей задачей является построение модели, которая на основе данных признаков будет предсказывать стоимость квартиры. Это классический пример обучения с учителем, где у нас есть данные (10 000 квартир и различные параметры для каждой квартиры, называемые признаками) и отклики (стоимость квартиры). Такая задача называется задачей регрессии. О том, что это такое, мы поговорим чуть позже.

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

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

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

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

Читать еще:  Обучение сео с нуля бесплатно

Классы задач машинного обучения

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

  • Задача регрессии: на основании различных признаков предсказать вещественный ответ. Другими словами, ответом может быть 1, 5, 23.575 или любое другое вещественное число, которое, например, может олицетворять стоимость квартиры. Примеры: предсказание стоимости акции через полгода, предсказание прибыли магазина в следующем месяце, предсказание качества вина на слепом тестировании.
  • Задача классификации: на основании различных признаков предсказать категориальный ответ. Другими словами, ответов в такой задаче конечное количество, как в случае с определением наличия у пациента рака или определения того, является ли письмо спамом. Примеры: распознавание текста по рукописному вводу, определение того, находится на фотографии человек или кот.
  • Задача кластеризации: разбиение данных на похожие категории. Примеры: разбиение клиентов сотового оператора по платёжеспособности, разбиение космических объектов на похожие (галактики, планеты, звезды и так далее).
  • Задача уменьшения размерности: научиться описывать наши данные не N признаками, а меньшим числом (как правило, 2-3 для последующей визуализации). В качестве примера помимо необходимости для визуализации можно привести сжатие данных.
  • Задача выявления аномалий: на основании признаков научиться различать отличать аномалии от «не-аномалий». Кажется, что от задачи классификации эта задача ничем не отличается. Но особенность выявления аномалий состоит в том, что примеров аномалий для тренировки модели у нас либо очень мало, либо нет совсем, поэтому мы не можем решать такую задачу как задачу классификации. Пример: определение мошеннических транзакций по банковской карте.

Нейронные сети

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

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

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

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

Ограниченность нейронных сетей

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

Допустим, мы работаем с изображениями 20×20 пикселей, где каждый пиксель представляется оттенком серого (всего 256 возможных значений). В качестве ответа у нас имеется одна из цифр: от 0 до 9. Структура нейронной сети будет следующая: в первом слое будет 400 нейронов, где значение каждого нейрона будет равно интенсивности соответствующего пикселя. В последнем слое будет 10 нейронов, где в каждом нейроне будет вероятность того, что на изначальном изображении нарисована соответствующая цифра. Между ними будет некоторое число слоев (такие слоя называются скрытыми) с одинаковым количеством нейронов, где каждый нейрон соединён с нейроном из предыдущего слоя и ни с какими более.

Рёбрам нейронной сети (на картинке они показаны как стрелочки) будут соответствовать некоторые числа. Причем значение в нейроне будет считаться как следующая сумма: значение нейрона из предыдущего слоя * значение ребра, соединяющего нейроны. Затем от данной суммы берётся определенная функция (например, сигмоидная функция, о которой мы говорили ранее).

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

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

Интересные факты и лайфхаки

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

Например, вторая кампания Барака Обамы была фактически выиграна лучшей на тот момент командой в области анализа данных. Разумеется, речь не идет о том, что они советовали ему соврать о чем-то, работа строилась значительно более умным путем: они выбирали, в каком штате, перед какой аудиторией, в какой день и на какую тему он должен выступать. Причем каждый раз они замеряли, как это сказывается на опросах вида «За кого бы вы проголосовали, если бы выборы были в ближайшее воскресенье?». Другими словами, подобные решения принимали не политтехнологи, а исключительно специалисты по анализу данных. Особенно интересным это становится в свете того, что, по оценкам специалистов, это дало ему преимущество в 8-10%.

Кроме того, современный интернет довольно сложно представить без ретаргетинга, или персонализированной рекламы. Вспомните: вы выбираете какой-то продукт в интернете, а после покупки ещё на протяжении двух недель вам показывают его в различного рода рекламе. В одном из своих выступлений директор по маркетингу сервисов компании «Яндекс» Андрей Себрант дал на этот счёт такой совет:

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

Рекомендации по обучению

Если у вас появилось желание изучить технологии машинного обучения, стоит отметить, что для глубокого изучения предмета с пониманием всего фундамента следует разбираться как минимум в математическом анализе, линейной алгебре и методах оптимизации (с упором на последние два). Кроме того, желательно знать основы программирования и какой-нибудь язык программирования. В машинном обучении, как правило, используется R, Python или Matlab.

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

Мотивировать его изучение можно следующим образом: посмотрите учебный план. Если вы просмотрите все лекции и решите все задания, то вы гарантированно сможете применять все эти вещи на практике. В частности, вы освоите алгоритмы линейной регрессии (задача регрессии), логистической регрессии, метода опорных векторов, нейронных сетей (задача классификации), K-means (кластеризация), PCA (понижение размерности), выявления аномалий и узнаете как построить рекомендательную систему (рекомендация товаров по вашим оценкам, например, фильмов или песен). На последней неделе курса вам также расскажут, как построить систему, которая будет находить и расшифровывать надписи на картинках или опознавать людей.

Для тех, кто хочет изучать предмет со всеми математическими тонкостями в лучших традициях сильных технических вузов, можно порекомендовать курс от ВШЭ или специализацию от МФТИ. Заметим лишь, что специализация является платной и для доступа к ней придется оформить подписку приблизительно за 3000 рублей в месяц. Впрочем, есть бесплатный период в 7 дней.

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