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

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

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

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

Caffe2

Сегодня утром пока просыпался прочитал странные заголовки про Caffe2. Помедитировал над парочкой статей с маркетинговым булшитом – и пошёл разбираться что же это всё-таки такое на самом деле. Всё же 90% текущих проектов именно на Caffe. Надо быть в курсе всё же.

Continue reading “Caffe2”

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

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

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

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

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

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

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

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

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

Промежуточный итог: Заворачиваем и запускаем

При работе с системами машинного зрения я всегда говорю заказчикам, что в первую очередь нужно сделать минимально рабочий прототип. Так и с кормушкой. Первичная моя цель – это не сделать как можно более хорошую систему, с максимальной точностью,  а запустить чтобы работало. Более менее стабильно.
И уже после этого набирать статистику, лечить баги, и.т.д. Прототип готов, работает, висит на окне и шлёт мне сообщения про каждую птичку, которая прилетает в кормушку.
А теперь чуть подробнее что я докрутил:)

Continue reading “Промежуточный итог: Заворачиваем и запускаем”

Когда машинное обучение сталкивается с реальностью

Когда я говорю, что машинное обучение в конкурсах и в реальности – это две не имеющих отношения друг к другу вещи – на меня смотрят как на психа.
Задачи на машинное обучение на конкурсах – вопрос оптимизации сеток и поиска лазеек. В редком случае – создания новой архитектуры.

2
Задачи машинного обучения в реальности – вопрос создания базы. Набора, разметки, автоматизации дальнейшего переобучения.
Задача с кормушкой мне понравилась во многом из-за этого. Она с одной стороны очень простая – делается практически мгновенно. А с другой стороны – очень показательная. 90% задач тут – это не имеющая отношения к конкурсам тягомотина.

Continue reading “Когда машинное обучение сталкивается с реальностью”

Запуск Caffe на RPi + SqueezeNet

Продолжение идеи про кормушку для синичек.

1

Фабула прошлой части: за окном стоит прозрачная кормушка. На неё смотрит камера, подключённая к Raspberri Pi. Хочу автоматическую съёмку птичек с распознаванием + с анализом того сколько. Плюс хочу чтобы кадры сохраняло, а лучшие –  мне выкладывало куда-нибудь.

Установка Caffe и разметка базы птичек внезапно прошла ударными темпами. Плюс начитал много интересной инфы. Так что решил разбить пост на две части. В текущем посте – установка Caffe на RPi + рассказы про забавную сеточку SqueezeNet. В следующем посте (будет завтра-послезавтра) – разметка базы, обучение, оптимизация архитектуры сети/сетей.

Continue reading “Запуск Caffe на RPi + SqueezeNet”

the bird is the word

Bastion_portrait

Я люблю различных птичек. С детства дома жила куча попугаев и прочей живности. А ещё я люблю писать на Хабр и в прочие места странные нравственно-поучительные статьи на тему «как делать какие-то системы». Ну да. И нейронные сети.
Придумал как это объединить. Недавно Анне попались акриловые прозрачные кормушки на окно. Засыпаешь семки — смотришь как птички прилетают-кормятся. Но только птички пугливые, летают не по расписанию. И я понял: хочу такую кормушку на окно, но чтобы она сама распознавала кто прилетает и сообщала мне. Плюс фоточка.
В блоге я буду публиковать то, как я эту систему строю. С исходниками, размышлениями на тему того что нужно, что не нужно + с открытыми базами, которые собираю с устройства. Во многом, то что тут будет — оверкилл. Например Сaffe на Rasberry Pi, которое я планирую запустить. Это обусловлено тем, что мне интересно потренироваться делать те или иные вещи.
Всего я планирую уложиться в 3-4 заметки. И, одна итоговая, на Хабр. Сегодня первая: «Введение. Проект системы. Инфраструктура. Инфраструктура сбора базы.»
Continue reading “the bird is the word”

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

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

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 “Функция потерь в обучении”