Deep Learning для самоизолированных

Alexey Zinoviev
4 min readApr 9, 2020

Добрый день, пока весь мир увлеченно учится чему-то новому на дому, перемежая это с весёлыми стэнд-апами и невероятными фитнес-тренировками по вебке, я решил предложить вашему вниманию подборку курсов для свитчеров с классического ML в универсальный DL.

Disclaimer: следующая подборка откалибрована по мне и моим коллегам, людям с хорошим фундаментальным математическим аппаратом в кармане и навыками использования классического ML в быту и на производстве.

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

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

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

Фреймворков основных сейчас (весной 2020) два: TensorFlow и PyTorch, в ряде курсов/книг вам предложат писать свой фреймворк с нуля, это нормально, поможет овладеть потом кишочками упомянутых выше фреймворков.

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

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

Обратите ваше внимание на курсы Stepic, в частности курсы от Samsung Research:

В обоих курсах отличный баланс теории и практики, причем теорию надо решать прям на листочке, а практику прям на PyTorch.

В нем особенное внимание уделяется свёрточным нейросетям, идет разбор классических моделей, таких как LeNet или ResNet.

Сертификат довольно сложно, а сертификат с отличием будет означать, что вас можно выпускать голеньким на Kaggle.

Чуть более мягким и не таким практическим является еще один курс со Stepic: Нейронные сети. В нем автор повторяет базовые понятия линейной алгебры, градиентный спуск, показывает как это применимо в нейросетях а-ля многослойный перцептрон. Если вы новичок в нейросетях, то лучше начать с него, а потом перейти на курсы от Samsung.

Самым сильным Data Science community де-факто является ODS, в том числе и по своей ведущей роли в DS образовании.

Не так давно, ребята из ODS зарелизили курс по Deep Learning и он, наверное, является самым свежим и самым полным образовательным курсом на русском языке от самых мощных практиков в отрасли.

DEEP LEARNING НА ПАЛЬЦАХ

Среди тем не только базовые вещи, но Segmentation, Autoencoders, GANs, Recurrent Neural Networks, Reinforcement Learning и базовый NLP на сетях.

Для студентов и тех, кто любит обучение в группах с контролем от внешнего преподавателя я рекомендую близкую к вышеупомянутой инициативе — облегченные версии курса от CSC

Если для вас такой академический подход кажется избыточным или вы уже обожглись на воронцовских лекциях от ШАД, то смело переходите на англоязычные курсы, где вас обнимут, приголубят, а атмосфера дружбы и совместных ответов на вопросы “i software engeer from ***ia pleas help instal tensorflow” навсегда поднимет вашу самооценку.

Многие действительно хорошие вещи лежат на Coursera и Udacity, сейчас там, наверное, сотни курсов на DL — тематику, но нам надо выбрать бриллианты.

В качестве отличного занятия на год карантина я рекомендую специализацию Deep Learning Specialization. Master Deep Learning, and Break into AI.

Если вам нужно то же самое по темам, но с меньшим количеством математики и выводов формул, веселее и на PyTorch, то сходите на Intro to Deep Learning with PyTorch.

Если вы решили поставить на другую лошадку или TensorFlow уже крутится в проде, то рекомендую близкий по тематике и подаче к предыдущему курс Intro to TensorFlow for Deep Learning.

Создатели TensorFlow, компания Google разработала симпатичный Crash Course по основам ML и DL и практикой на TF. Он хорошо структурирован, частично в текстовом формате и там много классных визуализаций, в которые можно поиграть руками без программирования, чтобы лучше понять основы нейросетей.

Сейчас, например, я активно разбираюсь с темой TensorFlow Lite и тем ужасом, что натворили там в формате моделей и API проекций TF на разные языки и платформы. Курс Introduction to TensorFlow Lite очень помогает понять логику и предполагаемую аудиторию пользователей.

А вот схожий курс на подобную тематику с Coursera, представленный в виде специализации (можно было явно ужать в один курс), показался мне нудноватым и слишком обводнённым, но с другой стороны, полезной информации в нем тоже много.

“And last but not least…”

Курс от fast.ai чем-то напоминают наши ODS-ные курсы, как по порогу отсечения людей без определенных математических знаний, так и по скорости реагирования на быстро меняющийся рынок нейросетей.

Рекомендую следующий курс Practical Deep Learning for Coders, v3

В качестве изюминки курса я вижу перспективное использование Swift с его автоматическим дифференцированием для DL.

Мои домыслы по поводу Swift и DL: Фактор бесконечной любви гуглеров ко всему, что делает Apple тоже стоит учитывать. Несмотря на кучу своих языков, плюс определенная ставка на Kotlin, практика Google показывает, что народ неровно дышит к тому, что “у классного соседа”. Поэтому TensorFlow еще при нашей жизни все начнут использовать на Swift в первую очередь, ибо именно эту часть и будут активнее всего развивать.

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

Не болейте!

--

--

Alexey Zinoviev

Apache Ignite Committer/PMC; Machine Learning Engineer in JetBrains