Home

Previous 20

Jul. 10th, 2009

PHP SDK для Windows Azure

"Вчера (7 июля 2009) была анансированна грядущая интеграция Zend Framework и Windows Azure под видом PHP SDK для Windows Azure."
Очень своевременно, есть вероянтность что запущусь с AI модулем здесь. А пока учимся локально...

Jul. 9th, 2009

Нуль-модем

А прикольно получилось: добавил в ростер LJ бота. Я у него был в контактах. Теперь в рамках одного мессенджера пишу в одном аккаунте, получаю сообщения на втором. Как будто нуль-модемным кабелем соединил.
И вот думаю, если на обоих концах поместить два своих AI модуля с изначально одинаковой базой знаний, то будет ли она одинаковая спустя, скажем, день их взаимного общения?

Удаленное обучение

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

SQL Засада

Залить полугиговую базу не удалось: один хостер не поддерживает удаленные подключения, другой рубит связь через несколько тысяч запросов.
Краткий анализ по рынку cloud: Google apps - БД до 500мб, Aptana - 20$ в месяц.
 
Варианты:
  1. Купить aptana либо очередной хостинг/vps
  2. Написать заливатор, который из локального файла с запросами будет бомбить БД
  3. Использовать свой домашний сервер - тормоза
{думает}

Jul. 8th, 2009

Search wave – AI модуль

Реализовал в search wave сервисе матмодель из AI блока, или другими словами применил базу знаний для поиска. По тому контексту которому система обучалась (или около того контекста), результат получается отличный. Так по запросу google (а система эту тему не проходила, только соседние, такие как Internet) она отыскала на второй или третьей странице поисковой выдачи сниппет:

Google search is a web search engine owned by Google Inc. and is the most-used search engine on the Web. Google receives several hundred million queries

А это для меня был коварный запрос т.к. гугл информацию о себе задвигает глубоко в выдаче.

Теперь нужно залить базу знаний на сервер, если хостер разрешит, и можно будет расшарить с AI движком. И учить систему, учить, учить.

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

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

В общем проект получается довольно интересный, может занять место поисковой системы завтрашнего дня. Но есть проблемка: даже с собственной базой знаний он все еще является надстройкой над поисковой системой (Яндекс, Гугл – неважно) и без нее не работает.

Jun. 29th, 2009

Search wave – что дальше?

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

А что системе не хватает?  А не хватает ей собственной базы знаний, т.к. гугл далеко. И вот тут сошлись звезды:

  • купил хостинг на несколько гигабайт
  • долго строил локальную базу знаний в домашних условиях

База правда не выжила после перестановки серевера, зато остались алгоритмы по ее формированию. Поэтому план такой:

  1. Актуализировать алгоритмы
  2. Зарядить систему локально на обучение
  3. Скинуть БД на внешний хост
  4. Доработать сервис для работы с базой знаний. + обучение на запросах пользователей
  5. Изменить поисковый алгоритм в ботах: будет выдавать один вариант, зато быстро.

шаги 2-3 повторять ежедневно, благо структура коллизий не предусматривает.

Любопытно что делать с фрагментарностью обучения. Скорость обучения порядка 100 запросов в сутки. Темы – связанные с первоначальным запросом. Т.е. имеем узкоспециализированное обучение. Варианты:

  1. Фрагментировать обучение, взять правило: не более 10 связанных запросов подряд, стимулировать новые темы
  2. Забить. Учить систему интересным лично мне темам.

Калькулятор

Наконец починил калькулятор в ботах q@ & agent@. Так что теперь можно снова приставать с вопросами вида: =2+2*2.

Jun. 25th, 2009

Google wave + Wolfram alpha = Search wave

Идея возникла под влиянием двух сервисов: планируемого Google wave и недавно запущенного Wolfram alpha. Суть в следующем: организовать поиск информации в Интернет как волны - вводим запрос, получаем ответ. Есть поля ввода рядом с ответом и с новой строчки. В первом случае поиск производится в контексте ответа, во втором - в новом. Выглядит почти как деревовидный форум. Т.е. получаем форум с двумя участниками - пользователь и система. Вот такой:

