company_banner

Как за два месяца пройти путь от начинающего питониста до сертифицированного TensorFlow-разработчика

Автор оригинала: Grady Matthias Oktavian
  • Перевод
Я всё ещё помню тот день, когда сдал выпускную работу в университет. Я тогда вздохнул с облегчением, так как это означало окончание бакалавриата. Но мной скоро овладела скука. Делать было нечего, мир был охвачен пандемией. Мне очень хотелось найти новое занятие, которое избавило бы меня от безделья.



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

Предыстория


Я люблю учиться. Жажда знаний заставила меня прочесть множество новостей и статей о пандемии. Тогда-то я и наткнулся на статью о группе исследователей, создающих новую систему, которая способна отличить пневмонию от COVID-19 на основе анализа рентгеновских снимков.

В статье были упоминания о том, что в проекте используется «искусственный интеллект» и применяются «нейронные сети». Это сразу же меня заинтересовало. Как люди смогли создать и обучить машину, способную анализировать рентгеновские снимки? Начнём с того, что у искусственного интеллекта нет даже медицинского образования. А он достигал более чем 90% точности! Так и началось моё путешествие в кроличью нору глубокого обучения.

Короче говоря, я обсудил это с товарищем и узнал о существовании TensorFlow (и Keras). А потом, продолжая с любопытством изучать разные материалы на эту тему, я наткнулся на статью, автор которой рассказывает о том, как он стал сертифицированным TensorFlow-разработчиком.

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

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

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

Что такое платформа TensorFlow и зачем её изучать?


Если в двух словах, то TensorFlow — это широко распространённая платформа для машинного обучения.

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

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


Демонстрация работы механизма Smart Reply в Gmail (источник)

Вы когда-нибудь пользовались функцией Smart Reply в Gmail? Этот механизм основан на возможностях искусственного интеллекта. Он предлагает пользователю три возможных варианта ответа на письмо, основываясь на содержании письма. Механизм Smart Reply создан с использованием TensorFlow.

А знаете, что управляет лентой в вашем Твиттер-аккаунте? На чём основан механизм OCR (преобразование изображений в текст) в WPS Office? Как VSCO рекомендует вам профили пользователей, анализируя ваши фотоснимки? Всё это — примеры применения TensorFlow.

В то время, когда была написана эта статья, TensorFlow существовал лишь примерно 4 года. При этом данная платформа применялась в большом количестве проектов, которыми все мы пользуемся каждый день. Хотя в той статье о распознавании COVID-19 по рентгеновским снимкам, о которой я уже упоминал, прямо об этом не сказано, есть вероятность того, что исследователи, написавшие её, тоже применяли TensorFlow.

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

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

Подробности о сертификации



Цифровой бэйдж TensorFlow (источник)

Сертификационный экзамен по TensorFlow проводится с использованием Python. На этом экзамене используется библиотека TensorFlow для Python и соответствующие API. Одна попытка стоит $100. Если первая попытка провалилась — можно заплатить ещё столько же и сдать повторный экзамен через 2 недели. Подробности об оплате экзамена и о прочих подобных вещах можно найти здесь.

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

После того, как я посмотрел методичку по экзамену, я начал планировать учёбу. Сначала мне надо было разобраться с программированием на Python, а уже после этого нужно было освоить TensofFlow.

Первый месяц учёбы


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

Здесь я начинаю рассказ о том, как и чему я эти два месяца учился.

В первый месяц я осваивал Python. Как мне удалось так быстро научиться программировать на этом языке? Я, первым делом, пошёл на HackerRank и начал решать задачи на Python. Много задач. Когда мне встречалось что-то такое, с чем мне не удавалось справиться самостоятельно, я тут же приступал к поиску чужих решений. Если беглый просмотр решения не позволял мне всё же решить задачу, я приступал к тщательному анализу чужих идей, стремясь понять суть решения и выделить то, что мне пригодилось бы.

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

