Archive for Май, 2009

Обновления Qt

Воскресенье, Май 31st, 2009

Запоздалая констатация: после покупки Troolltech by Nokia, Qt стала более доступной. В частности, теперь бесплатно доступен Visual Studio Add-in (раньше нужно было использовать torrent’ы :) ), а LGPL/Free версия Qt разрешает создавать проприетарные приложения (http://www.qtsoftware.com/downloads). Также, давно доступна собственная IDE – Qt Creator, в дополнение к возможности использовать Visual Studio и Eclipse.

Сценарий раскачки контролируемой ИИ-военщины

Суббота, Май 30th, 2009

Кто-то из славян (допустим, я :) ) создает зачатки ИИ. Атлантический блок, после небольшой подготовки агитационных материалов, с целью перехвата инициативы, обращается к своим разработчикам: «в России давно создали ИИ. Нам удалось добыть их старые разработки – полюбуйтесь. Сейчас, по нашим сведениям, там полным ходом идет скрытая подготовка к Войне на восстановление мирового контроля уровня СССР. Догнать и перегнать!»

Так не сделать атлантисты не смогут – иначе, новый козырь (ИИ) перед несколькими «земляными» миллиардами продолжит таять на глазах с ускоренными темпами.

Кстати, «Робокопы для бедных Пентагона»: http://www.computerra.ru/vision/429294/

Загрузка для бедных

Суббота, Май 30th, 2009

http://washbrain.narod.ru/video.htm

Новости НС с kurzweilai.net

Суббота, Май 23rd, 2009

Пол года не читал http://www.kurzweilai.net/ , пришло время наверстывать упущенное. Самые интересные куски будут собираться здесь. (далее…)

Пояснение к рубрикам

Пятница, Май 22nd, 2009

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

Для викисловаря: шаблон «длина слова»

Воскресенье, Май 3rd, 2009

Для ru.wiktionary.org : код для проверки необходимости добавления шаблона «длина слова», для каждого языка в словарной статье. На С++/Qt. Для использования нужно подключить QString и QList. Код не оптимизирован, но, учитывая скорость передачи данных по сети при редактировании, это не проблема. (далее…)

№94 Начальная схема кластера и выделение совпадений в ИНС Б2

Пятница, Май 1st, 2009

От выделения совпадений уровня Б2 – сравнительно недалеко до выделения классификаций.
Предыдущие статьи: http://neurocod.net/blog/tag/выделение-совпадений/
Для примеров будут применяться упрощения: в большинстве случаев, в каждый такт запоминания
будет активен только один образ, подлежащий запоминанию (текстовая ИНС). Для иллюстрации последовательностей цепочек памяти будут использоваться строки. Звездочкой будут обозначаться любые несущественные образы в последовательности.
Требования:
- Выделение совпадений с разрывами в цепочках. Пример – А***Б
- Длина разрывов в разных цепочках может отличаться. Пример – А*Б и А***Б
- Возможность нахождения преобразований одной последовательности в другую. Пример – А*Б*В и В*Б*А.

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


Рис. 94-1 Выделение совпадения с несинхронным прохождением общих элементов

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

  1. //ИНС Б2:
  2. кластер КластерПамяти
  3. {
  4.         //________________________________________
  5.         //"верхний" уровень, связь с более общими образами
  6.         //вход:
  7.         nExp,   //Expectation – получение сигнала прогнозирования
  8.                 //с кластеров, не относящихся к данной цепочке
  9.         //выход:
  10.         nOut,   //Out – отправка сигнала к вышестоящим образам
  11.  
  12.         //________________________________________
  13.         //средний уровень, связь с той же цепочкой
  14.         //вход:
  15.         nEn,    //Enable – сигнал разрешения с предыдущего кластера цепочки
  16.         //выход:
  17.         nFwd,   //Forward – распространение сигнала вперед по цепочке памяти
  18.        
  19.         //________________________________________
  20.         //"нижний" уровень признаков:
  21.         //вход:
  22.         nIn,    //In – распознавание признаков
  23.         //выход:
  24.         nDown,  //Down – активация признаков
  25. }

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