Положил сюда: http://newisearch.com/wave 

За ответы системы отвечает Google и несложный AI-алгоритм. Общение увы только на английском.

May. 27th, 2009

Интернет-сознание или разворот на 90 градусов.

Ранее мы договорились что структура нашей системы включает два слоя: активный (аналог нашего сознания) и пассивный (подсознание). В пассивном слое расположена исходная сеть, включающая все связи, не свернутые или объединенные каким либо образом. Пассивный слой может только расти, или выражаясь языком SQL, работает только с командой insert. Активный слой представляет собой проекцию пассивного, при этом его элементы имеют некоторые возбуждения. Проекция строится относительно текущего контекста.
Это все служило исходной посылкой для разработки с месяц назад и программинг модели показал любопытные результаты. Но вот пришла идея, которая просто выбила из колеи с фатальным исходом. Уверен она не нова и где-нибудь уже обсуждалась, а может быть и нет, но для меня получилось как обухом по голове.
Суть можно лаконично выразить в виде простой формулы:
 
Пассивный слой (подсознание) = Интернет
 
Что это значит? Сейчас пассивный слой формируется на основании запросов Гуглу с приведением результатов в сеть, т.е. база знаний формируется на основании поисковой выдачи. Так почему бы не выполнять это в онлайне? Т.е. у нас нет пассивного слоя как такогого, но зато мы можем срезать проекцию по заданному контексту. Получается система, имеющая активный слой и некоторое большое подсознание в raw виде. Перефразируемся: Интернету как самому большому хранилищу знаний можно сделать сознание!

May. 4th, 2009

Дилема с КАТ

Текущий вывод системы:

internet | web | site | inform | servic | websit | web site | resourc | welcom | librari | onlin | access | contact | public | research | similar page | librarian | catalog | univers | refer | educ

Проблемы здесь:

  1. Синонимы
  2. Специализация - вывод системы скатывается на частности.

По поводу 2-й проблемы, попробовать:

  • Сохранять активность всех элементов
  • Коффициент КВП понизить до 0.5
  • Возмодно повысить порог удаления КВП до 0.3
  • Возможно повысить порог усталости КАТ до 0.3
  • Повысить активность КАТ

Что это даст? Подпитку уже активированных элементов + более полный контекст.

… Получается фигня и вот почему: мы активируем все козырные элементы, а потом считаем их уставшими. Дилема: отличить элементы стека КАТ от спонтанно активированных. {Думает}

Apr. 23rd, 2009

Лавинный эффект

Если на каждой итерации активировать по, скажем, 5 элементов, то геометрическая прогрессия через несколько циклов возбудит почти всю сеть! И никакая КВП не поможет. Можно, конечно, нормализовать активности, но это лишь уменьшит общий фон.

Собственно, проблема.

Неплохим вариантом бы было если возбужденными будут только активные элементы в стеке. Как бы это обыграть...

Так, ближе к корню - а зачем тогда вообще возбуждение? Затем что последующий элемент активируется основываясь на связях с активными элементами. Т.е. чтобы выбрать следующий активный элемент. Сейчас я это делаю искусственно-приближенно.

Хорошо, тогда другой вопрос: как строить проекцию? Хм...да также!

Ок, далее - как перестраивать проекцию. Очищать целиком/добавлять новые/оставлять только стек и связанные с ним/... ?

Apr. 21st, 2009

Переход к активной модели

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

Немного по текущей модели, все в кучу, но зато не вырубить топором:

Выделяем две области памяти – сознание и подсознание (подойдут любые другие названия, не суть):

Подсознание

Сознание

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

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

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

Динамика сети на бумаге вроде сложилась, теперь в код. А главное – данная модель удовлетворяет свойствам голографичности и абстрагируемости.

Apr. 5th, 2009

Моделируем мышление

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

