Pull to refresh

Неортогональная БИНС для малых БПЛА

Reading time 7 min
Views 30K
Algorithms *
БИНС
По правилам сокращений в заголовке не должно быть, но расписав сокращения я превратил бы заголовок в аннотацию. Так что вот…
  • БИНС — бесплатформенная инерциальная навигационная система
  • БПЛА — беспилотный летательный аппарат
  • ОЧ — ось чувствительности датчика

Речь в статье пойдет о навигационной системе, в которой ОЧ датчиков ориентированы неортогонально, т.е. расположены под некоторым, ненулевым, углом к осям системы координат, связанной с БПЛА. Особенность таких БИНС в том, что по информации от каждого из датчиков можно получить значения всех трех компонент угловой скорости (для гироскопов) и линейного ускорения (для линейных акселерометров) объекта.
Статья написана как дополнение к Строим мультикоптер, часть вторая. Целью является описание одного из способов борьбы с дрейфом нуля в дешевых датчиках.
Для чего нужна избыточность читать тут...
Total votes 67: ↑63 and ↓4 +59
Comments 45

Простой классификатор на PyBrain и PyQt4 (Python3)

Reading time 12 min
Views 34K
Python *Qt *
Изучая Python3, я портировал (как смог) библиотечку PyBrain. Об этом я уже писал здесь.
image
Теперь же я хочу немного «поиграть» с данной библиотечкой. Как я уже говорил в предыдущем посте, питон я только начал изучать, так что все написанное в этой статье не стоит воспринимать как Истину. Изучение — это путь, и он извилист.

Задачу поставим перед искусственной нейронной сетью (ИНС) весьма простую — классификацию, а именно: распознавание букв латинского алфавита.

Вроде бы классический пример, про него уже писали на хабре неоднократно: «Что такое искусственные нейронные сети?», «Нейронные сети и распознавание символов» и т.д.
Но моей целью стоит изучение питона на не самых простых примерах. Т.е. учимся сразу на сложном и незнакомом. Так мы найдем в два раза больше граблей, что позволит нам копнуть в глубины языка, разбираясь с «почему не работает?».

Под хабракатом вас ждёт: описание способа подготовки данных на PyQt4, использование модуля argparse, ну и конечно же PyBrain!
Читать дальше →
Total votes 34: ↑31 and ↓3 +28
Comments 29

Что важно для создания ИИ

Reading time 6 min
Views 33K
Artificial Intelligence
Sandbox
Прочитав множество статей по искусственному интеллекту, решил написать свою. Я уже довольно долго наблюдаю за сферой разработок ИИ, а точнее искусственных нейронных сетей. Наслышан о проектах эмуляции мозга человека, кошки и т.п. Не могу не выразить свое разочарование по данной теме. На самом деле мощь интеллекта искусственных нейронных сетей преувеличивается и приукрашивается журналистами и разработчиками. Например, видел такую статью: «Нейронная сеть Google научилась выявлять кошек на изображениях». Эта статья так раздута и приукрашена, что и действительно думаешь: «Эврика! Вот он наш ИИ! Наконец-то!». Многие, слушая подобные заявления по телевидении разинув рот говорят что-то вроде: «Смотри до чего техника дошла!». Подобное вызывает у меня лишь ухмылку и разочарование. И вот почему… Сам Google заявил, что среди изображений «скормленных» их нейронной сети большинство – изображения кошек. Если взять во внимание свойство нейронной сети обучаться, то никакого интеллекта и сверхъестественного здесь не видно, это было закономерно, что нейронная сеть научится находить кошек, согласитесь. Ладно, довольно лирического отступа, приступим к настоящим рассуждениям.
Сам имею небольшой опыт с нейронными сетями и то, скорее не с их созданием, а с их исследованиями, экспериментами. Я сам много думал над созданием ИИ, было время, когда сам попался на удочку приукрашенных историй о ИНС, из-за чего и родился к ним мой интерес. В моих планах на будущее создать свою собственную ИНС, после того, как пойму каким образом создать действительно умную. Для этого я сделал небольшой список вопросов на эту тему, которые должны помочь в создании ИИ.

Читать дальше →
Total votes 43: ↑23 and ↓20 +3
Comments 104

Оптимизация геометрического алгоритма обучения ИНС при анализе независимых компонент

