GotAI.NET

Форум: Проблемы искусственного интеллекта

 

Регистрация | Вход

 Все темы | Новая тема Стр.1 (2)След. > >>   Поиск:  
 Автор Тема: Проект Neuronium
victorst
Сообщений: 821
Проект Neuronium
Добавлено: 10 май 11 8:56
Много раз я собирался взяться за новый проект, несколько лет. Но вот - решился.
Предыстория.
С 2000 года приблизительно я разрабатывал вплоть до 2009 года проект AIGod. Центральной частью там было ядро виртуальной 64 битной машины демонов. Само ядро написано на Masm. Но т.к. оно совсем небольшое, то была идея сделать портирование на несколько разных ОС. Однако демоны - это хоть и не очень большие, но полноценные программные процессоры с собственной системой команд. Получалось, что виртуальная машина сначала интерпретировала каждую команду демона, затем выполняла ее. Далее - переходила к следующему демону. И так далее по циклу. Немного напрягало то, что в памяти каждый демон должен был занимать одинаковое по размеру с другими демонами немалое место. Это приводило к тому, что в ОЗУ можно было размещать не очень много демонов.
Кроме того, неясным был ответ на вопрос- как же организовать эффективную совместную работу множества демонов для выполнения полезной работы.
Тогда в 2006 году я обратил внимание на CLIPS - движок экспертных систем на основе продукционных правил. В нем я рассматривал некий эквивалент моим демонам в виде правил и фактов. Эта система мне и сейчас очень нравится своей продуманностью и я ее буду развивать.
Но применить в реальных роботах или других сложных задачах CLIPS вряд ли удастся - правила интерпретируются довольно медленно, отсутствует реальный параллелизм. Есть и еще ряд неустраивающих меня недостатков.
Поэтому я решил приступить к новому проекту Neuronium как сплаву моих познаний и опыта создания AIGod, а также исследования изнутри системы CLIPS. Мне кажется, что он совместит в себе все лучшие черты нейросетей, продукционных правил, микромультиагентности и работы с онтологиями посредством сети нейроподобных элементов.

Основы.
Neuronium состоит из трех основных частей:
1. Система программирования/компиляции/отладки/наполнения дефолтными знаниями.
2. Run-time система выполняющая реальную работу. Эта система в свою очередь состоит из:
2.1. Набор NeuroEngines.
2.2. Набор IOEngines.
3. Консоль управления. С ее помощью происходит управление всеми NeuroEngines и IOEngines.
Главным элементом проекта является нейроподобный компонент. Но это вовсе не искусственный нейрон в обычном понимании этого слова. Скорее всего это предельно упрощенный демон из моего проекта AIGod, который может выполнять самые разные операции вплоть до создания и уничтожения других таких же компонентов как он. Но особенность его в том, что выполнять в каждый такт времени он должен всего одно элементарное действие, функцию, а не очередную команду большой программы на своем виртуальном машинном языке, как это было в AIGod. Тогда практически почти весь алгоритм будет не внутри демона а снаружи него. Особое внимание обращу на получение предельной скорости работы системы, а также - ясности и удобства человека в процессе проектирования прикладных систем на основе Neuronium.
Run-time систему возьму переработанную от AIGod. Ее впоследствии можно будет легко портировать под разные ОС или даже в 32 битные микроконтроллеры. Систему программирования/компиляции/отладки писать буду наверное на C Builder. Мне он нравится больше чем MSVS. Но я тут еще до конца не определился. М.б. что-то кроссплатформенное выберу. Например, QT или даже Java.
Каждая Engine взаимодействует с внешним миром через TCP/IP протокол, даже если другие аналогичные Engines выполняются в одном общем адресном пространстве компьютера. Это несколько замедляет процесс обмена, но позволяет макимально упростить построение большой сети, состоящей из таких Engines.

