Archive for Январь, 2010

wargasm

Пятница, Январь 29th, 2010

записи перенесены под тег millions power domination. Более специализированный поиск – http://neurocod.net/blog/?s=wargasm

Выкладываться на правительство?

Вторник, Январь 26th, 2010

Цитата с http://polnyi-pisec.info/
Почему сталинский СССР был непревзойденно эффективен? Почему за 20 лет страна пришла от деревянной сохи к ракетно-ядерному оружию? Потому, что инженеры, ученые, учителя были подлинной элитой. Профессор при Сталине получал больше министра.
Почему никто не спросит у творцов?
Я за них отвечу. Я больше никогда не буду погружаться в подпространсто, сутками писать формулы, гонять компьютерные программы, или обдумывать во сне экспериментальную проверку, как я это делал при СССР. Потому что вижу: есть люди, которые без образования и мук творчества, занимаясь примитивной торговлей, ездят на мерседесах и имеют время и деньги для наслаждения жизнью.
Вот пусть эта “элита” и творит. Что касается меня, то я положенные мне как профессору пару статей в год выдам (оторву пару недель от вдохновенного труда на даче).Чтобы было тип – топ с публикациями.
Уверяю вас, что так же рассуждают (про себя) инженеры, ученые и конструкторы самой высокой квалификации. ОНИ НЕ БУДУТ ВЫКЛАДЫВАТЬСЯ, потому что это глупо и смешно.
Курчатов много лет спал по три-четыре часа в сутки. Он спас страну от ядерного сожжения. Он умер в 60 лет.
По нынешним понятим, он круглый идиот.

Солярис откладывается!

Вторник, Январь 26th, 2010

