Openbravo-rus.ru

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

Яндекс тренировки по машинному обучению

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

Можно ли предсказывать исход киберспортивных турниров и решать взрослые задачи по анализу данных, если вы еще учитесь в школе? Этой весной благотворительный фонд Сбербанка «Вклад в будущее» запустил проект «Академия искусственного интеллекта», цель которого — дать возможность любому школьнику узнать больше о технологиях искусственного интеллекта, машинного обучения и анализа больших данных, а также развить свои компетенции в программировании и математике. В рамках проекта в Университете ИТМО состоялись открытые уроки по машинному обучению и анализу данных для учеников 7-11 классов. Лектором выступил руководитель академии технологий и данных корпоративного университета Сбербанка Андрей Черток. Он рассказал, какие специалисты уже сегодня требуются на рынке труда, с чего стоит начать, чтобы погрузиться в область машинного обучения, и почему этим можно заниматься уже начиная с седьмого класса школы.

«Академия искусственного интеллекта» в Университете ИТМО

Открытые уроки по искусственному интеллекту прошли с 12 по 18 марта в семи городах страны: Иркутске, Ульяновске, Томске, Екатеринбурге, Иваново, Тюмени и Петербурге. Занятия провели сотрудники Сбербанка в рамках Недели высоких технологий и техпредпринимательства, партнером которой компания выступает в этом году.

В Петербурге занятия состоялись в Университете ИТМО, где для школьников провели два открытых урока. Первое — вводное — занятие предназначено для учеников 7-9 классов. Здесь ребята узнали об истории искусственного интеллекта, основных трендах сегодняшнего дня, о перспективах развития области машинного обучения и анализа данных, а также актуальных профессиях.

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

Андрей Черток

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

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

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

Как начать заниматься машинным обучением?

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

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

Например, ученицы 10 класса МОУ «Гимназия» (Школа №4) в Киришах Екатерина Быкова и Ольга Петрова, которые пришли на открытые уроки, начали программировать на Phyton на школьных уроках информатики. Сегодня девушки также самостоятельно занимаются веб-дизайном и рассматривают несколько специальностей в области информационных технологий, с которыми перспективно связать дальнейшую карьеру.

Екатерина Быкова и Ольга Петрова

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

Еще один участник открытого урока Александр Коков, ученик восьмого класса Президентского ФМЛ №239, несмотря на возраст, уже начал осваивать Pascal, Java и C++, причем последний — самостоятельно, с помощью онлайн-уроков.

Александр Коков

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

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

Открытые уроки — это часть нового просветительского проекта «Академия искусственного интеллекта», который реализует Сбербанк и благотворительный фонд Сбербанка «Вклад в будущее». Занятия проводят как сотрудники Сбербанка в Москве, Подмосковье и регионах России, так и сами учителя в школах по материалам, разработанным сотрудниками Сбербанка. Кроме того, вводные уроки по AI можно прослушать в любое удобное время на сайте проекта.

Помимо этого, проект дает возможность использовать полученные знания в ходе онлайн-соревнования, которое стартовало на платформе «Академии искусственного интеллекта» 5 марта. Его первая часть — это четыре учебные задачи, выполняя которые и двигаясь от простого к сложному, можно прокачать полученные навыки. А вторая включает выполнение задачи повышенного уровня сложности и предполагает разработку действующего алгоритма на материалах популярной компьютерной игры. Вплоть до 12 апреля участники смогут посоревноваться в решении реальной задачи, цель которой — предсказать исход турнира по Dota2. Сто лучших получат приглашение на хакатон, который пройдет 21 апреля в Москве.

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

16 бесплатных онлайн-курсов по машинному обучению

Популярная тенденция в сфере онлайн-образования — массовые открытые онлайн-курсы (Massive open online-courses, MOOC). Появились бесплатные курсы по машинному обучению и data science. Они доступны каждому и основаны на образовательных программах от ведущих университетов, например, МФТИ.

Большинство MOOC по машинному обучению доступны на английском языке и представлены на известных платформах онлайн-образования, таких как Coursera, Udacity, World Education University и edX.

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

