• Обзор топологий глубоких сверточных нейронных сетей

      Это будет длиннопост. Я давно хотел написать этот обзор, но sim0nsays меня опередил, и я решил выждать момент, например как появятся результаты ImageNet’а. Вот момент настал, но имаджнет не преподнес никаких сюрпризов, кроме того, что на первом месте по классификации находятся китайские эфэсбэшники. Их модель в лучших традициях кэгла является ансамблем нескольких моделей (Inception, ResNet, Inception ResNet) и обгоняет победителей прошлого всего на полпроцента (кстати, публикации еще нет, и есть мизерный шанс, что там реально что-то новое). Кстати, как видите из результатов имаджнета, что-то пошло не так с добавлением слоев, о чем свидетельствует рост в ширину архитектуры итоговой модели. Может, из нейросетей уже выжали все что можно? Или NVidia слишком задрала цены на GPU и тем самым тормозит развитие ИИ? Зима близко? В общем, на эти вопросы я тут не отвечу. Зато под катом вас ждет много картинок, слоев и танцев с бубном. Подразумевается, что вы уже знакомы с алгоритмом обратного распространения ошибки и понимаете, как работают основные строительные блоки сверточных нейронных сетей: свертки и пулинг.

      Читать дальше →
    • Стилизация изображений с помощью нейронных сетей: никакой мистики, просто матан

        Приветствую тебя, Хабр! Наверняка вы заметили, что тема стилизации фотографий под различные художественные стили активно обсуждается в этих ваших интернетах. Читая все эти популярные статьи, вы можете подумать, что под капотом этих приложений творится магия, и нейронная сеть действительно фантазирует и перерисовывает изображение с нуля. Так уж получилось, что наша команда столкнулась с подобной задачей: в рамках внутрикорпоративного хакатона мы сделали стилизацию видео, т.к. приложение для фоточек уже было. В этом посте мы с вами разберемся, как это сеть "перерисовывает" изображения, и разберем статьи, благодаря которым это стало возможно. Рекомендую ознакомиться с прошлым постом перед прочтением этого материала и вообще с основами сверточных нейронных сетей. Вас ждет немного формул, немного кода (примеры я буду приводить на Theano и Lasagne), а также много картинок. Этот пост построен в хронологическом порядке появления статей и, соответственно, самих идей. Иногда я буду его разбавлять нашим недавним опытом. Вот вам мальчик из ада для привлечения внимания.


        Читать дальше →
      • Kaggle – наша экскурсия в царство оверфита

        • Tutorial
        Kaggle — это платформа для проведения конкурсов по машинному обучению. На Хабре частенько пишут про неё: 1, 2, 3, 4, и.т.д. Конкурсы на Kaggle интересные и практичные. Первые места обычно сопровождаются неплохими призовыми (топовые конкурсы — более 100к долларов). В последнее время на Kaggle предлагали распознавать:


        И многое-многое другое.

        Мне давно хотелось попробовать, но что-то всё время мешало. Я разрабатывал много систем, связанных с обработкой изображений: тематика близка. Навыки более лежат в практической части и классических Computer Vision (CV) алгоритмах, чем в современных Machine Learning техниках, так что было интересно оценить свои знания на мировом уровне плюс подтянуть понимание свёрточных сетей.

        И вот внезапно всё сложилось. Выпало пару недель не очень напряжённого графика. На kaggle проходил интересный конкурс по близкой тематике.Я обновил себе комп. А самое главное — подбил vasyutka и Nikkolo на то, чтобы составить компанию.

        Сразу скажу, что феерических результатов мы не достигли. Но 18 место из 1.5 тысяч участников я считаю неплохим. А учитывая, что это наш первый опыт участия в kaggle, что из 3х месяц конкурса мы участвовали лишь 2.5 недели, что все результаты получены на одной единственной видеокарте — мне кажется, что мы хорошо выступили.

        О чём будет эта статья? Во-первых, про саму задачу и наш метод её решения. Во-вторых, про процесс решения CV задач. Я писал достаточно много статей на хабре о машинном зрении(1,2,3), но писанину и теорию всегда лучше подкреплять примером. А писать статьи по какой-то коммерческой задаче по очевидным причинам нельзя. Теперь наконец расскажу про процесс. Тем более что тут он самый обычный, хорошо иллюстрирующий как задачи решаются. В-третьих, статья про то, что идёт после решения идеализированной задаче в вакууме: что будет когда задача столкнётся с реальностью.


        Читать дальше →
      • Как общаться с заказчиками и договариваться о проектной работе

          Я занимаюсь мобильной разработкой в статусе ИП вот уже полтора года. За это время пришлось поработать с разными людьми. После одного досадного случая, я решил, что мне необходимо усилить навыки общения с заказчиками и отстаивания своих интересов. Я попытался собрать свой опыт и опыт своих коллег. В результате получилось что-то вроде методических указаний для фрилансеров. Начинающих и не только.
          Читать дальше →
          • +13
          • 23,7k
          • 9
        • Kaggle: определение тональности текстов

            Привет, хабр!



            #{Data Science для новичков}

            Меня зовут Глеб Морозов, мы с Вами уже знакомы по предыдущим статьям. По многочисленным просьбам продолжаю описывать опыт своего участия в образовательных проектах MLClass.ru (кстати, кто еще не успел — рекомендую скачать материалы, пока они еще доступны).
            Читать дальше →
            • +17
            • 14,9k
            • 4
          • Механизмы профилирования Linux



              Последние пару лет я пишу под ядро Linux и часто вижу, как люди страдают от незнания давнишних, общепринятых и (почти) удобных инструментов. Например, как-то раз мы отлаживали сеть на очередной реинкарнации нашего прибора и пытались понять, что за чудеса происходят с обработкой пакетов. Первым нашим позывом было открыть исходники ядра и вставить в нужные места printk, собрать логи, обработать их каким-нибудь питоном и потом долго думать. Но не зря я читал lwn.net. Я вспомнил, что в ядре есть готовые и прекрасно работающие механизмы трассировки и профилирования ядра: те базовые механизмы, с помощью которых вы сможете собирать какие-то показания из ядра, а затем анализировать их.
              Читать дальше →
            • Быстрый фильтр каталога для интернет-магазинов на основе битмапов Redis



                Не секрет, что каждый интернет-магазин должен помогать пользователям найти то, что им нужно. Особенно, если товаров у вас много (> 10). На помощь приходит каталогизация товаров, но разбить товары по категориям — полдела. Товары внутри категории нужно уметь фильтровать по их свойствам. Особенно, если товары у вас разношёрстные, например, одежда, электроника, ювелирные изделия и т.д. И тут любой разработчик, пишущий свой e-commerce продукт, сталкивается с неприятными реалиями жизни: у товаров могут быть совершенно разные свойства, у некоторых товаров они могут отсутствовать, некоторые товары по одному свойству могут попадать под разные значения (цвет платья то ли синий, то ли голубой, соответственно, неплохо бы его показать и по синему и по голубому цвету). Проще говоря, у вас EAV. Бывает ещё, что EAV вам диагностирует заказчик ближе к концу разработки, а то и просит добавить фильтр по динамическим свойствам уже после релиза.
                Читать дальше →
              • Проблемы распределённых команд и способы их решения

                  Наша команда растёт и успешно развивается с 2009-го года, при том, что преобладающее большинство сотрудников не ходят в офис. Они сидят в своих московских и питерских квартирах, львовских и харьковских дачах, минских и нижегородских домах, тайских кондо и турецких бунгало. Проводя очередную бизнес-встречу в красивом московском офисе с потенциальным клиентом мы неизбежно слышим вопрос: «А где у вас офис?». Мы отвечаем честно: «В Нижнем Новгороде, но вообще-то, большинство наших сотрудников туда не ходит, они работают из дома».
                  Наступает небольшая пауза, во время которой, скорее всего, заказчик представляет себе примерно вот такую картину:

                  image

                  За шесть с лишним лет работы мы столкнулись с небольшим количеством трудностей «удалёнки», и со значительно бOльшим количеством недоверия и мифов об удалённой работе. Книга Remote нас порадовала и как будто сказала «ребята, вы на правильном пути», но полезных советов по трудностям, к сожалению, не дала. Поэтому в этой статье я соберу те советы и решения, которые помогут не наступать на наши грабли и не изобретать велосипеды.
                  Читать дальше →
                • Как нанять проектировщика интерфейсов: мифы, ошибки, оценки рынка и выигрышные стратегии

                    За последние 7–8 лет наши сотрудники прочитали около 2000 резюме UX-проектировщиков. Отсобеседовали — под сотню. Пару десятков приняли на временную или постоянную работу. А параллельно пережили неисчислимое количество однотипных бесед с теми, кто «тоже хочет» (или делает вид, что хочет) заполучить себе в команду подобного специалиста.

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

                    Попробуем немножко расшатать самые распространенные мифы. Вдруг это кому-то поможет подойти к вопросу найма UX-проектировщика чуть более рационально и эффективно.

                    Читать дальше →
                  • Как я повышал конверсию машинным обучением

                      В этой статье я попробую ответить на такие вопросы:
                      • может ли один доклад умного человека сделать другого человека одержимым?
                      • как окунуться в машинное обучение (почти) с нуля?
                      • почему не стоит недооценивать многоруких бандитов?
                      • существует ли серебряная пуля для a/b тестов?

                      Ответ на первый вопрос будет самым лаконичным — «да». Услышав это выступление bobuk на YaC/M, я восхитился элегантностью подхода и задумался о том, как бы внедрить похожее решение. Я тогда работал продуктовым менеджером в компании Wargaming и как раз занимался т.н. user acquisition services – технологическими решениями для привлечения пользователей, в число которых входила и система для A/B тестирования лендингов. Так что зерна легли на благодатную почву.

                      К сожалению, по всяким причинам я не мог плотно заняться этим проектом в обычном рабочем режиме. Зато когда я слегка перегорел на работе и решил устроить себе длинный творческий отпуск, одержимость превратилась в желание сделать такой сервис умной ротации лендингов самостоятельно.
                      Читать дальше →