Saturday, November 10, 2012

Выпущена версия WiFiLine 1.0.11

Я рад сообщить, что выпущена версия WiFiLine 1.0.11. Единственное важное новшество - алгоритм позиционирования на основе нейронных сетей.

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

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

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

Если после этого нажать OK, приложение запросит подтверждение на начало обучения. Этот процесс может занять некоторое время, в зависимости от объема WiFi-данных в текущей карте.

Во время этого процесса приложение выводит диалог прогресса с информацией о текущей фазе и номере цикла внутри фазы. Количество фаз всего 2, но количество циклов может существенно меняться. Максимум - 1000, но обычно обучение требует гораздо меньшего числа. По времени это - несколько секунд.

После того как сеть обучена, диалог прогресса удаляется и показывается всплывающее уведомление "Готово". Теперь можно определять текущее положение точно таким же образом, как это делается при любом другом выбранном алгоритме.

Для обучения нейронной сети требуется достаточное количество WiFi-данных в карте, поэтому накладываются следующие ограничения: в карте должно быть минимум 30 точек измерения и 3 точки доступа. Если данных меньше, сеть не будет использоваться.

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

Единственная причина, по которой может потребоваться удалить сеть, это желание её обучить заново. Это имеет смысл в редких случаях, когда поведение сети не достаточно хорошо. Каждый раз при обучении сети формируется абсолютно новый экземпляр, отличный от всех предыдущих. Они должны работать одинаково (в теории), но могут изредка деградировать (на практике). Причины этого описываются в следующем параграфе, адресованном людям, которые знакомы с нейронными сетями чуть лучше обычных пользователей.

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

Теперь WiFiLine имеет 4 алгоритма позиционирования, и чуть позже я возможно сравню их более подробно.

No comments:

Post a Comment