Archive for Декабрь, 2008

№63 Новогодняя песня от группы «Мясокомбинат им. Путина №1″ – «happy nu 2007 yr»

Среда, Декабрь 24th, 2008

Во время НГ запись рискует остаться незамеченной, потому сейчас. Итак, проникнитесь предновогодним настроением… Вот уже второй год эта песня согревает души людей перед и после новогодних праздников…
Прослушать эту актуальную песню можно здесь:

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

или тут: http://www.realmusic.ru/comments/track/259665/
Мясокомбинат им. Путина №1 – «happy nu 2007 yr»
История создания: Вслед за эстрадными звёздами мы тоже решили записать свою «новогоднюю» песню…
Текст:
Новая опера, всё те же сцены:
Экономика на подъеме, а вместе с ней и цены.
Рискует быть побитым мирный прохожий,
Белый снег летит прямо в рожу…

С каждым новым годом я чувствую себя хуже,
Петля на шее народа становится уже и уже…

Мне больно видеть, что который год
Число живых грибов неуклонно растёт.
Смысл их жизни сводится к словам:
«Унижай других и унижайся сам!»

С Новым Годом!
С новым счастьем!
В каждой тюрьме
И военной части!

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

С Новым Годом!
С новым счастьем!
В каждой тюрьме
И военной части!

С каждым новым годом я чувствую себя хуже,
Петля на шее народа становится уже и уже…

№62 ИНС и ДНК

Вторник, Декабрь 23rd, 2008

У (ассоциативных) ИНС и ДНК очень много схожего. Сейчас рассмотрим только одну задачу, которая возникает в обеих предметных областях. А именно,
«№54 Автоматическое выделение закономерностей быстрой памятью» ( http://neurocod.net/blog/2008/2008/12/№54-автоматическое-выделение-закономе )

Похожая задача возникает при анализе ДНК разных видов с целью нахождения похожих генов, направлений их изменений
1) Похожие гены могут находиться в разных хромосомах или в разных участках одной и той же хромосомы
2) Гены могут отличаться: при мутациях могут удаляться отдельные нуклеотиды
3) Добавляться новые нуклеотиды
4) Нуклеотиды могут меняться

И вот с такими условиями, нужно найти похожие гены, определить их границы.
Теперь перенесем эту задачу на нейро-ИИ. Добавляются усложнения:
5) Вместо четырех «предустановленных» значений/объектов (А/Т/Г/Ц), которые встречаются на каждом шагу, их может быть сколько угодно – вся сенсорная зона, все нейроны памяти
6) На каждом шагу, вместо одного значения среди многих доступных (одна ассоциация), ассоциаций может быть множество (куча «нуклеотидов» на каждой позиции, при том, что «нуклеотидов» – тысячи).
7) Мало уметь выделять такие закономерности – надо интегрировать их в остальные системы, так, чтобы они распознавались и запоминались, были доступны для повторного переосмысления, конкурировали за важность и правдивость, забывались, чтобы работало прогнозирование и планирование.

Ради развлечения:
Вот здесь можно выбрать вид http://www.ncbi.nlm.nih.gov/mapview/
Здесь – человеческую хромосому: http://www.ncbi.nlm.nih.gov/projects/mapview/map_search.cgi?taxid=9606
И путешествовать по ней, приближая и отдаляясь: http://www.ncbi.nlm.nih.gov/projects/mapview/maps.cgi?taxid=9606&chr=2

№61 Сценарий действий теневиков при получении развитого ИИ

Пятница, Декабрь 19th, 2008

1) При достаточной координации теневых управляющих центров (а такая координация наблюдается), контролирующих капиталл, транснациональные корпорации, ИТ-индустрию и вооруженные силы США,
2) и при попадании развитой технологии ИИ в их руки
можно рассмотреть развитие следующего сценария.

