После соревнования по распознаванию планктона и покупки видеокарты, я замахнулся на ImageNet 2015.
Одним из прошлых выводов было "команда - это круто", ну я и попробовал такую собрать.
Вначале все было хорошо, но вскоре один за другим начали появляться дедлайны, проекты и прочее, так что я в итоге остался один. Итого вывод первый:
1) Важно не (с)только количество ресурсов, а их определенность и предсказуемость.
Если знать с самого начала, на что можно рассчитывать, а на что нет, то можно успеть больше и лучше - тупо концентрируясь и отсекая лишнее.
Дедлайны появились и у меня тоже, в результате на имаджнет наложились аж три других дедлайна - две статьи и отправка нашего рабочего приложения в эппл-стор. Отсюда вывод второй:
2) Проблема не (с)только в нехватке времени, а в нехватки времени эффективного. Точнее - умственной энергии.
Посему на локализацию я забил (вернее, попробовал поздно, вышла хрень) и отправил результаты практически только потому, что было бы неудобно перед NVIDIA и IBM, которые предоставили сервер для вычислений. Гонять его месяц и ничего не отправить, как-то совсем тупо.
Мини-вывод: K80 - полная фигня. Нет, 4 ядра по 12 Гб оперативы это, конечно, круто. Но эти 4 ядра вместе тренируют сетку МЕДЛЕННЕЕ, чем Titan X. Из-за неучета этого, кстати, я не успел получить предсказания для полноразмерных картинок и результат минимум на один абсолютный процент хуже, чем должен был быть.
3) ImageNet 2015 - как чемпионат мира, готовиться к нему и проверять идеи нужно весь год. Группой.
А в отведенные два месяца - просто натренировать свой алгоритм на представленных данных.
Почему? Потому что ждать проверки одной гипотезы 2 недели - увольте. Тогда нужно иметь парк серверов, чтобы 2 недели ждать проверки сотни гипотез. Правда, чтобы придумать сотню гипотез, нужны выспавшиеся мозги, см. пункт 2.
Чтобы вы оценили уровень оснащенности, которым оперирует Майкрософт для проверки алгоритмов на Иманджнет уровне, цитата из сегодняшней их статьи:
The resulting architecture was implemented in DMLC as well, and we trained the network for 1000 epochs using (mini-) batches composed of 100.000 images (which was feasible due to distribution of the computational load to a cluster of 52 CPUs and 12 hosts, where each host is equipped with a NVIDIA Tesla K40 GPU).
Пятьдесят два проца и двенадцать блоков по 4 видеокарты.
Тем не менее, не жалею, что попробовал - получил ценный опыт по сбору людей, тайм-менеджменту, и, если все будет хорошо, будет статья по нейросеткам.