Archive for Август, 2008

№44 Этап закончен + ссылки

Понедельник, Август 25th, 2008

Первый этап «введение» закончен. Продолжение следует через неопределенный период.

На прощание – несколько ссылок:
Старая, да удалая статья «Косово 2008 – “Судеты 1938”. Кто станет “Польшей 1939”?» http://www.avanturist.org/column/3/source/1409
Перенимая передовой опыт США, «Россия открывает двери для спецслужб Китая, Узбекистана и других азиатских стран» http://www.warandpeace.ru/ru/reports/view/26543/
«Остановить торговлю личными данными почти невозможно» http://www.warandpeace.ru/ru/news/view/26468/
«Спецслужбам США разрешили бессрочно задерживать ноутбуки на границе» http://www.lenta.ru/news/2008/08/03/laptops/
http://www.warandpeace.ru/ru/exclusive/view/20721/ «Дилемма США: распад страны или Третья мировая война (часть 3)»
http://www.warandpeace.ru/ru/news/view/25931/ «Стена: панацея или паранойя»
http://www.warandpeace.ru/ru/commentaries/view/25568/ «Тюремная индустрия в США: большой бизнес или новая форма рабства?»

№43 Рекомендую: сайт «Война и Мир»

Понедельник, Август 25th, 2008

