Что делать, если вы хотите изучать ИИ, но не шарите в математике? Часть вторая. Практика

Рассказывает Даниель Джеффрис 


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

Но вот ещё один маленький секрет, о котором вам никто не рассказал: 

На самом деле математика вам особо и не нужна!

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

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

Начнём с практических проектов.

Мой подход к обучению весьма схож с описанным в книге The First Twenty Hours. Все мы знаем, что для того, чтобы стать мастером, нужно потратить много времени. Но это нам пока и не нужно, мы лишь начинаем. Пока что мы хотим перейти от стадии «Что ты такое?» к «Да это же весело!».

Вот основные шаги:

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

Звучит несложно? Тогда начнём!

Выберите проект

Сперва вам нужно выбрать проект, который смотивирует вас выйти из зоны комфорта.

Как вам проект с призовым фондом в миллион долларов, посвящённый лечению рака лёгких?

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

Я знаю, о чём вы думаете.

У меня нет шансов победить. Это конкурс для профессионалов.

Хорошо, что вы так подумали, ведь это приводит нас ко второму шагу:

Переступите через свои страхи

Самый важный шаг при изучении чего-угодно нового — заткнуть этот тихий голос сомнения в вашей голове как можно быстрее. Книга The First Twenty Hours советует избавиться от того, что вас отвлекает, составить расписание и ещё много полезных вещей. Медитируйте, занимайтесь самовнушением, уйдите в запой. Главное, чтобы помогло. Просто делайте то, что заставит этот голос уйти. Если вам нужна книга, которая поможет вам с этим, попробуйте You Are a Badass — настоящий шедевр!

Вот в чём дело: сейчас всё плохо. Но это нормально, скоро это изменится!

Чувство смущения и неуверенности — это первый этап обучения. Поэтому вместо того, чтобы ругать себя за неудачу, примите её как неизбежный этап пути. Вы же учитесь кое-чему классному!

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

Будучи любителем, вы не несете груз многолетних теоретических знаний и идей, что присущи профессионалам. Вспомните историю про студента, который решил две нерешаемые задачи математики, подумав, что это всего лишь домашнее задание. Дело в том, что наука о данных — это скорее искусство, чем наука. Так что идите и пробуйте.

И кто знает, что случится? Может, вы заметите что-то, что упустили знатоки, повлияете на развитие медицины и получите сладкий приз!

Перепробуйте кучу всего и облажайтесь

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

Книг, посвящённых машинному обучению, пока не так уж и много. Вот одна из них: Real World Machine Learning. К сожалению, эта область науки ещё очень молода, и многие книги выйдут лишь в этом году. Вы можете предзаказать Deep Learning: A Practitioners Approach или Hands-on Machine Learning with Scikit-Learn and Tensorflow. Но вообще-то ждать необязательно. Позвольте мне представить вас моему другу, Safari Books Online. За 40 долларов в месяц вы можете читать столько книг, сколько захотите, причём вы получите доступ даже к тем книгам, которые ещё не изданы.

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

Вам подойдёт Keras с TensorFlow или Theano.

Вам даже не придётся ничего настраивать. Возьмите этот готовый Docker-образ.

Неважно, будете вы использовать TensorFlow или Theano. И то, и то — движки для машинного обучения, и для вашего уровня они абсолютно одинаковы. Keras — это библиотека фреймворков для машинного обучения, созданная одним из лучших исследователей ИИ в Google.

Если у вас уже есть компьютер на macOS или Linux с хорошей видеокартой Nvidia, то вы можете приступать. Если нет, то вам понадобится SSD, второй диск для хранения данных, 16–64 Гб ОЗУ и лучшая видеокарта(-ы) Nvidia, которую вы можете себе позволить. Процессор не важен. Или же, как вариант. вы можете использовать облачные сервисы, предоставляемые AWS, Google и Azure, но это будет очень накладно.

Доведите дело до конца

Теперь вы готовы начать. Вот очень простой пример работы с Keras.

Вам понадобится какой-то подход к решению задачи. И я снова помогу вам.

Самым эффективным методом разметки и изучения изображений является использование свёрточных нейронных сетей. Google, Facebook, Pinterest и Amazon используют их в своих проектах, там почему бы не последовать лучшим практикам?

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

После этого начинайте действовать. Пробуйте разные параметры и алгоритмы. Экспериментируйте и получайте удовольствие. Вдруг вы натолкнётесь на что-то, что упустили знатоки?

Если вы готовы попробовать что-то более серьёзное, почитайте статьи участников соревнования. Выяснится, что некоторые исследователи не против поделиться своим секретным ингредиентом. Попробуйте эту статью, она поможет начать грамотно исследовать данные. А этот пост уже более сложный, но не без причины — он является самым популярным на момент написания статьи и рассказывает о препроцессинге данных: предварительной обработке, которая облегчит работу нейронным сетям. 2D-изображения станут трёхмерными, это же круто!

Откровенно говоря, если вы напишете весь этот код и он будет работать, вы уже молодец.

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

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

Но даже если вы не победите, не отчаивайтесь — вы учитесь использовать ИИ. И что бы не произошло, помните: машинное обучение — это весело!

Перевод статьи «Learning AI if You Suck at Math — Part Two — Practical Projects»