Вот общая суть вкратце. Если кому- то будет интересно поучаствовать - я совершенно не против. Но, думаю, таких не найдется. Поэтому буду хотя бы сообщать о текущем состоянии работ.
[Ответ][Цитата]
Анатоль
Сообщений: 1964
На: Проект Neuronium
Добавлено: 10 май 11 9:41
И что этот нейрониум должен делать?
Это фотошоп или интернет магазин?
[Ответ][Цитата]
victorst
Сообщений: 821
На: Проект Neuronium
Добавлено: 10 май 11 10:11
2Анатоль:
1. NeuroniumStudio:
1.1. Платформа для разработки различных программ, особенно для параллельного и последовательно - параллельного программирования. А также для других парадигм программирования: ООП, АОП...
1.2. Платформа для разработки структур данных/знаний в различных парадигмах. Онтологческих, фреймовых и др.
2. Neuronium.exe - это главный модуль всей системы. Это движок псевдопараллельной виртуальной машины. В нем и происходит вся главная обработка информации.
3. IO модули позволят работать с изображенями, например, с камерами робота, звуком, базами данных, приводами роботов, оборудованием "умного дома" и т.д. Т.е. все специфическое будет стыковаться с Neuronium.exe через такие модули - драйверы, в которых будет проходить первичная обработка информации и управление эффекторами.
Из вышеперечисленного следует, что можно сделать на основе данной платформы и фотошоп или интернет - магазин.
Но меня больше всего самого интересует решение задач ИИ с помощью Neuronium.
[Ответ][Цитата]
NO.
Сообщений: 10700
На: Проект Neuronium
Добавлено: 10 май 11 11:22
все знания пишет программист?
[Ответ][Цитата]
Анатоль
Сообщений: 1964
На: Проект Neuronium
Добавлено: 10 май 11 12:47
Цитата:
Автор: victorst
1.1. Платформа для разработки различных программ,

Типа язык программирования со своими типами данных, операторами, функциями?

Цитата:
особенно для параллельного и последовательно - параллельного программирования.

Т.е. он сам проверяет сколько в компутера процессоров (ядер), распределяет между ними работу, синхронизирует потоки?
А для параллельных вычислений сможет видеокарты (CUDA) использовать?
[Ответ][Цитата]
Victor G. Tsaregorodtsev
Сообщений: 3187
На: Проект Neuronium
Добавлено: 10 май 11 16:12
Цитата:
Автор: victorst
Вот общая суть вкратце.

Такое уже многократно делалось. См, например, на статьи J.-C. Heudin по EVA (evolutionary virtual agent) - у него тоже были и демоны-агенты, и виртуальные машинные языки, и несколько "сред" (у Вас - engines) на одном компе (внутри каждой "среды" живёт один или несколько агентов, общаются они как в пределах среды, так и могут посылать сообщения другим средам, а эти среды разошлют сообщения по своим агентам), и т.д. Естественно, очень много знаний при этом вводится в систему вручную (думаю, на вопрос от NO о вводе знаний Вы ответите так же: вручную), но у Ходина были добавлены еще и случайный и генетический механизмы работы со знаниями и изменения знаний, т.е. построенный им чат-бот, например, при знании, что смайлик может стоять после некоторой фразы, мог в каждом конкретном случае либо ставить, либо не ставить смайлик, да и менять порядок следования смайлика и фразы тоже мог.
[Ответ][Цитата]
shuklin
Сообщений: 2053
На: Проект Neuronium
Добавлено: 10 май 11 17:50
Цитата:
Автор: Victor G. Tsaregorodtsev

Такое уже многократно делалось.

