You are viewing [info]newis's journal

Previous 10

May. 12th, 2012

Первый результат работы алгоритма понимания

Вот как система структурирует информацию, отдаваемую по запросу Internet поисковиком bing (гугл прикрыл лавочку по отдаче результатов поиска):

internet network computer protocol communications
    interconnected tcp system
        suite applications
        world ters
    web development including
            connectivity information group
                sending
                history guides cover topics usenet
                preceded vast commercial worldwide
            arpanet defense department
            sites search online run
            points mainframe
        websites directory distributed ezine articlesbase
    satellite services speed dial high area
    modem access cable price
    gateways specification
    users experiments period social virtually
population world country region users

 

Тоже самое в картинках:

Работает долго, с базой знаний взаимодействует медленно, обучается неторопливо… но зато приводит к результату, что для старта уже неплохо :)

А теперь давайте представим что вместо результатов поиска мы на вход подали Войну и Мир. Как Вам освоить это произведение за 5 минут? С разбиением по темам (а не по главам) и возможностью провалиться в любую тему для более подробного изучения.

Sep. 21st, 2011

Структурированные знания

knowledge tree by kvasnyj
knowledge tree, a photo by kvasnyj on Flickr.

Sep. 9th, 2011

Другие Вселенные

Непонятно, а что такого сложного в нескольких Вселенных?

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

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

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

Являются ли Вселенные единственными объектами данного Пространства? Нет, иначе слишком просто. Добавим еще туда…

А называться все вместе это будет Мультиверсум какой-нибудь, содержащий такое вот многообразие форм и поведений. Также решаются вопросы возникновения Времени и Пространства, и что было до начала Большого Взрыва – точнее они выносятся на новый уровень.

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

Jul. 5th, 2011

Скорость понимания и его определение

Аксиома, не нуждающаяся в доказательстве - на скорость восприятия информации влияет скорость ее понимания:

  • повторное чтение книги проходит быстрее чем в первый раз
  • детские книги читать быстрее чем взрослые
  • квантовую механику читать медленее чем “Код да Винчи”
  • и т.д.

Идея понятна – чем проще для понимания текст, тем он быстрее читается.

Значит чтобы повысить скорость восприятия информации не нужно осваивать скорочтение, нужно повысить скорость понимания. Перейти на детские книги?

Два рабочих варианта по повышению скорости понимания:

  1. Спецификация контекста – вынос контекста за скобки. Тема, заголовок, название – это все определяет контекст содержимого и повышает скорость понимания. За счет? Во первых, нет необходимости указывать контекст каждого слова и читать его соответственно, во-вторых – нет нужды подбирать контекст под каждое слово – этот общий знаменатель мы вынесли в заголовок. По такому пути мы идем, как правило, добавляя книгам обложку с названием и саммари.
  2. Однозначные указатели. Пронумеровать анекдоты. Рассказывать друг-другу анекдоты называя его номер. На самом деле речь про то как если бы для каждого контекста каждого слова был бы свой символ. Например, мальчик#1 клеит#1 модель#1 в клубе#1. А клуб#1 однозначно указывает на клуб юных авиалюбителей. Это путь гипертекста, когда в статье вики мы ставим внутреннюю ссылку со слова на статью, определяющую ее контекст.

Ок, скорость понимания мы повысили, настала пора определить, а что же такое, понимание?

А здесь все просто:

Понимание это процесс присоединения входящей информации к существующей базе знаний.

Все!

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

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

Код, классифицирующий письма на спам и не спам понимает письма присваивая им категорию.

Если данное определение процесса понимания понятно то оно пристыковалось к вашей базе знаний. А если понятно как понимание реализовать в коде…

Jun. 28th, 2011

Процесс понимания на примере тетриса

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

Рассмотрим игру в тетрис, где в стакан падают фигуры разной формы. За счет разности форм фигура может  присоединится к остальным с разной степень контакта – от 1 до максимального, по всей длине. Отсюда аналогия – когда новая фигура ложится в стакан без пустот, то она максимально подошла к остальной группе фигур.

Когда новое слово/фраза оставляет слишком много пустот – ни о каком понимании речь быть идти не может.

Пример – уложим в стакан безшовно фразу “Бесцветные зелёные мысли спят яростно” - не стыкуется, как фигуры не вертеть – к друг другу они никоим боком.

А вот в следующем примере фигуры нормально стыкуются: “Глокая куздра штеко будланула бокра и курдячит бокрёнка”. Не смотря на то что про бокренка мы впервые слышим, мы успешно его закудрячили.

Apr. 26th, 2011

Семантический веб

Представьте, вы наняли ассистента, который анализирует/подготавливает для вас информацию. Вы просите его:
- расскажи вкратце что происходит в мире
- а теперь подробнее про рынок ИТ технологий
- дай резюме по моим непрочитанным rss лентам
- краткое содержание "Война и мир" на 10 минут. А если на 15? А если сцены сражений детальнее?
- бриф по запросу на Гугл

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

Алгоритм:
1. Подготовка:
- получить источник
- закачать тексты
- прочитать с пониманием
- построить модель

2. Использование
- получить стартовую степень детализации
- построить поток
- отрабатывать zoom-in/zoom-out меняя детализацию (хороший аналог - Google Earth)