Копия отсюда: http://community.livejournal.com/ru_transhuman/151424.html
В комментариях к прошлым заметкам встречались разногласия по поводу единого Компьютрониума. Считаю, что:
В обозримом будущем единого Интеллекта, скорее всего, не будет. Потому что:
-1. Для этого нужна победа коммунизма, а капиталисты будут против в любом случае, что опасно, так как может привести к войне и уничтожению человечества. Никто не хочет захвата мира самым наглым
0) Исторически, существуют различные группы – от стран до фирм и лабораторий, у каждой из которых свой путь и свои несовместимости – от философских до технологических. Их объединение не обязательно произойдет сразу. Оно может быть отложено надолго по субъективным причинам.
1) Безопасность требует наличия хотя бы одной копии, желательно сильно отличающейся от первой, чтобы не возникло непрогнозируемых необратимых «всемирных» катастроф.
2) Различные физические реализации требуют экспериментальной проверки того, кто же лучше. Компьютеры могут быть до того сложны, что единственный способ достоверно узнать, кто лучше справляется с обработкой всех типов данных со всей Земли, на всех возможных задачах – запустить полномасштабную копию. Или, как минимум, очень масштабную.
3) В процессе разработки новых, более совершенных версий ИИ, замена старого оборудования на новое будет происходить не одномоментно – тем более, в масштабах всей Земли. На скорость замены накладываются физические ограничения. Время на разработку, обкатку, промышленное производство, доставку, замену, ввод в эксплуатацию. Ограничения по мощности производства и материалоемкости. Наверное, на полное обновление всего оборудования будут уходить минимум месяцы (если будет очень много энергии), а то и годы – гигантский срок. Системы разных версий будут работать одновременно. Но они могут быть плохо совместимы, физически или информационно. Тогда они будут слабо связаны и четко разделены.
4) Если решить, что физическая реализация (или принципы этой реализации) всего одна, то остается открытым вопрос о информационном наполнении. Если брать пример нейроинтеллекта, то для анализа разных вариантов настроек и выбора оптимальных настроек даже по одному параметру, типа скорости забывания – надо выбрать десяток вариантов коэффициентов, потом на каждый вариант коэффициента запустить по десятку-тысяче экземпляров (для статистической достоверности) на реальных данных, а потом смотреть, кто лучше справляется с заданием.
5) Кроме одного коэффициента забывания, из-за которого придется создать сотни разных компьютеров, будет много других параметров для исследования и комбинирования: длительность цикла мышления перед переключением внимания, распределение важности, допустимого риска, и т. д. Поэтому, скорее всего, будут не тысячи, а миллионы разных компьютеров с разными настройками.
6) Выбрать и навсегда зафиксировать один набор параметров для всех крайне недальновидно. Развитие интеллекта и изменение среды приводит к смене требований и оптимальных параметров. Простенькие теоремы доказали, все сделали? Теперь эффективнее сделать интервал между переключениями внимания дольше – так как решаются более тяжеловесные задачи. Поэтому миллионы разных ИИ должны быть всегда.
7) Для разных версий ИИ, важны не только различные параметры, но и разный опыт работы. Важна последовательность решения задач. Влияние опыта на дальнейшие решения. Специализация. Это – еще одна предпосылка к тому, чтобы оставить множество интеллектов, которые будут ошибаться каждый по-своему, специализироваться каждый по своему.
8) Многие задачи могут быть сложно распараллеливаемыми, а потому требовать локализованной и обособленной обработки.
9) Еще одна предпосылка к тому, чтобы содержать множество автономных интеллектов и развивать специализацию – повышение скорости обработки в локальном пространстве. В общем виде, всегда быстрее обработать данные локально, чем отправлять их на другое полушарие и получать аналогичный результат назад. Аналогично почти с любыми видами научно-исследовательских и конструкторских работ. Будут, например, в здании стоять три миллиарда пробирок с исследованием эффективности нанороботов. Кому надо прокладывать петабайтный канал на другой материк, чтобы управлять контролем температуры в каждой пробирке, если это можно сделать локально? Кому надо передавать данные, большая часть из которых тут же будет уничтожена? В общем виде – никому, так как интересны высокоуровневые результаты, обработанные. И напротив, нужно экономить энергию и материалы – потому данные будут по возможности обрабатываться локально. И храниться локально. Если есть центр продувки аэродинамических моделей, то институту квантовой физики и близко не сдались все петабайты данных о всех продувках всех моделей. Локальная обработка и хранение уникальных данных будут приводить к специализации и разделению на различные системы.
10) ИИ может решить оставить значительные территории для сохранения флоры и фауны. Биосфера и географические препятствия типа гор или водоемов будут делать скорость передачи и обработки информации еще более неравномерной, зависимой от территорий. Территория с ИИ может быть еще более неравномерной, если на территории будут заводы и лаборатории, а не только мозговой кисель.
11) Равномерному распределению ИИ даже по небольшой территории может препятствовать слишком большое энергопотребление и потребность в значительной площади для охлаждения или наоборот, потребность в значительных площадях для сбора солнечной энергии.
12) Различные физические условия среды будут влиять на различную оптимальную конфигурацию ИИ на заданной территории. Когда речь идет о системах масштаба Земли, возникают «смешные» вопросы. Например – сколько атомов того или иного вещества на данной территории (иначе – транспортировать миллиарды тонн вещества на несколько тысяч километров?). Какой тип процессора выгоднее и быстрее всего производить на данной территории с учетом доступного сырья и энергии. Что лучше всего работает при данной температуре на данной географической широте, можно ли погружаться под воду, откуда брать источники энергии на данной территории, какое оптимальное соотношение энергопотребления и производительности для данной территории, и т. д.
12) Будут объединения различного вида – от «однокомнатных» серверных, уровня отдельной бригады, до уровня НИИ, министерства, страны, цивилизации. Но не нужно думать, что все они быстро сольются в один кисель. К этому не видно предпосылок.
ариант 13: Война никогда не кончается. Она переходит на новые уровни противостояния. Конкуренция будет всегда.

Сериализация ИНС

Вторник, Январь 26th, 2010

