Openbravo-rus.ru

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

Задачи машинного обучения

Профессия 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.

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

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

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

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

М Машинное обучение

Многие пользователи постиндустриальной эпохи задавались вопросом: Machine Learning – что это? Фантастическое будущее, которое уже наступило или очередная непонятная теория вроде квантового дуализма. Не то и не другое.

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

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

Принцип МО интересно продемонстрировали в гугловском ролике «Google’s DeepMind AI Just Taught Itself To Walk».

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

Что касается фантастического будущего, то МО условно делят на три стадии внедрения:

  1. Технологии получают приставку «инновационные», а значит, к ним имеют доступ только крупные корпорации и правительственные структуры. Например, Google и Amazon, IBM и Apple первыми стали внедрять искусственный интеллект. Собственно любая система, которая пытается предсказать покупательский спрос на основе массива данных, связана с технологией машинного обучения.
  2. Технологиями пользуются люди с определенным багажом знаний в IT сфере, которые имеют доступ к современным разработкам, гаджетам. Появление новых сервисов, основанных на технологии искусственного интеллекта. Яркий пример – аналитические машины Гугла и Яндекса в контекстной рекламе.
  3. Технологии доступны даже школьнику, людям «лампового» поколения, которые вполне серьезно опасаются «Восстания машин» по аналогии с блокбастером «Терминатор».


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

Сфера применения

Мы рассмотрели Machine Learning – что это понятие означает. Теперь самое время рассмотреть для чего используется МО в бизнесе и жизни.

Спросите человека, увлеченного робототехникой, о сфере применения машинного обучения. Вы услышите много фантастических историй. Например, роботы будут самостоятельно обучаться выполнять поставленные человеком задачи. Добывать в недрах Земли полезные ископаемые, бурить нефтяные и газовые скважины, исследовать глубины океана, тушить пожары и прочее. Программисту не нужно будет расписывать массивные и сложные программы, боясь ошибиться в коде. Робот, благодаря МО, сам будет обучаться вести себя в конкретной ситуации на основе анализа данных.

Здорово, но пока фантастично. В будущем, может даже и не слишком далеком – это станет реальностью.

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

По такому же принципу формируются умные ленты в соцсетях. Аналитические машины ФБ, ВК, Инстаграм, Твиттер исследуют ваши интересы – какие посты чаще просматриваете, на что кликаете, какие паблики или группы посещаете и другое. Чем дольше и чаще вы активничаете в соцсетях, тем более персонализированной становится ваша лента новостей. Это и хорошо и плохо. С одной стороны – машина отсеивает массив неинтересной (по её мнению) информации, а с другой – она сужает ваш кругозор. Маркетинг – ничего личного!

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

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

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

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

    Обучение с учителем (supervised learning). В этом случае в аналитическую систему загружается массив данных по конкретной задаче и задается направление – цель анализа. Как правило, нужно предсказать что-либо или проверить какую-либо гипотезу.

Например, у нас есть данные о доходах интернет-магазина за полгода работы. Мы знаем, сколько продано товаров, сколько потрачено денег на привлечение клиентов, ROI, средний чек, количество кликов, отказов и другие метрики. Задача машины проанализировать весь массив данных и выдать прогноз дохода на предстоящий период – месяц, квартал, полгода или год. Это регрессивный метод решения задач.
Другой пример. На основе массива данных, критериев выборки нужно определить является ли текст письма на электронную почту спамом. Или, имея данные успеваемости школьников по предметам, зная их IQ по тестам, пол и возраст, нужно помочь выпускникам определиться с профориентацией. Аналитическая машина выискивает и проверяет общие черты, сравнивает и классифицирует результаты тестов, оценки по школьной программе, склад ума. На основе данных делает прогноз. Это задачи классификации.
Обучение без учителя (unsupervised learning). Обучение строится на том, что человеку и программе неизвестны правильные ответы заранее, имеется только некий массив данных. Аналитическая машина, обрабатывая информацию, сама ищет взаимосвязи. Зачастую на выходе имеем неочевидные решения.