1) Большие и средние вычислительные мощности становятся военным фактором. Активизируется перевод населения на использование таких маломощных платформ, как нетбуки, смартфоны, и также игровые приставки. Игровые приставки снова будут приспособлены только для игр, но не произвольных программ. Этого достаточно для контроля за населением, для угасающей экономической деятельности населения, для развлечения населения.
2) Сворачивание поставок не только пользовательских ПК, но и серверов. Замена – «облачные вычисления» и «вычисления по требованию», при котором вычислительные ресурсы централизованы, вычислительные центры сравнительно немногочисленны, дороги и хорошо контролируются. Не даром в последнее время оба этих направления развиваются усиленными темпами, включая Майкрософт.
3) Введение законодательных запретов на экспорт вычислительных мощностей, превышающих некоторый порог.
4) С материалами по ИИ будет, как и с ядерной физикой, о которой в двадцатые-тридцатые годы еще открыто писали в журналах. Потом, когда стало понятно, что это уже не игрушки, был введен запрет на открытую публикацию важных научно-технических материалов.
5) Отпуск кризиса с тормозов: большое количество инженеров уже не нужно держать про запас, население можно уничтожать еще более активно.
6) Главное правило теневиков по отношению к НТР – «лучше медленнее, но с полным контролем»
7) Главное направление использования ИИ – мягкое зомбирование населения, оскотинивание, для лучшего контроля и устранения угрозы для своей власти. Второе – использование для войны, но менее активно, чем первое, так как горячая война более опасна для начинающего, чем незаметное разрушение страны изнутри.

№60 Использование поля типа нейрона

Пятница, Декабрь 19th, 2008

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

№59 Нейронные сети с простыми кластерами

Четверг, Декабрь 18th, 2008

Немного времени уделим изучению ИНС с относительно простыми кластерами. Сразу же замечу, что эта ветвь исследований на данный момент считается мной промежуточной и отработавшей свое. Я такие схемы больше не использую. Зачем же их рассматривать? Ответы:
1) На этих простых схемах были отработаны некоторые части алгоритмов, применимые и в дальнейшем
2) Начинать изучение лучше с простого – так легче учиться
3) После изучения недостатков становятся понятны причины, по которым введены более сложные схемы.
(Четвертое – маленький исторический экскурс. Небольшой – потому, что над такими схемами я работал большую часть времени, а рассмотрены они будут поверхностно. Но кого интересуют десятки моделей старых поршневых самолетов, когда на подходе ознакомление с реактивной авиацией?).

Для начала нужно указать, почему кластеры простые. Простые они в сравнении с более поздними версиями. В простых кластерах минимальна специализация между нейронами. Самый простой кластер – с нейронами одного типа, который можно аппроксимировать одним искусственным нейроном. Так и будем поступать в дальнейшем – все однотипные нейроны внутри кластера по возможности объединять в один сложный квазинейрон (обычно будем называть просто «нейрон»). Объединение производится для экономии памяти, быстродействия и получения простоты модели. С памятью понятно – меньше нейронов и связей, меньше используется память. С быстродействием тоже – меньшее количество нейронов нужно будет обрабатывать. Дополнительно – например, вместо нескольких циклов, за которые будут осуществляться внутрикластерные пересылки, можно держать эквивалентную усредненную активацию на квазинейроне. Тогда быстродействие можно будет повысить также уменьшением частоты дискретизации тактов нейросети. Это – короткое напоминание после перерыва между публикациями.