Легенда:

Внизу экрана – читаемый текст.

Серым – текущий элемент.

Бежевым – активные элементы.

Белым – связанные элементы.

Текст полностью:

The Internet is a worldwide, publicly accessible series of interconnected computer networks that transmit data by packet switching using the standard Internet Protocol (IP). It is a network of networks that consists of millions of smaller domestic, academic, business, and government networks, which together carry various information and services, such as electronic mail, online chat, file transfer, and the interlinked web pages and other resources of the World Wide Web (WWW).

А теперь собственно описание, что мы видим. Считывается фрагмент текста, в нем выделяются ключевые слова. На основании ключевых слов строится проекция сети. Читаются новые ключевые слова и проекция перестраивается.

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

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

Теперь к алгоритму:

  1. Система получает внешнее воздействие.
  2. На его основании строится проекция (сознание)
  3. В проекции происходит перераспределение связей и активностей
  4. Результат распределения записывается в подсознание.

Да, запись в подсознание – это, в терминах SQL, всегда INSERT, и никогда UPDATE. Своеобразная архивная таблица, в которую мы всегда добавляем знания, и никогда не изменяем. Изменения сказываются в сознании.

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

Mar. 31st, 2009

Учимся читать

Вывернув алгоритм наизнанку получил аналог процесса распространения сигнала в нейроподобных сетях, но на качественно ином уровне. Теперь модель мышления довольно сильно напоминает человека, любопытно наблюдать и сравнивать. Теперь следующий этап – нужно научить систему читать. Вопрос – чем отличается чтение сказки о колобке от теории большого взрыва? И там и там буквы да и сами слова известные. Однако можно прочитать и то и другое, но в памяти останется только колобок. В таких случаях говорят – не одолел. А что такое “Одолеть” и как научить информационную систему одолевать?

Собственно этим вопросом я провоцирую себя.

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

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

Mar. 27th, 2009

Замыкая круг

Выскажусь ненаучно, но, как, всегда, для себя. Что общего у игры “Life”, теории динамических систем и фракталов? То что значение выхода подается на вход. Т.е. системы замкнуты сами на себя. В теории управления на лекциях нам это называли обратной связью. А если подать выход алгоритма округления на его вход? Здесь уже операции производятся не над скалярными величинами, поэтому связь не может быть положительной или отрицательной, она не имеет знака. Получим похожий эффект распространению сигнала в нейроподобных сетях для активации группы релевантных элементов. Но! Это принципиально новый алгоритм, который, если отбросить более высокое быстродействие, позволяет выделять группы элементов, релевантных заданным с одновременным абстрагированием.

Встает вопрос о выделении активной точки. Она должна опиратся на отношение с пассивными элементами и на отношения с масивом угасающих элементов. Так, в простейшем варианте, вес пасивных равен 0.1, активных = 1. В продвинутом – вводить модель угасания сигнала, и завязывать на него вес.

И важный вопрос, не забыть, результаты деятельности системы должны оставлять след.

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

Mar. 26th, 2009

Check point

Округление знаний удалось вывести на нужный уровень. Так, по запросу Internet, результат выглядит так:

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

Zoom in проекции должно постепенно привести к последовательности. Для этого нужно определить параметры приземления.

Mar. 3rd, 2009

Knowledge explorer

Засиделся чего-то я с jabber ботами…Пора назад, к основной и любимой теме – системе управления знаниями. Так подумал, а ну ее, эту озвучку. На сейчас ну. Гораздо интереснее поработать с динамикой сети, и с логическим выводом. Т.е. по некоторому запросу мы определяем контекст и строим проекцию, а далее начинаем с ней играться.

Пока поиграемся вокруг области “Internet”, на очереди “Universe”.

И так, мы построили некоторую проекцию знаний. Что можно сделать с ней дальше?

  1. Сменить активную точку: активировать новый элемент, перестроить проекцию относительно него
  2. Ввести в контекст новый элемент, построить обобщенную схему
  3. Удалить элемент вместе со связями из схемы
  4. Зафиксировать элемент – оставлять элемент в схеме вместе с его первичными связями независимо от обновлений