А если говорить что модель строится не обособленная, а в рамках некоторой общей базы знаний, то можно сделать переходы от текущего потока. Например, встретился незнакомый термин, нажатием вписываем объяснение данного термина в текущий контекст. Пример, из математики:
читаем формулу x2+y2=z2. При этом [y] нам не понятен. Подтягиваем из базы знаний что y=a*b*c, при условии что a,b,c разрешаются в рамках текущего контекста.

Едем дальше - получаем что есть некоторая база знаний, и есть интерфейс по работе с ней, с возможностями:

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

Архитектура системы:

1. База знаний - информация в специальном формате
2. Писатель - непрерывно сканирует веб, строит базу знаний
3. Читатель - интерфейс к базе знаний с перечисленными возможностями

Что нам дает - получаем подготовленные (переваренные) легкоусвояемые знания, возможность сосредоточится на нужном и пробежаться по ненужному.

Как вам такой семантический веб 3.0?

Mar. 10th, 2011

Понимание телефонных номеров

Как мы запоминаем последовательности цифр, например, номера телефонов? Разбивая последовательность на группы цифр и строя ассоциации с каждой из них.
Ок, а по какому принципу мы выбираем эти группы? Ведь возможны различные варианты. Пример, запоминаем 951945
Варианты:
  • 9-5-1-9-4-5
  • 9-5-1945
С одной стороны мы берем группы цифр, которые наиболее узнаваемы, имеют высокую частоту упоминания. Но позвольте, у отдельной цифры частота априори выше чем у группы цифр, в то же время второй вариант выглядит более привлекательным. Значит мы разбиваем на группы цифр, таким образом, чтобы количество групп было минимально, но каждая группа была узнаваема.
 
Мы только что описали процесс понимания телефонных номеров. Подозреваю что данные принципы можно использовать и для понимания текстовой информации - нам ее нужно разбить на такие блоки-инварианты, чтобы их количество было минимально, но они были узнаваемы (распознаваемы). Вопросы связи с контекстом пока оставим за бортом.

PS Сформулировалась текущая цель: модель процесса понимания.

Mar. 5th, 2011

Понимание ради понимания

Понимание = связывание поступающей информации с имеющейся.
Вопрос - а для чего?
 
Один из побочных эффектов, согласно Хоукинга - возможность прогнозировать следующие действия. У нас есть текущие активные элементы. Благодоря связыванию мы определяем контекст и, тем самым, ограничиваем количество связанных с ними элементов. Таким образом у нас есть ограниченное количество элементов, релевантных текущим, причем ограничены они не по частотному принципу а по контекстному.
 
Две крайности понимания:
 
1. Не смогли определить текущий контекст. Имеем полный хаос по связанным объектам.
2. Новое слово (встретили в первый раз). Не имеем ни одного объекта.
 
Кстати, при наличии текущего контекста, если встречаем незнакомое слово, то выполняется процедура, как ее обычно называют - "Понять значение слова по контексту". Что это? Наверное связывание его с тем самым прогнозируемым словом по Хоунингу.
 
Ок, еще раз. Понимание - определение контекста - связывание новых слов с существующими. Для чего? Чтобы новые слова легче вязать, чтобы незнакомые слова тоже как-то связывать. Получается связывание ради связывания => понимание ради понимания.
 
А зачем понимать текст?
 
???
 
Вопрос...
 
Наверное, пока реализуем сам процесс понимания, тем более база знаний для него уже готова, а там разберемся, зачем все это.

Feb. 28th, 2011

Слоеный пирог

Итого мы получили отличный слоеный пирог (по уровням):

  1. commerci_ technic_ specif_ protocol_ data_ network_ Internet_
  2. connect_ infrastructur_ commerci_ technic_ protocol_ network_ Internet_
  3. version_ develop_ connect_ commerci_ protocol_ network_ Internet_
  4. system_ develop_ connect_ commerci_ protocol_ network_ Internet_
  5. layer_ tcp_ comput_ system_ protocol_ network_ Internet

Здесь нет восстановления целого по части, шумов и прочая-прочая.

А что же есть? Есть последовательное дифференцирование входного потока по частотности. Исходный слой - входной поток, слой 0 - ключевые слова, и далее производные слоя 0.

А зачем это? А очень просто. Чем выше уровень, тем более частотные объекты на него попадают, очищая окружение от менее частотных шумов. Это похоже на zoom-out. Или взлету в Google Earth, когда маленькие города уходят из фокуса внимания, зато за один раз мы можем обозреть больше крупных городов.

PS Как всегда, доведя ситуацию до жирного многоточия, мотаю в командировку.

Jan. 18th, 2011

Навыворот шиворот

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

  1. Internet_ comput_ network_ standard_ protocol_
  2. Internet_ interconnect_ comput_ network_ col_
  3. Internet_ system_ interconnect_ comput_
  4. Internet_ global_ system_

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

Собственно и только тогда мы получим восстановление целого по фрагменту. Пример (подкрутив параметры) - опять по уровням:

  1. wide_ web_
  2. world_ wide_ web_

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

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

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

Такое интересное поведение должно наблюдаться при изучении каждой новой области. Кстати, согласуется со здравым смыслом и дидактикой.

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

Previous 10

May 2012

S M T W T F S
  12345
6789101112
13141516171819
20212223242526
2728293031  

Syndicate

RSS Atom
Powered by LiveJournal.com