Стандартный для НЛ родительский шаблонный класс ИНС обеспечивает универсальный гибкий механизм сериализации ИНС.
Для того, чтобы данный тип ИНС можно было сохранить или загрузить через пользовательский интерфейс, ее класс должен быть зарегистрирован как поддерживающий сериализацию. Для этого создается глобальный объект SerializableBrainClassRegistrator с данными о ИНС – с именем класса ИНС и другими. При выборе операции открытия ИНС из файла, сначала считывается имя класса ИНС, затем, если класс с таким именем зарегистрирован как поддерживающий загрузку, происходит создание экземпляра данного класса, и вызывается метод загрузки. Аналогично и с сохранением. Механизм разрешения нужен для того, чтобы не вводить в заблуждение пользователей – так как в научно-любительской программе далеко не все ИНС могут поддерживать сериализацию, из-за неактуальности операции для ее программирования.
При необходимости сериализации, в классах нейронов и связей пользовательской ИНС нужно переопределить функции сохранения и загрузки:

  1. virtual void save(QDataStream & s)const;
  2. virtual bool load(QDataStream & s);

В этих функциях, основываясь на примере реализации в других ИНС, провести сериализацию данных нейрона и связи, специфических для данного класса, и вызвать родительскую версию.
Универсальный алгоритм в упрошенном описании действует так. Проводит сериализацию описания формата и в случае загрузки проверяет, что формат поддерживается.
Сериализует количество нейронов, которое надо загрузить или сохранить. Далее, если нейронов более одного, происходит сериализация тела нейрона. После этого идет код подстраховки – сериализуется проверка на размер данных сериализованного нейрона. Если проверка пройдена, сериализуются и остальные нейроны.
Аналогично происходит сериализация связей. Так как все нейроны уже созданы, то связи можно создавать напрямую. После сериализации первой связи идет код проверки размера связи в сериализованном состоянии.
Также сериализуются: комментарии, точки останова, нейронные группы, и т. д. После данных каждого типа вставляется код проверки. Для сериализации данных, специфических для конкретной ИНС, вместо переопределения функции всей сериализации, удобнее переопределить лишь функцию serializeBrainSpecificData. Если нужно, то можно переопределять и другие функции.

Прогнозирующие связи

Суббота, Январь 23rd, 2010

