Мои впечатления от курса Deep Learning от Andrew NG

Вчера я закончил курс по нейросетям от Andrew Ng. Записался на него как только узнал, т. к. Machine Learning от него же считается лучшим курсом по теме. Ниже — мои впечатления спустя полгода и 3 исписанных лекциями тетради.

So Deep!

Я начинал этот курс почти ничего не зная про современные нейросети. В университете у нас был теоретический курс по Dense Neural Networks, но рассказывался он скорее с позиции “Вот такими забавными вещами занимались люди, пока не поняли, что это тупиковая ветвь науки”. Для 2003–2005 годов это распространенная позиция.

Все, что я пишу ниже, надо рассматривать с этой отправной точки. Для человека “в теме”, специализация вряд ли будет сильно полезной.

Что понравилось

  • Andrew Ng явно стремится дать понимание и развить интуицию на предмет того, что такое нейронные сети. Это выражается в том, что рассказываются принципы всех алгоритмов, которые применяются в курсе и он старается делать это довольно подробно
  • Курс именно про сети, а не про tensorflow, keras или еще какую-нибудь библиотеку. После окончания остается понимание, что и как работает, которого достаточно, чтобы, например, читать whitepaper-ы по нейросетям
  • В рамках полугодового курса рассматриваются обычные нейросети, сверточные модели и рекуррентные нейросети, что покрывает почти все современные типы нейросетей. Не покрыты остались GANN, но, как я понимаю, сейчас это cutting edge, с которым еще надо научиться работать. Плюс для их обучения нужны мощности недоступные простым смертным.

Что не понравилось

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

Еще впечатления

  • К сожалению, курс не дает именно практических навыков в плане работы с Keras/TF. Я не считаю это минусом, т. к. за 10 минут чтения документации можно во всем этом разобраться в отличие от теории. Тем не менее, на форумах многие студенты сильно на это жаловались
  • К сожалению, начиная со сверхточных сетей курс опирается на предобученные алгоритмы. Например, в YOLO или LSTM практические задания — это дообучение сетей, а не обучение их с нуля. Это нормальное решение, т. к. обучение с нуля требует много ресурсов и индустрия скорее выступает за transfer learning, но было бы прикольно в рамках факультатива попробовать это сделать. Я в итоге делал такое сам
  • Реализаций трудных алгоритмов также не будет — YOLO и word2vec используются как импорты. Это тоже соответствует практикам индустрии, но я ради интереса также пробовал сделать сам
  • Andrew рассказывает про то, чем занимается сам. В Baidu он занимался компьютерным зрением и распознаванием голоса. На этом и построены курсы по сверточным и рекуррентным сетям. Про применение RNN для предсказаний временных рядов ничего не будет, хотя это сейчас очень горячая область. Но, опять же, курс дает достаточно интуиции и знаний, чтобы разобраться в этом самому.

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

Source: Deep Learning on Medium