All streams
Search
Write a publication
Pull to refresh
151
0
Vladimir Iglovikov @ternaus

CEO

Send message

А вот это очень красиво и правильно. За это спасибо.


Раз уж речь зашла про машинное обучение, У вас нет в планах проверить пакет xgboost ?

Не по теме, просто навеяло постом.


Пару месяцев назад интервьюировался в стартап под названием Osaro.


Они пытаются работать над алгоритмом, который позволит программировать универсальных роботов, типа того, что разрабатывал автор поста, правда с добавление камер. Они пытются работать в направлении Reinforecement Learning, например, в режиме imitation learning, типа: наснимал с разных точек видео как на заводе похожие роботы машину собирают на конвеере, скормил программе, та обсмотрелась этих видео и можно руку + программа ставить на конвеер.


Задача крайне интересная, но когда я на onsite интервью их долго распрашивал про все это дело с точки зрения бизнеса, что они хотят и что они умеют, увиливали в том смысле, что: "У нас есть пара пилотных проектов" и "Инвесторы в нас верят".


В них, как в бизнес я не верю, а вот то, что их могут купить кто-то большой за их наработки — вполне. Жаль они пропали после onsite interview, ни да, ни нет.

Я стесняюсь спросить, а вы найденные недостатки собираетесь оформить в виде баг репортов на github?

Лучше в слаке Open Data Science


Причем там можно даже и не в личку писать, хотя и так, конечно, можно, а сразу в каналы:


deep_learning, ml_beginners, kaggle_crackers, и т.д. Народу много, ответят по делу и быстро.

Хорошой вопрос. Есть замечательная книжка Deep Learning. Под эту задачу, наверно, можно обчитаться статьями которые говорят про image segmentation.


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


Хотя если есть какие-то конкретные вопросы — я готов попытаться указать где почитать.

Однако. Thomas парень серьезный, но в DL заслуг за ним вроде не числится. Надо сунуться.

Она есть только у организаторов, так что мы никогда ее не увидим. Другое дело, что делать submissions можно и сейчас, так что оценить точность предсказаний на test можно.

Если почитать форум после окончания каждого соревнования, то участники делятся идеями и трюками, которые они пробовали и там обычно очень много креатива.


Конкретно c выбором random seed вот такой трюк, дает он мало, но когда борешься за пятый знак после запятой, что часто встречается на Kaggle, то вполне себе работает.


Пусть есть данные, пусть есть задача бинарной классификации и пусть у нас положительных исходов в 100 раз больше, чем отрицательных. Путь мы хотим разбить данные на 5 folds. Делаем рандомно. Делаем крос валидацию, смотрим на mean предсказаний и std.


std большое. Что получилось? Единичек мало и получилось что в каких-то фолдах их сильно меньше, чем в других.


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


Проверяем, std предсказаний с разных фолдов стало меньше.


Можно усугубить? Можно.


Идея в том, что если в данных хватает outliers, то их может неравномерно раскидать по фолдам. Но мы не знаем какие именно ряды — это аутлаеры, да даже если бы и знали, просто дропать их сомнительное решение.


И вот тут появляется трюк:


Мы берем простую, быстро тренируемую модель, и в цикле делаем разбивку на startified folds с различными random_seeds, на каждой разбивке тренируем модель, смотрим на std, и выбираем тот random_seed, где std небольшой.


Но, повторюсь, трюки вроде этого это там же где и технология stacking, то есть чисто под соревнования, да и то, далеко не под все. На работе так делать не надо.

Под этот вопрос можной целый пост написать, но если в двух словах, все, как обычно, сводится к эффекту Даннинга — Крюгера


Про Kaggle слышали все, а вот число тех, кто пробовал работать хоть над одной задачей, в районе одной десятой от одного процента от общего числа. И, наверно, многие бы хотели попробовать, но не смотря на то, что порог вхождения в Kaggle по знаниям достаточно низкий, требования по затрачиваемому времени и по железу многих отпугивают.


Опять же среди коллектива есть мнение, что читать выжимку решения победителей и сделать такое же решение самому — это одно и то же, хотя, эти две вещи даже и не в одной вселенной.


Плюс у всех мозги промыты стандартной пропагандой Долины, что твоя единственная цель в жизни: "bring value to the company", поэтому подсознательно все вне этого имеет сильно меньшую ценность. Что в общем тоже имеет под собой основу, от прототипа модели до production путь достаточно долгий.


В общем среди тех, кто пробовал работать хоть над одной задачей Kaggle котируется — их просто очень мало. Есть надежда, что после того, как Google купил Kaggle у него поднимется статус и больше людей закатают рукава и начнут что-то пробовать, тем более, что в последнее время идут очень интересные задачи.


Есть исключения, вроде компаний H2O или DataRobot, но в их бизнес модель каглеры замечательно вписываются, поэтому они народ из top 100 и нанимают и для них кагловые ачивки засчитываются.


