суббота, 30 сентября 2017 г.

Соревнование Carvana Image Masking Challenge

Поучаствовал в Carvana Image Masking Challenge. По итогам ничего не занял, но с нуля написал решение на R с использованием многопоточной обработки и с аугментацией картинок при помощи пакета magick. Не state of art, но (практически) все необходимые для победы вещи уже легко портируются с Python на R. Сделан pull request в репозиторий keras с двумя скриптами:
Более подробный рассказ будет позже.

пятница, 29 сентября 2017 г.

Перевод книги "Practical Machine Learning with H2O"

Закончил перевод книги "Practical Machine Learning with H2O", который вышел под названием "Машинное обучение с использованием библиотеки Н2О". Две главы дополнительных материалов можно скачать на гитхабе

пятница, 25 августа 2017 г.

Соревнование Invasive Species Monitoring: решение на R с использованием Keras

В недавнем соревновании Invasive Species Monitoring удалось опробовать пакет keras, позволяющий использовать в R одноименную библиотеку. Был на 11 месте, затем съехал на 19 (на публичном LB), а итоговые результаты не показывают до сих пор. 
Мое лучшее решение представляло собой простое усреднение предсказаний одной модели после двух разных эпох и еще одной модели после лучшей эпохи. Модели отличались форматом изображений: в первой картинки были с правильным соотношением сторон - 300х400 (высота на ширину), а во второй - с неправильным (400х300). Файнтюнил InceptionV3, хотя у участников и с Resnet все очень хорошо получалось. 
В топовом решении использовалась перекрестная проверка вместо маленькой проверочной выборки в моем случае, а также картинки значительно большего размера; я остановился на 400х300 ввиду наличия GPU всего c 4Гб памяти, а автор https://www.kaggle.com/jamesrequa/keras-k-fold-inception-v3-1st-place-lb-0-99770 взял 800х800. Размер картинки в данном случае решает: борьба шла за доли процента AUC, а по своим моделям я видел, что самые "сомнительные" предсказания были как раз для тех изображений, где цветочки получились совсем маленького размера. Потенциально качество модели на относительно мелких изображениях можно было бы улучшить, добавив в список преобразований при аугментации еще и увеличение (zoom_range в image_data_generator()).
0.99 with R and Keras (Inception V3 fine-tune)

пятница, 7 июля 2017 г.

Обзор фреймворков для машинного обучения на R

Язык R часто критикуют за отсутствие точной копии питоновской библиотеки для машинного обучения класса "все в одном" scikit-learn. Но страдать от отсутствия фреймворков не приходится – наоборот, есть совсем другая проблема. А именно: что выбрать из нескольких имеющихся в наличии библиотек (caret, mlrh2opipelearner). Большинство из них отличаются от scikit-learn тем, что не содержат собственных реализаций алгоритмов машинного обучения, используя вместо этого реализации из сторонних пакетов. Это приводит к необходимости бороться с неодинаковыми интерфейсами функций для обучения моделей и предсказаний на их основе. К счастью, в caret и mlr эта задача успешно решена.

Ниже приводится сравнение этих фреймворков по шести самым важным, на мой взгляд, пунктам:
  1. Качество документации и примеров.
  2. Количество доступных моделей и способов оценки их качества, а также наличие алгоритмов для отбора признаков.
  3. Расширяемость / кастомизация.
  4. Возможность объединения в цепочку операций по подготовке данных (трансформация, импутация) с перекрестной проверкой / ресемплированием и самим обучением моделей.
  5. Реализация метаобучения (ансамбли моделей).
  6. Производительность.

воскресенье, 4 июня 2017 г.

Библиотека H2O: запуск на кластере; обобщенные низкоранговые модели и градиентный бустинг

В этом сообщении рассмотрены основы работы с библиотекой H2O с использованием кластеров на примере двух алгоритмов машинного обучения: обобщенных низкоранговых моделей и градиентного бустинга.