Видео-материалы и лекции курса можно получить бесплатно, для этого на странице курса внизу нужно нажать кнопку «прослушать курс», как показано на картинке:

Как бесплатно прослушать курсы по машинному обучению

В этой статье собраны бесплатные курсы по машинному обучению и Data Science на русском языке или с русскими субтитрами.

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

Авторы: ВШЭ и Яндекс
Платформа: Coursera
Язык: русский

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

Продолжительность: 35 часов

Машинное обучение и анализ данных

Авторы: МФТИ и Яндекс
Платформа: Coursera
Язык: русский

Специализация Машинное обучение и анализ данных включает 6 курсов. Осваиваются основные инструменты, необходимые в работе с большим массивом данных: современные методы классификации и регрессии, поиск структуры в данных, проведение экспериментов, построение выводов, фундаментальная математика, основы программирования на python.

Читать еще:  План обучения английскому

Продолжительность: 8 месяцев (7 часов в неделю)

Python для анализа данных

Авторы: МФТИ, ФРОО, Mail.ru Group
Платформа: Coursera
Язык: русский

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

Продолжительность: 25 часов

Введение в науку о данных

Автор: СПбГУ
Платформа: Coursera
Язык: русский

Курс Введение в науку о данных рассматривает постановку и решение типичных задач, с которыми может столкнуться в своей работе data scientist, подходы к сбору, анализу, обработке и визуализации массивов данных.

Продолжительность: 17 часов

Глубокое обучение в творчестве с TensorFlow

Автор: Google Magenta
Платформа: Kadenze
Язык: английский, русские субтитры

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

Продолжительность: 60 часов

Data Science

Автор: Johns Hopkins University
Платформа: Courserа
Язык: английский, русские субтитры

В специализацию Data Science университета John Hopkins входят 10 курсов, включая сбор и сортировку данных, программирование на языке R, регрессионные модели, разработку продуктов для обработки данных и другие.

Продолжительность: 8 месяцев (5 часов в неделю)

Data science для руководителей

Автор: Johns Hopkins University
Платформа: Courserа
Язык: английский, русские субтитры

Data Science для руководителей — это ускоренная обучающая программа — 5 курсов, которые дают базовое понимание о том, что такое data science и как работать с проектами в этой сфере, собирать и развивать команду и даже лидерские качества.

Продолжительность: 40 часов

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

Автор: Институт биоинформатики
Платформа: Stepic
Язык: русский

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

Продолжительность: 33 часа

Программирование на Python

Автор: Институт биоинформатики
Платформа: Stepic
Язык: русский

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

Продолжительность: 22 часа

Алгоритмы: теория и практика. Методы

Автор: Computer Science Center
Платформа: Stepic
Язык: русский

Рассматриваются теоретические основы создания алгоритмов и особенности реализации на языках C++, Java и Python.

Продолжительность: 35 часов

Основы программирования на R

Автор: Институт биоинформатики
Платформа: Stepic
Язык: русский

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

Продолжительность: 19 часов

Анализ данных в R

Автор: Институт биоинформатики
Платформа: Stepic
Язык: русский

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

Продолжительность: 21 час

Базы данных

Автор: СПбГУ
Платформа: Coursera
Язык: русский

В основе курса Базы данных изучение и применение языка SQL для создания, модификации объектов и управления данными в реляционных базах данных. Рассматриваются сферы применения NoSQL баз данных и современные подходы к обработке big data.

Продолжительность: 20 часов

От Excel до MySQL: способы анализа бизнес-данных

Автор: Duke University
Платформа: Coursera
Язык: английский, русские субтитры

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

Продолжительность: 8 месяцев (5 часов в неделю)

Линейная регрессия

Автор: СПбГУ
Платформа: Coursera
Язык: русский

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

Продолжительность: 22 часа

Анализ данных

Автор: НГУ
Платформа: Coursera
Язык: русский

В специализацию Анализ данных Новосибирского государственного Университета входят 4 курса. Курсы содержат материалы по основам теории вероятностей и математической статистики, исследованию связей между признаками, построению прогнозов на основе регрессионных моделей, кластерному и статистическому анализу. Курсы разработаны совместно с 2GIS.

