• Курс о Deep Learning на пальцах

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

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

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


      Читать дальше →
    • Transformer — новая архитектура нейросетей для работы с последовательностями

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


        В частности, в какой-то момент меня попросили рассказать про attention, а для этого нужно рассказать и про машинный перевод, и про sequence to sequence, и про применение к картинкам, итд итп. В итоге получился вот такой стрим на час:



        Я так понял по другим постам, что c видео принято постить его транскрипт. Давайте я лучше вместо этого расскажу про то, чего в видео нет — про новую архитектуру нейросетей для работы с последовательностями, основанную на attention. А если нужен будет дополнительный бэкграунд про машинный перевод, текущие подходы, откуда вообще взялся attention, итд итп, вы посмотрите видео, хорошо?


        Новая архитектура называется Transformer, была разработана в Гугле, описана в статье Attention Is All You Need (arxiv) и про нее есть пост на Google Research Blog (не очень детальный, зато с картинками).


        Поехали.

        Читать дальше →
        • +58
        • 15,5k
        • 7
      • Эволюция нейросетей для распознавания изображений в Google: Inception-ResNet

          Буду потихоньку дорассказывать про Inception.
          Предыдущая часть здесь — https://habrahabr.ru/post/302242/.
          Мы остановились на том, Inception-v3 не выиграл Imagenet Recognition Challange в 2015-м, потому что появились ResNets (Residual Networks).

          Что такое вообще ResNets?


          Читать дальше →
        • Эволюция нейросетей для распознавания изображений в Google: Inception-v3

            Продолжаю рассказывать про жизнь Inception architecture — архитеткуры Гугла для convnets.
            (первая часть — вот тут)
            Итак, проходит год, мужики публикуют успехи развития со времени GoogLeNet.
            Вот страшная картинка как выглядит финальная сеть:
            image
            Что же за ужас там происходит?

            Читать дальше →
            • +21
            • 24,1k
            • 9
          • Эволюция нейросетей для распознавания изображений в Google: GoogLeNet

              У меня тут синхронизируется VM надолго, поэтому есть время рассказать про то, что я недавно читал.
              Например, про GoogLeNet.
              GoogLeNet — это первая инкарнация так называемой Inception architecture, которая референс всем понятно на что:


              image
              (кстати, ссылка на него идет первой в списке референсов статьи, чуваки жгут)


              Она выиграла ImageNet recognition challenge в 2014-м году с результатом 6.67% top 5 error. Напомню, top 5 error — метрика, в которой алгоритм может выдать 5 вариантов класса картинки и ошибка засчитывается, если среди всех этих вариантов нет правильного. Всего в тестовом датасете 150K картинок и 1000 категорий, то есть задача крайне нетривиальна.


              Чтобы понять зачем, как и почему устроен GoogLeNet, как обычно, немного контекста.

              Читать дальше →
            • Заметки с MBC Symposium: еще о седловых точках

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


                image

                Читать дальше →
              • Заметки с MBC Symposium: попытки разобраться, почему работает deep learning

                  Продолжаю рассказывать об интересных докладах на MBC Symposium (MBC, кстати, расшифровывается как Mind Brain Computation).


                  image


                  Surya Ganguli — человек из теоретического neuroscience, то есть, занимается тем, чтобы понять, как работает мозг, на основе измерений импульсов нейронов на различных уровнях.


                  И вот тут независимо от neuroscience в мире случается deep learning, и у нас получается некую искусственную систему чему-то научить.
                  В отличие от мозга, в котором у нас ограниченное разрешение, сложность с повторяемостью, итд итп, про deep network-то мы знаем абсолютно все, про все веса, про все состояния. Возникает вопрос — если мы собираемся разобраться, как работает мозг, может попробуем для начала понять как и почему работает вот такая маленькая система?


                  Без надежд, что мозг работает также, скорее с прицелом разработать какие-то методы, которые могут быть применимы потом.

                  Читать дальше →
                  • +29
                  • 14,4k
                  • 6
                • Заметки с MBC Symposium: применение deep learning в моделировании мозга

                    Посетил Стенфордский симпозиум, посвященный пересечению deep learning и neurosciencе, получил массу удовольствия.


                    image


                    Рассказываю про интересное — например, доклад Дэна Яминса о применении нейросетей для моделирования работы зрительной коры головного мозга.

                    Осторожно, хардкор
                  • Нейросети vs вычисления на глазок

                      Сегодня я узнал, что люди могут на глаз прикидывать ранг матрицы!
                      (напомню, ранг — это количество линейно независимых строк или столбцов)


                      image


                      Типа, вот смотрят на вот это и говорят, что ранг —


                      ну! ну!

                      3


                      Как же устоять и не попробовать обучить это делать нейросеть, подумали укурки cтуденты из Carnegie Mellon?

                      Читать дальше →
                    • Успехи Google в квантовых вычислениях с точки зрения программирования

                        Успехи, о которых идет речь — демонстрация условий, в которых квантовый компьютер D-Wave быстрее обычного CPU в 100 миллионов раз. Новость об этом пролетала и тут, и вообще везде.


                        Что же это значит для простых смертных? Надо ли вовсю переключаться на программирование на квантовых компьютерах? Что там вообще за программирование?
                        Мне стало любопытно, и я немного почитал про детали (сама научная статья — тут). Как всегда, кратко рассказываю свое понимание.

                        Читать дальше →
                      • Задачка про парные числа

                          А вот задачка на выходные! Она плохо подходит, чтобы спрашивать на собеседовании, потому что слишком уж на инсайт (пожалуйста, никогда не задавайте такие на собеседованиях), и слишком простая для соревнований. Как раз чтобы доставить тот самый satisfying click в мозгу, за который мы любим программирование. Итак:

                          Есть большой массив из N 32-битных чисел. Каждое число встречается два раза, а два числа -- по одному. Найти эти два числа за один проход по массиву с константными затратами памяти (то есть не зависящими от размера массива).

                          Не забывайте использовать тег <spoiler> для решений в комментариях!
                          Оставшиеся формальности
                        • Deep Reinforcement Learning (или за что купили DeepMind)

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

                            Вот, собственно, главный артефакт (если вы это видео не видели, посмотрите обязательно, оно взрывает мозг)


                            Вот столько примерно публично известно про компанию, когда ее покупают за полмиллиарда долларов.
                            Давайте разбираться, как это работает
                          • AlphaGo на пальцах

                              Итак, пока наши новые повелители отдыхают, давайте я попробую рассказать как работает AlphaGo. Пост подразумевает некоторое знакомство читателя с предметом — нужно знать, чем отличается Fan Hui от Lee Sedol, и поверхностно представлять, как работают нейросети.
                              Читать дальше →
                            • Design Review vs Design by Committee

                                Мне в основном очень нравятся архитекторы в Microsoft. Некоторые более, чем другие, а некоторые — совершенно замечательные.

                                Одного из совершенно замечательных зовут Дэвид Блайс (David Blythe), и он архитект в Windows в области графики. Дядька раньше дизайнил OpenGL в SGI, писал по нему книжку, а сейчас вот работает в том числе над Direct3D. Дядька совершенно монструозный и замечательный. Я с ним говорил минут 20 и просветлился больше, чем за два предыдущих месяца. Читал его гуидлайны про API design и опять же радовался.

                                Отрывок на сегодня:
                                «DESIGN BY COMMITTEE. Avoid design by committee. There should be a single person with final say in the design… and this person should have good architectural experience and instincts.»
                                Читать дальше →
                              • Разработка на PC и производительность — Memory Latency

                                  Herb Sutter (автор Exceptional C++, бывший глава ISO C++ standards committee, мистер Free Lunch Is Over и прочая, и прочая) работает в Microsoft и иногда по средам читает атомные лекции.

                                  Я наконец-то на одну такую попал, и очень радовался. На умных мужиков всегда радостно поглядеть и послушать.
                                  Для отчета — кроме Херба, видел живого Олександреску и живого Walter Bright (который "D").

                                  Лекция называлась «Machine Architecture: Things Your Programming Language Never Told You» (здесь можно скачать презентацию и видео) и была про конкретную часть abstraction penalty — Memory Latency.

                                  Я попытаюсь коротко рассказать о ключевой мысли лекции. Она простая, очевидная и тысячу раз сказанная. Думаю, еще раз повторить азбуку — никогда не повредит.
                                  Читать дальше →
                                • Как запустили неподписанный код на Xbox 360

                                    Каждую игровую консоль стараются поломать. Стараются поломать энтузиасты, которые хотят запустить на ней собственноручно написанный код во всех самых защищенных режимах. Стараются поломать энтузиасты, которые хотят «запускать на ней бэкапы игр» (или если по-русски — заниматься пиратством). Стараются поломать энтузиасты, которые хотят поставить Линукс и, кроме самоцели, использовать более широко, чем хотел бы этого производитель консоли (так как деньги зарабатываются прежде всего на играх, сама консоль продается с минимальной наценкой, а то и в минус производителю).
                                    В подавляющем большинстве случаев энтузиастам это удается.

                                    Вот как была сделана самая интересная часть взлома Xbox 360 — запуск кода, не подписанного MS.

                                    Читать дальше →
                                  • Как отлаживают графику Windows в Microsoft

                                      Я в MS уже больше двух лет, и все равно в отладчике провожу большую часть полезного времени (больше только в Outlook).
                                      Раньше я делал Windows Imaging Component, новую библиотеку для работы с изображениями, а теперь DXGI — инфраструктуру hardware acceleration. Первое целиком в user mode, второе и в kernel, и в user, но общий экспириенс дебага в общем-то тот же.

                                      Читать дальше →