Reading time 7 min
Views 7K
Artificial Intelligence
Sandbox
Добрый день, уважаемые хабровчане. Возможно многие из вас зададутся вопросом: «А где же описание основного алгоритма?».
Так вот, ниже будут указанны ссылки на источники, и переписывать основной алгоритм не буду.
Сразу объяснюсь. Данная статья — это результат моей исследовательской работы, а в дальнейшем и тема моего диплома.
Но хватит вводных слов. Поехали!

1. Искусственные нейронные сети

ИНС представляют собой попытку использования процессов, происходящих в нервных системах живых существ для создания новых информационных технологий.
Читать дальше →
Total votes 24: ↑22 and ↓2 +20
Comments 1

Синтез оптимального алгоритма распознавания мимики

Reading time 8 min
Views 5.7K
Algorithms *Image processing *Mathematics *

Содержание:


1. Поиск и анализ цветового пространства оптимального для построения выделяющихся объектов на заданном классе изображений
2. Определение доминирующих признаков классификации и разработка математической модели изображений мимики"
3. Синтез оптимального алгоритма распознавания мимики
4. Реализация и апробация алгоритма распознавания мимики
5. Создание тестовой базы данных изображений губ пользователей в различных состояниях для увеличения точности работы системы
6. Поиск оптимальной аудио-системы распознавания речи на базе открытого исходного кода
7. Поиск оптимальной системы аудио распознавания речи с закрытым исходным кодом, но имеющими открытые API, для возможности интеграции
8. Эксперимент интеграции видео расширения в систему аудио-распознавания речи с протоколом испытаний

Цели


Определить наиболее оптимальный алгоритм для последующей его реализации и апробации в решении распознавания мимики.

Задачи


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

Тема


Так как перед нами стоит задача реализовать производительную систему распознавания мимики для мобильных устройств, то при выборе оптимального алгоритма под решение данной проблемы мы должны исходить из следующего:

• Низкое разрешение и высокий уровень шумов (характерно для большинства фронтальных VGA камер смартфонов и ПК);
• Невысокие производительные требования мобильных устройств и компьютеров для обсчитывания данных с частотой 25 кадров в секунду;
• Высокая скорость работы (для обработки видео в режиме онлайн).

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

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

image

Но прежде чем приступить к выбору оптимального алгоритма под наши задачи распознавания мимики, следует объяснить механизм выхватывания вектора признаков.
Читать дальше →
Total votes 13: ↑9 and ↓4 +5
Comments 10

Навигация в помещениях с iBeacon и ИНС

Reading time 15 min
Views 87K
Development of mobile applications *Geoinformation services *
Tutorial

  Представьте, что перед вами поставили задачу по реализации навигации внутри помещений. Соответственно, GPS/Глонасс и тому подобные системы спутниковой навигации вам недоступны. Что делать? В этой статье мы с вами подробно рассмотрим варианты решения подобных задач в теоретической части, а в практической – реализуем «в железе» indoor-трекер для работы с маячками iBeacon по Bluetooth BLE на NodeJS на базе новейшей платформы Intel Edison, рассмотрим применение трилатерации и фильтра Калмана, библиотеку CylonJS по работе с датчиками на NodeJS.

Читать дальше →
Total votes 41: ↑39 and ↓2 +37
Comments 15

Математика для искусственных нейронных сетей для новичков, часть 1 — линейная регрессия

Reading time 8 min
Views 141K
Python *Machine learning *
Sandbox
Оглавление

Часть 1 — линейная регрессия
Часть 2 — градиентный спуск
Часть 3 — градиентный спуск продолжение

Введение


Этим постом я начну цикл «Нейронные сети для новичков». Он посвящен искусственным нейронным сетям (внезапно). Целью цикла является объяснение данной математической модели. Часто после прочтения подобных статей у меня оставалось чувство недосказанности, недопонимания — НС по-прежнему оставались «черным ящиком» — в общих чертах известно, как они устроены, известно, что делают, известны входные и выходные данные. Но тем не менее полное, всестороннее понимание отсутствует. А современные библиотеки с очень приятными и удобными абстракциями только усиливают ощущение «черного ящика». Не могу сказать, что это однозначно плохо, но и разобраться в используемых инструментах тоже никогда не поздно. Поэтому моей первичной целью является подробное объяснение устройства нейронных сетей так, чтобы абсолютно ни у кого не осталось вопросов об их устройстве; так, чтобы НС не казались волшебством. Так как это не математический трактат, я ограничусь описанием нескольких методов простым языком (но не исключая формул, конечно же), предоставляя поясняющие иллюстрации и примеры.

