N+1 предлагает читателям собственный сервис DeepDream
Недавно инженеры Google Александр Мордвинцев, Крисофер Ола и Майк Тика показали, как можно визуализовать работу сверточной нейронной сети, повернув ее работу в обратную сторону. Результатом подхода стал алгоритм DeepDream, принцип которого довольно прост: он искажает исходное изображение в соответствии с тем, какие его фрагменты напоминают алгоритму те или иные знакомые объекты.
На языке машинного обучения это означает, что мы берем конкретное изображение, пропускаем его через нейросеть распознавания и получаем значения в некотором высоком слое нейросети. Затем в соответствии с натренированными весами связей между слоями спускаем эти значения вниз — вплоть до исходного изображения. В конце DeepDream искажает это исходное изображение, чтобы показать те фрагменты, которые получили максимальные веса в высоком слое. Все это может звучать как абракадабра, но для тех, кто знаком с алгоритмом обучения нейросети через обратное распространение ошибки DeepDream выглядит довольно просто (если не тривиально).
Установить DeepDream на свою машину относительно просто. Для этого необходим сам открытый код сети, а также одна из существующих интерактивных оболочек для языка программирования Python (NumPy, IPython, PIL или дистрибутивы Anaconda или Canopy). Управление этой программной системы осуществляется при помощи фреймворка машинного обучения Caffe. Запускать нейронную сеть нужно на компьютере с Ubuntu Linux, RedHat Linux или OS X с установленной видеокартой Nvidia. Видеокарта должна поддерживать технологию параллельных вычислений CUDA.
Скорость обработки изображений в Deep Dream зависит от размера самого изображения (чем оно больше, тем больше времени уйдет на «прогонку» через нейросеть), вычислительной мощности компьютера, а также глубины обработки и типа использованных слоев.
Наш сервер использует Intel Xeon E5-2670 (Sandy Bridge) высокочастотные графические процессоры NVIDIA с 1536 ядрами CUDA (архитектуры унифицированного вычислительного устройства) каждый и памятью видеоданных на 4 ГБ. В обработке участвует 32 ядра процессора и 4 видеокарты, 60 Гб оперативной памяти.
К счастью, чтобы попробовать DeepDream в работе, всего этого знать не требуется. Достаточно загрузить понравившуюся картинку в форму, приведенную в конце этой страницы, и дождаться результата. Обработка изображения в DeepDream — это очень вычислительно емкая задача, поэтому советуем читателю запастись терпением. Пока же вы можете оценить результат работы DeepDream на подборке нескольких изображений из наших лучших галерей. Однако, даже если вы закроете вкладку с материалом, ваша картинка продолжит обрабатываться и вы сможете (до тех пор, конечно, пока не упадет наш сервер) ее получить.
Делим на два
Привет. Наш Deep Dream перестал работать. Но вы можете воспользоваться ненашим: https://dreamscopeapp.com
Пока лишь со скоростью 1,6 миллиметра в секунду
Американские инженеры разработали робота, способного автономно передвигаться в толще сыпучего материала, проталкивая себя вперед с помощью двух конечностей, напоминающих плавники. В испытаниях робот продемонстрировал способность передвигаться в песке на глубине около 127 миллиметров со скоростью до 1,6 миллиметра в секунду. Статья опубликована в журнале Advanced Intelligent Systems. Сыпучие материалы, такие как песок, мягкие почвы, снег или лунный реголит, представляют собой довольно сложную среду для передвижения. Объекты, движущиеся в их толще, испытывают высокое сопротивление, возрастающее с глубиной погружения. Кроме того, сыпучая среда ограничивает возможности зондирования и обнаружения препятствий. Тем не менее инженеры пытаются создать роботов, способных передвигаться в таких условиях. Например, американские разработчики представили прототип робочервя, способного двигаться в толще песка. Для снижения сопротивления он выдувает перед собой воздух, и одновременно разматывает мягкую оболочку своей передней части, выталкивая ее вперед, в то время как остальное тело остается неподвижным. Это позволяет значительно снизить сопротивление движению. Однако для его работы требуется воздух, который приходится подводить с поверхности. Создать робота, который смог бы передвигаться в песке автономно, решили инженеры под руководством Ника Гравиша (Nick Gravish) из Калифорнийского университета в Сан-Диего. Разработанный ими робот перемещается, проталкивая себя вперед через толщу сыпучей среды с помощью двух гибких конечностей, напоминающих плавники морской черепахи. Конечности состоят из пяти звеньев. Каждое звено способно вращаться относительно предыдущего, но углы их отклонений ограничиваются с помощью фиксаторов. В движение оба плавника приводятся через червячную трансмиссию с помощью единственного электромотора. При этом трансмиссия воздействует только на первые ближайшие к корпусу звенья. Благодаря фиксаторам, ограничивающим углы поворотов звеньев, при движении вперед конечности изгибаются, испытывая меньшее сопротивление среды, а при движении назад наоборот, распрямляются, позволяя роботу отталкиваться от песка. На концах конечностей разработчики поместили сенсоры, с помощью которых робот может обнаруживать расположенные сверху объекты. Корпус робота длиной около 26 сантиметров имеет прямоугольное сечение и утолщение в передней части, которое позволяет снизить сопротивление песка при движении. Нос робота заострен и имеет наклонную поверхность сверху, которая необходима для компенсации подъемной силы, возникающей при движении в песке. С этой же целью по бокам после проведенных тестов пришлось разместить два дополнительных наклонных неподвижных плавника, так как робот имел тенденцию задирать нос при движении под действием выталкивающей силы. Чтобы избежать попадания песчинок в механизм, конечности поместили в чехлы из нейлоновой ткани. Разработчики протестировали робота, погруженного на глубину 127 миллиметров в песок, сначала в небольшом искусственном резервуаре, а после в естественных условиях в песке на пляже. В сухом песке робот смог развить скорость 1,6 миллиметра в секунду. В более влажном песке на пляже робот двигался медленнее, со скоростью около 0,57 миллиметра в секунду. В будущем инженеры планируют увеличить скорость передвижения робота, а также научить его самостоятельно погружаться в песок. Ранее мы рассказывали об исследовании, в котором физики выяснили, что происходит со структурой песка при передвижении по нему с помощью прыжков. Они обнаружили, что при правильно подобранном времени задержки между приземлениями и новым толчком, можно увеличить высоту прыжка на 20 процентов и даже больше.