В самом мягком варианте, прогнозирующие сигналы распространяются по уже рассмотренным цепочкам памяти, а также вверх по обобщающим связям. Но тянет на порядок повысить возможности. Например, хочется иметь возможность:
1) Создавать прямые прогнозирующие связи между нейронами, не дожидаясь выделения соответствующей высокоуровневой цепочки. Кроме создания самой связи, это дает возможность прогнозировать на много циклов вперед сразу, не дожидаясь прохождения подпорогового сигнала по всей цепочке.
2) Кроме возможности прогнозирования далеко вперед по времени, сделать такое прогнозирование как можно более точным
Рассмотрим пункт 1. Как обычно, все важные события запоминаются и заносятся в цепочку памяти. Дополнение к ранее описанным режимам работы: от всех признаков, которые встретились не далее, чем N циклов назад, создать прогнозирующие связи на все признаки, которые встретились в данном цикле. (N для начала возьмем небольшое, порядка 15, а затем покажем, как его увеличить без значительной деградации производительности).
Такой алгоритм по возможной топологии связей между кластерами сразу на порядок увеличивает возможности ИНС. (Пока рассматривается только топология, без анализа влияния таких связей на активацию нейронов). Такие ИНС приближаются по возможностям к ИНС с постоянной пластичностью нейронов. Почему? Потому, что в ИНС с постоянной пластичностью нейронов все равно будут усиливаться только те связи, которые попали в некоторый интервал N – те же, что и тут. Но в ИНС с пластичностью связей будет много таких связей, которые никогда не будут активированы – а тут создаются связи, которые в уже правильно «сработали» и «закрепились». Второе преимущество – в ИНС с пластичностью связей много полезных связей может быть пропущено, а тут они создаются гарантировано.
Видно, что таким алгоритмом будет создаваться очень много связей, большинство из которых малополезны. Их можно и нужно будет удалять после переоценки их важности через некоторый период времени. Формула оценки необходимости удаления будет включать в себя количество правильных срабатываний связи (удачное прогнозирование), возраст связи (молодой связи с небольшим количеством срабатываний надо дать шанс проявить свои полезные качества), параметры нейронов отправки и назначения и важность связи в их контексте, эмоциональный фон значимости. Кроме того, вспомните про среднее значение в несколько тысяч связей у нейрона – есть куда расти.
Но между двумя произвольными признаками уже может быть связь – тогда надо использовать уже существовавшую. Причем, она могла создаваться для работы на других временных задержках. Как повысить точность? Так как имеем дело с ИНС, то возможен любой беспредел. Пусть связь будет содержать информацию о N циклах. Эта информация будет хранить данные о вероятности срабатывания нейрона назначения за данный цикл, отстоящий на некоторое количество шагов от цикла возникновения сигнала. Очень похоже на ТРФ.
Коэффициенты необходимости и достаточности уже рассматривались. Пусть iє[0; N] и А[i] – вероятность Активации нейрона назначения за цикл, отстоящий на i+1 шагов после активации нейрона отправки (плюс один цикл – смысл в том, что в текущем цикле, который может отстоять на 0 шагов от цикла активации, вычисляется вероятность, а вычисленное значение переходит для обработки в следующий цикл). Так как за i шагов нейрон отправки может сработать не один раз, то говорится не «отстоящий на i шагов от _последней_ активации» – а просто активации.
Соответственно, значения коэффициентов массива А[i] должно вычисляться так:
* при активации нейрона-отправителя, сигнал пускается по внутренней цепочке массива коэффициентов прогнозирования. Тут одна связь похожа на целую нейронную цепочку в ИНС, которые рассматривались ранее. В ЕНС, это могут быть различные механизмы отложенного запуска химических реакций.
* при активации нейрона назначения, пересчитываются вероятности для всего массива: если сигнал отправки дошел до некоторого элемента массива – то для этого элемента вероятность увеличивается, для всех остальных – уменьшается.
Что, если хочется не ждать все i циклов, а получить значение прогноза сразу?
Пусть iє[0; N], а Н[i]=1-А[i] – статистическая вероятность того, что нейрон назначения НЕ сработает в цикл, отстоящий на i шагов от активации нейрона отправки.
Пусть j циклов назад, jє[0; N], нейрон отправки был активирован, и других активаций не было. Вероятность того, что за оставшиеся циклы от j до N нейрон назначения также НЕ будет активирован будет П = Произведение( Н[i] ), iє[j; N]. Тогда вероятность того, что сработает хоть раз – (1-П). Ожидаемое количество активаций нейрона назначения С = Сумма( А[i] ), iє[j; N].
Если за время, меньшее N, нейрон отправки был активирован несколько раз, то произведение П следует считать для каждого из сигналов, а потом их перемножить. Сумма всех А[i], iє[j; N], для всех j, даст прогнозируемое количество активаций нейрона назначения. Кто учил теорвер, подскажите точнее :).
Величина N – небольшая. Для больших интервалов прогнозирования, нужно использовать признаки, образы и цепочки памяти, которые работают с большим масштабом времени. Например, полученные в результате обобщения, или в результате выборки по некоторым признакам.
Но можно рассмотреть вариант увеличения интервала прогнозирования без увеличения длины массива коэффициентов прогнозирования. Для этого нужно, чтобы элементы массива отвечали за интервалы времени большие, чем один цикл. Для того, чтобы сохранить баланс точности и длины прогнозирования, предлагается первым элементам массива ставить в соответствие по одному циклу, и лишь после достижения некоторого количества циклов увеличивать соотношение «циклов на элемент массива».

Перенос сознания на внешние носители

Пятница, Январь 22nd, 2010

Копия сообщения «О пропаганде загрузки личности»: http://community.livejournal.com/ru_transhuman/149970.html

