Pull to refresh

Comments 60

Очень интересно, отдельное спасибо за простой и понятный язык…

Нужно реализовать две сущности собаку и кота, и попробовать поставить вопрос ребром…
who is who?
^)

Удачи, буду следить за обновлениями…
Спасибо. Собаки и кошки будут не сразу — для них нужно моделировать довольно сложный мир, одно их зрение чего стоит! А начать я планировал с планарии. Моделировать ванночку с беспозвоночным куда проще. Хотя подразумевается, что модель мозга будет одна, так что это уже не совсем планария, а что-то вроде человека с ооочень ограниченными возможностями и, соответственно, потенциалом.
хм, я правильно вас понял?.. модель мозга будет одна на все организмы, но чем сложнее организм тем сложнее будет мозг?
Таким образом планируете двигаться, как и в реальном мире от простого к сложному да?
Модель одна и она определяет лишь законы, по которым накапливается и используется опыт. Эти законы едины для всех. Чем больше входящих и исходящих каналов информации будет у модели мозга и чем сложнее будет сама модель мира, тем сложнее будет накопленный опыт. Следовательно тем умнее будет организм.

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

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

В игре sims кстати было что то подобное- там тоже все объекты содержали определенный набор свойств, и симы взаимодействовали с ними считывая эти свойства.
Всмысле у них тоже мозг состоял из нескольких отделов нейронных сетей, которые обучались взаимодействуя с окружением.
Мозг не будет создаваться их этих компонентов. Он сам является одним из компонентов:
var organism = new Client();
organism.Add(colorSensor, moveAction, new Brain());
root.Add(organism);
Мотивация будет основана на эмоциональной оценке поступающей информации (почитайте статью, указанную под номером [5] в самом начале). При планировании действия организм будет вспоминать, какая информация поступала сразу после совершения подобного действия в прошлом, а также какие эмоции вызвала та информация. Таким образом будет выбрано то действие, которое вызвало положительные эмоции. Сама эмоциональна оценка частично предопределена (инстинкты), а все остальное оценивается по-умолчанию — отрицательно. Все новые и неизвестные раздражители всегда отрицательны. Но через некоторое время некоторые из них могут стать нейтральными а некоторые — положительными.
Почитал, кажеться понял немного, спасибо за статьи.
Только под мотивацией я имел ввиду немного другое: при такой эмоциональной оценке система будет пытаться обрабатывать только то, на что у нее положительная оценка (в принципе в реальном мире так оно и есть, те же люди будут идти и точки А в точку Б одним и тем же маршрутом каждый день), и возможно только принудительное обучение (навязыванием чего то нового). Но у живых организмов есть еще интерес к изучению внешнего мира, стремление к самосовершенствованию. Вот как раз то что его вызывает и есть такая мотивация.
Если вы имеете в виду взрослых людей, то самосовершенствование — это в принципе такое же действие, как и все остальные, только оно обобщенное. Например вы столкнулись с проблемной ситуацией и не можете вспомнить конкретного решения этой проблемы. Тогда вы станете искать более общие решения. Например посмотреть, как с ней справляются другие люди, почитать о ней, спросить и тому подобное. Это такие же осознанные действия, только более сложные и обобщенные, которые являются удачной комбинацией из некоторых более простых действий. Со временем человек учится запоминать и использовать такие удачные комбинации действий.

Если вы имели в виду маленького ребенка, то там несколько иная ситуация. У него пока что слишком мало знаний об окружающем мире, так что в проблемной ситуации он не знает, какое действие ему использовать, поэтому он начинает использовать все известные ему действия — стучит предметом по столу, засовывает его в нос, бросает на пол. В результате этого он получает опыт и развивается.
Нет, я имел ввиду получение знаний не вызваных внешним раздражителем. Или стремление получить ответы на вопросы у которых нет ответов. В чем собственно и состоит история человеческого развития. У маленьких детей это особо присутствует.
Раздражитель всегда есть. Попробуйте представить конкретную ситуацию, одну из тех, о которых вы говорите — в ней обязательно будет что-то, что запустит процесс поиска решения. Пускай мелочь и абсолютно не связанная с результатом поиска, но она есть.
Вот это именно то что я имел ввиду под словом «мотивация».
Это тот раздражитель который заставляет меня думать над устройством своего мозга или закачивать новый альбом Ryoji Ikeda. Только этот раздражитель не внешний, а внутренний — «интерес». Это никак не связано с вопросом моего выживания или еще чего либо внешнего.
В таком случае вам доставляет удовольствие сам процесс, поэтому вы к нему и стремитесь.
Никто и не говорил что это не доставляет мне удовольствия :)
Но если бы дело было только в нем, я скорее всего сидел бы где то на лавке с пивом, обсуждая с другими предствителями такой же модели нейронной сети что и у меня, запрограмированными по принципу — «Сама эмоциональна оценка частично предопределена (инстинкты), а все остальное оценивается по-умолчанию — отрицательно» как бы поскорее сделать действия «которые вызвали положительные эмоции в прошлом». (извините что немного переделал вашу цитату). Ну это грубый пример который пришел первым в голову.