А чем я занимался оставшиеся две недели? Смотрел бесплатные уроки по Python на YouTube. Да, именно так. Бесплатные. Уроки. На YouTube.

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

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

  • Python for Beginners. Тут содержится краткое и понятное разъяснение основ Python. В первой части курса речь идёт о строках, об операторах и функциях, о типах данных (списки, словари, кортежи), о концепциях ООП. Курс заканчивается разработкой трёх проектов, рассчитанных на начинающих. Второй из этих проектов лучше всего соответствовал моим нуждам, направленным на применение Python в машинном обучении.
  • Python for Data Science Full Course. Этот курс посвящён Python-пакетам для дата-сайентистов. Он позволяет заложить серьёзную базу в этой области. В конце курса немного рассказывают о глубоком обучении с использованием Keras и TensorFlow. Добравшись до этого места я, так сказать, краем глаза взглянул на то, что меня ждёт.
  • Data Analysis with Python. Прежде чем создавать модели и обучать их, нужно подготовить данные, подвергнуть их предварительной обработке. Об этом почему-то часто забывают. Этот курс посвящён, в основном, таким вопросам, как сбор данных, их загрузка в программу, очистка, визуализация. Подобная работа с данными позволяет лучше их понять, это идёт на пользу всей дальнейшей работе с ними.

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

Второй месяц учёбы


Второй месяц учёбы я потратил на специализацию DeepLearning.AI TensorFlow Developer Professional Certificate, которую можно найти на Coursera. Курсы этой специализации читают Лоренс Марони, занимающийся вопросами искусственного интеллекта в Google, и Эндрю Ын, основатель deeplearning.ai.

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

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

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

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

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

Альтернативные материалы


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

  • Книга Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow. Мне хотелось бы прочитать её целиком в ближайшие месяцы, так как то, что я в ней нахожу, очень помогает мне в понимании ключевых идей машинного и глубокого обучения. В главах 10-16 можно найти материалы, примерно соответствующие структуре экзамена.
  • Общедоступный плейлист на YouTube, посвящённый TensorFlow. В этом плейлисте можно найти материалы, которые пригодятся для подготовки к сертификации. Видео в нём, в основном, подготовлены Лоренсом Марони. Я предпочёл пройти специализацию на Coursera, так как там были тесты и задания, по результатам выполнения которых ставились оценки. Но если вы решите изучать материалы этого плейлиста, то вы, уверен, об этом не пожалеете. И не забудьте заглядывать в официальную документацию по Keras и TensorFlow.

Сдача экзамена


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

Настал решающий день. И, кстати, вот шпаргалка с ответами на первую партию вопросов (если кто не понял — я просто шучу). Я, по очевидным причинам, не могу вдаваться в подробности об экзамене, но ниже я привёл некоторые мои наблюдения и советы, касающиеся подготовки к экзамену и его сдачи.

  1. Начнём с начала, а именно — с установки необходимой для сдачи экзамена IDE. Когда я сдавал экзамен, это была IDE PyCharm. Устанавливая IDE, проверьте, что у вас будет именно та версия, о которой идёт речь в методичке, отключите или удалите сторонние плагины. Я посоветовал бы перед началом экзамена испытать PyCharm, запустить несколько моделей и удостовериться в том, что в процессе работы не возникает никаких ошибок.
  2. Зарегистрироваться на экзамен можно здесь. Потом надо оплатить экзамен и загрузить на сайт необходимые документы, подтверждающие личность (скан паспорта, например). После этого вам выдадут ещё одну методичку, предназначенную для тех, кто зарегистрировался на экзамен и оплатил его. Хорошо изучите эту методичку и будьте готовы к экзамену.
  3. Сам экзамен длится пять часов. Разумно распределяйте время. Пока одна модель обучается, можете начинать работать над следующей. А после того, как модель обучится и будет сохранена, не забудьте её протестировать и отправить (после установки плагина, необходимого для прохождения экзамена, в IDE можно будет найти кнопку для тестирования и отправки модели).
  4. Сделайте своим приоритетом подготовку ответов на все вопросы. А после этого, если будет время, можете вернуться к некоторым из них и усовершенствовать модели. Помните о том, что время на сдачу экзамена ограничено. И если модель получает наивысшую оценку — это значит, что вы на правильном пути.
  5. Обучать модели можно, пользуясь ресурсами внешних платформ вроде Google Colab и AWS. Перед началом экзамена научитесь сохранять модели, работа над которыми велась на внешних платформах, и загружать их в PyCharm. Модели надо сохранять в формате .h5.

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

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