Цикл рассчитан на базовый ВУЗовский математический уровень читающего. Код будет написан на Python3.5 с numpy 1.11. Список остальных вспомогательных библиотек будет в конце каждого поста. Абсолютно все будет написано с нуля. В качестве подопытного выбрана база MNIST — это черно-белые, центрированные изображения рукописных цифр размером 28*28 пикселей. По-умолчанию, 60000 изображений отмечены для обучения, а 10000 для тестирования. В примерах я не буду изменять распределения по-умолчанию.
Читать дальше →
Total votes 54: ↑47 and ↓7 +40
Comments 43

Математика для искусственных нейронных сетей для новичков, часть 2 — градиентный спуск

Reading time 8 min
Views 124K
Python *Machine learning *
Часть 1 — линейная регрессия

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

Градиентный спуск


В прошлой части был показан пример вычисления параметров линейной регрессии с помощью метода наименьших квадратов. Параметры были найдены аналитически — , где — псевдообратная матрица. Это решение наглядное, точное и короткое. Но есть проблема, которую можно решить численно. Градиентный спуск — метод численной оптимизации, который может быть использован во многих алгоритмах, где требуется найти экстремум функции — нейронные сети, SVM, k-средних, регрессии. Однако проще его воспринять в чистом виде (и проще модифицировать).
Читать дальше →
Total votes 27: ↑26 and ↓1 +25
Comments 18

Математика для искусственных нейронных сетей для новичков, часть 3 — градиентный спуск продолжение

Reading time 6 min
Views 54K
Python *Machine learning *
Часть 2 — градиентный спуск начало

В предыдущей части я начал разбор алгоритма оптимизации под названием градиентный спуск. Предыдущая статья оборвалась на писании варианта алгоритма под названием пакетный градиентный спуск.

Существует и другая версия алгоритма — стохастический градиентный спуск. Стохастический = случайный.
Читать дальше →
Total votes 28: ↑27 and ↓1 +26
Comments 2

Нейросетка играет в Доту

Reading time 8 min
Views 37K
Programming *C++ *Algorithms *Machine learning *Robotics development *


Всем привет! На самом деле нейросетка играет не в привычную Dota 2, а в RussianAICup 2016 CodeWizards. RussianAICup — это ежегодное открытое соревнование по программированию искусственного интеллекта. Участвовать в этом соревновании довольно интересно. В этом году темой была игра похожая на Доту. Так как я уже какое-то время занимаюсь обучением с подкреплением, то мне хотелось попробовать применить это в RussianAICup. Главной целью было научить нейронную сеть играть в эту игру, хотя занятие призового места — это, конечно, было бы приятно. В итоге нейросеть держится в районе 700 места. Что, я считаю, неплохо, ввиду ограничений соревнования. В этой статье речь пойдет скорее об обучении с подкреплением и алгоритмах DDPG и DQN, а не о самом соревновании.
Но обо всем по-порядку
Total votes 46: ↑44 and ↓2 +42
Comments 63

Металлопоиск и… нейросеть

Reading time 10 min
Views 14K
Go *Machine learning *Physics
Принцип работы импульсного металлодетектора
Одним из популярных вариантов конструктивного исполнения устройств для металлопоиска является импульсный (pulse induction (PI)) металлодетектор- неприхотливый и надежный аппарат (хорошая глубина обнаружения, устойчивость к повышенной минерализации грунта, способность работать в соленой воде), имеющий различные сферы применения — от военного дела (традиционные пользователи «импульсников») до поиска золота (особенно популярно это хобби в Австралии).
Но и у него есть существенный недостаток — большие сложности с дискриминацией, т.е. определением типа мишени, например, узнать — из цветного металла она или из черного, или отличить противопехотную мину в пластиковом корпусе от кучки металлического мусора? Какая же причина этой проблемы?
Рассмотрим принцип работы импульсного металлодетектора.

