• Kaggle Mercedes и кросс-валидация

      image

      Всем привет, в этом посте я расскажу о том, как мне удалось занять 11 место в конкурсе от компании Мерседес на kaggle, который можно охарактеризовать как лидера по количеству участников и по эпичности shake-up. Здесь можно ознакомиться с моим решением, там же ссылка на github, здесь можно посмотреть презентацию моего решения в Yandex.

      В этом посте пойдет речь о том, как студент консерватории попал в data science, стал призером двух подряд kaggle-соревнований, и каким образом методы математической статистики помогают не переобучиться на публичный лидерборд.

      Начну я с того, что немного расскажу о задаче и о том, почему я взялся ее решать. Должен сказать, что в data science я человек новый. Лет 7 назад я закончил Физический Факультет СПбГУ и с тех пор занимался тем, что получал музыкальное образование. Идея немного размять мозг и вернуться к техническим задачам впервые посетила меня примерно два года назад, на тот момент я уже работал в оркестре Московской Филармонии и учился на 3 курсе в Консерватории. Начал я с того, что вооружившись книгой Страуструпа стал осваивать C++. Далее были конечно же разные онлайн курсы и примерно год назад я стал склоняться к мысли о том, что Data Science — это пожалуй именно то, чем я хотел бы заниматься в IT. Мое “образование” в Data Science — это курс от Яндекса и Вышки на курсере, несколько курсов из специализации МФТИ на курсере и конечно же постоянное саморазвитие в соревнованиях.
      Читать дальше →
    • История первого места на ML Boot Camp VI

      Mail.ru уже не первый год проводит чемпионаты по машинному обучению, каждый раз задача по-своему интересна и по-своему сложна. Я участвую в соревнованиях четвертый раз, мне очень нравится платформа и организация, и именно с буткемпов начался мой путь в соревновательный machine learning, но первое место удалось занять впервые. В статье я расскажу как показать стабильный результат, не переобучившись ни на публичный лидерборд, ни на отложенные выборки, если тестовая часть существенно отлична от тренировочной части данных.

      Задача


      Полный текст задачи доступен по → ссылке. Вкратце: есть 10 гб данных, где каждая строка содержит три json'а вида «ключ: счетчик», некая категория, некая временная метка и идентификатор пользователя. Одному пользователю может соответствовать множество записей. Требуется определить к какому классу относится пользователь, первому или второму. Метрикой качества для модели является ROC-AUC, о ней отлично написано в блоге Александра Дьяконова[1].

      Пример записи в файле

      00000d2994b6df9239901389031acaac	5 {"809001":2,"848545":2,"565828":1,"490363":1} 
      {"85789":1,"238490":1,"32285":1,"103987":1,"16507":2,"6477":1,"92797":2}	{}	39
      
      Читать дальше →
    • iMaterialist Furniture Challenge или 50 оттенков стульев

        Недавно на Kaggle закончилось соревнование iMaterialist Challenge (Furniture), задачей в котором было классифицировать изображения на 128 видов мебели и предметов быта (так называемая fine-grained classification, где классы очень близки друг к другу).

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


        Читать дальше →
        • +28
        • 4.1k
        • 8
      • MobileNet: меньше, быстрее, точнее

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

          В наши дни сети распознают ваше лицо, чтобы разблокировать телефон, стилизуют фотографии под известных художников и определяют, есть ли в кадре хот-дог.

          В этой статье мы поговорим о MobileNet, передовой архитектуре сверточной сети, позволяющей делать всё это и намного больше.
          Читать дальше →
          • +10
          • 23.8k
          • 5
        • Xception: компактная глубокая нейронная сеть

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

            Чтобы улучшить качество распознавания своих сетей, исследователи старались добавлять в сети больше слоёв, однако со временем пришло понимание, что иногда ограничения производительности попросту не позволяют обучать и использовать настолько глубокие сети. Это стало мотивацией для использования depthwise separable convolutions и создания архитектуры Xception.

            Если вы хотите узнать, что это такое, и посмотреть, как использовать такую сеть на практике, чтобы научиться отличать котов от собак, добро пожаловать под кат.
            Читать дальше →
            • +26
            • 19.2k
            • 7