Сейчас попытаемся собрать воедино рассмотренные ранее аспекты, добавить дополнительные характеристики, и получить систему с новыми качествами. На данный момент известно, как:
- создавать примитивные распознающие (гностические) и нисходящие (прогностические) цепочки воспоминаний
- коэффициенты необходимости и достаточности, концепция их использования при запоминании ( «№29 Распознавание и прогнозирование, активация и торможение, необходимость и достаточность» ( http://neurocod.net/blog/2008/2008/08/№29-распознавание-и-прогнозирование-а ) )

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

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

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

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

Появляется задача создать для некоторых видов сенсоров нейроны (либо другой механизм), которые будут реагировать на повтор признака, как на один признак. Например, созданием нового нейрона «признак А повторяется некоторое время не более N циклов», с механизмом срабатывания такого нейрона по нужным законам. В биологии за такое поведение вполне могут отвечать специализированные зоны. Но не буду гадать.

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

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

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

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

Задача: попытаться создать архитектуру нисходяще-восходящей цепочки памяти на самых простых кластерах – с минимальной специализацией нейронов.


Рис. 59.1

На рисунке показано три цепочки. Для простоты и наглядности рисунка, в каждом шаге распознавания каждой цепочкой распознаются по три признака. Красным выделены нейроны, производящие распознавание. У всех трех цепочек есть общий недостаток: нет разделения на режим распознавания и прогнозирования. После распознавания очередного элемента цепочки, по нисходящим связям шлется прогнозирующий сигнал на признаки следующего шага. Это полезно и близко к биологии – после распознавания, подготавливается ассоциативный контекст для более легкого последующего распознавания признаков. Но это также снижает прогнозируемость работы ИНС для разработчика. Что, если прогнозирующие сигналы приведут к ложному срабатыванию признаков и занесению их в память? Система с галлюцинациями – ужас разработчика ИИ. Механизмы прогнозирования нужно уметь контролировать точнее. Можно выдвинуть предположение, что механизм контроля над прогнозированием не вшит в архитектуру цепочки памяти, а появляется как надстройка над большим количеством цепочек памяти, может, и при участии ассоциаций на специализированные отделы мозга. (Детали этого механизма сейчас рассматривать не к месту). В более поздних архитектурах, для контролируемости прогнозирования было применено другое решение, более простое: изменена архитектура цепочки памяти, так что контроль над прогнозированием стал присущ всем воспоминаниям.

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

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

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

Но разве в биологических цепочках памяти наблюдаются такие проблемы? Плюс-минус один такт, цепочка не сработала… При большой дискретизации срабатывания нейронов (как в биологических НС), и при значительной нечеткости цепочек памяти («№42 Методы привнесения нечеткости в нисходящие и восходящие нейронные цепочки» ( http://neurocod.net/blog/2008/2008/08/№42-методы-привнесения-нечеткости-в-ни )), эти проблемы для НС не существенны. Но мы исследуем вопрос максимально допустимой оптимизации ИНС. Например, минимально допустимая дискретизация при восприятии чтении ИНС букв – хватит ли одного такта на чтение одной буквы? И двух нейронов на одну ассоциацию? Или придется читать букву раз в два, три, десять, пятьдесят тактов? Выделять на чтение одной буквы сотню спайков и триста нейронов в одном кластере? Минимализм интересен не только с точки зрения теории, но и важен на практике, для ускорения работы ИНС. До какого минимально допустимого уровня можно снижать нечеткость цепочки? Да и чтобы строить нечеткие цепочки, нужно научиться и отточить мастерство на четких.

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

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

№58 NL UI: Производительность

Среда, Декабрь 17th, 2008

Основное предназначение Нейролаборатории на данный момент – оказывать помощь в научных исследованиях. Отсюда следует, например, что пока размеры оперативной памяти позволяют – все можно хранить в ней, не нужно тратить время на написание кода сохранения данных на жесткий диск. Разве что нужно будет сохранение информации между сессиями отладки – но пока и в этом не было необходимости. При часто меняющихся моделях нейросетей, быстрее запустить нейросеть на рост и обучение заново, чем задумываться о совместимости сохраненных и новых форматов нейронов, допустимости сохраненных состояний нейросети при новых алгоритмах ее развития. Второй аспект – производительность. При ста тысячах нейронов, задержки заметны только после остановки нейросети, когда требуется обновить информацию во всех представлениях. Просмотр/выделение происходит без задержек. Разве что в карте нейросети, когда происходит вывод большого числа связей с использованием градиентов- тормозит перерисовка. Именно для таких случаев и используются кнопки для прекращения использования градиентов и отключения прорисовки связей.


Рис. 58.1 Сто тысяч нейронов

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

Рассмотрим выпускаемую серийно материнскую плату Intel P45. Это – mainstram плата. Для обычных домашних пользователей, а не серверная. Максимальное количество поддерживаемой оперативной памяти – 16 Гб. На 2009й год и Intel, и AMD анонсировали выпуск ЦП с гибридной архитектурой – интегрированные с ЦП видеокарты. Это должно значительно повысить быстродействие ЦП и количество доступных для обычного разработчика ядер. Так, у последних моделей видеокарт максимальная теоретическая производительность составляет около 1 Терафлопс.

Mainstram-платы важны потому, что обладают наибольшим показателем производительность/цена. Именно на таких решениях строятся, например, поисковые системы. Именно эти решения наиболее доступны небогатому разработчику ИИ.

Но есть еще и серверные решения. Показатель производительность/цена, по моим ощущениям, примерно в пять раз больше, чем в массовых решениях. Но зато и показатели соответствующие. Материнские платы – вплоть до 256 Гб ОП. Это – конфигурации для «элитного» «сильного ИИ».

Если ориентироваться на несколько лет вперед, то можно представить такую платформу: массовый сегмент – 32-64 Гб ОП, серверный – 0.5-1 Тб ОП. Вычислительная способность примерно соответствующая ОП.

Если бы я родился на несколько лет раньше, то, скорее всего, выбрал бы одну из «последовательных» архитектур ИНС. Помню, как тормозили школьные компьютеры с 32 Мб ОП… Как хотелось создавать программы поменьше, размером в несколько мегабайт. Но сейчас не те времена, и концепцию ИНС можно пересмотреть. Чем загрузить хотя бы 128 Гб ОП, при пропускной способности также в 128 Гб/сек (ccNUMA-архитектура)? (Ну а для целей тестирования – хоть бы и домашний ПК с 4 ГБ ОП). Если дать требование, чтобы система работала со скоростью человека – пусть около 10 тактов высокоуровневой ИНС в секунду, то это будет – по 12 Гб (300 Мб) трафика нейросети на такт. При пересылках активируются не все нейроны. Пусть активных нейронов, чтобы занять этот трафик в 10 Гб, будет около 100 000. Вы можете себе представить 100 000 активных нейронов, из миллиона-десяти неактивных? Даже расположив в одну таблицу только активные нейроны, без связей, выйдет что-то запредельное…

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

НЛ 3 проектировалась с учетом современных и ожидающихся возможностей. Qt уже доступна и на 64-битовых ОС. Один из плюсов Qt – формирование строк для форматирования, как и в .NET (“{0}”), производится независимо от типа данных (“%1”); 32 или 64 бита – не важно. Не то, что в printf.

НС в НЛ 3 загодя подготавливаются к 64 битам. Количество циклов в НС считается как UINT64. Циклы создания нейронов/связей – тоже. Идентификаторы нейронов пока оставлены 32х-битовыми – на случай, если пару сотен мегабайт в 32х-битовой системе будет не хватать для экспериментов на ближайший год. Но тип данных «идентификатор нейрона» всюду используется как синоним (typedef UINT bioId;) – и заменить с 32 на 64 бита будет легко.

Зачем могут потребоваться миллионы нейронов? Со временем, загрузить в ИНС:
1) Словари русский/украинский/английский/другие – с учетом всех словоформ, со ссылками на синонимы/антонимы/гиперонимы и т. д.
2) Смысл слов – со всеми основными значениями, с переносными смыслами, фразеологизмами и т. д. Примеры употребления всех слов.
3) Правила языка, речи, общения
4) Наконец, БЗ о мире. В качестве таковой мне очень хочется взять всю Википедию. В распакованном виде одна из предыдущих версий только русской википедии, вместе со страницами обсуждений, занимала на жестком диске 14 Гигабайт.
5) Ну и еще хочется скормить НС весь MSDN, Java SDK, произведения Пушкина, научно-популярную литературу, и много чего еще :)
6) Со временем, через пару лет, добавить также аудиоанализ, затем – анализ статических изображений, затем – полноценное видео, в том числе из YouTube, информацию из google maps и т. д.