Продолжительность: 4 месяца (3 часа в неделю)

25 бесплатных онлайн-курсов программирования для обучения с нуля

Осваивайте популярные языки не выходя из дома и в удобном для вас темпе.

Java Programming For Complete Beginners

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

Learn to Program in Java

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

Java. Быстрый старт

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

Java. Базовый курс

Курс для тех, кто только начинает изучать Java. Лекции содержат материал, охватывающий синтаксис языка, компиляцию программ, основы объектно‑ориентированного программирования и более сложные аспекты Java, а также контрольные вопросы и практические задания.

Android. Быстрый старт

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

JavaScript

JavaScript для начинающих

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

Основы JavaScript

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

Python

Основы языка Python

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

Программирование на Python

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

Python: основы и применение

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

Интерактивные уроки по Python

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

Machine Learning with Python: A Practical Introduction

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

Введение в программирование (C++)

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

Introduction to C++

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

Основы C++

Рассчитанный на новичков онлайн‑курс, который посвящён основам языка C++. Охватывает базовые элементы и азы объектно‑ориентированного программирования с примерами и заданиями. Заключительная часть отводится практическому применению полученных навыков.

Программирование на языке C++

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

Углублённое программирование на C/C++

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

C++ Programming — Advanced Features

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

Objective‑C

Become an iOS Developer from Scratch

Обширный и детальный курс, который является пошаговым руководством для всех, кто хочет с нуля освоить Objective‑C и научиться создавать программы для iPhone. В ходе обучения слушатели ознакомятся с пакетом iOS SDK и, применяя доступные инструменты, напишут своё первое полнофункциональное приложение.

Swift

Swift 5: Основы

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

Intro to iOS App Development with Swift

Практический онлайн‑курс для тех, кто уже владеет основами, который познакомит с разработкой под iOS на Swift. Слушатели изучат все нюансы этого языка программирования и создадут забавное приложение, искажающее голос (звучит как у бурундука или Дарта Вейдера).

Читать еще:  Яндекс дзен обучение

Веб‑разработка

Веб‑разработка. Быстрый старт

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

Основы SQL для начинающих

Вводный онлайн‑курс, который откроет основы SQL. На лекциях слушатели узнают, что такое системы управления базами данных, и научатся использовать SQLite, MySQL и другие необходимые для работы инструменты.

PHP базовый курс

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

Beginner PHP and MySQL Tutorial

Объёмный курс для начинающих программистов, охватывающий все аспекты PHP и MySQL. Обучение построено таким образом, что по окончании занятий можно смело браться за разработку функциональных веб‑приложений.

Соревнования по машинному обучению и трюки при их решении. Тренировка по машинному обучению Эмиль Каюмов

Транскрипт

2 Соревнования по машинному обучению и трюки при их решении Тренировка по машинному обучению Эмиль Каюмов

4 ML процесс в жизни Cross-Industry Standard Process for Data Mining 4

5 ML соревнования Cross-Industry Standard Process for Data Mining 5

6 ML соревнования Не тратим время на постановку Не тратим время на внедрение Можно Нужно сконцентрироваться на обучении моделей и итоговом качестве 6

7 Зачем это нужно участникам Опыт в различных областях Шашечки, медальки и прочее для резюме Призы 7

8 Зачем это нужно индустрии Новые подходы к решению Новые популярные инструменты и библиотеки Внимание сообщества и поиск идей 8

9 Где проходят соревнования 9

10 Примеры задач Предсказание продаж сети супермаркетов Предсказание кликов пользователей Выделение фона на изображениях автомобилей Обучение модели человека бегу Детектирование, подсчёт и измерение длин рыб на видео Adversarial attack изображений 10

11 Особенности проведения Установлены сроки проведения с дедлайном сдачи Имеется небольшое предметное описание задачи Набор данных с описанием Установлена целевая переменная и метрика оценки Лидерборд Место для отправки решений Правила 11

12 Особенности проведения Опционально: Форум Публичные скрипты Сдача кода вместо файла с предсказаниями Многоэтапные соревнования 12

14 Особенности решения