Представте себе выставку роботов, на ней 2 почти одинаковых робота, разница только в небольшой «функции» в голове одного из них.
Им дают задания, в случае правильного действия в мозг поступает сигнал удовольствия, не правильного — током бьют.
Они соответственно выполняют задания, им дают новые, всё идет хорошо, роботы умные и очень, очень довольные.
Но у того, у которого есть та дополнительная «функция» возникает в голове нечто, что заставляет его покинуть стенд, и пойти изучать обстановку, подходить к людям, пытаться взаимодействовать с ними, с другими роботами, искать своего конструктора и спрашивать у него зачем тот его создал.
Вполне возможно я совсем не понимаю суть вашей теории, но как вы думаете, на какого робота похоже то что вы создаете, и на какого человек.
Через какое-то время однотипный положительный раздражитель может вызывать все меньше и меньше эмоций — это раздражитель начинает надоедать, наступает пресыщение. Далее это может перейти даже в усталость, так что желание сменить деятельность вполне естественное.
В одной из ранних заметок вы упоминали С. Может быть действительно лучше разрабатывать такую платформу на более платформонезависимом (сорри за тавтологию) языке?
Может быть и лучше. Но лично для меня это бы создавало дополнительные трудности.
Чем вам C# не платформонезависимый?
Если в Mono уже есть Linq to Objects и Linq to XML, то должно все работать. Правда визуализация планируется на WPF (Visual layer), которого, насколько мне известно там нет и не будет.
И чем только этот WPF всем сподобился…
Он универсален. На нем можно делать как простые интерфейсы со стандартными контролами, так и более сложные визуализации вместе с анимацией. И все это делается на одной платформе, одними средствами. Если не нужна вся мощь DirectX, но хочется сделать интерфейс со сложным представлением информации, то WPF, по-моему, подходит идеально.
В Mono есть Silverlight и WPF.
Мне очень нравится. Сам думал об этих же принципах. Удачи в развитии, буду следить за ходом проекта.
Очень интересно. Буду ждать обновлений (:
Если честно — статья вообще ни о чем. Наиболее ценное — раздел «Немного философии». Рекомендую вам почитать про нечеткую логику/fuzzy logic, много нового и интересного для себя откроете.

Про Alan Platform. В общем и целом, это попытка статически типизированный C# превратить в динамически типизированный. Не спорю, моделировать окружающий мир гораздо удобнее на языках с динамической типизацией, но зачем изобретать свой велосипед, когда уже есть python, c# 4.0 и прочее?
Интересный взгляд. Я даже не думал смотреть на это, как на попытку сделать что-то с языком. Просто возникла задача и сформировалось решение на том языке, на котором я думаю. Если бы я был питонистом, то, вероятно, решение было бы другим. Сам язык C# мне не доставляет каких-то особых трудностей в процессе реализации данного проекта. И я не думаю, что основная логика и идеи проекта скрыты за «попытками статически типизированный С# превратить в динамически типизированный».
Это-то понятно, что основной движущей силой разработки было не желание сделать с языком что-нибудь эдакое =)

Дело в том, что основная проблема ИИ есть оперирование доступными знаниями, которые могут быть выражены в виде следствий если-то (характерно для экспертных систем), энциклопедическими знаниями, или же просто наборами смыслов слов. Последнее широко используется в экспериментальных системах, построенных на основе лингвистических моделей типа смысл-текст, например, Preference Semantic System или же MARGE. Первая появилась в результате работ Уилкса, вторая — Шенка.

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

Пытаться описывать мир при помощи формальных методов путём разбиения объектов на классы, присвоение им определенных свойств можно. Однако в процессе работы неизбежно будут выделяться такие наборы свойств, которые будут иметь смысл в одном случае и бесполезны в другом. А для того, чтобы создаваемая модель мира была бы полезна для искусственного интелекта, она должна включать в себя просто неимоверное количество различных свойств объктов и связей между ними.
Поэтому стоит ли выполнять эту титаническую работу, когда лучше сосредоточиться на методах обучения и самообучения, работе со знаниями и способе представления знаний, который будет удобен как раз для этих методов?
Я вроде бы написал, что внутри мозга никаких сложных объектов для представления информации не будет. Все будет представляться в виде некоторого «уровня сигнала» — значения, которое просто привязано к какому-то каналу (входящему, исходящему или какому-то внутреннему). В памяти также будут храниться только эти значения, связанные с каналами.

В целом это значение представляет силу какого-то специфичного раздражителя, уровень его эмоциональной оценки либо величину какого-то элементарного действия.

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

Процесс мышления сопровождается работой с информацией.
Не могли бы вы пояснить, привести примеры?
Что такое мышление? что такое вообще мыслительный процесс? В какой момент мы «включаем» этот процесс?

