Я все еще не до конца понял, как так получилось, но в прошлом году я слово за слово подписался прочитать курс по Deep Learning и вот, на удивление, прочитал. Обещал — выкладываю!

Курс не претендует на полноту, скорее это способ поиграться руками с основными областями, где deep learning устоялся как практический инструмент, и получить достаточную базу, чтобы свободно читать и понимать современные статьи.

Материалы курса были опробованы на студентах кафедры АФТИ Новосибирского Государственного Университета, поэтому есть шанс, что по ним действительно можно чему-то научиться.



Курс требует:

— Знания математики на уровне первого-второго курса университета: надо знать немного теории вероятностей, линейную алгебру, основы матанализа и анализ функций многих переменных. Если все это прошло мимо вас, вот все нужные курсы от MIT и Harvard. В них типично достаточно пройти первые две секции.
— Умения программировать на питоне.

В хорошем курсе должны быть доступны и лекции, и упражнения, и место, где можно задать по ним вопросы и обсудить. Здесь они собраны с миру по нитке:

— Лекции существуют как записи на Youtube.
— В качестве упражнений можно использовать задания великолепных Стенфордских курсов по DeepLearning (CS231n и CS224n), я ниже напишу какие конкретно.
— Обсуждать и спрашивать можно на ClosedCircles и ODS.ai.

Лекции и упражнения


Лекция 1: Введение
Лекция 2: Линейный классификатор
Лекция 2.1: Softmax

Упражнение: секции «k-Nearest Neighbor» и «Softmax classifier» отсюда
По специфике задания могут помочь вот эти lecture notes.

Лекция 3: Нейронные сети. Backpropagation
Лекция 4: Нейронные сети в деталях

Упражнение: секции «Two-Layer Neural Network» отсюда и «Fully-connected Neural Network» отсюда

Лекция 5: Сверточные нейронные сети (CNN)
Лекция 6: Библиотеки для глубокого обучения

Упражнение: секции «Convolutional Networks» и «PyTorch on CIFAR-10» отсюда

Лекция 7: Другие задачи компьютерного зрения
Лекция 8: Введение в NLP. word2vec

Упражнение: секция «word2vec» отсюда

Лекция 9: Рекуррентные нейронные сети (RNN)
Лекция 10: Машинный перевод, Seq2Seq, Attention

Здесь хорошего готового задания я не нашел, но можно реализовать на PyTorch Char-RNN из знаменитого поста Andrej Karpathy и натравить на Шекспира.

Лекция 11: Введение в обучение с подкреплением(RL), базовые алгоритмы
Лекция 12: Примеры использования RL. Alpha(Go)Zero.
Лекция 13: Нейросети в 2018.

Где обсуждать и задавать вопросы


Все вопросы по курсу можно задавать мне лично или обсуждать в кружочке #data на ClosedCircles.com (вот инвайт).
Кроме этого, задания можно обсуждать в канале #class_cs231n на ODS.ai, там помогут. Для этого придется получить туда инвайт самому, отправляйте заявки.

Ну и вообще, звоните-пишите, всегда рад.

Самая приятная секция — благодарности!


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

Всем в тусовках на ODS.ai и ClosedCircles, кто помогал в подготовке, отвечал на вопросы, присылал фидбек, напоминал что надо все выложить, итд итп.

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

От души.