№57 NL UI: Точки останова

Среда, Декабрь 17th, 2008

Таблицы метаданных для доступа к полям и функциям класса, используемые в Нейролаборатории, описаны в записи №40. Эти же таблицы позволяют создавать проверки условий для объектов, для которых существуют таблицы с метаданными. На основе проверок условий реализуются точки останова нейросети (breakpoints).


Рис. 57.1

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

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

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

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

№56 Новый этап

Среда, Декабрь 17th, 2008

Прошлый этап, как указано в ЖЖ, закончен. Новый еще не начат, но уже рвется наружу. Вот, уже пишу в ЖЖ с рабочего места – настолько этап рвется. Значит, будут ползучие «внеэтапные» внеочередные записи меньшего качества. Чтобы не давать теорию сразу всю, также выложу немного описаний и снимков НЛ 3. Чтобы, если буду выкладывать саму НЛ3, эти статьи заменили руководство пользователя.

Если выложить все сразу, собственное мышление читающих не будет простимулировано, и качество усвоения будет хуже. Кроме того, если немного тянуть, то будет сохраняться разрыв. (Пока опубликую достижения – достигну новых). Я хочу оставить себе фору. Преимущество будет наблюдаться в том, что
1) Первоначальному разработчику решение проблемы дает много опыта, интуицию
2) Небольшое преимущество по времени – буду на несколько шагов впереди относительно того, что публикую.

