Вчера вечером я впервые сдал пятичасовой экзамен на сертификат разработчика Google TensorFlow и сдал его! С тех пор, как вчера вечером я получил электронное письмо с поздравлениями от команды TensorFlow Certificate, чувство сильного восторга началось и до сих пор не покидает меня. Я зарегистрировался в TensorFlow Certificate Network сразу после сдачи экзамена и заметил, что во всех Соединенных Штатах было всего 416 других сдавших экзамен! Учитывая, как свирепо компании ищут экспертов по ИИ в наши дни, это смехотворно маленькое число. Для сравнения просто спросите, сколько юристов во всех Соединенных Штатах — 1,33 миллиона на 2020 год! Заранее извиняюсь перед моими друзьями-адвокатами, и любой может увидеть, что это нелепое сравнение. Я просто балуюсь со своими приятелями-адвокатами! В любом случае, я отвлекся.

Как понять, что вы готовы к экзамену

Итак… вы тоже хотите стать сертифицированным разработчиком Google TensorFlow? Давайте приступим к делу. Вы должны знать внутреннюю сущность нейронных сетей, используя TensorFlow 2.X и Keras. Что ж, Keras — это конструктор нейронных сетей по умолчанию в TensorFlow 2.X, поэтому с этого момента просто думайте о них как об одном, а не о двух отдельных фреймворках. Вы должны знать каждый пункт в Справочнике кандидата на сертификат TensorFlow. Не смей начинать этот экзамен, думая, что, поскольку у тебя есть пять часов, ты будешь просто искать в Google, чтобы разобраться во всем во время экзамена. Если ты будешь так дерзить, тебя ждет неудача. Не делай этого. Если в контрольном списке навыков есть хотя бы один пункт, который вы плохо знаете, не начинайте экзамен. Не торопитесь учиться. Почему ты вообще торопишься? Идите на экзамен с солидным опытом работы с TensorFlow. Не парься.

На самом деле я знал каждый пункт в контрольном списке навыков более года назад, и я почти уверен, что если бы я сдавал экзамен тогда, я бы тоже сдал его тогда. Я прошел онлайн-курс Coursera DeepLearning.AI TensorFlow Developer Professional Certificate, когда он был еще совсем новым в прошлом году. Теперь, когда я сдал настоящий сертификационный экзамен, я могу сказать, что нужно быть дураком, чтобы не пройти этот курс Coursera, прежде чем сдавать экзамен. Контрольный список навыков для сертификационного экзамена и темы этого курса Coursera прекрасно согласованы друг с другом. Так что пройдите этот курс, усердно работайте над ним и создайте свой собственный код TensorFlow вместо того, чтобы просто лихорадочно искать репозитории GitHub, в которых может быть код, предоставленный вам. Учиться. Работа. Не ленись!

Время сдавать экзамен — вперед!

На самом деле я заплатил за экзамен еще в апреле 2021 года. Однако примерно в то же время я прошел собеседование и устроился на новую должность инженера по искусственному интеллекту в финансовой компании. Поскольку я хотел быть усердным на новой работе, я отложил экзамен на более поздний день. В прошлом месяце я проверил статус моего оплаченного экзамена и с ужасом узнал, что срок его действия истекает! Вам дается шесть месяцев со дня покупки до последнего дня, когда вы можете сдать экзамен. Срок годности у меня был 12 октября 2021 года, так что выбора в этом вопросе не было. Я запланировал себе сдавать экзамен на 11 октября! Экзамен начинается тогда, когда вы этого хотите. Вам просто дается пять часов с момента начала выполнения требуемых проектов.

Экзамен состоит из пяти проектов TensorFlow. Первый очень легко дать вам уверенность в том, что вы это получили. Затем становится все труднее.

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

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

Затем я перешел к категории 4, и бум! Идеальный результат снова с первой попытки. Мужик, это слишком просто! Не забывайте, что я занимаюсь разработкой в ​​TensorFlow с 2017 года! Не думайте, что у вас будет такой же плавный опыт, как у меня, если вы новичок в TensorFlow.

Затем перейдите к категории 3. Shagaboom! Снова высший балл по моему самому первому решению для нейронной сети! В этот момент я начал танцевать победный танец. Я думал, что этот экзамен будет намного сложнее, но опять же, учтите, что я программировал в TensorFlow целую вечность.