15 Pipeline решений 1. Прочитать описание задачи и области Выигрывают люди той же области, а могут даже непрочитавшие про задачу 2. Изучить метрику 3. Проверить форум и лидерборд на наличие проблем в задаче Иногда лучше не начинать участвовать 15

16 Pipeline решений (2) 4. Скачать и изучить данные (EDA) 5. Сделать бейзлайн-решение, определиться и проверить валидацию 6. Придумывать, пробовать, улучшать результат до окончания конкурса, возвращаться к форуму, искать особенности в данных 7. Подготовка финального сабмита (тонкая настройка параметров, стэкинг) 16

17 Основные проблемы Переобучение под лидерборд Невоспроизводимое решение (от «забыл, что за сабмит» до «не получается тот же результат») 17

18 Валидация Стандартные техники валидации (K-fold, holdout) Time Series Split в задачах со временем Важно, чтобы валидационное множество было похоже на тестовую выборку! Похожее распределение признаков Похожее распределение целевой переменной Влияние выбросов Ваша локальная валидация должна коррелировать с публичным лидербордом 18

19 Кейс: распределение целевой переменной Задача классификации на 2 класса, метрика LogLoss N logloss = 1 N i=1 (y i log(p i ) + (1 y i )log(1 p i )) Можно отправить p=const и восстановить баланс классов Аналогично Accuracy, F-мера за 4 сабмита 19

20 Leakage Особенности в проведении и ошибки организаторов могут вызывать «особую» информацию, помогающую в решении, но не в реальном применении Информация в ID или порядке строк Мета-данные к файлам «Заглядывание» в будущее 20

21 Кейс: Kaggle Expedia Задача прогнозирования типа отеля, которые забронирует пользователь В данных нет координат отелей, но есть города пользователей и расстояния до отелей С некоторой точностью можно было восстановить реальное местоположение отеля 21

22 Категориальные признаки Обычные подходы: label encoding one-hot encoding mean target encoding Smoothed Likelihood = mean(target) * nrows + global mean * alpha nrows + alpha 22

23 Валидация с mean target encoding Использование K-fold и для валидации, и для подсчёта счётчиков может вносить искажение в оценку качества. Можно сделать честнее: 23

24 Тюнинг гиперпараметров Погоня за долями процентов качества требует тонкой настройки алгоритмов Grid search долго HyperOpt, BaeysianOpt удобнее Вручную быстрее всего, но требует опыта Стоит заниматься только в конце соревнования 24

25 Кейс: ручной тюнинг градиентного бустинга 1. Зафиксировать learning rate и параметры случайности (количество итераций лучше не фиксировать) 2. Найти баланс между недообучением и переобучением через сложность (depth) и регуляризацию (min split gain) 3. Настроить параметры случайности 4. Понизить learning rate и увеличить количество итераций для финального алгоритма (Не единственно верный, но рабочий способ) 25

26 Постпроцессинг В некоторых случаях необходимо проводить обработку предсказаний Простой пример: бинаризация вероятностей для задачи с F- мерой Можно подобрать по кросс валидации порог бинаризации для максимизации результата 26

27 Кейс: анонимизированные признаки В некоторых задачах компании анонимизируют и шифруют признаки. Пример: Kaggle BNP Paribas. Распределение многих признаков: Можно было избавиться от искусственного шума 27

28 Кейс: клиппинг вероятностей для LogLoss N logloss = 1 N i=1 (y i log(p i ) + (1 y i )log(1 p i )) Логарифм чувствителен к малым числам Даже если алгоритм работает хорошо, может встретиться объект с неправильной разметкой Если на 1 из 100 объектов предсказать p=1e-15 (у объекта положительного класса), то ухудшим ошибку на (для сравнения в Kaggle Quora Question Pairs у победителя 0.116) Если ограничим с каждой стороны вероятности на 1e-5, то ошибка на таких объектов уменьшится в 3 раза, а на правильных объектах потеряем лишь по 1e-7 качества. 28

29 Blending Разные алгоритмы ведут себя по-разному, хочется компенсировать ошибки одного другим Простой способ: усреднить предсказания всех алгоритмов Сложнее: подобрать веса для смешивания алгоритмов Основной эффект достигается от мало скоррелированных алгоритмов Слабый относительно остальных алгоритм может как испортить, так и заметно улучшить результат 29