№55 После попадания технологии ИИ в цепкие руки

Вторник, Декабрь 16th, 2008

После попадания технологии ИИ в цепкие руки, логичной видится следующая схема развития:

1) Создание ИИ
2) Переход части промышленности на следующую парадигму программирования – нечеткую образно-ассоциативную
3) Разработка при помощи инструментов, полученных на предыдущей стадии, новейших инструментов CAD/CAE и т. д. и т. п., при их помощи – новых систем управления промышленностью и социумом, гибких производственных систем, прогресс в космической индустрии, научном обосновании черной магии и т. д.
4) Деградация и углубление скрытого контроля над развитием других стран, а в это время – разработка Future Combat Systems – с новым качеством и скоростью (FCS, управляемые ИИ)
5) Те, кто остался неподконтрольным на предыдущей стадии, устраняются во время горячей фазы войны за мировой господство

Дополнительно. Скорее всего, за один шаг мировое господство атлантический блок в очередной раз захватить не успеет. В самый последний момент Россия/Китай/кто-там-еще пресекут победное шествие разрушителей.
Поэтому разрушителям ставится задача подготовить стратегию на шаг вперед.
Предлагаю использовать Луну в качестве следующей базы пребывания.
В свое время, Англия и США сыграли важную роль в качестве основной базы для мировой закулисы. Их плюс – положение на окраине, недоступность для прямого удара, и быстрый доступ ко многим территориям со стороны берегов, на незащищенную периферию. При увеличении возможностей Жизни на Земле, пространство и время «сжимаются», а потому Луна становится достойным местом для превращения в основную базу. Через контроль Луны будет осуществляться контроль над освоением всего Космоса. Спутники связи Земли, зондирование Земли, вывод аппаратов с Земли для перелета на другие планеты могут контролироваться с Луны. С Луны намного менее энергозатратно запускать грузы, принимать солнечную электроэнергию, мешать выводу чужих аппаратов в Космос. Ведь почти любой аппарат должен сделать пару витков вокруг Земли – и пролететь возле Луны. Иначе – гигантские затраты энергии. С обратной стороны Луны можно надежно укрыться от посторонних глаз, защитить производство, скрыть военные системы, спрятать центры обработки данных. Кто контролирует Луну – контролирует Солнечную систему!
(Освоение Луны будет происходить, большей частью, автоматизировано, возможно – при некоторой помощи инопланетян)
Потому добавим шестой пункт:
6) Создание базы на Луне сразу же после приобретения соответствующих возможностей. Примечание: создание базы на Луне можно проводить только тогда, когда увеличение мечтательности людей можно компенсировать, либо через скрытое управление, либо через прямую интервенцию.
____
комментарии:
d_b_dragon wrote:
Dec. 16th, 2008 07:30 pm (UTC)
Если пренебречь некоторой долей юмора в этой схеме, и не пытаться заглянуть так далеко, то можно уже сейчас наблюдать забавную проблему между пунктами №0 и №1, а так же между пунктами №1 и №2. Под пунктом №0 я подразумеваю «попадание технологии ИИ в цепкие руки».
По долгу работы мне приходится иметь дело с продюсерами и инвесторами, и как человек, способный добыть деньги на какой-нибудь проект, я вижу большую проблему – отсутствие явной видимой выгоды в создании ИИ, ради которой кто-нибудь взялся бы финансировать это самое создание ИИ.
Вот, допустим, компьютерная игра, вроде простеньких программ размером 10…50Мб, которые продаются в Интернете по 20$ – за шесть месяцев с бюджетом в 30000$ можно вполне сделать конкурентноспособный продукт, а затем в течении года отбить вложенные деньги и получать прибыль (размер которой будет определяться талантом разработчиков и хваткой маркетологов). Эта схема отработана годами и вполне понятна инвесторам.
А вот ИИ – как его преподнести? Как заинтересовать инвестора вложить деньги в Девятое (и вероятно последнее для человечества) Чудо Света?
Именно поэтому сейчас мы видим довольно забавную ситуацию в мире финансирования нейротехнологий. Форекс, поиск закономерностей в разном хаосе, рапознавание изображений/звуков, улучшение обработки поисковых запросов. Доминируют нейросети, причем как нечто довольно прозрачное для понимания и заточенное под решение конкретных задач. ИИ как такового нет.