Переходим к категории 2. Согласно экзамену, каждая категория становится сложнее, поэтому предполагается, что 2 сложнее, чем 1, 3 сложнее, чем 2, и так далее. Так что с этого момента все должно быть гладко. Я даже посмотрел на Категорию 1 перед тем, как начать Категорию 2, и моя реакция была такой: серьезно? Это все? Это так просто! В любом случае, я закодировал свою маленькую нейронную сеть для категории 2, и бум! О, подождите! Почему я получаю только 4 из 5? Ха-ха! Ладно, все это время я был слишком самоуверенным, и эта неидеальная оценка поставила на паузу все ощущение праздника. Я сказал себе, ничего страшного. Я получил это. Я живу и дышу нейронными сетями. Я знаю, как сделать это лучше. Я пошел дальше и перешел к категории 1, а категорию 2 отложил на второй план для последующей настройки.

Категория 1 была определенно самой легкой из всех. Я закодировал его, и, как и в случае с категориями 3, 4 и 5, получил высший балл с первой попытки. Опять же, позвольте мне просто напомнить читателям, что эти категории давались мне легко, потому что я много лет играю в эту игру. Я не из тех, кто изучил TensorFlow пару месяцев назад и хотел сдать сертификационный экзамен, потому что хочу как можно скорее добавить что-то блестящее в свой профиль на LinkedIn. Не торопись. Изучите основы TensorFlow и машинного обучения. Экзамен дался мне легко, потому что у меня большой опыт создания нейронных сетей, необходимых для каждой категории экзамена.

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

Я немного подправил нейронную сеть категории 2, после чего приступил к обучению. В ожидании окончания тренировки я даже чересчур самоуверился и сыграл партию в блиц онлайн на chess.com! Айяй! Ты высокомерный маленький придурок! Когда обучение завершилось, я протестировал модель и стрелу — высший балл! Вот и все. Я сдал весь экзамен! Все сделано.

Ааааа, так почему эта статья не заканчивается сейчас? Ха-ха! По какой-то странной причине у меня было странное чувство внутри, что я должен нажать кнопку «Отправить и протестировать» еще несколько раз, чтобы быть уверенным. Поэтому я снова щелкнул по нему, и тестер снова получил идеальные 5 из 5. Плавного хода, приятель! Я нажал еще раз, и о дерьмо! Он вернулся с 4 снова! Что в мире! Меня это очень обеспокоило, и первым, что пришло мне в голову, была постыдная мысль о менталитете жертвы, что это вина команды TensorFlow Certificate — что-то не так с их инфраструктурой тестирования экзаменов. Я заранее извиняюсь за ту жалкую мысль о неудачнике, которая на мгновение пришла мне в голову. Я быстро понял, что это бесполезный, непродуктивный образ мышления, поэтому попытался понять, почему это происходит. Я пришел к выводу, что моя нейронная сеть, вероятно, просто «на грани совершенства», и именно поэтому, когда вы снова и снова тестируете одну и ту же модель, иногда она возвращается с 5, а иногда с 4. Если вы хотите твердую 5 из 5 за каждый тест, просто улучшите модель еще больше, не так ли? Итак, давайте займемся.

Однако это привело к другой тревожной идее. Что, если ВСЕ мои модели страдают от одной и той же проблемы? О Боже! Итак, я вернулся к категориям 1, 3, 4 и 5 и нажимал, нажимал и нажимал их тестовые кнопки так часто, что человек в Google, вероятно, посмотрит на журналы и скажет, что, черт возьми, делает этот парень, отправляя одна и та же модель снова и снова! Но мне нужно было убедиться. К счастью, все остальные категории были твердыми 5/5. Я, должно быть, нажимал кнопку тестирования в каждой категории 30 раз, и каждый щелчок возвращался с отличной оценкой! Фу! Теперь мне не нужно беспокоиться о других категориях. Так что теперь только я против категории 2. Пойдем!

Я настраивал, настраивал, настраивал еще немного, и теперь у меня была модель, которая набрала идеальные 5/5 первые восемь раз, когда я нажимал кнопку тестирования, но снова она набрала только 4/5 на 9-м нажатии! Ааааа! Я хотел плакать! Я почти уверен, что если бы я поленился и закончил экзамен сейчас с такими высокими баллами, я бы его сдал. Но не достичь совершенства было для меня настоящей проблемой. Если у вас в любом случае еще много времени, продолжайте работать, пока не достигнете величия, верно?

Короче говоря, я продолжал работать над категорией 2 все остальные отведенные пять часов, но время истекло, прежде чем мой новый модельный тренинг смог дать мне лучшую модель. На самом деле я, должно быть, потратил половину времени, нажимая кнопку «Отправить и протестировать» в категории 2 и записывая результаты. Это было очень утомительно. Я тестировал свою окончательную модель для категории 2 еще 25 раз, и в основном она набирала 5/5 и несколько 4/5, но время вышло, поэтому у меня не было другого выбора, кроме как закончить экзамен с крошечным чувством сомнения в своих силах. мое сердце.