Например, мы знаем данные о весе, росте и типе телосложения 10 000 потенциальных покупателей джемперов определенного фасона. Загружаем информацию в машину, чтобы разбить клиентов по кластерам в соответствии с имеющимися данными. В результате мы получим несколько категорий людей со схожими характеристиками, чтобы для них выпустить джемпер нужного фасона. Это задачи кластеризации. Другой пример. Чтобы описать какое-либо явление приходится задействовать 200-300 характеристик. Соответственно визуализировать такие данные крайне сложно, а разобраться в них просто невозможно. Аналитическая система получает задание обработать массив характеристик и выбрать схожие, то есть сжать данные до 2-5-10 характеристик. Это задачи уменьшения размерности.
Глубокое обучение (Deep learning). Глубокое машинное обучение – это обязательно анализ «Больших данных» — Big Data. То есть одним компьютером, одной программой переработать столько информации просто невозможно. Поэтому используются нейронные сети. Суть такого обучения в том, что огромное поле информации разделяется на небольшие сегменты данных, обработка которых делегируется другим устройствам. Например, один процессор только собирает информацию по задаче и передает дальше, четыре других процессора анализируют собранные данные и передают результаты дальше. Следующие в цепочке процессоры ищут решения.

Например, система распознавания объектов работает по принципу нейросети. Сначала фотографируется объект целиком (получение графической информации), потом система разбивает данные на точки, находит линии из этих точек, строит из линий простые фигуры, а из них – сложные двумерные и далее 3D-объекты.

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


Обобщим задачи МО:

  1. Регрессия. На основании массива признаков или характеристик предсказать вещественный результат. То есть машина должна выдать конкретную цифру. Например, предсказать стоимость акций на бирже, количество запросов по ключевому слову, бюджет контекстной рекламы и другое.
  2. Классификация. Задача определить по количеству и качеству признаков, характеристик категорию объекта. Например, распознать по снимку конкретного человека в розыске, имея только описания на словах, определить спам, выявить болезнь у пациента.
  3. Кластеризация. Данные разбиваются на похожие категории. Например, космические объекты относят в конкретные категории по схожим признакам (удаленность, размер, планета или звезда и другие).
  4. Уменьшение размерности. Сжатие массива характеристик объекта до меньшего количества признаков для дальнейшей визуализации или использования в работе. Например, сжатие массива данных в архивы для передачи по сети.

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


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

Что для этого нужно:

  1. Владеть английским языком на нормальном уровне. Зачем? Чтобы общаться без проблем в кругу единомышленников. В Европе, кстати, незнание английского считается признаком дурного тона. Акцент никого не интересует, но если имеются трудности с построением предложений, то будут трудности и с общением.
  2. Основы программирования. В машинном обучении применяется Python или Matlab. Также не лишним будет понимать, как работают базы данных.
  3. Неплохо подтянуть знания в математике, особенно раздел алгоритмов. Для начала подойдет классический курс Эндрю Энга «Машинное обучение». В курсе много практики, и, главное, нет упора на обширный математический багаж.

Для углубленного обучения МО советуем записаться на курсы от ВШЭ или специализацию от МФТИ.

Предлагаем добавить в свою библиотеку следующие книги по искусственному интеллекту и МО:

  • Стюарт Рассел, Питер Норвиг «Искусственный интеллект. Современный подход»
  • Джордж Ф. Люгер Искусственный интеллект. «Стратегии и методы решения сложных проблем»
  • Петер Флах «Машинное обучение»
  • Себастьян Рашка «Python и машинное обучение»
  • Шарден Б., Массарон Л., Боскетти А. «Крупномасштабное машинное обучение вместе с Python»
  • Тарик Рашид «Создаем нейронную сеть»
  • Хенрик Бринк, Джозеф Ричардс «Машинное обучение»

Все книги можно купить на Озоне.

Резюме

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

Как выбрать модель машинного обучения

Для начала рассмотрим некоторые руководящие принципы, которые используются при создании моделей:

  • Сбор данных (обычно в больших количествах).
  • Установление цели, гипотезы для проверки и сроков для достижения.
  • Проверка на наличие аномалий или выбросов.
  • Поиск недостающих данных.
  • Очистка данных на основе ограничений, целей и тестирования гипотез.
  • Выполнение статистического анализа и начальной визуализации.
  • Масштабирование, регуляризация, нормализация, разработка функций, случайная выборка и проверка данных для подготовки модели.
  • Обучение и тестирование данных.
  • Создание моделей на основе показателей классификации/регрессии для обучения с учителем или без него.
  • Установление базовой точности и проверка точности текущей модели на данных для обучения и тестирования.
  • Повторная проверка решения проблемы и полученных результатов.
  • Подготовка модели для развертывания и поставки продукта (AWS, Docker, Buckets, App, веб-сайт, ПО, Flask и т. д.).

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

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

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

Подходы

Ниже приведены подходы к выбору модели для решения задач машинного обучения/глубокого обучения:

  1. Несбалансированные данные достаточно распространены.

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

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

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

2. Мы можем создавать новые функции с помощью метода главных компонент.

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

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

4. Нам необходимо устранить проблему «черного ящика».

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

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

