Нейронные сети на телефоне (запуск через Unity, Flutter и JS)

Я уже писал большую статью о том как запускать нейронные сети на телефонах. Точнее, статья была про разные аппаратные платформы и библиотеки выполнения нейронных сетей. Но, она абсолютно не рассматривала вопрос запуска нейронных сетей. Ведь библиотеку можно позвать из разных сред, можно из Java разрабатывая на Android studio/Eclipse/Idea. Можно на с++ модулях. Можно из JS, сделав веб-страничку (кстати, на эту тему я тоже делал ролик, а на Хабре была не моя неплохая статья на эту тему). А можно и другими способами.
В этой статье я чуть подробнее расскажу те способы которые мне нравятся и понятны.

Continue reading “Нейронные сети на телефоне (запуск через Unity, Flutter и JS)”

Tesla – взгляд через замочную скважину на правильную систему

Всегда когда я разговариваю с человеком который хочет сделать новую систему распознавания я рассказываю о том что машинное обучение неидеально. Что всегда есть ошибки. Что всегда что-то будет идти не так. И что цель – не обучить один раз систему распознавания. А цель  – выстроить систему которая будет стабильна к любым ошибкам распознавания.

Continue reading “Tesla – взгляд через замочную скважину на правильную систему”

Double trouble

Где-то с прошлого года у меня лежали две недописанные статьи. На прошлой неделе собрался с силами и в выходные их добил. Одна статья про то, как каждый день я сталкиваюсь с хренью в своей работе. И о том насколько бажет человеческое восприятие когда дело доходит до технологий.
Статья традиционно на хабре – https://habr.com/ru/company/recognitor/blog/446038/
Вторая статья – экспериментальная. Она про то, что машинное обучение – очень сложная штука, зачастую в современных реалиях чересчур сложная – и её не нужно лепить направо и налево. Статья экспериментальная в том числе потому что публикую её на платформе где ни разу раньше не писал – https://vc.ru/life/63227-mashinnoe-zrenie-ne-nuzhno-o..

Обе немного не в формате блока, так что тут только ссылка.

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

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

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

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

Caffe2

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

Continue reading “Caffe2”

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

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

1

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

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

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

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

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

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

Post-Residual

Мне всегда любопытно наблюдать как движется развитие нейронных сеток и искать какие-то соответствия тому, как обработка инфы устроена в мозгах. Особенно прикольно в этом отношении смотреть на пост-ResNet сети. Вроде как и хороший результат, но привязки к мозгам – никакой. Просто экстраполяция идей.  Residual connection заработали? Ладненько, ладненько. Как мы можем запихать ещё кучу в нашу сетку?

Continue reading “Post-Residual”

Про детектирование объектов

Наткнулся на интересную работу, которая во многом подтверждает мои мысли, высказанные ещё в начале года. Мысли были о том, что сетка YOLO – очень интересный шаг в детектировании объектов и что стоит идти по этому пути.

Новая работа называется SSD (Single Shot MultiBox Detector) и сделала её российская компания(?) deepsystems.io (не доглядел, сделали конечно не они, это просто обзор от них). По сути, вся работа про то, как довести до ума YOLO. Результаты у них получились неплохие:

1

Continue reading “Про детектирование объектов”

3D

Последний непобеждённый рубеж в машинном зрении, куда ещё не добрались нейронные сети – 3D. Но он потихоньку трещит. Всё началось с алгоритмов восстановления глубины, которые появились в 2015 году. Кстати, на статью стоит обратить внимание – она от группы ЛеКуна.

1

Continue reading “3D”