30 Stacking Идея: подавать предсказания алгоритмов как новые признаки для других алгоритмов Статья «Cтекинг (Stacking) и блендинг (Blending)» из блога Александра Дьяконова 30

31 Кейс: многоуровневый stacking Kaggle Dato winner 31

32 Silent mode В некоторых случаях можно скрывать свой результат на лидерборде, чтобы лидеры чувствовали себя спокойно Если в задаче с AUC отправить все вероятности как 1-p, то получим результат 1-AUC 0.5 Для некоторых метрик можно попробовать проверять результат в 2 сабмита по половине выборки 32

33 Материалы Coursera: «How to Win a Data Science Competition: Learn from Top Kagglers» Сообщество Open Data Science (каналы #mltrainings_beginners, #mltrainings_live, #kaggle_crackers) Youtube: канал ML тренировок Актуальные конкурсы: mltrainings.ru 33

34 С чего начать / что порешать Kaggle PLAsTiCC Astronomical Classification Классифицировать объект на небе по его перемещениям и параметрам Kaggle Google Analytics Customer Revenue Prediction Прогнозировать выручку с покупателя в магазине мерча Google Data Souls ЦФТ contest Определить корректность ФИО и исправить опечатки Sberbank Data Science Journey Auto ML Построить универсальный решатель ML-задач 34

35 Эмиль Каюмов Разработчик ML в Яндекс.Такси @emilkayumov

Я хочу изучать AI и машинное обучение. С чего мне начать?

Когда-то я работал в Apple Store и мечтал изменить свою жизнь: вместо обслуживания техники Apple, мне хотелось ее создавать.

Я начал изучать машинное обучение (ML) и искусственный интеллект (AI), потому что на этом поприще творятся невероятные вещи. К тому же, эта область активно развивается.

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

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

Несмотря на все вышеперечисленное, до сих пор не существует согласованного понятия искусственного интеллекта (AI).

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

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

С чего я начал?

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

Я не мог поверить в то, что компьютер может что-то учить для меня.

Через какое-то время я наткнулся на курс от Udacity под названием Deep Learning Nanodegree. На одном из промо-роликов я увидел забавного человека по имени Сирадж Раваль. Он заразил меня своей энергией и я записался на курс, несмотря на то, что совсем не отвечал основным требованиям (я ни разу не писал на Python).

За 3 недели до начала курса, я написал в Службу Поддержки Udacity, с вопросом об их политике возврата средств. Я боялся, что не смогу закончить курс.

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

Читать еще:  Обучение таргетированной рекламе facebook

Окончив Deep Learning Nanodegree, я гарантированно получал доступ к другим курсам Udacity, таким как AI Nanodegree, Self-Driving Car Nanodegree или Robotics Nanodegree.

Но я был растерян. Что делать дальше?

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

Моя собственноручно созданная степень магистра по AI

В мои планы точно не входило возвращаться в университет. К тому же $100,000 на дороге не валяются, чтобы получить степень магистра.

Поэтому я сделал то, что сделал в самом начале своего пути — попросил своего наставника Google о помощи.

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

Просмотрев кучу курсов, я составил список самых интересных в Trello.

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

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

Я сделал доску Trello открытой и написал о своих начинаниях в блоге.

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

Получение работы

Я следовал своему учебному плану вот уже более года, настало время на практике применить свои навыки. Поэтому я купил билет на самолет в один конец в США.

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

Однажды, девушка по имени Эшли написала мне на LinkedIn вот такое письмо: “Я видела твои посты и они на самом деле отличные, я думаю, тебе стоит встретиться с Майком”.

Я встретился с Майком и рассказал ему свою историю онлайн-обучения, о том как мне нравится Health Tech и о своих планах по переезду в США. Майк сказал мне: “Тебе лучше остаться тут на год или дольше, и посмотреть, что из этого выйдет. Кроме того, советую тебе встретиться с Кэмероном”.

Я встретился с Кэмероном и у нас был практически такой же диалог, что и с Майком. Health Tech, онлайн-обучение, США. Кэмерон сказал мне: “Мы с командой работаем над некоторыми проблемами в области здравоохранения, почему бы тебе не прийти к нам в четверг?”.

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

Весь день я знакомился с командой Max Kelsen.

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

“Ты хотел бы присоединиться к команде?” — спросил меня Ник.

“Конечно” — ответил я.

Билет в США мне не понадобился.

Делитесь своей работой

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

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

Во время обучения, я делился своей работой в Интернете. Мой GitHub был заполнен проектами, которые я сделал, профиль на LinkedIn я забросил и стал делиться своими знаниями через YouTube и статьи на Medium.

Я никогда не писал резюме для Max Kelsen, потому что они и так уже все про меня знали из моего профиля на LinkedIn.

Моя публичная деятельность и была моим резюме.

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

Да, навыки по ML и AI востребованы, но это не значит, что вам ничего не придется делать, чтобы получить работу. Продемонстрировать навыки придется, потому что даже гениальный продукт не будет продаваться, если его не поместить на видное место.

Создайте себе профиль на GitHub, Kaggle, LinkedIn или просто заведите блог — люди должны о вас как-то узнать. Кроме того, иметь собственный уголок в Интернете — очень весело.

Как начать?

На каких платформах учиться? Какие курсы лучше выбрать?

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

Важнее не то, как начать, а почему вы это начинаете.

Начните с определения причины.

  • Почему вы хотите изучать эти навыки?
  • Вы хотите много зарабатывать?
  • Вы хотите создавать что-то интересное?
  • Вы хотите что-то изменить в нашем мире?

Опять же, нет единственно верной причины. Все они верны по-своему.

Наличие “почему” означает, что в трудные времена у вас будет к чему обратиться за помощью, чтобы напомнить себе, почему вы все это затеяли.

Определили свое “почему”? Хорошо. Пришло время перейти к самой трудной части.

Я могу рекомендовать только то, что сам пробовал.

Вот курсы, которые я окончил (по порядку):

  • Treehouse — Введение в Python
  • Udacity —Глубокое обучение и AI
  • Coursera — Глубокое обучение от Andrew Ng
  • fast.ai — Часть 1, скоро будет Часть 2

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

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

Нужны ли углубленные знания по математике?

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

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

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

Такие библиотеки, как TensorFlow и PyTorch позволяют создавать, при небольшом знании Python, современные модели, в то время как математика делает основную работу за кулисами.

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

Лично я не собираюсь углубляться в математику и улучшать производительность алгоритма на 10%. Оставлю это людям, которые умнее меня.

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

Что на самом деле делает специалист по машинному обучению?

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

Например, несмотря на распространенный факт, мы не работаем с роботами, у которых красные и страшные глаза.

Вот несколько вопросов, которые ежедневно задает себе специалист по ML:

  • Концепция — как можно использовать ML, чтобы узнать больше о проблеме?
  • Данные —сколько данных вам требуется? В каком формате они должны быть? Что вы делаете, когда данные отсутствуют?
  • Моделирование — какую модель следует использовать? Хорошо ли она работает с данными (переобучение)? Если работает плохо, то почему?
  • Производство — как вы можете использовать свою модель в производстве? Должна ли это быть онлайн-модель или она должна обновляться через определенные промежутки времени?
  • Будущее — что произойдет, если ваша модель сломается? Можно ли улучшить ее с большим количеством данных?

Я позаимствовал эти вопросы из замечательной статьи Рейчел Томас, одной из основательниц fast.ai.

Кроме того, я снял видео о том, чем мы занимаемся по понедельникам в Max Kelsen.

Нет однозначно верного пути

Не существует правильного или неправильного способа попасть в сферу ML или AI.

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

Вы можете начать с изучения Python.

Вы можете начать с изучения исчисления и статистики.

Вы можете начать с изучения философии принятия решений.

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

Чем больше я узнаю, тем больше еще остается узнать. И это подстегивает меня двигаться вперед.

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

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

Компьютеры умны, но они все еще не могут учиться самостоятельно. Им нужна ваша помощь.

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