Сайт «Война и Мир» ( http://www.warandpeace.ru/ ) ценен широтой подачи материалов. Раз в месяц на сайте появляется «Обзор военных Hi-tech новостей»: http://www.warandpeace.ru/ru/exclusive/view/25478/
Клип в тему: Soulfly – Frontlines
embedded by Embedded Video

Download Video

У Грузии были данные космической разведки
13.08.08 16:56 Армия, ВПК, спецслужбы
http://www.warandpeace.ru/ru/news/view/26180/
Как сообщает служба информации Минобороны РФ, перед началом вторжения в Южную Осетию грузинскими военными были составлены подробные карты расположения российского миротворческого батальона, основанные на данных космической разведки. Об этом заявил на пресс-конференции в среду заместитель руководителя военного следственного управления СКП РФ Дмитрий Шальков.

«При отступлении вооруженных сил Грузии ими были брошены штабные документы, среди которых были обнаружены подробные карты расположения миротворческого батальона и прилегающей местности, основанные на данных космической разведки. Между тем, в распоряжении следственной группы не имеется сведений о наличии у Грузии собственной спутниковой группировки и технической возможности для производства таких карт», – отметил он.

№42 Методы привнесения нечеткости в нисходящие и восходящие нейронные цепочки

Суббота, Август 23rd, 2008

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

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

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

Основных способов – два. На основе дополнительных связей, и на основе прохождения недостаточного сигнала.
Решение на основе дополнительных связей: сигнал будет послан с еще более раннего сработавшего элемента распознающей цепочки, так как этот элемент содержит дополнительные связи на элементы, находящиеся после него. Количество этих связей, которые шлют сигнал на опережение, может быть разным. В простейшем случае, несколько опережающих связей идут на элементы, непосредственно следующие за данным элементом, без пропусков, сплошным блоком: n->{n+1, n+2, n+3, …}. В более сложном случае, связи могут идти с разрывами, позволяя давать значительное опережение меньшим количеством связей: n->{n+1, n+2, n+3, n+5, n+8, …}.

Второе решение – не создавать дополнительные связи. Слабый сигнал без подкрепления на одном из шагов должен иметь возможность все равно пройти через барьер. Если обратиться к ранее рассмотренной аналогии с концепцией Емельянова-Ярославского, то при активации псевдонейрона, большей порога, нейрон переходит в режим высокочастотной активации. Посылка сигнала при активации, меньшей порога, будет означать единичный спайк, без переключения в режим высокочастотной генерации. Но если посылать любую активацию, большую нуля, такая схема может сильно увеличить ресурсоемкость вычислений НС. В качестве компромисса, можно ввести некоторый дополнительный порог «порог для посылки одиночного спайка». Например, он может быть равен половине «полного» порога, или равен некоторой константе, выбираемой в зависимости от назначения нейрона.

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

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

В биологических нейросетях свою роль играют оба способа. Причем, связи в биологических цепочках организованы по схеме с размытыми характеристиками – связи идут не сплошным блоком на N шагов вперед, а с плавным уменьшением количества связей при отдалении по времени от исходного элемента. А также, сигналы распространяются и одиночными спайками. Эта особенность мышления используется в некоторых грязных методах дистанционного съема информации с подсознания, а также записи информации в подсознание, что является темой для отдельного обсуждения.

№41 Методы распараллеливания работы искусственных нейросетей

Суббота, Август 23rd, 2008

Для начала рассмотрим нейросеть, сигналы по связям которой распространяются только в одном направлении (без обратного шага).
(далее…)

№40 О реализации нейронов в НЛ 3.0

Пятница, Август 22nd, 2008

Как было сказано в предыдущей записи, необходимо было создавать нейросети разных видов – с разными комбинациями сенсоров/эффекторов, с разными моделями нейронов и связей, с разными алгоритмами обучения. Добавление нового типа нейросети должно было быть легким и быстрым, с сохранением возможности просмотра НС в НЛ.
(далее…)

№39 История развития НЛ

Пятница, Август 22nd, 2008

Чтобы рассказать о реализации модели нейрона, нужно немного затронуть историю создания Нейронной Лаборатории (НЛ). Первая версия – это школьные мечты о моделировании мира, в котором организмы, управляемые разными НС, конкурируют и развиваются. Заодно – обучение программированию, первый серьезный проект после школьных уроков информатики. Организмов может быть много, «нейроредактор» помещался в одном окне MDI-приложения. Одно окно, разделенное на визуальную двухмерную карту нейросети и окно с таблицей нейронов, внизу которой – таблица связей выбранного нейрона, оказалось неудобным и недостаточным для работы с НС. Получив некоторый опыт, приступил к следующей версии.
(далее…)

№38 Низкочастотные сигналы, сжатие информации, обработка текста

Четверг, Август 21st, 2008

Одна посылка сигнала в рассматриваемой ИНС, с точки зрения подхода Емельянова-Ярославского, может рассматриваться набором спайков, режимом высокочастотной генерации. Соответствие не полное. На соответствие указывает то, что нейрон в таком режиме заносится в память – но это, скорее, достижение «быстрой» памяти, которая у Емельянова-Ярославского не рассматривалась. Если добавить перерасчет сил связей, то сходство усиливается. Если добавить сохранение активности в течение нескольких циклов – еще больше. Но задача достичь соответствия и не ставилась.

Принятие одного сигнала в высокоуровневой модели как соответствующего нескольким сигналам в низкоуровневых моделях служит целям повышения быстродействия. Для нейросети в десяток-другой гигабайт в ОП (два языка, полные словари, отношения между словами с их смыслом, примеры употребления слов для накопления информации о возможных контекстах, некоторый опыт), увеличение скорости работы, скажем, в 5-10 раз – очень ощутимо. Перейти на более низкий и «нечеткий» уровень можно в дальнейшем, если возможностей «четкой» системы окажется недостаточно, и если возможности оборудования будут позволять. Для обработки текста, вполне уместно положить «один такт – время поступления одной буквы». Для анализа звуков слитной речи нужно выбрать более низкоуровневую модель с меньшим периодом дискретности времени и с большей гибкостью на распознавание и передачу сигнала.

Можно еще более форсировать обработку текста. Для начала, нужно установить соответствия между словами и распознающими нейронами. Такое соответствие можно находить после самостоятельного обучения нейросети некоторому слову. А можно поступить иначе: имея словарь (скажем, с aot.ru), зная, в какую распознающую цепочку превратится выделение слова, можно сразу напрямую создать распознающие нейронные цепочки для всех слов. После того, как соответствие найдено, можно ускорить обработку текста таким способом. При поступлении слова, если оно есть в словаре, в течении одного цикла активируется сразу нужный набор нейронов, без необходимости побуквенного анализа. Это будет очень похоже на использование механизма, применяющегося в обучении технике быстрого чтения, когда люди учатся воспринимать слова не на слух (после прочтения глазами), а исключительно зрительными соответствиями.

Для одного слова может понадобится активировать несколько характеристик. Характеристики корней, окончаний, одушевленности, и т. д. Их список можно держать в том же соответствии «слово – нейроны», тогда можно сэкономить еще один цикл нейросети. Если не экономить этот один цикл, то можно активировать служебный нейрон, который в следующем цикле уже сам активирует все необходимые характеристики. Еще один плюс такого решения – к такому нейрону можно добавлять и удалять связи средствами ИНС, а интерфейс с «текстовым форсажем» не усложняется. Как уже упоминалось, лучше максимальное количество интеллектуальных действий перекладывать на плечи ИНС.

Этот же механизм ускорения можно использовать и для слов с ошибками: активировать по ассоциациям все похожие слова. Коэффициенты похожести вычислить заранее.

Еще один вариант ускорения – разделить ИНС на несколько частей, причем, разные части могут работать с разной скоростью. Тогда одна часть нейросети могла бы работать несколько циклов, пока не проанализирует слово, а затем давать информацию для следующей части. Тогда вторая часть нейросети может заниматься высокоуровневой обработкой, не простаивая в ожиданиях еще одной буквы – а такие циклы могут быть очень длинными, если нейросеть очень большая. Это важно для компьютеров со сравнительно несильным распараллеливанием работы. Но и для «брутальных нейрочипов» это может быть важно. Сравните муху и человека – у мухи скорость реакции больше, так как время для принятия решения работы короче, цепочки анализа короче, не ожидают подтверждения у медленного «монстра» ЦНС.

Все эти варианты форсированной обработки будут важны для реальных систем. Для поисковых систем – гигантское количество запущенных НС и громадная их прожорливость приучает к экономии. Для ускорения работы ИИ, взаимодействующих со сложным физическим окружением (отдельные нервные узлы будут отвечать за связь, некоторое управление, без отвлечения ЦНС) – особенно военных, транспортных и промышленных систем.

№37 Агрессивные нейросети

Четверг, Август 21st, 2008

Наверняка, что-то из этого описано в литературе, просто не успел изучить. Дальше – мои соображения.
(далее…)

№36 Преобразование линейных запросов

Четверг, Август 21st, 2008

До этого времени мы работали только с линейными цепочками – на основе которых можно делать распознавание и прогнозирование. Это уже хорошо, но до возможностей, например, перевода текста – далеко. Чтобы было интереснее изучать дальнейшие материалы, заскочим наперед, и покажем, как может происходить обработка «непоследовательных», «нелинейных» запросов.

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

Пусть система получила запрос «у кого есть компьютер?». Распознается цепочка «задан вопрос», затем вывод «нужно и можно дать ответ», затем начинается поиск ответа. Вначале происходит поиск цепочек по неполному совпадению. Это немного другой режим работы, который еще не рассматривался. Можно активировать слова из запроса в любой последовательности, чтобы на элементах цепочки «у меня есть компьютер» появилась активация. А можно составить «поисковый запрос»: активируется специальная цепочка прозвонки, которая при посылке активации «вниз» также будет слать активацию на соответствующие нейроны для поиска цепочек, удовлетворяющих дополнительным характеристикам, таких, как: «слово Х представлено в цепочке как отношение, слово Y – как параметр, …». Такая цепочка «поискового запроса» сужает количество ложных срабатываний – нахождения цепочек, не нужных для ответа. При меньшем количестве активации, которое передается по нейронам, увеличивается и быстродействие ИНС, исполняемой на многоядерных процессорах. Уменьшается и количество высокоуровневых проверок, которые производит ИНС: «является ли найденная цепочка ответом на вопрос, …». После того, как цепочка с ответом найдена, при помощи некоторых операций можно сформировать ответ.

Таково максимально поверхностное изложение механизма работы с цепочками, которые «слипаются» своими непоследовательными частями, как, например, ДНК в свернутом виде, как и белки при сворачивании в третичную структуру и при взаимодействии разных белков. По хорошему, это тема для цикла статей…

№35 Нейросеть и алгоритмы на графах

Четверг, Август 21st, 2008

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

Задача нахождения пути на графе принимает другой смысл. Есть: некоторый набор активных нейронов и связи. Задача: активировать/деактивировать некоторые нейроны, создать/удалить связь. Например: активны нейроны «голод», нужно переместить активацию на нейроны «сытость». Хранимые в системе связи отражают опыт. Попытаться перевести активацию можно при помощи комбинированного воздействия на внешние эффекторы и на внутренние нейроны. Например, немножко представить сытость, активировав соответствующие нейроны, можно будет и при помощи внутренних взаимодействий, но полностью насытиться – лишь при помощи активации эффекторов, активных действий в окружающем мире. (В подавляющем большинстве случаев).

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

Чтобы почувствовать свободу, можно работать с ИНС как с графом. Только в качестве узлов будут отдельные нейроны и группы нейронов – например, в одной группе один нейрон может отвечать за распознавание, другие – за прогноз, за управление состоянием, «нейроны-декораторы» – «сигнализировать о затухании сигнала», эмоциональные привязки, и т. д.

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