Много лет назад я загорелась идеей – научиться программированию, создав собственный сайт. Тогда я ничего не понимала в компьютерах и тем более в серверах. И только одна мысль о том, сколько же мне предстоит узнать нового, будила во мне необыкновенный интерес. Перед сном я обдумывала сотни вариантов своего сайта – от параллакс-эффекта при прокручивании до шрифтов из Google Fonts – и мечтала о будущих проектах.
Прошли годы, и теперь я профессиональный инженер и решаю серьезные технологические задачи – они действительно гораздо сложнее, чем мой первый сайт! Тем не менее, я часто вспоминаю ощущения и эмоции, которые испытала тогда, делая первые шаги в программировании.
Один из веселых способов познакомиться с машинным обучением – это создать что-то для себя. В этой статье я расскажу, как это сделать.
Работая в сфере технологий, вы посвящаете свою жизнь учебе. Глазом не успеешь моргнуть, как самое совершенное ПО моментально заменяется чем-то более продвинутым (хотя я все никак не могу отвыкнуть от старого доброго Vim).
Одно из интереснейших направлений в ИТ – машинное обучение. Большинству из нас не рассказывали о нем в вузах (а у некоторых вообще не было уроков информатики), но скоро машинное обучение станет повсеместным, и оно изменит процесс разработки ПО во всех областях. Неудивительно, что меня часто спрашивают, с чего лучше начать изучение машинного обучения.
Обычно я советую обратиться к таким ресурсам, как курс компании Google под названием Machine Learning Crash Course, а также книга Прикладное машинное обучение с помощью Scikit-Learn, Keras и TensorFlow и курс на сайте Coursera Машинное обучение (автор: Andrew Ng), который нацелен не только на теоретические основы, но и на практику.
Но если вы, как и я, предпочитаете сразу переходить к делу, попробуйте познакомиться с машинным обучением, создав для себя программу. Собственные проекты – это не только приятный и полезный способ знакомства с новыми технологиями. В отличие от идеальных условий, которые предлагаются в домашних заданиях, на практике вы столкнетесь с реальными трудностями при внедрении машинного обучения в ПО.
В начале пандемии я вдруг поняла, что у меня много свободного времени. И я поставила перед собой задачу – узнать больше о машинном обучении, решая с его помощью повседневные задачи. С тех пор машинное обучение помогает мне искать семейные видео, улучшать подачу во время игры в теннис, переводить видео, создавать новые рецепты выпечки и многое другое.
Ниже вы найдете список и обзор всех этих проектов, а также исходный код, обучающие видео на YouTube и пошаговые инструкции в моем блоге. Я расскажу обо всем процессе – от работы с новыми технологиями и инструментами до создания приложения с их помощью. Надеюсь, эти проекты окажутся для вас не только веселыми, но и полезными. А если они вдохновят вас на собственные проекты с машинным обучением, я буду только рада. Не забудьте рассказать мне о своих свершениях в твиттере. Удачной работы!
Внедрение машинного обучения в свои проекты
Умный архив семейных видео
Вы создадите: архив, который сможет предоставлять видео по фразе или объекту из записи (например, "день рождения", "велосипед" или "видеоигры").
Вы узнаете:
как применять машинное обучение в сортировке и поиске сложных типов данных;
как использовать Video Intelligence API;
как проектировать приложение, в основе которого лежит машинное обучение (в этом помогут инструменты Flutter – для создания клиентской части, Firebase – для написания кода без использования серверов, и поиск как сервис, предоставленный Algolia).
Бот-модератор в Discord
Вы создадите: бот для чат-платформы Discord, который помогает находить оскорбительные и нецензурные сообщения, а также спам.
Вы узнаете:
как использовать Perspective API для анализа текста;
как применять машинное обучение в приложениях для чата;
как выбирать, нужно ли машинное обучение в сложных и неоднозначных ситуациях.
Вы создадите: блокнот Jupyter, который отслеживает подачу и траекторию теннисного мяча (может также пригодиться в гольфе и баскетболе), а также анализирует данные, чтобы дать полезные советы. Для этого перейдите в Qwiklabs.
Вы узнаете:
как выполнять сложное машинное обучение с помощью небольших наборов данных;
как комбинировать простые математические вычисления с распознаванием поз для понимания движений человека;
как использовать Video Intelligence API;
как работать c AutoML Vision.
Умный игровой мир с технологией обработки естественного языка
или Создание приложений на основе языка с помощью семантического машинного обучения
Вы создадите:
простую систему на основе языка, с помощью которой можно взаимодействовать с игровым миром через ввод текста.
Вы узнаете:
как использовать одну из самых полезных методик обработки естественного языка – встраивание предложений;
как реализовывать семантический поиск текста;
как разделять текст на кластеры;
как добавлять простые чат-боты;
как выполнять эти действия в Google Таблице.
Преобразование PDF-документа в аудиокнигу
Вы создадите: код, который преобразует PDF-файлы в аудиокниги формата MP3.
Вы узнаете:
как извлекать текст из PDF-файлов при помощи Vision API;
как озвучивать текст при помощи Text-to-Speech API;
как использовать математические вычисления для разделения макетов документа.
Перевод и озвучивание видео с помощью машинного обучения
Вы создадите: код, который автоматически преобразовывает речь из видео в текст, а затем переводит и озвучивает его.
Вы узнаете:
как совмещать технологии распознавания, перевода и синтеза речи;
как улучшать качество перевода и преобразования речи в текст;
как работать с видео и аудио на языке Python.
Создание рецептов выпечки с помощью ИИ
Вы создадите: модель машинного обучения без единой строки кода, которая может классифицировать рецепты и генерировать новые.
Вы узнаете:
как создавать модели машинного обучения в AutoML Tables с помощью табличных данных без написания кода;
как определять причину решений модели с помощью функций.
Создание модели машинного обучения в браузере без написания кода
Вы создадите: быструю модель машинного обучения, которая распознает позы, объекты и звуки.
Вы узнаете:
что нужно, чтобы создать простую модель машинного обучения без написания кода;
как с помощью инструмента "Обучаемая машина" создать быструю модель, которую можно запустить в браузере.
Создание образов с помощью ИИ
Вы создадите: приложение, которое будет рекомендовать образы на основе фотографий вашего гардероба и публикаций медийных персон в соцсетях.
Вы узнаете:
как использовать Product Search и Vision API;
как проектировать приложения на основе машинного обучения с помощью React и Firebase.