Результаты экзамена


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

Сертификат действителен всего три года. Это значит, что в 2023 году мне нужно будет сдать экзамен ещё раз. Я могу лишь догадываться о том, как разовьётся к тому времени TensorFlow и вся индустрия глубокого обучения. И я надеюсь, что тогда сдача экзамена дастся мне легче, чем сейчас.

Итоги и планы на будущее


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

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

Хочу отметить, что не считаю мой подход к самообучению самым лучшим. Над ним можно ещё работать и работать. Тем, кто не ограничен по времени, возможно, не стоит спешить так, как спешил я. А в процессе учёбы им хорошо было бы создавать собственные проекты. Полагаю, что такой подход к учёбе лучше моего. Теперь, даже хотя я и являюсь сертифицированным TensorFlow-разработчиком, мне ещё надо сделать собственный проект и выложить его на GitHub. Именно этим я и собираюсь заняться после того, как опубликую эту статью. Это позволит мне улучшить мои знания и навыки.

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

Планируете ли вы стать сертифицированным TensorFlow-разработчиком?



RUVDS.com
RUVDS – хостинг VDS/VPS серверов

Комментарии 11

    +2

    Какой умничка

      +8

      Иронично-пренебрежительное «PhD по tensorflow» становится все более буквальным, похоже.

        +2
        Теперь, даже хотя я и являюсь сертифицированным TensorFlow-разработчиком, мне ещё надо сделать собственный проект и выложить его на GitHub.


        И вот ктож его такого взял на работу, без проекта-то? :)
        +3
        Я уверен в том, что мир искусственного интеллекта и всего, что с ним связано, это быстрорастущее явление, полное инноваций, открытий, научных прорывов. Это — передний край современных технологий. Если хотите — вы тоже можете стать частью этого мира.


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

        Переводить уже готовые модели в код — вполне, но даже для не-исследовательских задач модель придётся менять и перекраивать, а там зачастую требуется хорошее понимание того, что у тебя происходит «под капотом», иначе можно потерять кучу времени. Я просматривал специализацию от deeplearning.ai по DL — она была весьма и весьма базовой по уровню. Не знаю как там со специализацией по tf, но, думаю, тоже самое примерно.
          +1
          Пусть напишет как работу найдет именно как дип лернинг рисерчер или инженер, а не МЛ дата инж. У меня сильные сомнения.
            0
            … а потом автор засунет данные по стохастическому процессу в перцептрон и будет интересно...
              0
              Как за два месяца войти вайти. Статью почитаю, но заявление слишком смелое.
                +4
                если можно с нуля натаскаться на сертифицированного специалиста за 2 месяца, то это в 10% случаев говорит о том что юзернейм талантище, а в остальных 90% — что грош цена этому сертификату
                  0
                  Конечно, сертификат от гугла — очень круто, но неужели за ~7000 рублей единственная награда — при условии, что экзамен сдан — всего лишь сертификат?
                    0
                    Откровенно говоря, 7к рублей не так уж и много для различных курсов. Особенно в данном направлении.
                    Интересно конечно было бы глянуть как автор статьи создает, ну или хотя бы применяет измененную модель под решение конкретной задачи. Все эти курсы просто замечательная вещь, но когда тебе прилетает «сделайте так и вот так» нередко начинаешь копать в таких направлениях, о которых на курсе могли даже не обмолвиться.
                    +1
                    [sarcasm]
                    Ну тогда я уже гуру ML — потому что могу написать персептрон на 2х языках программирования включая баш
                    [/sarcasm]

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

                    Самое читаемое