Научная ценность конкретного изделия, допустим, пусть под вопросом, и тем не менее, инженерная ценность может иметь место. Особенно если реализация ведется под программно - аппаратную платформу, для которой ранее такого продукта не выпускалось. Если брать "суть вкратце" то что-то похожее (Cerebrum) я делал для платформы MSVC+C#
А если под выбранную платформу подобные разработки имели место - тоже ничего страшного, например реляционных СУБД для каждой популярной оси дофигищи, и ничего, движков форумов дофигищи - бегают, ниче, нормально.
[Ответ][Цитата]
victorst
Сообщений: 821
На: Проект Neuronium
Добавлено: 10 май 11 17:58
Цитата:
Автор: NO.
все знания пишет программист?
Если программисту необходимо свои или чужие формализованные знания выразить в программном коде или в структурах данных, то он это может сделать почти на любом языке программирования.
Я же хотел бы добиться чего-то подобного, как в Искусственные: память, сознание, интеллект... , только для более широкого круга задач - создание растущих и перестраиваемых онтологий, состоящих из нейронов на основе выделения закономерностей мира. Однако, некоторый небольшой запас дефолтных знаний, созданный либо вручную, либо обучением предыдущего экземпляра сети различными способами системе все же не повредит.
[Ответ][Цитата]
victorst
Сообщений: 821
На: Проект Neuronium
Добавлено: 10 май 11 18:14
Цитата:
Автор: Анатоль
Типа язык программирования со своими типами данных, операторами, функциями?
Т.е. он сам проверяет сколько в компутера процессоров (ядер), распределяет между ними работу, синхронизирует потоки?
А для параллельных вычислений сможет видеокарты (CUDA) использовать?
Пока CUDA имплантировать не планирую. Хотя это сейчас модно. Сначала нужно добиться правильной фунциональности средствами CPU, а затем выжимать всю скорость из компа с пом. видеокарточного проца. Я вообще-то считаю, что рано или поздно проц с пом нормальных обычных универсальных команд будет осуществлять все операции в т.ч. и графические. А CUDA - это временная технология. Продуктивнее дождаться нормальной мультипроцессорности обычного компа, т.к. многоядерность скоро станет ограничивающим фактором. Когда они на проце разместят 10 тыс ножек, м.б. остановятся? А то память то по прежнему двухканальная - вот где узкое место. В свое время транспьютеры Inmos мне нравились. Но у них свои проблемы были.
Для упрощения текущей версии Neuronium каждую Engine я запускаю как отдельное приложение. И уже средства ОС сами раскидывают по ядрам. TCP в свою очередь синхронизирует потоки приложений - множества Neuronium Engines. Для этого в Neuronium есть отдельный поток ядра и поток I/O. Поэтому взаимодействие между процессами не тормозит основной вычислительный процесс. Приостанавливают свою работу лишь те демоны, которые занимаются I/O операциями.
[Ответ][Цитата]
victorst
Сообщений: 821
На: Проект Neuronium
Добавлено: 10 май 11 18:23
Цитата:
Автор: Victor G. Tsaregorodtsev
Такое уже многократно делалось. См, например, на статьи J.-C. Heudin по EVA (evolutionary virtual agent) - у него тоже были и демоны-агенты, и виртуальные машинные языки, и несколько "сред"..
Как совершенно правильно заметил shuklin, я вовсе неоригинален в этом жанре. Но каждая имплементация аналогичной системы может учитывать чужие разработки, что-то свое привносить, менять какие-то элементы и этим менять общие свойства системы.
Цитата:
Автор: Victor G. Tsaregorodtsev
...у Ходина были добавлены еще и случайный и генетический механизмы работы со знаниями и изменения знаний.
Да ради бога. Можно все это сделать будет в моей системе. Вообще-то многое из этого уже работает. Про генератор случайных чисел и соответствующий выбор решания я вообще молчу.
[Ответ][Цитата]
NO.
Сообщений: 10700
На: Проект Neuronium
Добавлено: 10 май 11 22:49
victorst:
Наверно знания будут очень разные, Вы собираетесь как-нибудь отслеживать их корректность?
[Ответ][Цитата]
shuklin
Сообщений: 2053
На: Проект Neuronium
Добавлено: 10 май 11 23:53
Цитата:
Автор: NO.

victorst:
Наверно знания будут очень разные, Вы собираетесь как-нибудь отслеживать их корректность?

Могут интегрировать одно из решений этой проблемы к себе в ядро, или поступить как я - вынести решение всех трудных или неинтересных на данный момент вопросов из ядра во вне. Имея к ядру MT-полный скриптовый язык появляется возможность рядом с ядром строить любые дополнительные интегрированные в систему модули решающие задачи любой посильной для разработчика прикладной системы сложности.
[Ответ][Цитата]
victorst
Сообщений: 821
На: Проект Neuronium
Добавлено: 11 май 11 9:56
Цитата:
Автор: NO.
victorst:
Наверно знания будут очень разные, Вы собираетесь как-нибудь отслеживать их корректность?
Я надеюсь на то, что онтологический подход в этом деле поможет. Если новые знания сразу укладывать в нужные места, добавляя листья к единому дереву онтологии, то этим корректность будет соблюдена.
[Ответ][Цитата]
NO.
Сообщений: 10700
На: Проект Neuronium
Добавлено: 11 май 11 10:20
Я имею ввиду при компляции ищутся ошибки, в Вашей системе будут новые виды ошибок?
[Ответ][Цитата]
NO.
Сообщений: 10700
На: Проект Neuronium
Добавлено: 11 май 11 10:23
Цитата:
Автор: shuklin
рядом с ядром строить любые

Традиционно в центре горшка должно быть не ядро, а топор. Опять смена парадигмы?
[Ответ][Цитата]
 Стр.1 (2): [1]  2След. > >>