Наблюдая в очередной раз дискуссии по поводу того, что «загруженная личность – это уже буду не я», хочется поделиться способом убеждения, основанном на непрерывности самоидентификации. Человеку нужно рассказывать:
Представьте, что вам заменили один нейрон на искусственный. Это еще вы?
Представьте, что заменили еще n+1 нейрон. Это еще вы?
Весь мозг состоит из искусственных нейронов – это еще вы?
Волокнистая искусственная нейросеть начинают потихоньку замещаться централизованным нейропроцессором. Замена возможна, так как в нейросети функции распределены и зарезервированы (от одной рюмки водки умирают в сотни тысяч раз больше нейронов), и временное отсутствие работы одного нейрона не заметно. Это еще вы?
Наконец, главный нейропроцессор можно перенести в другое тело, а можно и просто переписать информацию на другой носитель.
Для особо тяжелых случаев придется ставить мысленный эксперимент с плавной заменой всех клеток тела на искусственные.
После того, как человек согласится с тем, что загрузка сознания – это еще он, предложить рассмотреть вариант: вместо плавной смены сделать все то же самое, но с одномоментным переносом личности сразу на другой носитель. Думаю, сохраняется два отличия:
1) В процессе плавной замены организм «все время жив», смерти нет, остается контроль
2) Нейросеть благодаря контролю сознания плавно меняет самоидентификацию: с «я – обычный человек» через «я – искусственный организм уже на 69%» до «я – программа».
_____
Копия сообщения «Брутальная загрузка»: http://community.livejournal.com/ru_transhuman/150990.html
В продолжение прошлой записи на эту тему. Argonov в комментариях написал:
«Я думаю что если вопрос стоит о пропаганде, то лучше даже близко не касаться процедуры копирования со старого мозга на новый, при которой они не связаны. Этот эксперимент будет подавляющим большинством людей (как следует из моего общения с людьми) встречен в штыки и дискредитирует и другие ваши идеи (объект пропаганды решит, что раз вы не понимаете таких элементарных вещей, то и другие ваши идеи могут оказаться попросту опасными). В глазах публики пропаганда копирования превращает имморталлиста в свою противоположность: в человека, который готов отдать свою жизнь ради того, чтобы сохранить информацию своего мозга для следующих поколений»
Соглашусь с таким выводом. Но так как в данном сообществе люди более подготовленные, то полезно поработать на увеличение УШБ.
Если в техническом плане не возникнет каких-то проблем, то вопрос приемлемости загрузки – это вопрос восприятия.
Те люди и существа, для которых загрузка и смерть носителя субъективно приемлема, при прочих равных условиях получат существенные преимущества. Они смогут:
1) создавать свои копии для помощи себе в работе (если не будет законодательных запретов)
2) быстро совершенствовать свой интеллект (если искусственные технические носители интеллекта будут развиваться быстрее биологических)
3) быстро перемещаться в подготовленные места по компьютерным сетям, либо дешевле перемещаться авиалиниями и другим видами транспорта в виде небольшого процессорного блока, либо дешевле из-за «менее комфортных» условий, и т. д.
Какие особенности могут привести к тому, что человек (в дальнейшем можно называть «существо») будет не против загрузки со смертью прошлого носителя?
1) Особенность самоидентификации, когда субъективное «я» ассоциируется с особенностями нейросети, а не с телом. Причем ассоциируется с теми особенностями нейросети, которые будут моделироваться и исполняться на искусственном носителе, а не со всеми биологическими особенностями. Подобно тому, как написано в заголовке ЖЖ walter-simons – «Я – Программа!». Чем более полно человек понимает работу нейросетей, тем легче прийти к таким выводам.
2) Акцентирование на внешней деятельности, «люди действия». Когда «информация в нейросетях + внешние проекты» важнее, чем «информация в нейросетях + биологическое тело». Эту особенность можно назвать «смещением самоидентификации во внешний мир». Например, я писал свои программы с некоторым вредом для здоровья – так как проекты субъективно важнее. Для меня проекты важнее, чем биологическое тело, и я согласен на ускорение над их работой в обмен на некоторые незначительные субъективные переживания, сравнимые с переездом на новый компьютер со старого.
3) Негативные стимулы. Хронические болезни и постоянная боль могут толкать на отделение восприятия себя от тела: «Я могу нормально мыслить, но тело своей болью мешает». Приводит к пунктам 1 и 2, что может вылиться в согласие на загрузку даже без угрозы скорой смерти.
4) Угроза смерти, смерть и восстановление после крионирования.
5) Повторная загрузка. После того, как сознание было перенесено на искусственный носитель, самоидентификация должна безвозвратно поменяться, в направлении пунктов 1 и 2. Не важно, что привело к загрузке первый раз – повторные загрузки становятся рутинной операцией. Тут действуют сразу несколько факторов. Успешность опыта и устранение страхов: «Лег на стол, проснулся в новом теле – можно повторить. Какая еще смерть?». Смена идентификации: «Безразлично, что за носитель – главное, чтоб мышление было побыстрее». Легкость повторной загрузки – данные хранятся в формате, удобном для переноса. И легкость сохранения непрерывности сознания при повторных загрузках – если это еще будет иметь значение («Прерывность сознания? Практически сон, только быстрее»). Все это еще более повысит преимущества загруженных.
6) Внешние примеры. Примеры успешной загрузки у других людей. Реклама. Обман поставщиков услуги – «Никакой смерти, непрерывный перенос!». Религиозные необуддистские культы и секты, и прочее.
Вывод – эволюции наплевать на субъективные ощущения. Если только они не мешают самой эволюции.