Я читал другой пост в блоге, где парень получал неидеальную оценку, но затем отправил ту же модель во второй раз, и когда она набрала идеальные 5 со второй попытки, он остановился на этом. Зная, что он сдал экзамен с такой тактикой, я был вполне уверен, что моя работа тоже заслуживает проходного балла. Но «достаточно уверенно» — довольно паршивое чувство на самом деле, потому что ваше сердце постоянно жаждет большего чувства уверенности. Что, если тестировщик требует полного совершенства, чтобы получить проходной балл?

Через несколько секунд я обновил свой Gmail и увидел новое электронное письмо. В теме письма было написано «Поздравляем»! Это второй момент ночи, когда мне хотелось плакать, но на этот раз счастливый крик точно. Какое прекрасное, прекрасное чувство сильного восторга. Я надеюсь, что у многих из вас, читающих это, будет возможность испытать это чувство после того, как вы сдадите этот экзамен по TensorFlow. Это прекрасно!

Как оценивается экзамен

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

Я поискал в Google, что такое проходной балл для этого экзамена, и я увидел один источник, который сказал 90%. Однако это не официальный источник — команда TensorFlow Certificate является единственным официальным источником информации для этого. Я не знаю, откуда у них такая информация. Не хотелось верить 90%, досрочно сдать экзамен и получить неудовлетворительную оценку! Если все, что вам нужно, это 90%, то вам нужно набрать только 22,5/25. Плюс на экзамене было сказано, что низшие категории оцениваются меньше, чем высшие. Таким образом, менее чем идеальный балл по категории 2 и отличные баллы по всем остальным, без сомнения, будут намного выше, чем 90%. Но что, если эти 90% информации неверны? Что, если экзаменационная инфраструктура требует идеальной оценки по всем категориям — что тогда? Ваш экзамен оценивает компьютер, а не человек. Нельзя спорить с этим и говорить: Но, мистер Компьютер, я набрал очень высокие баллы на экзамене — почему вы меня завалили? Если вы потерпите неудачу, я даже не уверен, что вы получите какую-либо обратную связь о том, почему вы потерпели неудачу. Поэтому я просто не хотел рисковать. Вот почему я доил эти пять часов, пока у меня не осталось четырех минут, после чего я закончил экзамен с тем, что у меня было. Однако, оглядываясь назад, я чувствую, что если бы я закончил экзамен примерно через два часа, я почти уверен, что сдал бы его, но, черт возьми, зачем рисковать, когда у тебя еще есть три часа?

Логистическая тактика, которая помогла мне сдать экзамен

A. Оформите подписку на Google Colab Pro! Это была моя большая базука во время экзамена. Я сдавал экзамен на ноутбуке 2011 года выпуска со стареющим жестким диском. Этот динозавр никак не мог обучить нейронные сети для меня достаточно быстро для экзамена. Но не беспокойтесь! Поскольку я являюсь верным клиентом Google Colab Pro уже около года, мой план на экзамене состоял в том, чтобы провести все обучение нейронной сети в Colab, загрузить обученную модель, поместить модель в папку экзамена PyCharm и отправить ее. . Я видел несколько сообщений в блогах, в которых говорилось, что это нормально, поэтому я попробовал. Экзамен на самом деле не заботится о коде, который вы пишете в PyCharm. Кажется, его интересует только обученная модель, которую вы отправляете с помощью этого плагина сертификата TensorFlow в PyCharm. Так зачем вообще тренировать свои модели на локальном компьютере, если скорость вашего компьютера сомнительна? Клиенты Colab Pro получают экземпляр GPU в любое время — и это подводит меня к следующему пункту. Если вы думаете, что сможете сдать этот экзамен, используя бесплатную версию Colab, будьте осторожны! Это, возможно, сработало год назад, когда Colab не был так занят, но теперь, когда Colab становится популярным, много раз пытаться получить GPU на бесплатной учетной записи сложно. Colab просто сообщит вам, что графический процессор в настоящее время недоступен, и вы застряли с экземпляром без графического процессора. Экземпляр без графического процессора — это хорошо, если вы набрали высший балл с первой попытки. Если, однако, вам нужно настроить, переобучить, еще немного настроить и снова переучить, время экзамена быстро сократится с системой без графического процессора. Так что будьте осторожны.

