И ещё раз про базы данных

Краткий обзор вещей по датасетам на которые я наталкивался в последний год.

Я думаю, что все прекрасно понимают, что в нормальной работе по ComputerVision 80% работы может занимать взаимодействие с базой (картинку с заглавия утащил отсюда).  Создание базы, разметка, выбор критериев, создание загрузки, модели зашумления, и.т.д. Конечно, я видел случаи, когда это и 95% занимает (медицина), и 20%(использование открытых датасетов). Всякое бывает.
Решил запечатлеть несколько вещей, на которые я натыкался в последний год.

Continue reading “И ещё раз про базы данных”

GAN и компьютерные игры

Натолкнулся на то, чем сам развлекался месяца три назад:
https://towardsdatascience.com/turning-fortnite-into-pubg-with-deep-learning-cyclegan-2f9d339dcdb0
Товарищ циклическим GAN’ом перетринировал видео Fortnit’a в PUBG. Я перетренировывал PUBG чтобы на картах был снег:



Про Fortnite я тоже подумал, но я его не так люблю чтобы собирать датасет подробный (кстати, если кому нужен датасет на ПУБГ/зиму – могу скинуть):


Мне кажется, что это интересное направление. Нейросети ещё не дошли до компьютерных игр и графики реального времени. Но рано или поздно они должны там быть.
Уже есть много проектов, которые улучшают разрешение. Добавляют ХДР на изображение. Конечно, в играх это проще делать другими способами. Но ведь очевидно, что рано или поздно появиться идея как можно в игры добавить какую-нибудь фишку с сетями которая зацепит. Главное найти какую:)
Мне нравиться что люди ищут. Может интересные карты научаться. Может более красивые изображения.

Про распознавание флюорограмм

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

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

Continue reading “Про распознавание флюорограмм”

Машины для DL

Наблюдения последнего времени.

Вы разворачиваете небольшой Computer Vision проект. Для себя, для заказчика, или ещё для кого.  Вам нужен сервер для обучения. Понятно, что в ходе эксплуатации сервер будет применяться. И для постоянного переобучения. И, возможно, для внедрения. Как его сделать?
Есть пара подходов:

  • Аренда облака – Amazon, Azure, Google
  • Аренда сервера с GPU
  • Сборка своего сервера

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

Continue reading “Машины для DL”

Структура взаимодействия с заказчиками в задачах DL

Раз уж начали в одном из старых постов. Одна из тем про которые я давным давно хочу написать, но не доходят руки – организация взаимодействия при решении задач машинного зрения/обучения. Проблема не так проста как кажется на первый взгляд.

Continue reading “Структура взаимодействия с заказчиками в задачах DL”

Почему искуство не позволит заработать денег

Я очень люблю новомодные сеточки и фишки в них. С удовольствием читаю про style-transfer, GAN, и.т.д. Всё это очень красивый набор математических и логических моделей. В некоторых случаях даже достойный чтобы 1-2 вечера поиграться/позапускать. Блин, ну ведь нельзя устоять от того, чтобы не предать любимой игре новый стиль за пару часов:

 Но в работе мы стараемся держаться от всего этого дела как можно дальше. И всем советуем того же. В этой статье я попробую обяснить почему.

Continue reading “Почему искуство не позволит заработать денег”

Что такое “интеллектуальная собственность” в DL/ML/CV

Сделал одно забавное заключение в последнее время.
Deep Learning размывает понятие “Интеллектуальная собственность”. Раньше данное понятие было очевидно. Каждый новый алгоритм был особенным. Всегда можно было проследить авторство и источник. А сейчас? Зачастую достаточно переписать лишь функцию потерь поверху ResNet, или сделать другую выборку гипотез.
И алгоритм уже будет принципиально другим.
Всего 100 строчек код поверх открытых исходников, зачастую это уже и есть рабочий прототип.
Как же быть при работе с заказчиком, как заключать договора? Мы в последнее время пришли к следующей схеме:

Continue reading “Что такое “интеллектуальная собственность” в DL/ML/CV”

Общение с заказчиками

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

Continue reading “Общение с заказчиками”

Важное событие

Сегодня, на мой взгляд, произошло очень важное событие. Релиз Jetson TX2. Важное оно потому, что сама технология стала стандартом современных систем машинного зрения, а новое поколение подтвердило приверженность NVIDIA этой технологии.

Continue reading “Важное событие”

Функция потерь в обучении

На выходных учил жену кататься на беговых лыжах (она второй раз в жизни на них встала). И у нас возник забавный спор про теорию обучения. “Отталкиваться палками, – говорю, – нужно непрерывным движением, направленным вдоль тела сверху-вниз, назад. Вот смотри, у тебя палки загораживают лыжи во время такого действия – значит ты что-то делаешь неправильно. Старайся не допускать такого”. Жена же у меня – хирург. И таких объяснений не понимает. “Скажи мне лучше, какими мышцами толкаться. Вот ты делаешь это движения, что ты используешь?”. И тут в ступоре уже я. Я не врач. Я даже не знаю, где у меня мышцы и чем я толкаюсь.

Neural+network+art+part+1+source+http+wwwboredpandacom+inceptionism+neural+network+deep+dream+art+man+combines+random+peoples_695771_5900164

Зато я понял, что ровно такой же казус встаёт при обучении нейронных сетей. Сеть можно обучать набором внешних умозрительных правил, расставив там Softmax/EuclidianLoss. “Видишь что рука заслонила лыжу – попробуй сделать что-нибудь по-другому”. А можно заложить куда более глубокую модель в которой персонализировать цену ошибки каждого конкретного случая. “Если запущена сначала мышца 1, а потом мышца 2 – ошибка”. Тут, конечно, сложнее. Нужно придумать такую модель. Зато эффективнее. В статье – небольшая подборочка интересных решений, которые мне попадалась и которые били существующие по эффективности за счёт персонализации функции потерь.

Continue reading “Функция потерь в обучении”