У тебя очень сильные посты про компьютерное зрание. Жаль посты плюсовать уже не могу, поставлю в карму.


Ты сейчас работаешь над какой-нибудь задачей на Kaggle по этой тематике?

В top 100 на Kaggle с точки зрения ML очень серьезные люди, а он даже не в сотне, он в 30-ке.


На предыдущем соревновании по image segmentation мы финишировали примерно одинаково (я 10, он 12), поэтому я предполагаю, что в это соревнование с точки зрения DL мы вошли примерно на одном уровне по знаниям, но судя по тому, что он делал все возможные submission каждый день я думаю, что он изначально нацеливался на победу, в то время как мне больше интересны знания, то есть он рассматривал эту задачу значительно более серьезно.


На этой задаче вполне можно работать в одиночку если хватает domain knowledge и опыта работы с изображениями, что Евгений Некрасов, Дмитрий Цыбулевский и другие участники в топе и продемонстрировали.


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


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


Суммируя — я думаю, что работал он сам, без поддержки. И тот факт, что он держится на первом месте на задаче про тюленей только укрепляет меня в этой мысли.

Еще интересный прием отбирать признаки через xgbfir, анализируя натренированную модель xgboost.

Собеседовался на позицию Data Scientitst в офис Pivotal в Palo Alto. Onsite интервью было вполне типичным.


  • Презентация о каком-нибудь проекте связанным с данными.
  • Разговор за жизнь с Head Of Data Science
  • Задачки на ML алгоритмы с тремя членами команды на протяжении трех последующих часов.

Задач на инвертирования деревьев и подсчета гномиков не было, это да. Но и поработать с командой весь день — такого не было. Может под другие позиции, а может ввели позже.


Из неприятного — после oniste интервью обо мне забыли или положили про запас, работая с другими кандидатами — ни да, ни нет. Раз в неделю писал рекрутеру, а в ответ — вот прямо сейчас команда уже буквально обсуждает feedback после интервью и через пару дней будет ответ.


Через месяц мне надоело — я написал и вежливо послал их в пешее эротическое путешествие и принял офер от другой конторы.

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


Никто не знает, представители компании, часом, не участвуют в:



Обе задачи достаточно инетерсные, а за вторую призерам дают миллион баксов в приз, что привлекает серьезных и не только участников. Ну и к 3D изображениям в медицине имеет наипримейшее отношение.

Школы уровня питерского Физико-Математического Лицея 239 в Финляндии есть?

Большое спасибо. Замечательный проект и замечательный пост. Пара вопросов.


[1] cv2 умеет делать resize для картинок с большим количеством каналов > 3. PIL-SIMD так умеет или надо разрезать на куски по 3 слоя, менять размер, и склеивать обратно? (В задаче про спутниковые снимки на Kaggle приходится работать вплоть до 20 каналов.)


[2] cv2 автоматически распараллеливает операцию resize. PIL-SIMD так умеет?


[3] Рабоче-крестьянский вопрос — если забить на производительность, какой тип сверток субъективно обеспечивает наилучшее качество? Cubic?

Спасибо, за подробное описание.


Но по MNIST очень много туториалов расчитанных под читателей разного уровня.


Я думаю, что туториалы по каким-то менее заезженным данным были бы более востребованы публикой.


Например, хорошая задача про спутниковые изображения на Kaggle.com, которая проходит прямо сейчас — участникам предложено отмаркировать спутниковые снимки попиксельно, что дорога, что машина, что река, а что урожай.


Задача похожа на классическое image segmentation, но обладает своей спецификой. Было бы замечательно получить туториал, который опишет, как подступится к этой задаче, а еще лучше, как получить достойный результат.


image

В 95% случаев на данных смешанного типа, с размером train set в диапазоне 10^4-10^7 ансамбли деревьев обойдут все остальные алгоритмы и часто с сильным отрывом. И ваша задача про армреслеров при наличии достаточного числа данных в эту категорию и попадает.


Какие признаки использовать? Добавляйте все сколько фантазии / опыта хватит и выкидывайте все те, что не работают или "шумят".

Постов про RandomForest много. Лучше бы, конечно, пост про LightGBM, там красиво деревья строят. И по точности сопоставимо, хоть и чуть хуже, с xgboost, но на большинстве данных всяко лучше, чем RandomForest.

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


Вот лично мне было бы интересно, если бы вы это проделали вот с этой задачей:
Dstl Satellite Imagery Feature Detection


Хорошая проблема на сегментацию изображений. Там вам предложает более-менее очищенные отмаркированные данные со спутниковых снимков и вы сможите сравнить ваши любимые методы против того, что работает у других людей. Метрика — Jaccard index.


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

Information

Rating
Does not participate
Location
San Francisco, California, США
Registered
Activity