История навигации

Пятница, Январь 22nd, 2010

Чтобы не сохранять (в другой программе типа текстового редактора) идентификаторы нейронов и кластеров, к которым нужно будет еще раз вернуться при отладке, в Нейролабораторию добавлено ведение истории навигации. Идея – та же, что и в Visual Studio, когда ведется история перехода курсором по файлам и строкам внутри файла.
Следующие события сохраняются:
* Выделение и снятие выделения с нейронов
* Выделение текущей связи
* Подсветка циклов
* Копирование текста
Для всех из списка возможна отмена и повтор действия. Для того, чтобы отмена приводила к как можно более похожему состоянию, введены такие дополнения. Информация о выделении нейронов содержит два списка – с выделенными и погашенными нейронами. При отмене, списки меняются местами – исходно выделенные нейроны гасятся, погашенные – выделяются.
Некоторое действие (например, выделение цикла) может привести к множеству действий (например – к выделению нейронов, созданных в том цикле). Спровоцированное действие также попадет в историю навигации. Но отменять и повторять их по одиночке неправильно, нужно обрабатывать их вместе. Для автоматизации группировки используется создание объекта NLUndoLock. При создании, этот объект регистрируется. (Соответственно, и при уничтожении этого объекта, он также оповещает свое хранилище). Если других аналогичных живых объектов нету, то начинается новый блок действий, иначе используется старый. В таблице истории навигации, группировка в блоки показывается стандартными скобками. Красным маркером показывается текущая позиция курсора отмены/повторения, а по совместительству – и курсора занесения истории новых команд.


Окно навигационных действий

Понимание структуры ИНС-2

Четверг, Январь 21st, 2010

Продолжение.
С ростом сложности ИНС, рассмотренных способов ориентирования в структуре ИНС становится недостаточно. Желательно визуально отображать структуру. Визуальное отображение на двухмерной карте ИНС мало помогает. Решение:
1) Применять дополнительную карту для отображения структуры
2) На этой дополнительной карте отображать не все нейроны, а только выбранного кластера и всех его признаков – рекурсивно. (Если не повезет, то из-за рекурсии на карту может попасть слишком много нейронов).
3) Вместо отображения каждого нейрона кластера, отображать кластеры высокоуровнево – одним квазинейроном на кластер. Для ИНС Б2 экономия в площади – девятикратная.
4) Вместо отображения кластеров в порядке создания, использовать двухмерную сортировку – по уровню иерархии и очередности срабатывания