5. Понимание алгоритмов, не восприимчивых к выбросам.

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

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

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

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

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

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

5. Для соревнований Kaggle предпочтительны случайный лес и XGBoost!

Модели глубокого обучения

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

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

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

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

Для задач моделирования последовательности, таких как языковой перевод или классификация текста, предпочтительны рекуррентные нейронные сети (RNN).

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

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

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

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

Мы порой даже примерно не представляем, как работают некоторые приложения, основанные на методах машинного обучения. Скажем, никто не сможет вам ответить на вопрос «Почему мне сегодня в рекламе показали сайт 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 дней.

Алгоритмы машинного обучения: Какой из них выбрать для решения вашей проблемы?

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

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

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

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

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

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

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

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

Обучение с частичным привлечением учителя

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

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

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

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

Наиболее часто используемые алгоритмы машинного обучения

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

Линейная регрессия и линейный классификатор

Вероятно, это самые простые алгоритмы машинного обучения. У вас есть функции x1, . xn объектов (матрица A) и метки (вектор b). Ваша цель — найти наиболее оптимальные веса w1, . wn и смещение для этих функций в соответствии с некоторой функцией потерь; например, среднеквадратичная ошибка или средняя абсолютная ошибка для задачи регрессии. В случае среднеквадратичной ошибки существует математическое уравнение из метода наименьших квадратов:

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

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

Логистическая регрессия

Не путайте эти алгоритмы классификации с методами регрессии из-за использования «регрессии» в названии. Логистическая регрессия выполняет двоичную классификацию, поэтому маркированные выходы являются двоичными. Определим P (y = 1 | x) как условную вероятность того, что выход y равен 1 при условии, что задан входной вектор-функция x. Коэффициенты w — это веса, которые модель хочет изучить.

Поскольку этот алгоритм вычисляет вероятность принадлежности к каждому классу, вы должны учитывать, насколько вероятность отличается от 0 или 1 и усредняет его по всем объектам, как это было с линейной регрессией. Такая функция потерь представляет собой среднее значение кросс-энтропии:

Не паникуйте! Я облегчу это для вас. Позвольте y иметь правильные ответы: 0 или 1, y_pred — предсказанные ответы. Если y равно 0, то первое слагаемое при сумме равно 0, а второе меньше, чем мы предсказали y_pred до 0 согласно свойствам логарифма. Аналогично, в случае, когда y равно 1.

Что хорошего в логистической регрессии? Он принимает линейную комбинацию функций и применяет к ней нелинейную функцию (сигмовидную), поэтому это очень маленький экземпляр нейронной сети!

Деревья принятия решений

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

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

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

Метод k-средних

Иногда, вам ничего не известно о свойствах, и ваша цель — назначать свойства в соответствии с особенностями объектов. Это называется задачей кластеризации.

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

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

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

Анализ основных компонентов

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

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

Удивительно, но эти векторы являются собственными векторами корреляционной матрицы признаков из набора данных.

Теперь алгоритм понятен:

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

Новые функции — координаты от проекции, а их число зависит от количества собственных векторов, на которых вы рассчитываете проекцию.

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

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

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

Для работы с текстами и последовательностями вам лучше выбрать рекуррентные нейронные сети (англ. Recurrent neural network ; RNN ). RNN содержат модули долгой краткосрочной памяти или управляемых рекуррентных нейронов и могут работать с данными, для которых мы заранее знаем размер. Одним из наиболее известных приложений RNN является машинный перевод.

Заключение

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

  • Линейная регрессия и линейный классификатор : несмотря на кажущуюся простоту, они очень полезны при огромном количестве функций, где лучшие алгоритмы страдают от переобучения.
  • Логистическая регрессия : простейший нелинейный классификатор с линейной комбинацией параметров и нелинейной функцией (сигмоид) для двоичной классификации.
  • Деревья принятия решений : часто подобны процессу принятия решений людьми и легко интерпретируются, но чаще всего используются в таких композициях, как случайный рост леса или градиента.
  • Метод k-средних : более примитивен, но очень простой в понимании алгоритм, который может быть идеальным в качестве основы во множестве задач.
  • Анализ основных компонентов : отличный выбор для уменьшения размерности вашего пространства с минимальной потерей информации.
  • Нейронные сети : новая эра алгоритмов машинного обучения, которые могут применяться для многих задач, но их обучение требует огромной вычислительной сложности.

Рекомендуемая литература

Статья написана: Daniil Korbut | Октябрь 27, 2017г.

Читать еще:  Neo lectures ru обучение
Ссылка на основную публикацию
Adblock
detector