Искусственный интеллект (ИИ)
В настоящее время автор искусственным
интеллектом не занимается. И вообще не занимался
им серьезно. Но вот, остался небольшой обзор на
тему ИИ, проведенный автором и его друзьями летом
1999 года, а также наши мысли (что самое главное :)) ).
Любопытствуйте!
Искусственный интеллект: 4 блока
1) 4 блока
Простейшая система ИИ для говорящего бота должна
состоять из 4-х блоков:
1. *Восприятие*. Преобразует речь (текст из
внешнего источника данных) в "мысли" (некий
внутренний универсальный язык 2-го и 3-го блоков),
которые подает во 2-й блок. [Разбор поступившей
фразы]
2. *Память*. Устанавливает и анализирует связи
между старыми и новыми мыслями. Сохраняет
информацию в базе данных (что-то теряется как
ненужное) [Разбор смысла поступившей фразы]
3. *Мотивация*. На основе целей ИИ вынимает из
памяти нужную информацию и подает ее подает ее в
4-й блок. [Формулирование смысла ответной фразы]
4. *Воспроизведение*. Преобразует "мысли" в
речь (текст) [Формулирование ответной фразы]
Блоки 2 и 3 составляют самообучающееся ядро
Блоки 1 и 4 не самообучаются, но делаются отдельно,
целиком "ручками".
Преимущества данной схемы:
1. Универсальность ядра (2 и 3 блоки) ИИ: для
создания другого типа ИИ нужно лишь заменить
блоки 1 и 4 на соответствующие (для англоязычного
бота - на "переводчика" английского языка в
"мысли" и обратно; для обучающейся игровой
программы - на преобразователя кодов в мысли и
обратно и т.д.); при этом ассоциатор "мыслей"
будет работать в идеале одинаково с любым типом
информации, которая всегда будет подаваться по
единому стандарту - с выделенными первичными
понятиями и их связями (о понятиях см. ниже)
2. Упрощение работы обучающегося ядра: максимум
стандартизованного анализа проводится уже в 1 и 4
блоках; конечно, можно было бы сразу подавать
ядру речь в ее исходном виде, но тогда бы ядру
потребовалось немалое дополнительное время для
того, чтобы "понять", что из сплошного потока
символов следует вычленять слова, предложения,
части речи.
3. Упрощение разработки: не нужно сразу в рамках
одного блока заботится и о синтаксическом
разборе предложений, и об ассоциациях мыслей.
4. Схожесть с человеческим процессом познания;
для максимальной следует реализовать ядро в виде
некой *нейронной модели*, подобной (по общим
принципам работы) с человеческим мышлением
Недостатки:
1. Универсальность снижает скорость. Впрочем, мне
кажется, что следует ориентироваться на будущее,
на более мощные и быстрые машины и сделать
средство для создания программ ИИ, а не одну
конкретную программу.
2. Невозможность обучения красивому слогу; при
формулировании мысли используются только те
слова и фразы, которые заложены в 4-м блоке; 4-й
блок (как и 1-й) - не обучаются, а обучающиеся блоки
ничего не знают о том, как их мысли будут
сформулированы.
3. Возможны сложности при согласовании работы
блоков.
Для начала следует максимально упростить
реализацию 1,3 и 4: свести работу с речью к
элементарному анализу предложения, а мотивацию -
к одной неизменной цели (например, цели активно
обучаться; в перспективе эта цели потребует от
бота активно говорить с людьми и выспрашивать,
уточнять различные вещи; анализ поведения и
реакций людей заставит бота более тонко вести
беседу, нежели просто задавать вопросы для
достижения эффективности в обучении).
2) Понятия
Мы все привыкаем к использованию определенной
понятийной системы и подчас считаем наши понятия
абсолютными и непреложными; но все относительно,
любые понятийные системы равноправны, а отличие -
лишь в удобстве использования данной понятийной
системы в данной миг; гибкость - возможность
концентрироваться на наиболее удобной в данный
момент понятийной системе (т.е. применять нужную).
Понятия - ничто; в мире нет понятий - мы сами их
определяем для себя, чтобы мыслить и строить меду
ними связи, составляя системы понятий
(подробнее см. в моих философских взглядах). То
есть, например, каждый предмет мы описываем через
его свойства, в то время как каждое из свойств на
самом деле описывается через все те предметы, к
которым мы его относим, а также через другие
свойства. В конечном счете эта модель замкнута
сама на себя, а также на информацию,
непосредственно получаемую от органов чувств
(очевидно?).
И предметы, и их свойства - суть понятия, которыми
мы оперируем (но просто разные их виды). Хотя -
разделение понятий на два вида - это тоже
некоторое понятие, которое мы вводим (как и все
другие) для нашего удобства и эффективного
достижения целей. Тонкий момент с целями как
видами понятий я не готов описывать здесь;
постановка целей уходит из среды сознания, наши
стремления и ближе к чувствам и творчеству. В ИИ
же мы реализуем *сознательную* деятельность
человека, и я не собираюсь пытаться
воспроизводить его душу; поэтому ИИ,
несомненно, будет системой, нуждающейся во
внешней постановке целей, и внутреннее
целеполагание ИИ (которое, безусловно,
понадобится) будет лишь этапом в стремлении
достичь внешних целей наиболее эффективным
образом.
Недостатки 4-блоковой системы указывают на то,
что система будет иметь малое практическое
применение сейчас, но скорее будет ориентирована
на будущее (на компьютеры, возможно, на несколько
порядков более мощные, чем сегодняшние). Впрочем,
посмотрим... (текущая моя идея лишь в том, чтобы
изначально больше ориентироваться на
универсальность в ущерб оптимизации и только
потом заняться серьезно оптимизацией).
3) Пример
Пример (непрактический, для передачи общей идеи)
1-й блок. Восприятие.
Пусть на входе будет фраза:
"Какой прекрасный дуб растет на поляне!"
Вычленяем смыслы:
- имеет место понятия "дуб",
- имеет место понятие "поляна"
- имеет место понятие "расти"
- имеет место понятие "прекрасный"
- "дуб" может "расти"
- "дуб" на "поляне"
- "дуб" "прекрасный"
- "дуб" "растет" - на "поляне"
- имеет место понятие "восхищение"
- "восхищение" "дубом"
- "восхищение" "дубом" "растущим"
на "поляне" и т.д.
(для упрощения упущены моменты введения понятий
"связи понятий" и их типизации для
связывания, например, понятий "дуб" и
"расти")
Чем больше понятий, смыслов и их связей вычленим,
тем лучше (в разумных пределах);
целесообразно также присваивать им приоритеты
по шкале важности и по другим шкалам все это
передается на 2-й блок.
2-й блок. Анализ и память
Ассоциирует мысли; 2-й блок ничего не знает о речи;
ИИ, как и наш мозг(!), ничего не знает о понятиях, но
может ассоциировать их, обобщать, строить на них
законы и вводить новые понятия (из целей
удобства).
Пример: ассоциатор обнаруживает, что
на поляне могут расти: дубы, кустарник, трава
всякая и кучи мусора...; объединив эти 4 понятий
под эгидой роста на поляне, ассоциатор
произведет обобщение;
с другой стороны ему может оказаться известным,
что только дубы, клены, елки и трава - растения;
тут произойдет еще большее обобщение понятий
дубы, кустарник, трава как растущих на поляне и
являющихся растениями (и что на поляне, в
основном, растут растения).
Вся эта расстановка понятий и связей между ними,
безусловно, потребует использования баз данных,
причем нужны мощные возможности по манипуляции
данными и нетривиальные схемы связей понятий (в
которых каждое понятие легко может быть
перемещено из одного узла в другой в процессе
обучения ИИ). Изучение биологического строения
нашего мозга (строение и работа нейрона, память,
на более высоком уровне - отделы мозга) должны
дать материал, как строить такую базу. Возможно,
она будет реализована средствами обычных
релятивистских БД, но это уже детали реализации
(хотя и очень важные).
"Эмоциональность" программы-бота будет
формироваться из следования подцели
необходимости говорить с людьми так, чтобы им
было интересно и хотелось продолжить беседу. Эта
подцель, в свою очередь, вытекает из главной цели
- побольше собрать информации. Важно добиться,
чтобы программа сама сформулировала эту подцель
- вышла на должный уровень абстракции, ввела
соответствующие понятия (целеполагание, подцели
и т.д.) - это будет показателем универсальности
нашей модели ИИ, возможности применения не
только в
говорящем боте.
2-й блок напоминает мне универсальный архиватор.
Точнее даже мощнейшую программу сжатия с
потерями. Так как вычленение законов на основе
конкретики, фактически, служит сжатию информации
(с потерями, так как теряются маловажные детали
или вытесняются данные, необходимость в которых
оценивается программой как минимальная). Ведь
проще помнить формулу, чем длинный ряд чисел (по
которым подбиралась эта формула).
Есть идея (не моя, кстати!), что ИИ должен состоять
из множества независимых процессов, каждый из
которых (как я надеюсь) не очень сложен, но все они
выполняются параллельно. Действительно, ведь
каждый нейрон мозга - это независимая единица, в
распоряжении которой есть данные о приходящих от
других нервов электромагнитных сигналах (память
нейрона, как я где-то вычитал, реализуется
реакцией РНК на поступающие извне импульсы,
которая формирует белки, восприимчивые к данным
импульсам). Как бы там ни было, но нейрон мозга в
ответ на входящие импульсы формирует и рассылает
свои импульсы. Возможно, есть шанс реализовать
сущность в соответствие с известными
(изученными) принципами работы нейрона и
построить на основе этих сущностей систему,
которая сможет развиваться сама. Впрочем, каждая
клеточка обладает мощным банком данных - ДНК,
который каким-то образом говорит ей, какие
функции за ней (клеткой, нейроном) закреплены.
Поэтому реализации помнящего нейрона
недостаточно, нужно еще и разделение их функций...
Да, идея об ИИ как состоящем из множества
отдельных независимых процессов не означает, что
это обязательно будет некая многопроцессорная
система - конкретная реализация - это уже другая
часть задачи, это может быть хоть цикл, по очереди
"дергающий" за каждый нейрон; хотя если
мощности однопроцессорной системы не будет
хватать, то нужно будет строить какую-то гибкую
многопроцессорную систему - но она - не есть
непосредственное отражение многопроцессности
ИИ.
3-й блок в простейшем случае сканирует базу и
выбирает нужную информацию в соответствие с
целями (общей и локальной) - и формулирует идею
ответной реплики.
4-й блок облекает эту идею в словесную форму.
Сказанное здесь - не руководство к
непосредственному действию, но мое видение
общего духа проекта.
Ссылки по ИИ
КУЧА ССЫЛОК - ИЩИТЕ ОТСЮДА:
http://www.freebee.techno.ru/alexkuck/4_science_nn.html
ИИ (бизнес)
Российская АссоциациЯ Искусственного
Интеллекта
http://intraland.decsy.ru/users/raai/
European Coordinating Comittee for Artificial Intelligence
(Европейский Координационный Комитет по
Искусственному Интеллекту)
http://www.eccai.org/
American Association for Artificial Intelligence
Американская Ассоциация Искусственного
Интеллекта
http://www.aaai.org/
The International Joint Conference on Artificial Intelligence
(Объединенная Международная Конференция по
Искусственному Интеллекту)
http://www.ijcai.org/
International Neural Network Society
(Международное Общество Нейронных Сетей)
http://cns-web.bu.edu/inns/
IEEE Neural Networks Council
(Совет IEEE по Нейронным Сетям)
http://www.ieee.org/nnc/index.html
KR, Inc. - Principles of Knowledge Representation and Reasoning, Incorporated
http://www.medg.lcs.mit.edu/kr/
ИИ (разное)
http://www.argussoft.ru/as_cpmac/g2frames.htm
- фирма, 1 текст не очень по теме
http://www.math.tsu.ru/russian/center/ai_group/ai_collection/docs/faqs/ai/index.html
-
5 разделов по ИИ (FAQ)
http://www.alfainter.net/dialog/index.htm
- ИИ-бот на русском языке
http://ulm.uni.udm.ru/~ilya/ai_collection/docs/faqs/ai/index.html
http://www.math.tsu.ru/russian/center/ai_group/ai_collection/docs/faqs/ai/index.html
http://www.ctc.tsu.ru/ai_group/ai_collection/docs/faqs/ai/part1/faq.html
http://www.enteract.com/~rcripe/aipages/ai.htm
http://www.wspc.com/journals/ijbc/84_5/braun.html
http://www.isbiel.ch/I/Projects/janet/jaNet-1.0beta1/
http://botspot.com/best/9-15-98.htm
"Слабые" ссылки по ИИ
http://mgsu.norna.ru/sci/russian/f9/r404_ru.htm
http://ulm.uni.udm.ru/~ilya/ai_collection/docs/faqs/ai/index.html
http://www.ctc.tsu.ru/ai_group/ai_collection/docs/faqs/ai/index.html
http://www.math.tsu.ru/russian/center/ai_group/ai_collection/docs/faqs/ai/index.html
http://www.iai.donetsk.ua/_u/adm/aishe.html
http://www.babylon5.aha.ru/construction/
http://www.muctr.edu.ru:8101/im/f3/k1/sci/r38-ru.htm
http://foldoc.doc.ic.ac.uk/foldoc/index.html
http://www.iai.donetsk.ua/cgi-bin/frameset?path1=/_u/iai/iaiindex.html&path2=/_u/iai/okr/work.html
Глоссарий ИИ терминов (http://ulm.uni.udm.ru/~ilya/ai_collection/docs/faqs/ai/part1/faq2.html).
Это небольшой глоссарий терминов из области
Искусственного Интеллекта. Вы можете
воспользоваться также более полным словарем ИИ
терминов, содержащим подробные описания и
интерпретации.
База знаний (Knowledge Base):
Совокупность программных средств,
обеспечивающих поиск, хранение, преобразование и
запись в памяти компьютера сложно
структурированных информационных единиц
(знаний).
Вывод (Inference):
Получение новых информационных единиц из ранее
известных. Частным случаем вывода является
логический вывод.
Генетический алгоритм (Genetic Algorithm):
Организация процесса, напоминающего эволюцию в
живой природе. Альтернативные решения
иммитируют популяцию. Для выбора решения
используются механизмы, похожие на мутацию и
кроссинговер.
Альтернативные решения сравниваются между собой
и "выживает" то решение, которое приобретает
в "популяции" максимальный вес.
Генетические алгоритмы используются в моделях
обучения.
Знания (Knowledge):
Совокупность сведений, образующих целостное
описание, соответствующее некоторому уровню
осведомленности об описываемом предмете,
событии, проблеме и т.д.
ИИ-программирование (AI-programming):
Разработка инструментального программного
обеспечения для решения
задач искусственного интеллекта. В
ИИ-программировании создаются языки
программирования, ориентированные на
особенности задач искусственного
интеллекта, языки представления и обработки
знаний, экспертные
оболочки и другие инструментальные средства.
Искусственный интеллект (Artificial Intelligence, AI):
Научное направление, в рамках которого ставятся
и решаются задачи
аппаратного или программного моделирования тех
видов человеческой
деятельности, которые традиционно считаются
интеллектуальными
(представление знаний, обучение, общение и т.п.).
Нейронная сеть (Neural Network, NN):
Сеть, состоящая из множества простых процессоров
(нейронов, узлов),
каждый из которых, возможно, имеет локальную
память. Нейроны связаны
однонаправленными коммуникационными каналами
(связями), по которым
передается численные (в противоположность
символьным) данные. Узлы
манипулируют только своими локальными данными и
входными данными,
которые они получают по связям.
Эвристика (Heuristics):
Прием решения задачи, основанный не на строгих
математических моделях
и алгоритмах, а на соображениях, восходящих к
"здравому смыслу". Как
правило, эвристика отражает особенности того,
как такие задачи решает
человек, когда он не пользуется строго
формальными приемами. Если эти
человеческие способы решения удается
запрограммировать, то такие
программы называются эвристическими. Эвристики
часто используются при
программировании игр, иммитации творческих
процессов и т.п. В
экспертных системах при формализации
профессиональных знаний человека,
касающихся способов решения задач в той или иной
проблемной области,
широко применяются те эвристики, которыми
руководствуются
профессионалы-эксперты.
26 февраля 1997 Михаил В. Муравьев mike@mmf.tsu.tomsk.su
ДМИТРИЙ КИРСАНОВ
Искусственный интеллект: цели и
достижения (http://www.symbol.ru/dk/articles/uc-5.html)
Хотя я обещал не говорить о программах с точки
зрения их назначения или применяемых в них
алгоритмов, есть одна область программирования,
для которой стоит сделать исключение, - так
называемый "искусственный интеллект".
Никакое другое понятие или термин компьютерной
науки не было с такой охотой превратно толкуемо,
как "искусственный интеллект". Во многом
вина за это лежит на научной фантастике, чьим
популярнейшим героем одно время был
взбесившийся (или влюбившийся, но с не менее
печальными последствиями) робот или
"электронный мозг".
Но что же все-таки вкладывают в это понятие те,
кто действительно занимается искусственным
интеллектом как областью компьютерной науки? Чем
отличаются программы, в которых используются
методы искусственного интеллекта, от всех
остальных? Предполагает ли искусственный
интеллект все то, что обычно присуще интеллекту
естественному, - свободную волю, свое "я",
эмоции и непредсказуемость поведения?
Все мы почему-то склонны считать, что главное, что
отличает нас от машины, - как раз и есть эта самая
"непредсказуемость", т.е. тот факт, что наши
поступки далеко не всегда логически (да и вообще
как-либо) объяснимы. Возможно, с философской
точки зрения это и так. Но ученым-компьютерщикам
чаще всего приходится решать сугубо
практические задачи, в которых от машины
требуются прежде всего рассуждения, приводящие к
некоторым выводам, - а не чувства и эмоции.
Другое дело, что рассуждения эти могут совсем не
быть "логическими" в привычном смысле.
Искусственный интеллект как область науки как
раз и возник из осознания того факта, что человек
решает задачи чаще всего совсем не по правилам
логики и математики, и при этом решает их
зачастую гораздо эффективнее, чем машина. Задача
исследователей и состоит в том, чтобы понять, как
устроен аппарат для решения проблем, находящийся
в человеческом мозгу, и попытаться смоделировать
(повторить) его или хотя бы его часть
искусственным путем.
Специалист по искусственному интеллекту может
пойти еще дальше и заявить, что как раз то, что мы
ценим в себе больше всего - чувства и эмоции, -
смоделировать было бы гораздо проще, чем
мышление. Другое дело, что от такого
моделирования было бы мало проку - кому нужна
машина, преисполненная любви ко всем и вся, но не
способная связать двух слов?
Конечно, до полного и окончательного решения
этой задачи - создания машины, способной
соперничать с человеческим мозгом как по
сложности, так и по универсальности решаемых
задач, - еще очень далеко. И все же в области
искусственного интеллекта достигнуты большие
успехи. Исследования в этой области ведутся по
различным направлениям, пытающимся подойти к
основной задаче с разных сторон. Разумеется,
наибольшее развитие получили те из них, которые
обещают немедленную практическую выгоду. Стоит
отметить следующие направления:
Распознавание образов. Здесь ищут ответ на
вопрос: "как мы отождествляем предметы с их
визуальными образами" или, проще говоря,
почему мы узнаем стол, каким бы он ни был - круглым
или квадратным, на одной ножке или на четырех. Эта
область очень важна для конструирования
промышленных роботов, а в области персональных
компьютеров на ней целиком строится технология
программ оптического распознавания символов -
именно благодаря алгоритмам искусственного
интеллекта компьютер может теперь почти без
ошибок "читать" сканированный текст.
Машинный перевод с одного языка на другой. В этой
области также достигнуты определенные успехи.
Современные программы-переводчики уже способны
выдавать неплохой подстрочник (грамматически
правильный перевод, верно передающий смысл, но не
обработанный стилистически).
Программы-переводчики для персональных
компьютеров находят широкое практическое
применение - ведь во многих случаях вам нужен не
готовый отшлифованный перевод, а требуется лишь
в общих чертах понять, о чем идет речь в тексте.
Базы знаний, или экспертные системы,
представляют собой некий аналог обычных баз
данных, но содержат информацию не в виде таблиц
или записей с полями, а в виде утверждений о
чем-либо, например "анальгин обладает
болеутоляющим действием" или "зубная боль
иногда сопровождается повышением
температуры". Доступ к этой информации
осуществляется не через команды поиска, а с
помощью формулируемых на естественном языке
вопросов, например "может ли анальгин помочь
при зубной боли?".
Программа, заведующая этой базой знаний,
способна строить на основе имеющихся данных
выводы и умозаключения. При этом обычно
используется не строгая аристотелева логика с
однозначными выводами типа "да/нет", а
логика вероятностей, которая вычисляет,
насколько вероятна истинность каждого
заключения, исходя из вероятностей посылок.
Скажем, если вы перечислите симптомы своей
болезни медицинской экспертной системе, указав,
как часто возникает каждый из них, то система,
задав вам несколько дополнительных вопросов,
выдаст список болезней с соответствующими
вероятностями (например, "95% - ОРЗ, 5% - СПИД") и
порекомендует самое эффективное лечение.
Именно к области экспертных систем относится
важнейший проект, осуществляемый в США на
протяжении последних 15 лет, - проект "Cyc" (от
англ. "Encyclopedia"). Все современные экспертные
системы страдают одним общим ограничением:
обладая иногда глубокими знаниями в своей узкой
области, о "мире вокруг нас" они знают меньше
любого ребенка. Те "фоновые" знания, в
которых мы даже не всегда отдаем себе отчет, - что
отпущенные предметы падают вниз, что быть
больным хуже, чем здоровым, что люди строят дома,
чтобы защититься от непогоды, - занимают огромный
пласт нашего сознания и во многом определяют
наше поведение и мышление. Именно закладкой в
компьютер этой невероятно сложного массива
очень "простых" фактов и взаимосвязей и
занимается проект Cyc. Предполагается, что когда в
начале XXI века будет завершено создание этой
всеобъемлющей "энциклопедии здравого
смысла", использование ее в программах
искусственного интеллекта позволит им выйти на
качественно новый уровень.
Кроме того, методы искусственного интеллекта
применяются для обработки текста (проверка
грамматики и правописания), изображений (сжатие,
трассировка) и в других областях. Вы наверняка
столкнетесь с программами, использующими такие
"умные" методы; их обычно нетрудно опознать
по их характерному поведению, сочетающему явные
черты интеллекта с подчас невероятными и
необъяснимыми (для непредвзятого пользователя)
тупостью и упрямством. Кроме того, характерно,
что используемые на практике
"интеллектуальные" алгоритмы очень редко
дают на 100% правильный ответ - например, даже
лучшие программы распознавания символов
ошибаются как минимум в одной букве из ста. И все
же существуют задачи, которые для вас не решит
никто, кроме программ с искусственным
интеллектом - или человека.
dk@symbol.ru
Нейронные сети: основные положения (с) С.Короткий - текст лежит здесь.
Анализатор речи (Mi_)
Часть первая - Вступление
Предполагается, что:
- Анализатор Речи (АР) - гипотетическая программа, анализирующая, понимающая, но не выдающая ответы (ограничимся пока только распознаванием речи)
- Вы читали статью Философа о его реализации АР - здесь просто производится более детальный обзор одного из блоков его "адской программы" ;)
- Вы умеете читать ;)
Часть вторая - Устройство АР
Не вдаваясь в долгие рассуждения по поводу актуальности темы и возможности ее реализации на данном этапе, сразу перейдем к самому устройству АР такового и его приблизительной его реализации.
Итак, Анализатор Речи (далее АР) должен состоять из следующих модулей (частей, блоков, потоков - нужное подчеркнуть)
- Таблицы символов, содержащей все возможные символы, слова, понятия, их типы и тд.
- Лексический модуль - блок, конвертирующий строковые выражения в символы (токены - tokens)
- Блок обработки символов, производящий выборку выходных данных из предыдущего блока и создающий на их базе синтаксическое дерево
- Модуль проверки семантики, проверяющий семантическую правильность построения синтаксического дерева и вносящий в него некоторые синонимические изменения (обобщение символики, расширение понятий и тд)
- Генератор кода, конвертирующий выходной результат в конечные коды АР
- Оптимизатор (не обязателен) - блок, отвечающий за дальнейшее преобразование кода для получения наилучших результатов обработки его в след модуле
- Аналитический модуль, выделяющий основную мысль фразы, проводящий аналогии между понятиями и определяющий смысловое наполнение словосочетаний и предложения (текста) в целом
Лексический модуль
Определимся с задачами лексического модуля - он должен конвертировать строки в набор символов, просто выделяя из строки все слова и заменяя их символами из таблицы (причем символ - это не char(14), это законченное понятие в представлении АР)
Вообще лексический модуль прекрасно генерится FLEX'ом - Win32 программой, созданной специально для этих целей (портировано с UNIX-машин) - да и любой знает как разбить строку на слова
Блок обработки символов
Как передавать в блок обработки символов данные? Вообще есть даже простейшая специальная форма передачи - BNF (Backus-Naur Form):
выражение: определитель - строка
В голимом UNIX'е опять же есть программа генерации этого модуля - называется YACC. Насчет порта для Win32 я не осведомлен
Таблица символов и синтаксическое дерево
Две основные структуры данных - таблицы символов и синтаксическое дерево.
Таблица символов - как видно из названия это - таблица, в которой содержатся все известные строковые выражения, символы и понятия, известные АР.
Синтаксическое дерево - древовидное представление структуры фразы, определяемое подсмыслемя, связями слов в предложении и множественными повторами.
Модуль проверки семантики и генератор кода
Проверка семантики осуществляется с тем, чтобы убедиться, что фраза в целом имеет выделяемый смысл (проверка семантики реализована в Microsoft Word). Например можно отсеивать междометия ;) , слова, не несущие смысловую нагрузку и т.д. также модуль проверки семантики должен обобщать и расширять понятия с целью наиболее точной их обработки в последующем.
Генератор кода - создает некоторое графоподобное подобие фразы. Прежде всего условимся о структуре промежуточного кода:
- каждый элемент имеет ссылку как на предыдущий так и последующий (связанный список)
- каждый элемент имеет четкое представление во внутреннем языке АР (например, взятое из той же таблицы символов)
- каждый элемент имеет сслыки на элементы, являющиеся зависимыми элементами фразы, а также на те элементы, от которых он зависит
Такая структура дает то главное преимущество, что взяв n-ый элемент фразы, мы сразу можем получить:
- Возможность его удаления без особых последующих изменений в коде (просто необходимо заменить адреса у двух его соседей)
- Ссылки на слова, зависящие от него, то есть возможен отбор слов по зависимости в Аналитическом модуле, что немаловажно
- Значение кода (слово)
Аналитический модуль
Аналитический модуль, используя наклопленные в ходе вызова предыдущих модулей данные формирует "представление" АР о фразе, выделяя смысл (тем или иным способом), определяя эмоциональную, словесную и личностную направленность предложения.
Предложения
А как насчет Виртуальной машины для АР?
Это позволит создать переносимый код, работающий на любой платформе
Русскоязычные ссылки по ИИ (сенькс Programmer'у)
10. Программы: Искусственный интеллект 69%
Искусственный интеллект
[Главная страница]-[Программы]-[Добавить]-[Удалить] Программы симуляции нейронных сетей Programms for Neural Network Simulation Много программ (нейросети, нечеткая логика) - нет смысла переносить их сюда - не я их нашел
Found by: n/a
http://algo.ekaboka.com/algo-rus/pr_ai_01.htm
23. FAQ: Искусственный Интеллект 60%
Связанные с ИИ FAQs FAQ:
Искусственный Интеллект FAQ: Общие вопросы по Искусственному Интеллекту 1/5 FAQ: Группы новостей и списки рассылки по ИИ 2/5 FAQ: ИИ ассоциации и журналы 3/5 FAQ: Библиография по ИИ 4/5 FAQ: FTP ресурсы, связанные с ИИ 5/5
Found by: n/a
http://www.math.tsu.ru/russian/center/ai_group/ai_collection/docs/faqs/ai/index.html38. Понятный компьютер: Искусственный интеллект / Understanding a Computer, by Dmitry Kirsanov (Sep 1997 49%
понятный компьютер ДМИТРИЙ КИРСАНОВ
искусственный интеллект: цели и достижения Хотя я обещал не говорить о программах с точки зрения их назначения или применяемых в них алгоритмов, есть одна область программирования, для которой стоит сделать исключение
Found by: n/a
http://www.symbol.ru/dk/articles/uc-5.html40. Создан ли искусственный интеллект 47%
Следующий раздел: Как поступить в ФМШ при Выше по контексту: Краткая физическая энциклопедия1 Предыдущий раздел: Дискретизации и квантование цифрового сигнала. Создан ли
искусственный интеллект Вопрос: Создан ли искусственный интеллект (хотя бы
Found by: n/a
http://moshkow.perm.ru/win/TEXTBOOKS/TEACH/Physics/node26.html
42. Лекция 6: Искусственный интеллект 45%
Искусственный интеллект
(определение) Определение Основные понятия Проблемы ИИ Критерий интеллектуальности Искусстевенный интеллект- междисциплинарная наука, возникшая в 60-х годах XX-го столетия на границах, вычислительной техники, математической логики
Found by: n/a
http://www.kture.cit-ua.net/Courses/AIntelligence/lec6/lec6_02.htm
66. Problems for "informatics 17%
Список лабораторных задач по разделу "
Искусственный интеллект" курса "Информатика, ЭВМ и практика по программированию" Логическое программирование Логика клауз (1) Логика клауз (2) (5.10.98) Логика клауз (3) (28.9.98) Пролог (1) (5.10.98) Пролог (2) Пролог
Found by: n/a
http://www.isu.ru/~slava/teach/art/problems.htm
Болтовня про ИИ (чат, переписка)
Разговор в #Russian_Programmer: 10.08.1999
<ykes> слышь, фил, как бы так сделать попроще, распознавание людей в чате
<ykes> есть идеи
<ykes> ?
<phil_eye> что за распознавание?
<phil_eye> по маске...
<ykes> адреса?
<phil_eye> ykes!ykes@24.232.21.*
<phil_eye> например
<phil_eye> или *!*ykes*@24.232.21.* скорее
<phil_eye> у меня ты так в автоопы добавлен
<ykes> это-то понятно...
<phil_eye> али ты по стилю речи хочешь распознавать??
<phil_eye> ;)
<ykes> по стилю тяжело, практически отсутствует информация
<phil_eye> во-во..
<phil_eye> а больше никак
<ykes> по набору на клавиатуре можно было бы, да никак, к сожалению
<ykes> а вдруг есть что еще?
<phil_eye> нету
<phil_eye> остальное все - частные случаи
<ykes> версия чат клиента, если говорит, время, всякое там...
<ykes> ну, ипользовать это как набор критериев
<phil_eye> вон - ты пытался url мой глядеть - а я его не задал...
<ykes> не 100% достоверных.
<ykes> это после твоих слов "моя страница"
<ykes> рука сама дернулась
<C0rrector> можно по времени, но нет гарантии в отставании
<ykes> ты у жабы тоже время можешь локальное спросить...
<phil_eye> вот-вот - в сумме все эти критерии дадут только мизерное преимущество по сравнению
<phil_eye> с распозанием просто по маске
<ykes> ты знаешь, что мизерное?
<phil_eye> да - на практике видно
<jita> (#G010E010M1) hey whais a host
<jita> (#G210E210M1) type-o, what is a host?
<ykes> и все-таки это меня не оставляет...
<phil_eye> ну, тогда вперед - реализовать все это не сложно...
<ykes> да, вон, жаба уже собирает со всех входящих все что можно
<ykes> я о логике разбора говорю
<phil_eye> можно изобрести комплексную максу
<ykes> тупая у меня башка, ничего пока не могу придумать
<phil_eye> типа nick!mask_prefix@ip@version@url@info@......
<phil_eye> бедные входящие :)
<phil_eye> и разрешить использовать в максе везде *, ?
<ykes> да, она ж не забирает насовсем... и берет только то, что дают..
<phil_eye> но чего стоит только одна встреча с жааабой!
<phil_eye> :)
<ykes> ничего, я думаю, не стоит :)
<ykes> жаба - она и есть жаба
<phil_eye> ладно :)
<ykes> другой вопрос еще есть.
<phil_eye> какой?
<ykes> в руме за маленьким исключением ведется общй разговор
<ykes> т.е. типа all-to-all
<phil_eye> нууу... за большим исключением... впрочем, это зависит от многих факторов...
<ykes> я, допустим, понимаю, когда ко мне обращаются
<ykes> или когда вопрос риторический или ко всем
<phil_eye> а - понял...
<ykes> а вот как робота научить определять
<phil_eye> вот тебе и задачка - надо истинный интеллект делать
<phil_eye> чтобы он сам обучился этому
<ykes> т.е. когда выгодно отдельный процесс запустить
<phil_eye> а не вкладывать в него кучу эмпирических знаний..
<ykes> хм. слишком общая задача, к томуже как и всякий ии - приводит к перебору огромного
<ykes> колическтва данных
<phil_eye> упрощая собственный опыт к шаблонам
<phil_eye> это да - согласен - но на простом уровне это уже 1000 раз реализовано
<phil_eye> хочется 1001-й раз сделать?
<ykes> зачем? я преследую неск. иную уель
<phil_eye> вообще - пусть бот вякает на все мессаги (с опр вероятностью, например, 15%)
<phil_eye> но на адресные
<phil_eye> типа
<ykes> это просто, действительно, давно было реализовано.
<phil_eye> "great_bot_of_ykes: скажи-ка мне?..."
<phil_eye> или просто на "эй, great, скажи-ка"
<phil_eye> вякает с боольшей степенью вероятности
<phil_eye> мы ведь тоже на чужие мессаги отвечаем
<phil_eye> еще в мс-чате можно адресно обращаться
<ykes> нет, это всего лишь автомат 2 уровня. зачем все это?
<EJ6> pls help me with visual basic
<ykes> к стати, на твое ббс о "ии" отклики есть?
<phil_eye> и блямба (#G1;:E010M1Tjaba) test выскакивает тогда
<ykes> откуда выскакивает?
<phil_eye> один тут - creature - заинтересовался
<phil_eye> из мс-чата, если спец. сведения не отключены
<phil_eye> и ты обращаешься адресно
<C0rrector> пиплы
<C0rrector> пошел я спатки
<C0rrector> бая все
<C0rrector> всем
<ykes> пока
<phil_eye> в общем, нужно искать часть ника бота в фразе
<Creature> ВСЕМ ХИ %)
<Creature> я и так сюда ;)
<phil_eye> спокойной ночи
<phil_eye> ха - а вот и creatute идет
<phil_eye> -t+r
<phil_eye> creature - а ты проходи в главную комнату-то
<phil_eye> в russian_programmer
<Creature> А это где?
<Creature> ее нету в списке
<phil_eye> я тебя пригласил ведь
<phil_eye> (мой скрипт автоматически)
<ykes> недошел
<phil_eye> ты что - не видел?
<Creature> Сорри..
<Creature> давай еще раз ;)
<phil_eye> :) ща - он не врубился
<phil_eye> а ты перезайди :)
<phil_eye> тогда скрипт опять сработает
<Creature> лентяй!
<EJ6> please help me with visual basic
<phil_eye> :)) дошел-таки
<Creature> КУдаж я денусь то! ;)
<phil_eye> здоров
<Creature> ВСЕМ ХИ %)
<ykes> привет
<phil_eye> ykes - так а какую задачу ты тогда ставишь?
<Creature> О! Тыто нам и нужен ;)
<ykes> анализ речи ( письменной ), в общем случае. т.е. разбор предложений
<ykes> мне на большее не вытянуть :)
<phil_eye> ну, возможно, это уже где-нить готовенькое можно найти
<phil_eye> в виде библиотек и словарей
<phil_eye> чтобы с этого начинать
<Creature> Хм.. а почеу не вытянуть то???
<ykes> возможно :) только готовенькое-то неинтересно
<ykes> да и до конца нет готовенького-то.
<Creature> Вы о каком разборе речи говорите?
<KORG> словарь имхо лучше формировать автоматически
<phil_eye> я имею ввиду - начинать задачу более творческого и более сложного уровня - обучающуюся систему ИИ делать
<ykes> словарь-то есть, два миллиона слов.
<phil_eye> ykes - где нашел?
<KORG> в чате его формировать нужно =) а потом фильтровать по готовому
<ykes> попросил, есть такая лаба, в АН РАН
<ykes> бывш. АН СССР
<ykes> "Проблемы ии"
<phil_eye> уу
<Creature> народ.. я пока в разговор никак не вьеду... зачем словарь?
<ykes> там попросил, подбросили, по знакомству, на бедность ...
<phil_eye> creature - чтобы более совершенный анализ речи сделать
<phil_eye> предложения то бишь
<Creature> А может взять да и разобрать все слова по правилам русского языка????
<phil_eye> можно, конечно, полностью эмпирически анализировать - выделить (примерно)
<phil_eye> подлежащее, сказуемое, всякие дополнения и таким образом вытянуть понятия и связи
<ykes> идея, да вот жуть как много исключений, да в добавок словарь все равно нужен - корень, суффиксы и т.п.
<phil_eye> но точность анализа со словарем возрастет!
<ykes> словарь - основа, ибо как ты поймешь, где подлежащее а где сказуемое, без словаря?
<KORG> а если чистой статистикой? накопить стат.материал в чате... придумать шкалу значимости...
<Creature> Не так уж и много исключений.... и если уж на то пошло, не так много это и займет.....
<ykes> вот, уже копится материал... :) Жаба копит, сидит...
<phil_eye> korg - и сделать попугая-повторялу, каких много
<phil_eye> у меня тоже логи ведутся - с января уже
<KORG> я не говорю про алгоритм реакции на события....
<KORG> я говорю про формирование словаря.
<KORG> а словарь потом откорректировать по нормальному
<Creature> Хм.. а может таки сделать каждое слово как объект. Там будет помниться и значимость и остальное
<KORG> по нормальному словарю т.е.
<phil_eye> korg - в рус. языке мнооооого исключений - задолбаешься корректировать
<ykes> единственно, из чата можно выдернуть типичнве опечатки и сокрашения, не больше
<ykes> на мой взгляд
<phil_eye> с учетом еще и специфики чатовской речи!
<KORG> Фил, в любом случае задолбаешься... я просто пытаюсь этот процесс по максимуму автоматизировать
<Creature> опечатки вытаскивать надо другим процессом, это другая задача!
<phil_eye> korg: хорошо, но лучше - готовый словарь тоже притянуть :)
<KORG> я не спорю...
<ykes> ибо без словаря - ну никак
<ykes> как понять, что это слово - представляет собой действие а не свойство?
<KORG> я пытаюсь толковать о том, что без оптимизации самой задачи ничего не получится - слишком громоздко и сложно выходит...
<ykes> только из словаря. ну почти, скажем так.
<Creature> ЕКЕС, порыться в данных об этом слове, в свойсвах..
<ykes> т.е. в словаре?
<ykes> словарь - список слов со свойствами
<phil_eye> korg - я вообще предложил оптимизацию в том, чтобы для начала макс. упростить речевой и целевой блоки
<KORG> и вообще я по прежнему противник того, чтобы мыслить словами...
<phil_eye> и заняться максимально ассоциативным
<KORG> не справимся мы с такой задачей.
<phil_eye> korg - и я противник
<phil_eye> не словами надо - понятиями
<phil_eye> я прсал об этом в своей статейке
<KORG> ухумс...
<phil_eye> -р +и
<KORG> вот и нужно придумать, дать определение, что называть понятием. что искать собственно
<phil_eye> (на форуме на нее адресок...)
<KORG> я читал =)
<Creature_> Нет, в базе данных... то есть у кадждого слова куча свойств.... найти нужное и считать
<Creature_> Сорри, падал ;(
<phil_eye> korg - как ни странно, в контексте языка базовыми понятиями будут слова :)
<KORG> вот это меня и пугает
<phil_eye> хех -
<phil_eye> дело в том, что если бы
<phil_eye> мы делали без словоразбора (без 1-го блока)
<Creature> фил, у тя есть какое ниить текстовое описание твоего проекта?
<phil_eye> то базой была бы буква
<phil_eye> и 2-му блоку
<phil_eye> пришлось бы потрудиться, чтобы допереть и ввести понятие
<phil_eye> "слово", "предложение" и т.д.
<Creature> ксттаи, на счет человеческого мозга! Он воспринимает звуки!
<phil_eye> а потом бы 2-й блок действовал как
<phil_eye> в случае, когда 1-й блок делает словоразбор - только медленнее
<phil_eye> так как 1-й блок мы можем сделать "ручками" - и оптимизировать
<KORG> Фил... структурная схема как раз понятна...
<phil_eye> Creature: угу, понятия разных звуков обобщаются в буквы, слова
<KORG> не о ней речь..
<KORG> у нас нет принципа
<phil_eye> в общем, в речь
<Creature> фил.. не-а.. в слоги всетаки.....
<KORG> нет принципа обработки и анализа информации
<KORG> мы его не придумали.
<phil_eye> creature: ты прав
<phil_eye> korg: есть идеи?
<Creature> ТАк.. я отойду.... приду - буду говорить про принцип ;)
<KORG> думаю....
<phil_eye> я тоже...
<KORG> это и болезненно, что нету идей.
<phil_eye> что-то нужно вытянуть из нейронных сетей...
<KORG> пока как не крути, получается попугай
<KORG> нужно почитать психологию наверное...
<KORG> ассоциации почитать...
<phil_eye> korg - у меня, вообще-то, есть определенная философия насчет деятельности сознания...
<KORG> принципы построения ассоциативных связей
<phil_eye> но в двух словах не объяснишь... я пытался в статье...
<phil_eye> да, принципы надо изучить, конечно...
<KORG> я все что у тебя на сайте лежит прочитал...
<Creature> Может почитать про нервную систему?
<ykes> насчет ассоциативности:
<phil_eye> а я тока вчера забросил файл
<ykes> допустим, образовалась связь : предмет - действие ( пример)
<phil_eye> http://skyscraper.fortunecity.com/plug/649/texts/my_way.doc
<ykes> связь имеет опр. период "жизни", т.е. со временем она "стареет" чтоли
<ykes> каждоее ее использование - обновляет ее, но в зависимости
<ykes> от результата.
<ykes> т.е. "подкреплением" служит положительный результат в поиске
<phil_eye> ykes - слишком привязано к языку...
<Creature> Нею.. так оно и есть.....
<ykes> абсолютно не привязано.
<ykes> работает с животными.
<phil_eye> вообще-то есть понятие "время жизни"
<ykes> с тараканами, наконец.
<phil_eye> которое у нас сформировалось
<phil_eye> и которым мы пользуемся частенько
<Creature> на самом деле к примеру: Учим стих? Чем дольше, тем лучше запоминаем.... а если забросили.. фиг вспомним!
<phil_eye> для того, чтобы енту связь обрывать/восстанавливать
<phil_eye> но не всегда
<phil_eye> что-то, нарпимер, врезается в память на 100 лет
<Creature> Кстати, все таки о чем конкретно мы говорим?
<phil_eye> а на уровне нейронов подобных механизм обрывания/восстанавливания - это более мелкие
<KORG> все верно. и причем уже хоть как-то алгоритмизируется. тут мы уже мы имеем основу некоего алгоритма анализа. а вот с синтезом у нас хреново: нам дан некий поток информации, и пока мы не научимся его дискретизировать, у нас не будет алгоритма построения осмысленной речи.
<ykes> например, импульс, проходящий по этому эмп. каналу - обновляет
<Creature> Нет.... ведь память - это хим вещества в клетках... они разлагаются
<phil_eye> нейрон не знает, что такое существит. и глагол...
<ykes> врезается на 100 лет - значит постоянно обновляется
<phil_eye> поэтому тут связка этих положений косвенная
<phil_eye> делая ее прямой ты закрепощаешь и привязываешь структуру к языку...
<ykes> <attention>я говорю в форме предположения
<Creature> знает!!! Импульсы - результат звука.... разные звуки - разные силы импульсов!
<ykes> причем тут язык? никак в толк не возьму...
<ykes> по моему, ты фил, сам "привязался" сильно к языку :) пардон
<Creature> Минуточку.. в головном мозге есть центры отвечающие за зрение, ощущения, речь...... вот мы речь и делаем!
<phil_eye> ykes - извини - мой язык слаб, мне трудно выразить свою идею в словах понятно :(
<Creature> Фил... асю дай?
<phil_eye> но, кстати, что ты думаешь о взаимодействии идей со словами?
<KORG> смотрите: мы не говорим просто так. мы говорим на определенные темы. от этого может быть и нужно плясать. разбиваем для опыта речь среднего чатовца на темы. самые общие. продумываем, чем характеризуется тема как объект.
<phil_eye> то есть когда одна небольшая, кажется, идея, выражается на деле в целых книгах слов?
<KORG> наша программа должна реагировать
<Creature> Корг.. кстати... исходящие слова.. это реакция на входящие слова.....
<KORG> а тут вырисовывается возможность сделать алгоритм анализа происходящего - от фразы - к теме
<ykes> это другой уровень. насколько я понимаю, и хочу в общем-то
<KORG> нет. не слова на слова.
<Creature> А что?
<ykes> построить ии который.. трудно объяснить. особенно в чате :)
<KORG> именно так: слова - анализ - тема - выборка из данных по теме - реакция.
<KORG> тут и до автопополнения тем дойдем..
<Creature> Корг, нет анализа!! нет.... просто реакция.....
<Creature> ykes, дай асю?
<KORG> ну как нет.... нужен разбор фразы по неким признакам. по каким - еще не ясно.
<ykes> ты просто поиском зайди, у меня ник такой же
<KORG> по совокупности признаков делается вывод о принадлежности фразы к какой-то теме.
<Creature> ykes, а так слабо дать?
<KORG> по тем же признакам подбирается адекватная реакция.
<ykes> ну, погоди тогда
<Creature> Корг, ну... если навибирать данных по теме.. то их будет столько!
<KORG> их в любом случае будет СТОЛЬКО
<ykes> 8728745
<KORG> в результате должна получиться колоссальная база
<phil_eye> korg - и все-таки ты хочешь "забить" определеную структуру в бота (пусть, для оптимизации), которая сильно снизит его способности к обучению
<ykes> но, набор реакций будет страшно ограничен
<ykes> это получится автомат в чистом виде
<KORG> а значит сразу нужно ориентироваться на мощный механизм управления базами данных
<phil_eye> но увеличит то, что он знает благодаря опыту программиста, забившего в него эту структуру
<phil_eye> но гибкость пропадет :(
<KORG> Фил, пока это выход. для меня - единственный, из которого можно выдавить неглупый алгоритм
<Creature> Не.. обучаемость губить низя ни на каплю!
<phil_eye> вот - мое мнение
<phil_eye> плюнуть для начала на оптимизацию
<Creature> Может так: Приходит слово.... проверяются ассолциации с ним... и из них выдаем ответ?
<phil_eye> и сделать оооообщий алгоритм для обучения
<phil_eye> а вот уже потом - когда
<Creature> Согласен! Плюнуть!
<phil_eye> этот общий алгоритм
<phil_eye> будет тормозить 100000 лет думать
<phil_eye> приложить все усилия и все возможности для
<KORG> вот именно. без построения ассоциативных связей по некоему эвристическому алгоритму нам не жить =)
<phil_eye> оптимизации и использования
<phil_eye> всех тех возможностей к гибкости, которые
<phil_eye> мы в него заложили
<Creature> Корг, ну так как на счет объектного представления слов?
<KORG> делать это все равно придется, так или иначе
<phil_eye> да, корг - по-моему с этим сошласны все
<KORG> тут как раз от построения и структуры объекта зависит гибкость программы
<phil_eye> а самый низкий уровень ассоциаций
<phil_eye> - это связи между нейронами
<Creature> Допустим, получает слоо мама..... он его еще не знает... пишет в его какое-то совйство, что надо узнать что это такое... и спрашивает, допустим
<KORG> во !
<Creature> Фил... нейроны, они только передают импульс!!
<KORG> именно!
<phil_eye> creature - угу - а мыслим мы как же? ;)
<KORG> именно механизм уточнения.
<KORG> многоступенчатый.
<Creature> Фил... хм... ну память - это либо белки клетки, лиибо вещество между нейронами....
<phil_eye> только разрыв между связями нейронов и связями понятий - велик, нейроны как нейтрино по отношению к словам - атомам
<ykes> хм. я тогда бы сказал, что изнутри системы никогда целой картины о всей системы не получится.
<KORG> нужно дать определение на уровне языка - что есть ОСМЫСЛЕННОСТЬ фразы.
<phil_eye> creature - память - это белки клетки - сие я знаю
<KORG> разработать несколько ступеней выяснения
<phil_eye> расскажи мне протпамять как вещества между нейронами?
<Creature> Фил.... а сами нетроны не могут помнить!
<phil_eye> creture - нейрон - клетка!
<Creature> Корг, имено до полного заполнения свойств!! которые надо четко определить!
<ykes> ладно. дискусия сворачивает.
<phil_eye> и я читал, что в завис. от импульсов
<KORG> не сворачивает !
<ykes> До свидания. Спокойной ночи!
<phil_eye> пока
<KORG> как раз нет!
<phil_eye> в них
<ykes> ну, тогда, до завтра
<phil_eye> формируются специализированные белки
<phil_eye> посредством рнк
<Creature> Фил.... ну просто нейроны не соприкосаются вплотную и для передачи импульса от одного к другому действует вещество, которое находится на стыке нейронов..... оно передает потенциал.
<phil_eye> таким образом нейрон (его белки) "узнают" определенные (чаще повторяющиеся)
<phil_eye> импульсы!
<Creature> РНК не причем!
<phil_eye> creature - богом клянусь - читал в мед. энциклопедии статью про память
<phil_eye> энциклопедия за 1991-й год
<Creature> Фил.. у меня мама биолог ;)
<Creature> Фил.. вот затвра наберу у нее книжек и....
<Creature> ;)
<phil_eye> и там говорилось что по одному из новыз
<phil_eye> новых исследований
<Creature> РНК - снимает информацию с ДНК и передает ее белкам....
<phil_eye> стало известно, что все-таки имеет место формирование ентих самых белков
<phil_eye> да
<phil_eye> но она же
<phil_eye> задействуется в этом механизме!
<Creature> но импульс и ДНК никак не связаны!
<Creature> в ДНК содержится информация о стронении клетки!!
<phil_eye> там так сказано было - уточни в новых публикациях - возможно, когда училась твоя мама, это еще не было открыто
<Creature> Ладно, это не так важно.... я к тому, что надо делать рефлекторную модель!
<phil_eye> я тоже надеюсь, что
<Creature> Фил... хих.... у них переподговтовка каждый год ;)
<KORG> от простейших ассоциативных связей к сложным цепочкам.
<phil_eye> память нейрона или не нейрона, но испльзуемся в его рефлексах и алгоритм действий нефрона
<Creature> Хотя на 100% точность я не претендую!
<phil_eye> нейрона прост
<Creature> Да чего там этого алгоритма то?? Пердеать силу импульса и все... или изменить ее
<phil_eye> creature: значит, уже опровергли ту гипотезу, видать :)
<phil_eye> хотя там как подтвержденная преподносилась..
<Creature> Не знаю... я просто в этом не особо...
<Creature> Ну может тогда все таки определимся с базой данных по словам (звукам)?
<phil_eye> я тоже не особо - просто глянул как-то - и вычитал...
<phil_eye> creature: да какие проблемы - тип базы данных хочешь определить?
<Creature> Фил, ну надо с чего то начинать......
<Creature> ..
<Creature> у объекта дожны быть свойства
<Creature> надо их точно определить
<Creature> например
<Creature> - какая часть речи....
<KORG> нужно сделать хоть какую-нибудь самую примитивную модель
<Creature> - какого рода
<Creature> - цензурное или нет и т.д.
<KORG> по крайней мере станет ясно, куды бечь
<Creature> Вот вот... сначала свойства по минимуму
<phil_eye> вы правы
<Creature> и отталкиваться от того, что "он" пока ничего шеньки не знает ваще!
<phil_eye> только это все - в 1-й блок пойдет
<Creature> hfp,jh pderjd&
<Creature> разбор вуков?
<Creature> звуков.
<phil_eye> 2-й блок будет иметь отледьное понятие "часть речи" - свзанное со всеми словами,
<Creature> хм.. но он дожен иметь доступ к базе данных!
<Creature> 1й ваще нафиг тогда не нужен!
<KORG> а кто ему в этом помешает =)
<phil_eye> 1-й учит второй, у них 2 раздельные забы
<phil_eye> базы
<Creature> корг, см. выше чуть ;)
<Creature> КАКИЕ?? ЗАЧЕМ????? Пусть второй сам учится!
<Creature> 1й ваще ненужен
<phil_eye> или даже одна общая - но с двумя раздельными вариантами доступа
<phil_eye> 1-й знает все о грамматике
<phil_eye> 2-й - все о смыслах
<phil_eye> если образно выражаться
<KORG> N-ный о ТЕМАХ 8-))))))))))))))))))))))))))))))))))))
<Creature> 1й пусть и проверяет ее.... он ваще не уперся!
<phil_eye> :)))))
<phil_eye> а кстати - идея - некое подключение плагинов, дающих ассоциатору опыт программиста (типа этого речевого блока)
<KORG> а поскольку количество тем ограничено, будет копиться нераспознанный материал
<phil_eye> и типа анализа темы
<KORG> вот о нем то ОНО и будет спрашивать =)))))
<Creature> фил.. типа пусть сама себя и создает? ;) ГЫ
<phil_eye> вот-вот
<Creature> Корг, угу!! Ты меня понял ;)
<phil_eye> плагины - как органы чувств
<phil_eye> у человека
<Creature> ага.. и для них свой обработчик...
<phil_eye> дающие ему извне инфу...
<Creature> давайте пока трогать тока речь!
<phil_eye> да - я тоже так полагаю
<phil_eye> на ней проще всего представлять :)
<vi-agra-gr> мнуйдиг йигуйг0г гйбупгбр бпрбрпп232450559=04=
<vi-agra-gr> цпуйгце
<vi-agra-gr> рсе[г
<vi-agra-gr> у]г рудв[чплдвгу
<vi-agra-gr> двчлд[згкуерсйхф426пф
<Creature> ой мам
<vi-agra-gr> 3
<vi-agra-gr> 432065=т34 в6 76458'/
<phil_eye> vi: u can't see our cyrillic fonts
<vi-agra-gr> 78
<KORG> стукнете его, у кого рука послабже =)))))
<phil_eye> сам стукнулся
<KORG> у него алгоритм был галимый имхо =)
<phil_eye> приколько - все иностранцы приходят и пишут одно и то же, реагируя на наши фонты - хоть бы что-нить поинтереснее придумали :))
<Creature> аууу?
<phil_eye> да
<Creature> даешь модель хранения слов в базе?
<Creature> ;)
<Creature> звуков наверное всетаки...
<phil_eye> creature - звуков - натяжно!
<phil_eye> оно их санализировать не сможет
<phil_eye> лучше текстов...
<Creature> почему???
<Creature> по ассоциативным записям сможет!
<phil_eye> creature - это сложная задача - она +1000000 лет будет думать...
<Creature> Кстати.. сделать раздор звуков и параллельно обработку получающихся из них фраз.....
<Creature> Фил, не будет.. тут ничего сложного!
<KORG> гы. нужно проштудировать какую-нибудь методику обучения иностранному языку =)
<phil_eye> а нам и так предстоит боольшая работа по оптимизации
<Creature> забудь про оптимизациюб пока
<KORG> народ тут строит жизнь
<KORG> =)
<Creature> Корг или проследить свои реакции на фраы.....
<Creature> Ну кто так строит, кто так строит? ;)))
<phil_eye> не жизнь, а сознание
<_dude> сексом чтоли занимаетесь :)
<KORG> ты погоди... сознание...
<phil_eye> жизни там не будет ни на грош без души
<KORG> оно у нас еще и размножаться будет =))))))))))))))
<Creature> Нормальные люди жизнь с девушками "строят" ;)
<phil_eye> :)))))
<|nuPaTuK|> [ykes] O, Ykes!
<Creature> Спорами!
<phil_eye> вот-вот
<ykes> я тута не выдержал, перед ухододом-дай думаю зайду...
<phil_eye> а мы тут вообще терминатора какого-то изобретаем!
<phil_eye> пора прикрыть проект :)))))))
<ykes> чего там было о разборе звуков?
<ykes> зачем это?
<ykes> надо браться за то, где физика наиболее отсутствует
<phil_eye> creature хочет, чтобы оно звуки разбирало
<Creature> ну реакция на звуки.. ассобциации
<phil_eye> а я говорю, что это на порядки увеличит сложность работы ассоциатора
<ykes> ну, тогда ухо надо сделать сначала
<KORG> сначала нужно сделать... ой
<KORG> не спошлить бы =)
<Creature> йкес, ухо.. это типа прием фраз....
<ykes> да
<Creature> ой не нада.. тогда они нас подавят
<Creature> ухо приравняем к вводу фраз ручками ;)
<Creature> пока
<ykes> короче, так и не договорились, с чего хотя бы попробуем?
<ykes> спорить можно до темноты
<phil_eye> ой оно не обучится никогда...
<Creature> начнем с построения структуры базы данных!
<phil_eye> оно сто лет из звуков слоги будет вычленять
<Creature> ФИЛ, если мы его сделаем.. я сам научу его"ой" ;)
<ykes> а может оно потом и слышать научится ... мало ли. Ведь глобально ж обучатся будет.
<ykes> К стати: проблема
<phil_eye> ты столько не проживешь!
<Creature> Фил... звук в нашем случае - слог!
<phil_eye> да - и будет тута все
<phil_eye> подслушивать - нафига!
<KORG> думаем мы не звуками - фразами мы думаем
<ykes> если прога будет реально мыслить, кто помешает ей бога своего изобрести, вылезтьи за пределы среды т.е. вылезти в ОС и тп.?
<KORG> целыми
<phil_eye> хотя есть идея - запустить его в нетмитинг
<phil_eye> ykes - я и говорю, терминатор получится
<ykes> вот глюк-то будет. Запускаешь прогу - а она тебе - а я тебя не признаю. ТЫ обман моихз чувств
<Creature> думаем мы.. ассоциациями!
<phil_eye> хана нам всем - самоубийцам :)))
<ykes> короче, берется кто-нить что-нить модулек какой-нить начать делать
<ykes> это ж чистой воды эксперименты
<ykes> говорить можно до бесконечности, надо пробовать
<Creature> на чем пишем?
<ykes> на чем угодно, каждый на своем удобном
<ykes> договориться об обмене между процессами - и ок.
<ykes> даже каждый на всоем компутере - интернет все-таки объединяет
<Creature_> падал ;(
<phil_eye> пока я реально вижу возможность делать только 1-й блок (речевой)
<Creature_> Так на чем пишем?
<Creature_> нафиг 1й блок...... елы.. проферку орфографии уже и ворд делает!
<phil_eye> я на delphi (и oracle, если понадобится...)
<KORG> пока на мозгах мы пишем....
<Creature_> Надо обговорить структуру базы
<KORG> вот именно
<Creature_> Фил ;))) Ы!! Я тоже на дельфи ;)
<phil_eye> тады от interbase не откосить!
<Creature_> Э!!! Я про поля !!!
<phil_eye> ок, поля
<KORG> ...и ушел в поля..... =)
<Creature> Это мой бот %))
<phil_eye> табл
<phil_eye> словарь
<phil_eye> поле понятие_id
<phil_eye> поле понятие_name
<phil_eye> табл.
<phil_eye> связи
<KORG> не рвите с места...
<Creature> Стоп!!!
<phil_eye> поле связь_id
<phil_eye> поле понятие_1_id
<Creature> надо тогда пока просто определить свойства (простейшие) для ассоциации со словом!
<phil_eye> поле понятие_2_id
<Creature> Типа:
<Creature> - предмет или нет?
<ykes> я, к сожалению, вынужден идти, теперь уж надолго.поэтому, ежели до чего-то интересного дойдете, киньте мылом, чтоли. cadrus@hotmail.com, кааак с утреца приду, зачитаю...
<phil_eye> не, не так
<Creature> екес пока
<Creature> фил ну я к примеру....
<phil_eye> понятие_id=1 понятие_name=предмет
<phil_eye> понятие_id=2 понятие_name=стул
<Creature> что такое понятие_id_1?
<phil_eye> связь_1 id=1 id=2
<Creature> ЭЙ!! Ты опять уходишь от слов к внутреннему языку!
<phil_eye> вот так, если на то пошло, будет реализована (в первом приближении)
<phil_eye> то, что некое конкретное слово является понятием
<Creature> предлоги тоже понятия?
<phil_eye> да!
<phil_eye> понятие_3 над
<Creature> не да, а нет!! Предлог "и" это что?
<phil_eye> в смысле "под"
<phil_eye> понятие_4 _tmp_internal_понятие_1_
<Creature> да остновись ты!
<phil_eye> связь_3 понятие_3 понятие_4
<KORG> Остапа понесло =)
<phil_eye> понятие_5
<Creature> Oбьект name
<phil_eye> пол
<Creature> name.property:
<Creature> вот их и надо определить
<phil_eye> связь_4 _tmp_internal_понятие_1_ понятие_5
<KORG> начать с того, что помнить придется все склонения, спряжения и связки, допустимые со словом. и времена.
<phil_eye> ="пол под стулдом"
<daos> ребята вы что перпеттум мобиле изобретаете
<phil_eye> :))))))))))))))))))))
<Creature> Связи в свойства объяекта!
<daos> :))
<KORG> Даос, мы изобретаем самогонный аппарат =)
<Creature> НЕНАДА СКЛОНЕНИЯ ПОМНИТЬ!
<KORG> он нам самогон будет гнать =)
<daos> этт принципиально невозможно то что вы хотите
<phil_eye> корг - не надо - это первый блок делает
<Creature> нада знать корень!
<KORG> а если и не самогон, то ГНАТЬ он точно будет
<KORG> =)))
<phil_eye> он слово прволит к нормальной форме
<Creature> ;))))))
<phil_eye> и регистрирует как понятие во 2-м блоке
<KORG> Даос... то, что принципиально возможно - скушно....
<Creature> Фил, ничего он не приводит... он должен его без ошибок подать
<phil_eye> только эту норм. форму слова
<Creature> а регистрировать должен блок 2!!
<phil_eye> creature - можно и так
<daos> :)) это ты прав
<Creature> Фил, так ты за или против объектного представления?
<phil_eye> creature - представь "пол под стулом" объектами?
<Creature> фил, 3 объекта.. и что?
<phil_eye> daos - даосизм знаешь? ;)
<phil_eye> нарисуй
<KORG> один. не три
<daos> угу
<Creature> фил... три!!!!!
<Creature> блин
<phil_eye> нарисуй!!!
<Creature> каждое из этих слов может быть примененио с другими словами!
<KORG> а еще лучше - купи слона.
<phil_eye> главное - как оно дальше строить и жить в объектах будет, если
<KORG> пошел я спать =)
<phil_eye> потребуется введение новых их свойств?
<daos> Корга пить када бум
<Creature> фил... с добавлением совйств непонятно, но это можно предусмотреть....
<KORG> порубите товарищей шашкой. только сначала чайком напоите... и неприменно с лимончиком...
<KORG> я не пью =Р
<lao_tszi> хехе - вот и придусмотри -
<lao_tszi> главное - обучаемость сделать, расширяемость
<Creature> Зато все остальное со свойствами упростится!
<Creature> Фил, все равно есть ограниченное количество свойств на любое слово!
<lao_tszi> чтобы структура сдерживала и предопределяла по-возможности как можно меньше!
<lao_tszi> creature - ни фига
<Creature> ну представь как легко изменить свойство "рекция" То етсь было хорошее слово - положительное, и тут "он" узнает что это ругательство? Изменил свойство и все!
<Creature> И не надо никаких связей трогать
<phil_eye> ага, а потом он встретил слово "реакция" еще в 1000 случаях
<phil_eye> в разных контекстах
<Creature> стой!
<phil_eye> и каждый раз выносил некую ассоциацию
<KORG> и перепутал с эрекцией
<phil_eye> этого слова
<Creature> не слово реакция!!!
<Creature> а свойство объекта - рекция
<Creature> А ассоциация должна всегда расширяться!
<phil_eye> то есть типа шкалы - хорошие/плохие
<phil_eye> таких шкал уйма
<Creature> Фил.. это одно из свойств......
<phil_eye> мы их сами вводим
<daos> а для того чтобы он не перепутал должно иметься член
<phil_eye> когда они нам становятся нужн
<phil_eye> ы
<Creature> фил, их много.... но коненое число......
<phil_eye> по каким-то причинам
<Creature> хотя... может ты и прав
<daos> а у него его никогда не будет
<phil_eye> и для них мы вводим доп. понятия
<phil_eye> (для шкал)
<Creature> не понятия... а ассоциации!!
<Creature> ну вот тебе сказали "коныета".. ты ничего не знаешь....
<Creature> потм те ее показали.... "ты узнал как выглядит"
<Creature> потом попробовал.... узнал вкус
<Creature> потом увидел мальчика с конфетой...
<Creature> вот твои ассоциации....
<Creature> просто в виде списка!
<Creature> причем не большого!
<Creature> мальчика ты вскоре забудешь!
<phil_eye> ассоциации - связи понятий
<phil_eye> конечно, удобно мыслить нейрон как объект - я не против
<phil_eye> (ну, не нейрон - нейрон + окрудение с памятью)
<phil_eye> -д +ж
<Creature> Просто доступ к ассоциациям будет просто
<Creature> прост то етсь..
<Creature> не нейрон как объект.. а звук....
<phil_eye> хех - к понятиям тоже :) спор беспредетный
<phil_eye> я понял - мы об одном и том же сейчас говорим - разными словами:)
<Creature> к понятиям нет!! стоит изменить восприятие слова.. и придется переопределять все связи!
<Creature> гы
<phil_eye> Неа, просто мы добавим понятию новую связь
<Creature> а если понятие изменилось?
<phil_eye> понятие как раз и определяется всеми его связями - гы
<phil_eye> что значит изменилось? например?
<Creature> ну с той же коныфетой... она стала не вкусной!
<phil_eye> отлично - конфета связана с понятиями вкусный и невкусный
<Creature> он начинает думать что мальчик мазохист....
<phil_eye> это большой шанс для
<Creature> что ему какие то гады подсунили дрянь
<phil_eye> обучения и для обобщения
<phil_eye> например, для введения понятия "вкусная конфета"
<Creature> о! вкусный невкусный - это свойство "реакция"
<phil_eye> и "невкусная конфета"
<phil_eye> и связывания их обоих с понятием "конфета"
<phil_eye> тем не менее "конфета"
<Creature> ну и??? Это ли не свойство объекта "конфета"?
<phil_eye> сохраняет все остальные связи
<phil_eye> (вид, мальчик...)
<phil_eye> потом оказывается, что невкусные - конфеты фабрики "х"
<Creature> Да?? Мальчик если вкусную конфету.... какая реакция?? положительная!
<Creature> А Мальчик ел не вкусную конфету.... какая реакция?? отрицатель ная!
<phil_eye> тогда мы создадим еще понятие
<Creature> Меняй ассоциации с мальчиком,
<Creature> с тем что он есть
<phil_eye> неа - ни за что - ассоциации не могут меняться
<Creature> про фабрику мы пока ничего не знаем
<phil_eye> они могут только дополняться
<Creature> могут!!
<Creature> они постоянно меняются!
<Creature> Если мне препод нравится
<phil_eye> а старые (под напором большего кол-ва новых) - теряться
<Creature> а потом он мне пару влепил?
<phil_eye> как малозначимые
<Creature> что? Дополнилось???
<Creature> Оно просто изменилось
<phil_eye> это уже понятие "хронология"
<phil_eye> и "развитие"
<Creature> это смена ассоциции
<phil_eye> есть понятие "конкретный учитель"
<Creature> я его больше не юлблю!
<phil_eye> "учитель вчера"
<Creature> а вот еслди он скажет что пошутил.....
<phil_eye> "сегодня"
<Creature> я опять его люблю!
<Creature> опять смена!
<phil_eye> а есть - учитель вообще
<phil_eye> конкретный учитель влепил тебе 2
<phil_eye> "конкретный учитель вчера"
<Creature> вот прикинь! нужно сменить связт с учителем,по отношению к тебе, потом отдельно про учителя.
<Creature> ты меня слушаешь?
<phil_eye> да - но связи не меняются - они дополняются
<phil_eye> просто было понятие "учитель"
<phil_eye> потом нам его пришлось переименовать в "конкретный учитель"
<phil_eye> а над ним поставить понятие "обобщенный учитель"
<CAPTAIN-NEMO> (#G3::E010M1) hello guys....
<Creature> Фу.... бред ;(
<phil_eye> тут могут быть разные подходы к наращиванию схемы связей
<Creature> зачем так усложнять?
<phil_eye> а потому что мы так мыслим :)
<Creature> надо сделать расширяющийся список свойств.
<phil_eye> у нас мысли не иерархические и не объектные
<Creature> вот твой учитель
<phil_eye> а похожи на некую сетевую структуру
<Creature> учитель конретный
<Creature> учитель поставил 2
<phil_eye> так
<phil_eye> дальше
<Creature> учитель которого ты не любдбишь
<phil_eye> потом он тебе поставил 5+
<Creature> вот те иерархия
<phil_eye> вдруг
<Creature> учитель которого ты любишь
<Creature> учитель который может жестко шутить
<phil_eye> ни фига - он же тебе и 2 поставил
<phil_eye> ты накапливаешь опыт
<Creature> тогда наоборот очередность
<Creature> именно!
<phil_eye> потом оказалось - что это были блезницы - что делать?
<Creature> и добавляешь свойство к объекту учитель что он шутник
<Creature> какие близнецы?
<phil_eye> два разных учителя, один другого заменял
<Creature> там где бало учитель имелось в виду конкретный учитель!
<Creature> СКажем вася
<phil_eye> но ты этого не знал, когда строил понятия
<phil_eye> хронология такая
<phil_eye> 1. учитель вася влепил 2
<phil_eye> 2. учитель вася влепил 5
<Creature> Знал!! так как разговор о конкретном, который поставил!
<phil_eye> 3. учитель вася, оказывается - это два разных человека
<Creature> ПОЧЕМУ?
<phil_eye> ну это выясилось только впослествии
<Creature> Ну елы! Стоп!
<gfk> (#G110E110M1) Wait.
<Creature> ты точно определяешь учителя по его все равно какому Id!
<phil_eye> фикус в том, что ты не всегда можешь спуститься на нижний уровень этой "иерархии"
<Creature> А имеено?
<Creature> ты можешь понять кто тебя 2 поставил!
<phil_eye> тебе может потребоваться и еще более конкретный учителдь
<Creature> имено кто.. знать его Id
<phil_eye> например учитель вася конкретный 1-й близнец пьяный вдрызг
<phil_eye> например учитель вася конкретный 1-й близнец пьяный трезвый добрый
<Creature> Если ты не знал, что бывают еще учителя, это добавляетсчя к общему объекту Учитель... то есть список их имен
<phil_eye> например учитель вася конкретный 2-й близнец
<Creature> И что?? Не улавливаю....
<phil_eye> хехе - этот список разрастется непомерно
<phil_eye> в конце концов
<gfk> (#G210E410M1) привет
<Creature> Плевать!! ты тоже всех не упомнишь....
<Creature> привет
<phil_eye> пьяный, например, 2-ки ставит
<Creature> кто то вывалится как ненужный
<phil_eye> а трезвый нет
<phil_eye> привет
<gfk> (#G110E110M1Tphil_eye) What's up.
<Creature> Вот те Учитель.Пьяный.Поведение:=ставит 2ку
<Creature> "поведение" к примеру....
<Creature> тест
<phil_eye> не так anything.существо.человек.учитель.пьяный.поведение := стаивт 2-ку
<phil_eye> и будет 1 объект :)
<phil_eye> anything
<Creature> ага... ведь свойствам объекта тоже может быть объект!
<Creature> anything.предмет.существо.. ;)
<phil_eye> угу
<Creature> ну овт и все!!! все иерархично ;)
<phil_eye> момент...
<Creature> угу
<phil_eye> а как собрать целиком представления о поведении - по всем объектам бродить-искать?
<phil_eye> вот я спрашиваю - что ты знаешь о поведении всех предметов?
<Creature> НЕТ! берем объект СЛОВО!! тое сть в данный момент Учитель... итменно это слово к нам пришло!
<phil_eye> не в данный - я вообще хочу узнать
<Creature> Мне не надо всех.
<Creature> какой слово пришло, тот объект и берем!
<Creature> то есть слово=имя объекта
<phil_eye> я спрашиваю ИИ - расскажи мне про поведение предметов
<Creature> Типа эта входная фраза "расскажи мне про поведение предметов"?
<phil_eye> угу :)
<Creature> ой.. сложно.. ща попытаюсь
<phil_eye> на самом деле - это его внутренняя проблема
<Creature> чиво??
<phil_eye> т.е. чтобы создавать самому
<phil_eye> понятия
<phil_eye> а не тольк брать готовые понятия из речи
<Creature> угу....
<phil_eye> (то есть чтобы обобщать)
<Creature> да!
<phil_eye> нужно чтобы он анализировал время от времени
<phil_eye> например, все, что он знает о поведении
<Creature> хм.... логично..... но даже ты не ответишь ;)
<phil_eye> и говорил, что поведение как абстракция имеет свойства изменяться
<phil_eye> под внешними воздейстивями
<Creature> Измменяться - дейтсвие.... пойдет с список действий объекта "поведение"
<phil_eye> и приписывается часто живым объектам
<phil_eye> кстати - как же мы забыли -
<Creature> нет!! никуда не надо приписывать!!
<Creature> Если придет какой то живой объект, он сам вытащет это из свойств объекат " повдение"
<phil_eye> предмет.существо.живое.homo.человек
<phil_eye> как ты будешь включать уровни иерархии
<Creature> Короче!
<Creature> вывод!
<phil_eye> если вдруг обнаржишь, что твоих недостаточно
<Creature> надо делать динамическое создание свойств!
<phil_eye> эхехе - это ууусложнит использование объектов
<Creature> Почему?
<Creature> test
<phil_eye> passed, только думаю, почему :)
<vlas> о чём разковор идёт здесь?
<phil_eye> об ИИ
<Creature> Мда. на самом деле я до конца всю схему не предстваляю....
<Creature> надо бы чтобы распознавал, надо ли отвечать или нет.....
<phil_eye> я ведь тоже думал раньше именно об объектах, н что-то мне в них не понравилось...
<Creature> то етсь елси просто слово..... обработал и проглотил и если непонятно спросил
<Creature> А если вопрос.... отвечать
<vlas> что такое ИИ?
<phil_eye> vlas - загляни на наш форум
<vlas> ult&
<vlas> где?
<phil_eye> я тебе сказал, когда ты вошел
<phil_eye> и в теме комнаты сказано
<phil_eye> не могу точно представить - что, это на уровне ощущений...
<Creature> Да даже на уровне ощущений не вс епонятно ;)
<phil_eye> но в общем, абстрактно подходя, не важно - объекты или
<Creature> Блин.. вот бы начать хоть...
<phil_eye> таблицы
<Creature> но с чего? ;)
<ziya> hi
<phil_eye> это уже конкретика
<Creature> Ага....
<Creature> но от этого зависет развитие мысли....
<Creature> ведь связь можно вставить и в свойство объекта ;)
<ziya> do you speak enlish or tukish?
<phil_eye> таблицы проще эксплуатировать, так как не все базы поддерживают объекты, а sql-запросы - все
<Creature> ziya, no.. only russian
<vlas> Искусственный интеллект?
<ziya> himmmmmm.
<phil_eye> но можно их обкатать объектами...
<Creature> СКУЛЬ гадость!! ;)
<ziya> you can't speake eng...isn'n it?
<Creature> И ваще.. пока не волнует оптимизация, сам говорил
<phil_eye> creature - ты видимо его мало юзал
<phil_eye> я на oracle пишу - только на sql
<Creature> Фил, ага.. но траблов было ;)
<ziya> yes or no
<Creature> Ziya, ифвдн
<Creature> ziya, badly
<ziya> i don't understand
<ziya> i m friendly no badly...
<phil_eye> там расширенныц - plsql - пишешь прилождение для клиента, а потом если что - легко переносишь его
<Creature> ziya, here speak only on russian!
<phil_eye> на сервер и не нужно перекодировать из языка в язык
<ziya> ooooooooo sorry i m going....
<phil_eye> например, из паскаля в sql
<ziya> bye
<Creature> bye
<Creature> Да... но всетаки.... лучше объект кажется.... и ваще можно сделать свой формат БД.. даже нужно
<phil_eye> иерархия также легко таблицами строится :)
<Creature> Ну во всяком случае таблицами я пока не предтавляю... ассоциации все равно идут на слово и его свойства.... это первичная реакция на него
<phil_eye> свой велосипед не надо изобретать.. но обкатати в объекты можно!
<Creature> Не велосипед.. ты базу под себя делаешь!
<phil_eye> у тебя опыта с ними мало - там элементарно с помощью foreign key на себя реализуется иерархия
<Creature> Ты прав.. с базами почти нет
<Creature> если можно сделать базу с расщирениями свойств. то все оби!
<Patrice> (#G7::E010M1) hi
<Patrice> (#G=10E210M1) kak dela
<Patrice> (#G>10E;10M1) do you speak english?
<phil_eye> нет, базу с полем "тип свойства" :)
<Creature> а дальше?
<phil_eye> и туда любые ид
<Creature> А!
<Creature> а то что в ид где хранить?
<phil_eye> а расшифровывать в справочниках...
<Creature> чиво?
<phil_eye> ну, это такие таблицы...
<Patrice> (#G7::E=10M1) hello phil?
<Creature> а... так а ранить сами свойства где?? много много фалйиков?
<phil_eye> ну сейчас все таблицы храняться в одном файле физически
<phil_eye> (в interbase, oracle...)
<Creature> тогда все нормально ;)
[Patrice] (#G?;:E@10M2Tphil_eye) are you there?
[phil_eye] -> [Patrice] i'm in #Russian_Programmer
[Patrice] (#G1<:EA10M2Tphil_eye) I'm not a programmer. I just like Russians.
<phil_eye> хех - главное, что эти базы - распределенными могут быть
<Creature> эткак?
<phil_eye> то есть данные на нескольких компах можно хранить
<phil_eye> и доступ иметь многопользовательский
<Creature> аааа.. тока не это.. пусть все на одном будет ;)
<phil_eye> и оптимизация там уже есть мощнейшая
[Patrice] (#G?;:E010M2Tphil_eye) why did you invite me here?
<Creature> ну тогда решено....
<phil_eye> хехе - понадобится - об оптимизации надо забыть, но делать все так, чтобы
<Creature> только с базами я ламер ;)
<phil_eye> потом о ней можно было вспомнить
<phil_eye> т.е. не закрыть себе пути к ней
<phil_eye> по
<phil_eye> поэтому я хоче изначально
[Patrice] (#G?;:E010M2Tphil_eye) phil, why did you invite me to the other room?
<Creature> пути можно открыть ;)
<phil_eye> сделать 1 и 4 блоки как облегчающие жизнт
<phil_eye> ь
<phil_eye> пути должны быть предусмотрены изначально (хотя бы примерно)...
<Creature> Да отстань ты от первого блока...... пусть проверяет орфографию ;)
<Creature> 2й вс еравно все будет разбирать по слогам!
[phil_eye] -> [Patrice] my script (robot) did that, because you joined our door-room
[Patrice] wanna chat
<phil_eye> слоги трудно ассоциировать... сложнее, чем готовые понятия на блюдечке (как в моем примере)
[Patrice] I'm not a programmer, I just like Russian
<Creature> Э! Так вот.... елси слога нет в базе, пытаемся считать следующий, соеденить. и снова искать....
<phil_eye> но с другой стороны все это не важно - важно ассоциатор ...
<phil_eye> сделать...
<Creature> неронный принцип
[Patrice] I don't have my PC set to view your alphabet right
<Creature> верно ;)
<phil_eye> все, я уже не соображаю - завтра расскажешь... :)
<Creature> а где корг?
<phil_eye> спит!
[phil_eye] -> [Patrice] excuses, let's talk next day, i'm going to sleep, bye...
<Creature> лана.... прощаемся ;))))))
[Patrice] good night
<phil_eye> всЕм спокойной ночи
Переписка: Creature - Philosoph
7 августа 1999 г.
А теперь, Влад, я все тебе скажу!
Привет. Попалась тут твоя статейка про ИИ... кто-нить откликнулся? Или все
загнулось?
---
Creature
===================================================
7 августа 1999 г.
>А теперь, Влад, я все тебе скажу!
Говори! Или на борду нашу напиши
>
>Привет. Попалась тут твоя статейка про ИИ... кто-нить откликнулся? Или все
>загнулось?
Народу, в общем, интересно - все что-то хотят такое сделать. Делает же пока
только ykes. В общем, не загнулось - но мы (по крайней мере я) и не
торопимся.
А ты кто? Интересовался ИИ, занимался?
Philosoph
===================================================
8 августа 1999 г.
А теперь, Влад, я все тебе скажу!
>Говори! Или на борду нашу напиши
А борда то где? ;)
>Народу, в общем, интересно - все что-то хотят такое сделать. Делает же пока
>только ykes. В общем, не загнулось - но мы (по крайней мере я) и не
>торопимся.
>А ты кто? Интересовался ИИ, занимался?
Я только интересовался немного... заниматься наверное нельзя так назвать... Но с
удовольствием бы принял участие...
---
Creature
===================================================
9 августа 1999 г.
Ну вот - после такого заявления, могу открыть тебе тайный секрет, где наша
борда :)))
Дело в том, что мы только что сменили ее адрес - на
http://welcome.to/RU_PROG
Излагай свои идеи свободно - сейчас, думаю, надо собрать все мысли и
литературу по поводу проекта, а не бросаться сразу в кодирование неизвестно
чего.
В общем, welcome с новыми идеями и полезными ссылками на ИИ! Меня, например,
сейчас сильно волнует, как реализовать ассоциацию понятий (блок 2) в виде
нейронной сети - вытянуть бы, для начала, этот момент... Чувствую, что тут
должна быть какая-то красивая мысля...
>А теперь, Влад, я все тебе скажу!
>>Говори! Или на борду нашу напиши
>
>А борда то где? ;)
>
>
>>Народу, в общем, интересно - все что-то хотят такое сделать. Делает же
пока
>>только ykes. В общем, не загнулось - но мы (по крайней мере я) и не
>>торопимся.
>>А ты кто? Интересовался ИИ, занимался?
>
>Я только интересовался немного... заниматься наверное нельзя так назвать...
Но с
>удовольствием бы принял участие...
Philosoph
===============================================================================
9 августа 1999 г.
>Дело в том, что мы только что сменили ее адрес - на
>http://welcome.to/RU_PROG
И там почти ничего нету... обидн! ;(
>Излагай свои идеи свободно - сейчас, думаю, надо собрать все мысли и
>литературу по поводу проекта, а не бросаться сразу в кодирование неизвестно
>чего.
Логично... кстати, у тебя аська есть? Просто в реалтайме пообщаться не мешает. Я
конечно не на что особо умное не претендую, но все же...
Кстати, а что тебя натолкнуло на 4х блочную схему?? Нужна ли она? Насолько я
понимаю, она преобразет всю информацию в свою, скажем бинарную... Но ведь чтобы
она могла "думать" придется при создании помнить все соответствия между числами
и словами... Если у меня слово белый ассоциируется со снегом, мороженым,
принтером... то у "нее" это циферки... сами запутаемся ;)
Может стоит урпостить задачку и ориентировать пока только на речь?
Может слышал про программку VirtualSysOp? Он довольно таки неплохо морочит людям
головы.... Правда только первое время, потом легко раскусить. Но в свое время
мне доставляло много удовольствия чтение логов %)))
>сейчас сильно волнует, как реализовать ассоциацию понятий (блок 2) в виде
>нейронной сети - вытянуть бы, для начала, этот момент... Чувствую, что тут
>должна быть какая-то красивая мысля...
А вот про нейронные сети я мало знаю... Чесно говоря пока не представляю
наглядно что это такое....
Простым языком не объяснишь?
Кстати, вот адресок, может тебя там еще не было
http://www.freebee.techno.ru/alexkuck/4_science_nn.html
---
Creature
===================================================
9 августа 1999 г.
>>http://welcome.to/RU_PROG
>И там почти ничего нету... обидн! ;(
Только создали ведь...
>Логично... кстати, у тебя аська есть? Просто в реалтайме пообщаться не
мешает. Я
>конечно не на что особо умное не претендую, но все же...
Я тоже не претендую :))
11085892
> Кстати, а что тебя натолкнуло на 4х блочную схему?? Нужна ли она? Насолько
я
>понимаю, она преобразет всю информацию в свою, скажем бинарную... Но ведь
чтобы
>она могла "думать" придется при создании помнить все соответствия между
числами
>и словами... Если у меня слово белый ассоциируется со снегом, мороженым,
>принтером... то у "нее" это циферки... сами запутаемся ;)
>Может стоит урпостить задачку и ориентировать пока только на речь?
Вот, все так говорят...
>Может слышал про программку VirtualSysOp? Он довольно таки неплохо морочит
людям
>головы.... Правда только первое время, потом легко раскусить. Но в свое
время
>мне доставляло много удовольствия чтение логов %)))
Хех - да, слыхал о подобных прогах
А мне не хочется создавать то, что уже сделано! Но есть желание сделать
инструмент, который бы можно было обучить и речи, и игре в карты, например -
в общем, возможности оперировать с любым типом информации и обучаться -
тогда это будет интеллект, а не (пусть сложно организованная) повторялка
На 4-блочную схему меня натолкнули мысли об оптимизации (см. ниже). Еще она
нужна для нас самих - чтобы ввести изначально некую блоковость - а не видеть
перед собой один сложный монолит. То есть я хочу разделить речь,
память/обучение и мотивирование - так будет проще нам самим размышлять о
способности обучаться безотносительно к языковым конструкциям.
Тип представления информации в блоке 2 не имеет значения. Даже так - он
задается конкретной реализацией блока 1: блок 1 - учитель, он учит блок 2,
"нашептывая": "задай новое понятие "дуб"", "задай новое понятие "поляна"",
"задай связь понятий "дуб" и "поляна"" (упрощаю, конечно).
Может быть другой тип информации - ходы в игре, тогда будет нечто вроде:
"задай новое понятие "перемещение по карте(полю игры)"", "задай новое
понятие "ход игрока"", "задай новое понятие "включение"", потом блок 1
устанавливает связи между понятиями "перемещение по карте" и "ход игрока"
так, что "ход игрока" "вкючает" "несколько" (тоже, кстати, отд. понятие)
"перемещений". Ценность блока 1 и суть оптимизации в том, что он обучает
блок 2, как вычленять понятия и правильно строить связи между ними.
Блок же 2, со своей стороны не останавливается на достигнутом - и
анализирует, обобщает, вводит новые понятия (внутренние) на основе
полученной инофрмации.
Если убрать блок 1 и посылать на 2-й сразу сплошной текст, то, думаю,
пройдут годы, пока блок 2 не выйдет на должный уровень абстракции и не
введет на базе внешних понятий "буква" внутренних понятий "слово",
"разделитель слов", "предложение" и т.д.
Да, сразу оговорюсь - блок 1 - не идеальный учитель: он, конечно, научит
неким эмпирическим связям между словами, но выходить на определенный уровень
абстракции блоку 2 придется самостоятельно.
>>сейчас сильно волнует, как реализовать ассоциацию понятий (блок 2) в виде
>>нейронной сети - вытянуть бы, для начала, этот момент... Чувствую, что тут
>>должна быть какая-то красивая мысля...
>
>А вот про нейронные сети я мало знаю... Чесно говоря пока не представляю
>наглядно что это такое....
>Простым языком не объяснишь?
Сам еще мало знаю. Суть - "скопировать" деятельность нейронов мозга. Каждый
нейрон имеет отростки - связи - для передачи/получения импульсов от других
нейронов и небольшую память. Представь - совокупность независимых процессов,
каждый из которых получает от других сигналы, как-то там их анализирует и
генерирует новые сигналы (отсылая их другим нейронам). Вопрос в том - как ;)
>Кстати, вот адресок, может тебя там еще не было
>http://www.freebee.techno.ru/alexkuck/4_science_nn.html
Сенькс - на этот еще не залезал
Philosoph
===================================================
12 августа 1999 г.
Привет... вот я тут попытался систематизировать свои мысли... Кажется особого
понятного ничего не получилось, но хоть начало будет. Чувствую многое упустил...
Читай, поправляй объясняй и предлагай %)
В начале фраза должна обрабатываться (может быть по правилам русского языка)
в ней должны устанавливаться приоритеты слов. Например: <дуб растет на поляне> -
повествование, можно интерпретировать, как <ДУБ растет на поляне> - утверждение,
что именно дуб растет на поляне, <дуб РАСТЕТ на поляне> - утверждение, что дуб
растет, <дуб растет НА поляне>, <дуб растет на ПОЛЯНЕ>: Или как вопросительные
предложения <ДУБ растет на поляне?>, <дуб РАСТЕТ на поляне?>, <дуб растет НА
поляне?>, <дуб растет на ПОЛЯНЕ?>. Затем должно определяться основное слово,
(опять же скорее всего по правилам русского языка) подлежащие, причастия и так
далее: То есть полный синтаксический разбор предложения.
Затем обрабатывать слова в последовательности приоритетов, расставленных
выше. Искать ассоциации. Определять положительные ли эмоции определяет фраза или
нет: (точнее, наверное, степень положительности), нужно ли ее запоминать или
какую-то часть из нее, нужно ли отвечать, спрашивать: то есть определить
значение фразы.
При разборе фразы, должен учитываться повествовательный характер (для
простоты пусть источник информации будет доверенным, учителем, то есть все что
он говорит - правда). И из повествования должны запоминаться понятия,
определения, то есть новые слова или изменяться старые понятия. При обнаружении
нового слова, нужно попытаться понять фразу без этого слова и/или спросить его
значение (попросить рассказать о нем, что бы составить список ассоциаций)
И еще один момент: у нас ведь существует как долговременная, так и
кратковременная память! То есть несколько определенных фраз, звуков и пр. (+
последних фраз) должны запоминаться во временной памяти: что-то типа буфера: и
при разборе очередной фразы они должны учитываться.
---
Creature
===================================================
13 августа 1999 г.
>Привет... вот я тут попытался систематизировать свои мысли... Кажется
особого
>понятного ничего не получилось, но хоть начало будет. Чувствую многое
упустил...
>Читай, поправляй объясняй и предлагай %)
Ничего ты не упустил! - я до сих пор еще накапливаю собственные идеи - вот,
накоплю - примусь со рвением (может быть) за чтение чужих, но не сразу -
иначе весь кайф творчества пропадет ;) Да и готовый протоптанный путь,
возможно, не самый лучший - но пойдя сразу по этой дорожке, трудно уже будет
свернуть...
> В начале фраза должна обрабатываться (может быть по правилам русского
языка)
>в ней должны устанавливаться приоритеты слов. Например: <дуб растет на
поляне> -
>повествование, можно интерпретировать, как <ДУБ растет на поляне> -
утверждение,
>что именно дуб растет на поляне, <дуб РАСТЕТ на поляне> - утверждение, что
дуб
>растет, <дуб растет НА поляне>, <дуб растет на ПОЛЯНЕ>: Или как
вопросительные
>предложения <ДУБ растет на поляне?>, <дуб РАСТЕТ на поляне?>, <дуб растет
НА
>поляне?>, <дуб растет на ПОЛЯНЕ?>. Затем должно определяться основное
слово,
>(опять же скорее всего по правилам русского языка) подлежащие, причастия и
так
>далее: То есть полный синтаксический разбор предложения.
Ок - но существует масса вариантов разбора - я их еще не систематизировал; а
вычленение акцента (определение значения) данного предложения можно, имхо,
переложить на 2-й блок... мне так кажется... мнемонически трудно верно
определить акцент в нейтральных фразах...
> Затем обрабатывать слова в последовательности приоритетов,
расставленных
>выше. Искать ассоциации. Определять положительные ли эмоции определяет
фраза или
>нет: (точнее, наверное, степень положительности), нужно ли ее запоминать
или
>какую-то часть из нее, нужно ли отвечать, спрашивать: то есть определить
>значение фразы.
Угу-угу. Но надо не перестараться с приоритетами - 1-й блок - не навязывает
что-либо структурное, но лишь поставляет данные для 1-й части 2-го блока. (о
частях будет сказано ниже). 1-й блок дает (по возможности) понятия об
оцененных им приоритетах и эмоциях, но все это на языке понятий. Получается
2 уровня (не путать с блоками и частями! ;) ):
1-й - понятия и связи
2-й - категории понятий (эмоции, приоритеты, остальные понятия). количество
этих категорий хотелось бы сделать динамическим, определяемым в процессе
обучения (впрочем непременное налоичие понятий "эмоции" и "приоритеты",
определяется тем, что 1-й блок их обязательно введет, коль это речевой
анализатор);
но все элементы 2-го уровня реализуются посредством общей-единой модели 1-го
уровня...
> При разборе фразы, должен учитываться повествовательный характер (для
>простоты пусть источник информации будет доверенным, учителем, то есть все
что
>он говорит - правда). И из повествования должны запоминаться понятия,
>определения, то есть новые слова или изменяться старые понятия. При
обнаружении
>нового слова, нужно попытаться понять фразу без этого слова и/или спросить
его
>значение (попросить рассказать о нем, что бы составить список ассоциаций)
Возможно, придется часть базы формировать вручную... Вносить основные
понятия со связями (например, что если отпустить предмет, то он упадет
именно вниз на землю)... Будет быстрее эту базовую инфу внести напрямую в
базу; но с другой стороны можно пропустить через прогу кучу текстов - пусть
ассоциирует, потом подправим (вот тут уже подправлять придется, скорее
всего, описанным тобою способом)
> И еще один момент: у нас ведь существует как долговременная, так и
>кратковременная память! То есть несколько определенных фраз, звуков и пр.
(+
>последних фраз) должны запоминаться во временной памяти: что-то типа
буфера: и
>при разборе очередной фразы они должны учитываться.
Да... Никак до конца не пойму роль кратковременной памяти... Но наверняка
она из 2-го уровня (см. выше), то есть существует понятие о времени, понятие
о фразе, понятие о последней произнесенной фразе; прога, учитывая эти
понятия, дает определенный статус идеям последней произнесенной фразы
(статус - тоже понятие); благодаря этому ИИ имеет возможность по-особенному
относиться к последней фразе... Но, возможно, некий другой аспект временной
памяти будет системообразующим...
Кстати, о роли буферизации - распределением ресурсов и буферов будет
заниматься 2-я часть 2-го блока (о частях ниже)...
Забыл спросить тебя: кратковременная память - это белки, чем физиологически
является долговременная память? Пиши все, что знаешь о памяти в
подробностях!
(так как память - это ключ 2-го блока)
Теперь про части 2-го блока.
1-я часть:
Можно представить ее так: точки (понятия), соединены линиями (связями) (при
этом типа связи в нету! - тип связи - это отдельное понятие). Благодаря
простоте система максимально гибка. (не путать с нейронной - в нейронной
связи предопределены, меняются только веса связей)... и нейронная - на более
конкретном/мелком уровне лежит...
Так вот, эту систему понятий и связей мы модифицируем, дополняем и т.д... и
постоянно сталкиваемся с дилеммами - вводить ли новый узел (понятие),
переопределять ли связи, какие понятия и связи забыть/выкинуть - все это
связано со своеобразной оптимизацией, конечно, но наш мозг - великий
оптимизатор и великий сжиматель информации, так как это его задача -
выделять из подсознания то главное, что можно позволить делать доступным
сознанию...
Понятия и связи составляют 1-ю часть
Второю частью является - ассоциатор-оптимизатор (его задача - наиб.
эффективно решить вышеуказанную дилемму) - можно его сделать либо
фиксированным (не обучающимся, целиком закодированным программистом), но моя
идея сделать 2-ю часть тоже самообучающейся
По аналогии 3-я часть - ассоциатор-оптимизатор работы 2-й и так далее до
бесконечности...
Суть модели в том, что я каким-либо образом хочу ее зациклить на себя (но не
делать каждую часть в отдельности). Количество частей, естественно, будет
ограничено - динамически ограничено, в соответствии с возможностями системы
и неким внешним ограничителем, который будет предопределен и являться
аспектом структуры (у людей этот внешний ограничитеть - чувства и ощущения,
останавливающие мысль, когда последняя уходит куда-то не туда или
зацикливается в самой себе; у ИИ чувств, души (как антипода созаниня) нету,
поэтому придется делать просто некие ограничители-заглушки...)
Да, при этом все части части 2-го блока будут функционировать, скорее всего,
на основе нейронной модели (и инфо последняя будет хранить в базах).
Для того, чтобы понять, как делать 2-й блок, нужно напридумывать примеров
фраз и попытаться проассоциировать там все, сымитировав работу 1-й и 2-й
части, выявить закономерности для 2-й части, потом выявить динамику этих
закономерностей и пути в обучении 2-и части, потом, наверное, то же
проделать с 3-й частью и так далее - до выявления общих принципов построения
частей - и тут нейронная модель должна помочь выявить эти принципы, так как
она объединяет весь 2-й блок.
Мда... вот так вот... Кстати, идея - ПЕРВЫМИ ТЕКСТАМИ, КОТОРЫЕ Я ДАМ ИИ ДЛЯ
АНАЛИЗА, БУДУТ ВСЕ СТАТЬИ, ЛОГИ И ПИСЬМА, ПОСВЯЩЕННЫЕ ИИ :)))
Philosoph
ИИ – уточнения в 4-блоковой системе
1. Философское отступление.
Все понятия относительны, и отдельное понятие в нашем мозгу определяется полной совокупностью связей со всеми другими понятиями, в то время как каждое другое понятие есть также совокупность связей с остальными (в том числе, и с данным) понятиями. То есть система "варится" сама в себе и стремится в данный момент времени в соответствии со своими знаниями сделать то, что максимально соответствует ее задачам (задачам оптимального достижения целей), где знания – не нечто правильное, а наиболее удобно для анализа выделенные сущности-понятия и максимально удачно выстроенные между ними связи. То есть ИИ как бы ничего не знает точно – важно понимать, что и мы, люди, также ничего не знаем наверняка, и
не пытаться навязывать, закладывать в структуре свои определения понятий системе ИИ (кроме случаев, когда без этого не обойтись), иначе ИИ выродится в ограниченную по возможностям обучения систему, потеряет гибкость.2. 4-блоковая система (ver. 2.0 beta) :)
1-й блок (анализ речи – в виде текстов).
Пример
.На входе:
"Дуб растет на поляне"
На выходе (ассоциации, нужные для 4-го блока)
(слово) <-> "дуб"
(слово) <-> "поляна"
(слово) <-> "рост"
(слово) <-> "на"
(существительное) <-> (существительное в единственном числе)
(единственное число) <-> (существительное в единственном числе)
(существительное в единственном числе) <-> (дуб существительное в единственном числе)
"дуб" <-> (дуб существительное в единственном числе)
(существительное в единственном числе) <-> (поляна существительное в единственном числе)
"поляна" <-> (поляна существительное в единственном числе)
(глагол) <-> (глагол в настоящем времени)
(глагол в настоящем времени) <-> (рост глагол в настоящем времени)
"рост" <-> (рост глагол в настоящем времени)
(предлог) <-> (на предлог)
"на" <-> (на предлог)На выходе (aссоциации для внутреннего использования, понимания):
(дуб существительное в единственном числе) <-> (рост глагол в настоящем времени)
(поляна существительное в единственном числе) <-> (на поляне)
(на предлог) <-> (на поляне)
(дуб существительное в единственном числе) <-> (дуб на поляне)
(на поляне) <-> (дуб на поляне)
Комментарии:
В примере слова в кавычках и фразы в скобках – понятия. С точки зрения 2-го блока все понятия равны. Отличие закавыченных понятий в том, что для них в специальной таблице будут храниться некие дополнительные данные, поступившие из 1-го блока и передаваемые потом на 4-й блок. Этими данными может быть, например, строка, содержащая указанное в кавычках слово (или идентификатор этого слова, ссылающийся на объединенный словарь блоков 1 и 4.
Понятия в скобках не будут иметь никакого непосредственного слова, соответствующего им; в скобках я написал фразы лишь чтобы наглядно показать, что данное понятие значит – но если вы проследите схему, то увидите, что смысл каждого такого понятия определяется его связями.
Введение понятий Существительное, Глагол и так далее связано с тем, что система должна будет посылать на 4-й блок информацию в примерно таком же виде, как она получила ее с 1-го (то есть в виде слов-понятий, ограниченного числа знакомых понятий (таких как Глагол, Существительное и др.) и связанных с ними понятий (как "рост глагол в настоящем времени"), слов-понятий и связей; расшифровывая зная, что есть глагол и настоящее время, 4-й блок сможет преобразовать "рост глагол в настоящем времени" в слово "расти".
Пример, конечно, упрощен – будут иметь место более сложные связи из-за множества форм частей речи (растущий, растить, вырасти, росток – все эти слова должны быть ассоциированы определенным образом на уровне 1 и 4 блоков).
2-й блок (память).
Второй блок состоит из графа (точки-понятия и связи между ними; связи имеют веса – отсутствие связи, единичная связь, прочная связь (>1); вес может быть дробным; конкретные реализации 1-го блока могут предоставлять только единичные веса связей или веса, заданные положительным числом), а также 2-й блок включает табличку, где для некоторых понятий (напрямую позаимствованных из 1-го блока) будут храниться специальные сведения, необходимые для 4-го блока.
Ассоциатор, который мыслился мне во 2-м блоке, я теперь считаю нужным вынести отсюда и объединить с 3-м блоком в единый комплекс действий над всеми (1, 2, 4) блоками.
3-й блок (действия).
3-й блок будет производить ограниченное количество четко заданных модификаций схемы 2-го блока: запись (вращивание) во 2-й блок схемы, полученной из 1-го блока, добавление, модификацию и удаление элементов 2-го блока в результате процессов внутрених ассоциирования, извлечение данных из 2-го блока для подачи их на 4-й блок.
При этом 3-й блок действует по четко заданному алгоритму, но последовательность шагов и ветвлений (и всего прочего) этого алгоритма хранится во 2-м блоке в виде ассоциаций.
Изначально целесообразно задать предопределенные понятия:
1. Слово, Элементы речи и т.д. – для взаимодействия с 1-м блоком (врочем, достаточно абстрактно – конкретику введет уже конкретная реализация 1-го и 4-го блока; важно чтобы на 4-й блок подавался кусок схемы, опирающийся на понятия-слова и понятия, знакомые 1-му блоку (как то Существительные, Прилагательные и др), а не кусок, состоящий из абстрактных внутренних представлений.
2. Схема, Связи, Удаление элемента, Добавление связи и т.д. – на них будет опираться 3-й блок при всякого рода модификациях схемы – логика, заключенная во 2-м блоке, будет посредством простого алгоритма действия 3-го блока изменять сам же 2-й блок!
3. Цель, задачи – в соответствии с ними будут производиться изменения во 2-м блоке и извлечение информации для подачи на 4-й блок.
Таким образом, во 2-м блоке будут заложены некоторые предопределенные понятия, от которых будет "плясать" 3-й блок. Зачем так сложно? Можно же было бы сделать 3-й блок на основе некоторого внутреннего алгоритма (с внутренними целями и т.д.), посредством которого он бы выполнял все те функции, которые от него требуются: добавлять информацию из 1-го блока, ассоциировать/обобщать, выдавать ответ в 4-й блок? Да, так было бы проще – но система сразу резко ограничивалась бы возможностями 3-го блока! Я предлагаю то же самое – сделать некий наперед заданный алгоритм работы 3-го блока, но положить этот алгоритм во 2-й блок – в виде связанных понятий. Тогда этот алгоритм будет находиться в контексте всех данных ИИ и будет связан с остальными понятиями и по мере обучения системы будет совершенствоваться. То есть интеллект будет иметь возможность анализировать самого себя и совершенствовать свой механизм анализа на основе внешних источников информации.
Ограничителем в данном случае будут наперед заданные точки-понятия, известные 3-му блоку и правило, согласно которому 3-й блок не будет иметь право и удалить. У человека такой ограничитель – ощущения, чувства, душа, не дающие его мыслям безгранично распространяться в любые стороны, но определяющие направление развития интеллекта (это я хочу, это не хочу; об этом мне интересно думать, об этом не интересно...)
4-й блок (синтез речи – в виде текстов).
См. выше. Блок 4, как и блок 1, не самообучающийся и знает предопределенный круг понятий (слова + части речи и их формы); данный блок должен по полученному из 3-го блока графу, опирающемуся на знакомые ему (4-му блоку) понятия сформулировать фразу или набор фраз.
3. Что дальше?
Нужно:
1. определиться с системой понятий, необходимых для хранения в блоке 2 алгоритма.
2. определиться с понятиями-точками опоры 3-го блока и их связями
3. построить алгоритм для понятий из п.2Процесс реализации пп.1-3 будет связан с созданием типовых методов использования и "программирования" понятийной системы (используя уже накопленный подобный опыт работы с графами, древовидными структурами, сетевыми структурами, алгоритмизации, логики и т.д.; также я все еще надеюсь подключить в качестве базы реализации блоков 2, 3 нейросеть – возможно, как базу системы понятия-связи – если это удастся, нужно будет опять пересмотреть и дополнить концепцию 4-блоковой системы).
Ваши идеи?
15.08.1999