Природа живого ( на мой взгляд ) это познание себя как часть окружающего мира. Сначала мы обращаем внимания на окружающий мир, а затем задумываемся над тем кто такой Я внутри этого мира. Это вопросы, приводящее нас к следующим вопросам, ещё более глубоким и ещё более интересным предыдущих. Они ( вопросы ) и есть результат любого мышления.

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

Что программировать?
Я вряд ли бы стал тратить столько времени на идею и реализацию, если бы не представлял, как работает мышление.
Подумайте…

Я представляю как работает мышление. Вы представляете себе время?
Простите, но для меня ваше высказывание лишено смысловой цельности. Я представляю, как моделировать мышление и я представляю, как моделировать время, также я представляю, как объединить эти модели в одну систему.
Вы мышлением пытаетесь определить работу мышления. Спросите у самого себя, кто я. Что вы себе ответите?
Что вы пытаетесь мне доказать? Что невозможно создать мыслящую машину или то, что для этого нужно ответить на вопрос «кто я». Я не согласен ни с тем, ни с другим. Для меня философский этап давно завершен, я нашел ответы на все философские вопросы, которые мешали создать данную модель. Советую и вам того же.
Нет нет нет, я просто беседую. Доказать можно лишь факт в правдивости которого есть сомнения, я лишь пытаюсь разобраться вместе с вами в сути того, что есть мышление.

В какой момент вы приобретаете новый опыт?
Вся поступающая информация — потенциальный опыт. Если она дублирует уже существующую — это закрепляет опыт, если она противоречит существующей — это корректирует опыт, если она абсолютно новая — она формирует новый опыт.
Как от этого оттолкнутся? чем отличается от действующих экспертных систем? Повторяю я заинтересован в вопросе ИИ.
Повторяю, компьютеры уже умеют накапливать и обрабатывать информацию, но ИИ ещё нет. Важно понять, что такое переживание и можно ли его вызвать искусственно и как это сделать.
Хочу вынести своё мнение:

Стороны и качества приобретённые понятия в процессе познания окружающего мира.
Наверное каждый понимает что-то свое под «сторонами и качествами», но так или иначе это сводится к приобретенному опыту, который влияет на решения которые мы принимаем. А опыт — это и есть упорядоченная и связанная информация.
Опыт это результат, компьютеры уже умеют накапливать опыт, а вот приобретать его в процессе переживания нового ещё нет.
Так полный спектр операций с опытом и есть мышление. Вся проблема в том, как хранить поступающую информацию, чтобы ее потом можно было эффективно использовать. При этом важно, что абсолютно весь опыт является приобретенным, а не «зашитым».
Хм, вот скажем у вас на столе лежит флешка с данными. Эти данные вы ещё не видели, но вы знаете, что они там есть. Можно ли считать, что на данные на носителе информации, записанные руками человека являются опытом, но только другого человека?

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

Интеллект — это совокупность опыта и средств для работы с этим опытом. Одно без другого не является интеллектом. При этом программировать нужно только средства, а опыт программа сможет накопить сама.
еще чуть чуть у Вас будет новая Java platform. ;)

или Zope

позвольте пояснить свою мысль подробней.

добавте в Вашу ясную и заслуживающую внимание модель

конкурентрость и факт постоянно меняющегося мира

и вся выразительность пропадет.

яблоко БЫЛО на тарелке в определенный момент времени.

может быть.
Мир статичен только тогда, когда с ним никто не взаимодействует. Любое успешное действие изменяет состояние мира. При этом изменение может быть не мгновенным, а растянутым во времени. Внутреннее время системы реализовано в виде тактов. Действие может запланировать изменение свойства на 0.3 на следующем такте, на 0.2 на втором такте и на 0.1 на третьем такте. Эта схема дает полезную возможность корректно замедлять и вовсе останавливать время системы.
то есть можно будет узнать свойство объекта на опрделенный момент времени?
Не совсем. Можно будет узнать все запланированные изменения свойства (через один такт, через два, три ...).
Нелья будет узнать-догодаться кто откусил яблоко.

Как давно.

Важно ли это для ИИ?

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

пойду наслаждаться настоящими яблоками :)
к практике вы перешли странно. я вообще в аланплатформ не вижу смысла.
Так я и написал, что можно реализовать один класс, который будет взаимодействовать с мозгом — отсылать и принимать данные (что-то подобное, кстати и так есть — LightOperator в ветке Brain). Но это поможет только для тестирования отдельных функций мозга. А вот для того, чтобы мозг смог получить реально полезный опыт, нужно смоделировать более сложный мир. Для упрощения этого процесса и создана платформа. Она позволяет конструировать мир в контексте его объектов и их свойств, и в то же время разрабатывать законы мира в контексте преобразований информации.
Мне, видившему несколько крупных живых ООП проектов,

с точки зрения разработчика и системного администратора,

очень печально видеть Ваш светлый ум

в кандалах ООП, о, да еще С# ;)

Пожалуйста, посмотрите здесь blip.tv/file/812787

Sign up to leave a comment.

Articles