Многие сдавшие экзамены, которые писали о своем опыте, говорят, что вы должны научиться программировать в PyCharm, потому что экзамен будет проводиться там. Что ж, это действительно правда, что экзамен будет проходить внутри PyCharm, но мне кажется, что это неправда, что вы должны программировать в PyCharm. Во время экзамена я просто скопировал скелетный код, предоставленный экзаменационным плагином PyCharm, и вставил его в Colab. Я все кодировал и обучался в Colab, и когда мой код Colab создал обученную модель, я просто загрузил ее на свой компьютер, скопировал в нужный каталог проекта внутри PyCharm и отправил на тестирование. Мне никогда не приходилось полагаться на PyCharm для реального обучения моделей. Конечно, если бы у меня была мощная машина с новым блестящим графическим процессором, было бы очень весело делать все локально. Если, однако, вы работаете со старым дубом, таким как мой старый верный домашний ноутбук, то делайте все это в Colab, а PyCharm на вашем компьютере — не более чем фасад, через который вы отправляете и тестируете свои обученные модели. Экзаменационному тестировщику все равно, сдадите ли вы код в PyCharm. Все, что его волнует, — это обученная модель для каждой категории. Фактическое «тестирование» происходит на экзаменационном сервере и не требует мощности вашего локального компьютера. На самом деле я использую PyCharm каждый божий день на работе. Это замечательная IDE, и мне нравится программировать в ней. Однако, если на вашей машине нет мощного графического процессора, Colab Pro станет вашим лучшим другом на этом экзамене.

B. Знайте, как бороться с переоснащением и недообучением. Для этого есть предпосылки. Вы также должны знать, как определить признаки переобучения или недообучения. Если вы не знаете, как это сделать, удачи в сдаче экзамена! Самый простой способ сделать это — построить графики точности и потерь при обучении и проверке после каждого цикла обучения. Графики сообщат вам, переоснащает ли ваша нейронная сеть или недообучает ее, или скорость обучения слишком высока или слишком низка. Если вы не понимаете, о чем я говорю, дайте себе еще несколько месяцев, прежде чем пытаться сдать экзамен. Если вы столкнетесь с ситуацией, когда ваша модель не набрала идеального балла на экзамене, вам лучше знать, как двигаться дальше. В этом поможет только твердое понимание принципов машинного обучения.

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

Ранее я говорил, что нужно пройти курс Coursera TensorFlow. Берите проекты из этого курса и бейте их до смерти. Другими словами, выжимайте из нейронных сетей как можно больше производительности. Например, если у вас есть модель классификации изображений, точность проверки которой, по-видимому, составляет 76 %, посмотрите, сможете ли вы повысить ее до 85 % или выше с помощью настройки гиперпараметров нейронной сети и увеличения данных. Поднимите сети на новый уровень, и в процессе вы поднимете свои навыки глубокого обучения на новый уровень.

C. Во время экзамена начните с категории 5 и двигайтесь вниз. Я получил этот совет от другого сдавшего экзамен, и когда я ему последовал, во время экзамена он сработал как волшебство. Это творило чудеса с моей уверенностью, зная, что самое трудное позади. Хотя в моем случае категория 2 оказалась дикой, что сделало мою экзаменационную ночь захватывающей!

D. Пожалуйста, помните, что моя оценка того, что экзамен дался мне легко, не может быть универсальной. Я не хочу, чтобы куча людей читала этот пост и записывалась на экзамен, имея за плечами всего пару месяцев работы с TensorFlow. Мой стабильный опыт был связан с тем, что я программировал в TensorFlow еще в 2017 году. Кроме того, я прошел два курса магистратуры по математике машинного обучения и глубокому обучению с использованием TensorFlow. Я также прошел несколько онлайн-курсов по TensorFlow. Наконец, я использую TensorFlow в своей работе инженером по искусственному интеллекту. Так что мой разум был перезрел для этого экзамена. Если вы ребенок TensorFlow, не торопитесь и запишитесь на этот экзамен только тогда, когда вы почувствуете, что освоили весь контрольный список навыков из справочника, и вам кажется, что никакое дополнительное обучение не поможет, потому что это все второе природа для вас. Не сдавать экзамен, провалиться, а затем обвинить меня в том, что я делаю его легким. Я намеренно назвал этот пост «Мой опыт…», потому что, по моему опыту, экзамен был для меня легким, но для вас он вполне может стать кошмаром на улице Вязов, если вы новичок в TensorFlow с поверхностным пониманием принципов машинного обучения.

Ладно, давайте уже заканчивать эту статью!

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