neurocod wrote:
Dec. 16th, 2008 10:40 pm (UTC)
Логика мелких и средних инвесторов, наверное, такова: раз даже в крутых НИИ пока и близко не подошли к созданию ИИ, то нам, инвесторам, в этой «философии» (любви к мудрости) искать прибыли пока нечего.
Крупные ИТ-корпорации исследования ИИ пытаются проводить постоянно.
В США происходила (сейчас немного меньше, насколько позволят начинающийся кризис) накачка ИТ-сектора средствами при помощи опосредованного управления. Высокие рейтинги, дешевые кредиты и шумиха вокруг ИТ создаются хорошо сплоченной группой – все той же группой, что контролирует рейтинговые агентства, банки и СМИ. Так что заинтересованность в электронике и сопутствующих продуктах в США больше, чем кажется, просто эта заинтересованность умышленно обезличена. Это – сравнительно неплохой способ развития выбранной отрасли, в сравнении с финансированием только избранных проектов. Отдельно избранные проекты также финансируются – но много более гарантированный результат дает накачка ресурсами целой отрасли – так, чтобы туда устремились лучшие умы (те, которые остались после высасывании мозгов в финансисты).
«Когда приходит Большая Волна, на ней всё поднимается плавно и неотвратимо, и не нужно поднимать лодки отдельно, корабли отдельно, притапливать камни – всё поднимется на определённый уровень и вовремя. А что должно остаться на месте – скроется под водой».
Под эту заинтересованность электроникой попадает и ИИ.
В других странах заинтересованность меньше, так как и свободных денег меньше (доллар – единственная мировая волюта, которую можно было печатать и печатать и печатать, а на напечатанные доллары накачивать нужные отрасли), и субъектность страдает… Вот взять, к примеру, Украину, в которой я живу. Центр стратегического управления у нее тот же – уже давно не скрываются, даже на деньгах себя рекламируют:


№54 Автоматическое выделение закономерностей быстрой памятью

Вторник, Декабрь 16th, 2008

Поздравляю: приближаемся к серьезным вещам…

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

О различиях быстрой и медленной памяти, термине «нисходящая цепочка» и другом было сказано ранее.

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

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

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

Сам алгоритм разработать не сложно. Трудности кроются в деталях.
1) Различное расстояние между одинаковыми признаками в каждой из цепочек. Как именно (где) и как долго сохранять информацию на признаке назначения после нисходящей посылки.
2) Из существования разрывов различных задержек, возможны различные интерпретации выделения общих подпоследовательностей. Нужно выделять несколько подпоследовательностей, а для использования предпочитать тех, кто показал большую состоятельность: более часто встречается, показывает более точные результаты при прогнозировании.
3) Распознанные цепочки должны быть интегрированы в мышление, чтобы при встрече аналогичных последовательностей, соответствующие созданные гностические цепочки распознавались, заносились в основную цепочку памяти, тормозили исходные признаки (иногда не поностью)

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

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

Реализуйте этот алгоритм, и наслаждайтесь доминированием