Читать дальше →
Total votes 34: ↑33 and ↓1 +32
Comments 42

Как реверс-инжиниринг чужой инерциальной навигационной системы перерос в свою собственную разработку

Reading time 14 min
Views 16K
Миландр corporate blog Reverse engineering *Circuit design *Manufacture and development of electronics *Systems engineering *

Инерциальные навигационные системы благодаря MEMS-датчикам инженеры сейчас начинают использовать везде, где есть движение. В зависимости уровня требуемой точности как по углу, так и по координатам применяют МЕМS-датчики разного уровня цены и интегрированности: от уровня "все датчики в одной микросхеме" до уровня "один датчик - одна микросхема". А сама инерциальная навигация, как часть инженерных систем, впервые появилась в торпедах, кораблях, ракетах и самолетах.

Читать далее
Total votes 48: ↑48 and ↓0 +48
Comments 64

Искусственные нейронные сети. Часть 1

Reading time 2 min
Views 9.7K
Python *Artificial Intelligence
Sandbox

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

Читать далее
Total votes 17: ↑12 and ↓5 +7
Comments 10

Нейросети могут оказаться проще, чем принято считать

Reading time 11 min
Views 19K
SkillFactory corporate blog Mathematics *Reading room Popular science Artificial Intelligence
Translation

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

Исследователи показывают, что сети с бесконечным числом нейронов математически эквивалентны более простым моделям машинного обучения — ядерным методам. Поразительные результаты можно объяснить, если эта эквивалентность простирается дальше «идеальных» нейронных сетей. Подробности рассказываем к старту нашего флагманского курса по Data Science.

Читать далее
Total votes 37: ↑29 and ↓8 +21
Comments 6

Методы и способы построения нейросетевого ПО. Что надо знать, если вы решили профессионально разрабатывать ИНС. Часть 1

Reading time 7 min
Views 4.8K
System Analysis and Design *Machine learning *Artificial Intelligence The future is here
Sandbox

Научная группа из Московского Энергетического Института провела исследование о наиболее распространённых методах и способах построения нейросетевого программного обеспечения. В данной цикле статей мы расскажем какие знания о нейросетях нужно иметь, если вы решили профессионально разрабатывать нейросети.

 Часть первая. Немного о работе с данными

Считается, что четвертая промышленная революция или Индустрия 4.0 (англ. The Fourth Industrial Revolution) — приведёт к массовому внедрению кибертехнических систем в производство и обслуживание человеческих потребностей, включая быт, труд и досуг, а это значит, что завтра ты можешь остаться со свои спагетти-кодом никому не нужным. Выход один-быть на шаг впереди и управлять тем, что когда-нибудь сможет управлять тобой.

Читать далее
Total votes 4: ↑3 and ↓1 +2
Comments 2

Методы и способы построения нейросетевого ПО. Что надо знать, если вы решили профессионально разрабатывать ИНС. Часть 2

Reading time 4 min
Views 1.4K
Machine learning *Artificial Intelligence

Научная группа из Московского Энергетического Института провела исследование о наиболее распространённых методах и способах построения нейросетевого программного обеспечения. Мы снова с вами, чтобы рассказать о том, что нужно делать, когда у вас уже есть данные, которые необходимо как-то обрабатывать.

(А как сделать все правильно читайте здесь: Методы и способы построения нейросетевого ПО. Что надо знать, если вы решили профессионально разрабатывать ИНС. Часть 1)

 Часть вторая. Построение модели нейронной сети

Искусственная нейронная сеть — это математическая модель, в то время как её программная реализация лишь воплощает эту модель в коде. Подобно своему прообразу — биологической нейронной сети, ИНС состоит из множества связанных элементов, называемых нейронами. Каждый нейрон генерирует численный сигнал, который совместно с другими сигналами нейронов преобразуется в результирующее значение.

Читать далее
Total votes 7: ↑1 and ↓6 -5
Comments 3

Основы обучения и тестирования моделей нейросетей

Reading time 3 min
Views 2K
Machine learning *Artificial Intelligence

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

Мы, коллектив из Московского Энергетического Института, написали эту заметку, для того чтобы сложный мир нейронных сетей стал для вас чуточку проще.

Читать далее
Total votes 5: ↑3 and ↓2 +1
Comments 1