Сравнение нового и старого способа просмотра цепочек


Чтобы было понятнее, зачем все это городить, можно взглянуть на фрагмент ИНС чуть посложнее:


Пример двухмерной сортировки – синие линии отделяют уровни иерархии


Детали устройства со стороны разработчика ИНС:
1) Если ИНС сообщает, что в ней есть кластеры, то при загрузке окон окружения ИНС создается и окно для отображения структуры нейронных цепочек
2) Каждый нейрон может переопределить функцию INeuroCluster* cluster()
3) В своей реализации INeuroCluster, зависящем от ИНС, можно возвращать список кластеров-признаков и кластера, предыдущего в цепочке памяти. Для ИНС Б2 используются кластеры нейронов всех связей с nEn и nIn.

Детали устройства со стороны разработчика интерфейса Нейролаборатории:
1) Для двухмерной сортировки и отображения структуры используется служебная ИНС. ИНС этого типа нельзя создать через интерфейс в качестве самостоятельной ИНС для исследований в НЛ.
2) Каждый нейрон этой ИНС соответствует кластеру главной ИНС.
3) Команду отображения цепочки можно вызвать несколькими способами: выбором кластера в таблице кластеров, двойным щелчком по идентификатору кластера в таблице нейронов, связей или нейронных цепочек, путем ввода идентификатора кластера в окне для отображения цепочек
4) После получения команды отображения цепочки по кластеру, у заданного кластера рекурсивно получаются все признаки и все кластеры, предшествующие в цепочках. Для них создаются соответствующие нейроны и связи между ними. Связи строятся двух типов – «признак обобщения» и «следствие».
5) Производится двухмерная сортировка. Все квазинейроны вначале имеют один и тот же уровень иерархии и время срабатывания. Начиная с кластера-инициатора, рекурсивно распространяется информация о том, что кластер-признак – ниже по иерархии. У заданного кластера, кластеры-признаки вместе с кластерами, предыдущими в цепочке, получают также информацию о том, что они должны сработать как минимум на цикл раньше, чем заданный кластер. В смысле реализации, вычисления производятся итеративно, а не рекурсивно – чтобы не переполнить стек. Если за всю итерацию ни один квазинейрон не получил инфорамцию о том, что его уровень иерархии надо еще более понизить, а максимальное время срабатывания – еще более отсрочить, то вычисления прекращаются. Если количество итераций превысило количество нейронов, это значит, что в данном фрагменте ИНС наблюдается зацикливание, и вычисления прекращаются.
6) Полученные относительные числа нормализуются: уровни иерархии и время срабатывания индексируются от нуля и выше, последовательно. По этим индексам строится отображение. В каждом столбце заносятся квазинейроны с одним и тем же интервалом максимального первого срабатывания. Уровни иерархии заносятся как отдельные строки и выделяются синими линиями. Выделение линий важно, так как в одном столбце могут быть несколько квазинейронов и несколько уровней, как на втором рисунке.

Понимание структуры ИНС в Нейролаборатории

Четверг, Январь 21st, 2010

В Нейролаборатории, перед вами нейрон цепочки памяти. Как понять, что именно он запоминал? Вариантов много.
Можно сделать двойной щелчок в строке этого нейрона по ячейке с циклом создания нейрона. Тогда по всем окнам пройдет сообщение «подсветить цикл №Х». В окне истории ввода/вывода будет подсвечена та строка с вводом/выводом, цикл создания которой наиболее близок к подсвечиваемому. Наиболее вероятно – что будет подсвечен тот ввод/вывод, который и был связан с данным нейроном и кластером. Можно будет сориентироваться, что за текст обрабатывался системой в момент создания кластера.


Двойной щелчок по циклу создания нейронов


