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

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

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

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

пятница, 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 с использованием кластеров на примере двух алгоритмов машинного обучения: обобщенных низкоранговых моделей и градиентного бустинга.