Комментарии (20)


  1. zamenator
    15.06.2018 20:10
    +1

    Спасибо. отличные лекции и стримы, теперь все в одном месте!


  1. polsok
    15.06.2018 20:10

    А можно лекции выпустить как записи в текстовом варианте. А то видеоуроки не очень располагают к изучению.


    1. sim0nsays Автор
      15.06.2018 20:11

      Мне казалось, это как раз современный формат обучения, буквы уже никто не читает!
      Если серьезно, то если кто-то осилит на основе этого собрать методичку текстом — было бы просто замечательно. Я не осилю :(


      1. AlexMal
        15.06.2018 21:18
        +1

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


      1. asakasinsky
        15.06.2018 23:09
        +2

        Мне казалось, это как раз современный формат обучения, буквы уже никто не читает!

        По видео нельзя сделать CTRL+F :-)

        Спасибо за проделанную работу!


        1. sim0nsays Автор
          15.06.2018 23:10

          Кстати, есть герои, которые просматривают видео и делают тайм-коды (спасибо им!) — так что до определенной степени можно будет.


  1. devsolution
    16.06.2018 00:14

    Хорошая подача, спасибо автору)) На русском языке подобное тяжело найти


  1. loysob
    16.06.2018 00:29
    +2

    Самый лучший курс!


  1. echo_mont
    16.06.2018 02:52
    -11

    поздравляю вас за этот милый женский бред! Вы сначала курсы по питону в MITx пройдите, девачки. У вас получилось выбить на тех курсах хотя бы 80 их 100?? Чтобы потом тут показывать народу курсы с ютюба? Я прошел их, но ни 1 из Раши там не видел. У меня и сертификат есть


    1. Andronas
      16.06.2018 17:44

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


      1. kraamis
        16.06.2018 17:54

        К тому же на русском есть хорошие курсы. Тот же степик — 2 курса от института биоинформатики. Достаточно, чтобы понимать код и уметь писать простые программы.


        1. Valerij56
          16.06.2018 19:15

          К тому же на русском есть хорошие курсы.
          Это хорошо. А ссылки можно?


          1. kraamis
            16.06.2018 19:19

            Базовый курс. Самые основы — stepik.org/course/67

            Уже конкретная работа и применение — stepik.org/course/512

            В принципе под мои задачи этого хватает почти полностью.


            1. Valerij56
              16.06.2018 19:30

              Спасибо!


            1. Andronas
              16.06.2018 21:49

              Хм вообще я имел ввиду курсы по математической подготовке. На степике кстати они тоже есть.


              1. Valerij56
                16.06.2018 21:53

                Тогда та же просьба — ссылки, пожалуйста.


              1. sim0nsays Автор
                17.06.2018 02:40

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

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


                1. yorko
                  17.06.2018 13:45

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


                  Пока курс не начался, можно повторить математику и Python. Зачем дата саентисту нужна математика – неплохо поясняет Andrej Karpathy. А Python – уже стандарт в области машинного обучения.


                  Математика


                  1. Если быстро, то можно пройтись по конспектам из специализации Яндекса и МФТИ на Coursera https://yadi.sk/d/yEXkABC_353Zmh (делимся с разрешения).
                  2. Если основательно подходить к вопросу, хватит вообще одной ссылки на MIT Open Courseware https://ocw.mit.edu/courses/mathematics/. На русском классный источник – Wiki-страница курсов ФКН ВШЭ http://wiki.cs.hse.ru/. Но я бы взял программу МФТИ 2 курса и прошелся по основным задачникам, там минимум теории и много практики.
                  3. И конечно, ничто не заменит хороших книг (тут можно и программу ШАДа упомянуть):
                    – Математический анализ – Кудрявцев
                    – Линейная алгебра – Кострикин
                    – Оптимизация – Boyd (англ.)
                    • Теория вероятностей и матстатистика – Кибзун

                  Python


                  1. Быстрый вариант – браузерные тьюториалы а-ля CodeAcademy, Datacamp и Dataquest, тут же могу указать свой репозиторий https://github.com/Yorko/python_intro.
                  2. Основательней – например, мэйловский курс на Coursera https://habrahabr.ru/company/mailru/blog/336880/ или MIT-шный https://www.edx.org/course/introduction-computer-science-mitx-6-00-1x-11
                  3. Продвинутый уровень – курс питерского Computer Science Center https://compscicenter.ru/courses/python/2015-autumn/


  1. kraamis
    16.06.2018 05:47

    Надо будет глянуть. Я курс по нейросетям на Степике прослушал, но там очень кратко изложено, и больше упирают на математику процесса, нежели на практику.


  1. nikolay_karelin
    16.06.2018 12:28

    Насчет текстовой версии: YouTube делает автоматом субтитры, я слышал, что народ их довольно быстро расшифровывает и приводит в человеческий вид.