Можно иначе. В кластере этого нейрона, выбрать нейрон контура nIn, и в окне с таблицей связей посмотреть на все его признаки и, таким образом, увидеть, что именно запоминал данный кластер (или что он распознает). Можно перейти на запомненные признаки по двойному щелчку их идентификатора в таблице связей – но если нужно только узнать, что за буквы были запомнены, то достаточно посмотреть комментарий нейрона, на который указывает связь, в той же таблице связей, в столбце правее.
Обычно достаточно выделить нейрон контура nIn в таблице связей. Если уже выбран нейрон другого контура, и нужно выбрать nIn, то, чтобы не переключать внимание на таблицу нейронов, не открывать ее, не искать визуально границ кластера и nIn в нем, можно в окне с таблицей связей выбрать из выпадающего списка нейрон нужного типа – там все нейроны кластера того нейрона, связи которого уже отображаются.
Вариант с подсветкой цикла проще. Однако, он не подходит, если нейрон был создан во время обобщения других нейронных цепочек – так как никакого ввода/вывода и обмена с внешней средой в тот момент не было, а если и был – то не относится к обобщению. Не проблема. В ИНС обычно есть окно с логированием. В информацию каждой строки лога входит и цикл логирования. Хороший тон – заносить в лог информацию о том, что за цепочки выбраны для обобщения. В ответ на глобальное сообщение о подсветке цикла, таблица логов также подсвечивает строку с циклом, наиболее близком к циклу сообщения. Там будет текст типа «сон 2ВЦ обобщение: выбраны н-ы 901 и 869». Можно ввести идентификатор одного из нейронов в поле ввода идентификатора в таблице связей, и далее применять просмотр связей. Но вводить вручную долго. Вместо этого можно сделать щелчек средней кнопкой мыши в любой ячейке таблицы. Из текста в ячейке таблицы будут выделены числа, и показано окно с выбором, что сделать с любым из чисел – подсветить нейрон с таким идентификатором или цикл с таким номером. После нажатия на кнопку действия, окно само закроется.


Выделить цикл -> окно логов -> выделить нейрон


Но что, если запомнены высокоуровневые признаки, у которых нет комментария? Если бы вы отлаживали чужую ИНС подобно коду на ассемблере в чужой программе, то можно было бы самому задавать комментарии.
Для частичного решения проблемы применяется автоматическое назначение комментариев. Алгоритм следующий.
1) У сенсорных нейронов комментарии не меняются и соответствуют воспринимаемым буквам
2) У кластеров цепочек памяти, если была изменена – добавлена или удалена – хотя бы одна связь, выставляется флаг «пересчитать комментарий»
3) Один раз на каждую высокоуровневую итерацию происходит перерасчет комментариев.
4) Всем нейронам кластера дается одинаковый для всех комментарий. Поэтому можно говорить «комментарий кластера» вместо «комментарий нейрона».
5) Комментарий у кластера берется так: в скобках перечисляются комментарии всех признаков, которые входят в nIn, а разделяются они через вертикальную черту или иной разделитель. Например, сенсорный нейрон «а» запомнен кластером, кластер принимает комментарий «(а)».
6) Каждый признак, который запомнен кластером, рассматривается как цепочка. Вся такая цепочка заносится в комментарий. Например, некоторая цепочка запомнила слог «об», двумя кластерами – которые имеют комментарии «(о)» и «(б)». Если второй кластер это цепочки будет распознан и станет признаком некоторой другой цепочки, то он войдет в нее как «((о)|(б))»
7) После того, как комментарий кластера поменялся, информация о том, что нужно обновить комментарий, выставляется для всех зависимых от него кластеров – для кластера, следующего в цепочке, и для более высокоуровневых кластеров. Их комментарии будут обновлены в следующей итерации.

Разное

Среда, Январь 20th, 2010

http://airwar.ru/enc/ah/rah66.html

Т800 – двигатель Команча )) шутники…
«нтересно проследить рост стоимости бортовой электроники у вертолетов армии США: стоимость электронного оборудования вертолета АН-64 «Апач» составляет 40% стоимости всего вертолета, OH-58D «Кайова»-50%, а у вертолета RAH-66 «Команч» – 60%.»