А сбоку вывести результаты поиска Гугл по текущему контексту либо непосредственно тексты с максимальной плотностью ключевых слов.

Получится инструмент, которому быстро придумываем имя – Knowledge Explorer. Идеальная реализация была бы конечно на MS Surface, но за неимением гербовой потаскаю пока знания мышкой.

И так, Knowledge Explorer. Назначение:

  1. Визуализация знаний: представление в виде графа заданной предметной области
  2. Knowledge discovery (по русски звучит увы хуже): с помощью 4 описанных выше операций над графом можно генерировать новые знания
  3. Поиск информации: побочный эффект – удобный визуальный поиск информации в Интернет. Главное удоство такого поиска: можно легко пробраться сквозь дебри новой темы.

Недостатки:

  1. Ресурсоемко
  2. Требует предварительно подготовленной базы знаний

Базы знаний можно делать тематическими, плюс они будут расти под манипуляциями пользователей. А можно корпоративными, натравить на корпоративное хранилище (например, портал). Эх, чей-нибудь бы поисковый индекс поближе (на расстоянии локала либо удаленно но на прямых запросах без парса) + кэш веб страниц…

В общем, делаю… Жаль в веб легко не выставить.

Feb. 24th, 2009

English club

В настоящий момент сервисом изучения английского языка через Jabber пользуются около 300 активных участников (без учета выпусников и отчисленных), генерирующих суммарно около 10 сообщений в минуту. С нашей стороны было бы нечестно изолировать друг от друга такое количество человек, объединенных одной темой, поэтому мы решили создать английский клуб, что есть ничто иное как микроблогинг обучающихся с возможностью добавлять посты прямо из jabber клиента. Темы для записей:

  1. Интересные факты об английском языке
  2. Общение на английском языке под чутким контролем профессионалов
  3. Предложения по работе сервиса

Команды:

  • -addpost message: Разместить сообщение в микроблоге en.clisearch.net (shortcut - ap)
  • -blog on/off:    Включить (выключить) уведомления о новых постах в блоге en.clisearch.net. По умолчанию конечно же выкл.
  • -setpassword passw: Установить пароль на микроблог en.clisearch.net

Адрес клуба en.clisearch.net

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

Ну и собственно все посты по английскому боту будут теперь там же (RSS для подписки есть).

Tags:

Feb. 20th, 2009

Неправильные глаголы

Случилось. Мы таки починили неправильные глаголы, и теперь они в русском переводе именно глаголы а не существительные. Больше не будет заданий вида:

Введите пропущенную форму неправильного глагола ПОРОДА:
breed, ____ , bred

Все замеченные неточности в переводе глаголов присылайте на адрес yudinvs гав gmail.com. Там разберутся.

Tags:

Feb. 18th, 2009

Словарь в обучателе

Частенько требуется словарик, перевести то или иное слово. Качество работы сервиса Google.Translate пока вызывает лишь улыбку, а ползать каждый раз на Яндекс.Словари надоело.

Думал что проще - уговорить Яндекс сделать J-сервис перевода или пропарсить Яндекс.Словари самому. Но вот блин осенило, у меня же есть готовый словарь на 30 000 слов, что для 80% случаев более чем достаточно! Добавляем к существующему англо-русскому еще русско-английский, словоформы (чтобы бежать и бежал одинаково воспринимались), немного программинга и - готово! Словари прямо с вашим любимым учителем (или учительницей, не знаю куда оно правильнее) английского.

Формат команды простой: =слово. Язык я уж как-нибудь сам угадаю, как и направление перевода. А равно нужно чтобы не спутать слово с ответом на домашнее задание.

Previous 20

July 2009

S M T W T F S
   1234
567891011
12131415161718
19202122232425
262728293031 

Advertisement

Syndicate

RSS Atom
Powered by LiveJournal.com