Машинное обучение с нуля

Машинное обучение с нуля

Популярная тенденция в сфере онлайн-образования — массовые открытые онлайн-курсы (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
Язык: русский

Читайте также:  Не удается разрешить системное имя узла tracert

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

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

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

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

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

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

Это ещё один пример успешного человека, который сам с нуля прошёл путь до инженера машинного обучения. Разработчик Дэниэл Бурк поделился своей историей на Hacker Noon.

Я работал в магазине Apple, но хотел изменить свою жизнь и создавать технологии, которые обслуживал. Я начал интересоваться машинным обучением (МО) и искусственным интеллектом (ИИ). Это очень насыщенная и динамичная сфера: кажется, каждый день Google и Facebook выпускают новые ИИ-продукты, которые делают жизнь человека проще и удобнее. Не говоря уже о количестве компаний, разрабатывающих беспилотные авто.

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

Но нужно было с чего-то начать.

У меня был неудавшийся веб-стартап, но я всё больше слышал о МО и ИИ. Я не верил, что машина может обучаться чему-то, как человек.

Мне попался курс по глубокому обучению на Udacity. В одном из промо-роликов был харизматичный разработчик Сираж Равал. Его энергетика была так заразительна, что я решил записаться на курс, хотя не проходил по базовым требованиям (к тому моменту я не написал ни строчки на Python). За три недели до старта я спросил в поддержке Udacity о компенсации: боялся, что не потяну программу.

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

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

Я создал свою программу изучения ИИ.

Я не собирался возвращаться в университет, тем более у меня не было лишних $100 тысяч на магистратуру. Поэтому я сделал то, что и вначале: обратился к своему ментору — гуглу, посмотрел несколько курсов и составил список самых интересных в Trello.

У онлайн-курсов высокий процент отсева слушателей. Но у меня была цель, и я решил идти до конца. А чтобы не отступать, начал делиться своими успехами в сети. Так я тренировался объяснять то, чему научился, и смог найти единомышленников. Я открыл доступ к доске в Trello и написал пост о своих начинаниях.

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

Потом я получил работу.

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

Однажды мне написали из компании Max Kelsen на LinkedIn и предложили встретиться. Я рассказал о том, как проходил онлайн-курсы, как решил перебраться в США и что увлекаюсь медицинскими технологиями. Мне устроили встречу с командой, которая занималась этими технологиями, а потом с генеральным директором и главным инженером МО компании. В итоге они предложили мне остаться на год.

Рассказывайте о своих проектах.

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

Попутно я публиковал то, что делаю. Все мои проекты были на GitHub, о них я писал в профиле на LinkedIn, а также делился тем, чему научился, в видео на YouTube и статьях на Medium.

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

Независимо от того, учитесь вы онлайн или в вузе, портфолио — отличный способ привлечь к себе внимание. Навыки МО и ИИ востребованы, но это не значит, что их не нужно демонстрировать. Чтобы продать товар, нужно выложить его на витрину.

Читайте также:  Кто знает тот поймет как пишется

Будь то GitHub, Kaggle, LinkedIn или личный блог, у вас должен быть свой уголок в сети, чтобы люди могли узнать о вас.

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

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

Поэтому начните с ответа на вопрос, «зачем» вы хотите приобрести эти навыки:

  • чтобы заработать много денег;
  • чтобы строить что-то;
  • чтобы сделать что-то значимое.

Здесь тоже нет «правильного» ответа: каждая из этих причин имеет смысл. Но когда вам будет трудно (а вам обязательно будет трудно), эта причина напомнит, зачем вы начали учиться.

Теперь нужно получить сами навыки. Я могу посоветовать только то, что пробовал сам. Я закончил следующие курсы (по порядку):

  • Treehouse — введение в Python
  • Udacity — курсы по глубокому обучению и искусственному интеллекту
  • Coursera — курс по глубокому обучению от Эндрю Ына
  • fast.ai — Часть 1 (вышла Часть 2)

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

Сколько будет математики?

Я учил математику только в школе, а всё остальное по мере необходимости — на Khan Academy.

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

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

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

Чем занимается инженер машинного обучения?

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

Вот несколько вопросов, над которыми ежедневно работает инженер МО.

  • Контекст. Как можно применить МО, чтобы больше узнать о задаче?
  • Данные. Нужно ли больше данных? В какой форме они должны быть представлены? Что делать, если данных недостаточно?
  • Модели. Какую использовать модель? Не произойдёт ли переобучение или недообучение?
  • Продакшн. Как развёртывать модель в продакшн? Она должна быть доступна онлайн, или обновлять её периодически?
  • Поддержка. Что делать, если модель сломается? Как улучшить её, добавив больше данных? Можно ли усовершенствовать её?

Подробно об этом можно прочитать в замечательной статье соосновательницы fast.ai Рейчел Томас. Также у меня есть видео о том, чем мы занимаемся в Max Kelsen.

Нет единственно возможного пути

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

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

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

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

Искусственный интеллект

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

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

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

Читайте также:  Как избавиться от рекламных баннеров

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

Чтобы ИИ научился принимать правильные решение, его нужно обучить, этот процесс и называется машинным обучением (machine learning).

Machine learning — что нужно?

Выделяют три составляющие машинного обучения (ML):

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

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

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

Но всё же главное в ML — это данные. Каким бы совершенным не был бы алгоритм работы, если качество данных не очень, то результат будет соответствующим.

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

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

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

  • классическое обучение;
  • обучение с подкреплением;
  • нейросети и глубокое обучение.

Пробежимся кратко по каждому из них.

Классическое обучение

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

Есть два типа классического обучения:

  • с учителем (supervised learning);
  • без учителя (unsupervised learning).

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

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

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

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

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

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

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

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

Возьмем для примера игру «Змейка». На поле расположен объект, до которого змейке необходимо добраться, но сама она не знает, как это сделать и какой путь самый эффективный, она знает только расстояние до объекта. Методом проб и ошибок змейка находит оптимальный вариант движения и анализирует ситуации, которые ведут к проигрышу.

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

Нейросети и глубокое обучение (Deep learning)

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

Связи — это каналы, через которые нейроны отправляют друг другу числа. У каждой связи есть своя оценка — параметр, который можно условно представить как прочность связи. Когда через связь с оценкой 0.5 проходит число 10, оно превращается в 5. Сам нейрон не разбирается, что к нему пришло, и суммирует всё подряд. Получается, что оценка нужна для управления тем, на какие входы нейрон должен реагировать, а на какие — нет.

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

Для чего необходимы нейронные сети:

  • определение объектов на видео и фото;
  • обработка фотографий;
  • распознавание речи;
  • машинный перевод.

В упрощённом виде работа нейросети выглядит примерно так:

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

Ссылка на основную публикацию
Манекены для рисования в ibispaint x
Рисуйте и делитесь своими работами в интернете Скачать Оценить это приложение Устанавливайте последние обновления для ibisPaint X с помощью приложения...
Левая реклама в браузере как убрать
Надоела постоянно выскакивающая реклама на всех сайтах, и вы хотите от неё избавиться? Не имеет значения, где она появилась: в...
Легенда о зельде вики
Journey to the kingdom of Hyrule and discover the timeless battles between good and evil and the secrets of the...
Марка ножей с двумя человечками
Недавно у команды «Комфортного дома» появился повод порадоваться приятному событию: у раздела появился спонсор, который предоставил журналистам, пишущим о кухонной...
Adblock detector