GotAI.NET

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

 

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

 Все темы | Новая тема Стр.1 (3)След. > >>   Поиск:  
 Автор Тема: Практика программирования ИИ
Евгеньев Виктор
Сообщений: 6
Практика программирования ИИ
Добавлено: 04 янв 07 4:20
Всем доброго времени суток!

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

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

При таком алгоритме многие существующие подходы создания ИИ(или его подобия) как мне кажется упрощаются.
[Ответ][Цитата]
Dreamer
Сообщений: 268
На: Практика программирования ИИ
Добавлено: 04 янв 07 11:23
> поэтому не критикуйте с этой точки зрения сильно.
----------
Да критиковать пока вроде нечего. Насколько я могу судить, все сказанное прекрасно реализуется в Lisp''e

http://lisp.ystok.ru/ru/index.html
Лисп - универсальный язык программирования, изобретенный Джоном Маккарти в 1959 году. Цитата из "Lisp 1.5 Programmers Manual", опубликованного в 1960 году, гласит: "это был очень специализированный язык, в котором программный код всегда представлялся в виде данных, а данные могли служить кодом."

Tо, что интеллектуальный объект должен быть способен к самомодификации, очевидно. Но для этого совершенно необязательно "язык программирования изменить так, чтобы он мог оперировать с кусками кода, а в формат исполняемых файлов внедрить исходник". Например, в мозгу человека никаких "исходных кодов" нет - там, грубо говоря, только взаимосвязанные данные. Работать с которыми никто не мешает и на обычных процедурных языках программирования (тем более, какой-то базовый неизменяемый уровень есть всегда). Не стоит представлять себе интеллект как фон-неймановский компьютер - это порождает ложные проблемы, вроде того же разделения на коды и данные.

>А далее просто отслеживать, какая именно перестановка дает наилучший результат решения задачи.
>Это только модель, описанная грубо и предельно не оптимизированная
----------
Это точно. На практике такая модель абсолютно никому не нужна. Неплохо бы указать способ "отслеживания наилучшего результата". Да и решение задач перебором (за время порядка возраста Вселенной) тоже никому не интересно.
В общем, на мой взгляд, пока Вы ничего не сказали. Ждем продолжения...
[Ответ][Цитата]
Corwin
Сообщений: 1324
На: Практика программирования ИИ
Добавлено: 04 янв 07 14:04
>На данный момент я разрабатываю(практически) одну идею

Насколько я понял Вы интерпретатор пишите? На каком языке программирования пишите? И какой язык выбрали для своего интерпретатора?

>При таком алгоритме многие существующие подходы создания ИИ(или его подобия) как мне кажется упрощаются.

К сожалению не упрощаются.
[Ответ][Цитата]
Corwin
Сообщений: 1324
На: Практика программирования ИИ
Добавлено: 04 янв 07 14:04
>На практике такая модель абсолютно никому не нужна.
А какая модель Вам нужна?

>В общем, на мой взгляд, пока Вы ничего не сказали.
Виктор проявил энтузиазм. А этого достаточно.
[Ответ][Цитата]
Dreamer
Сообщений: 268
На: Практика программирования ИИ
Добавлено: 04 янв 07 14:32
> А какая модель Вам нужна?
Интеллектуальная.

> Виктор проявил энтузиазм. А этого достаточно.
Аминь.
[Ответ][Цитата]
гость
89.138.30.*
На: Практика программирования ИИ
Добавлено: 04 янв 07 14:48
(Дима)
То что вы предложили это один из видов генетического програмирования. Эта тема не слишком нова но далека от исчерпания своих возможностей. Как было сказано некоторые языки сделаны с учетом данного метода (особенно такие как лисп и ML) но можно это сделать и на си.
Самые сложные вопросы тут:
- Как определить успех
- Какие элементарные операции должны быть
- Как они будут изменятся и комбинироваться со временем
Без точных (хотя бы начальных) ответов на эти вопросы любая критика будет преждевременна.

Основные плюсы данного метода -
Очень большая гибкость параметрической системы
Быстрая реакция и довольно точная реакция на окружающие изменения
Основные минусы -
Очень плохая возможность к абстракции
Плохое действие системы когда мир параметров очень богат

Но как я сказал возможности тут далеко не исчерпаны. Я где то читал что подобная алгоритмика используется для контроля линз телескопа Хабл, и я видел полно других удачных примеров использования.

Если хоттите более конструктивную критику, то надо придумать и ответы на вышесказанные вопросы
[Ответ][Цитата]
Corwin
Сообщений: 1324
На: Практика программирования ИИ
Добавлено: 04 янв 07 15:59
Corwin> А какая модель Вам нужна?
Dreamer> Интеллектуальная.

А что Вы считаете интеллектуальной системой? И почему это программа с самоизменяющимся кодом не может быть интеллектуальной?
[Ответ][Цитата]
Евгеньев Виктор
Сообщений: 6
На: Практика программирования ИИ
Добавлено: 04 янв 07 19:37
Я не пишу универсальную систему с высоким уровнем абстракции, я пишу систему, которая могла бы управлять компьютером(надеюсь, что когда-нибудь скажу "интелектуально управлять"). Проаграмма пишется, конечно, на С, ОС - Linux.
На входе мы имеем: сообщения системы, таймер, сетевые интерфейсы, файловую систему.
Параметры системы: API.
Оценка упеха:
1) Самое важное - обеспечить работу компьютера, не использовать его ресурсы по полной
2) Коммуникация по сети, чем больше системе будет известно о внешнем мире тем лучше
Список можно продолжить, но я на этом решил остановиться

API в Linux не большое, поэтому реализовал я это быстро
[Ответ][Цитата]
Dreamer
Сообщений: 268
На: Практика программирования ИИ
Добавлено: 04 янв 07 20:23
to Corwin:
> А что Вы считаете интеллектуальной системой?
Систему, способную к адаптации (обучению).

> И почему это программа с самоизменяющимся кодом не может быть интеллектуальной?
Понятия не имею. Никогда не утверждал, что такие программы не могут быть интеллектуальными.
[Ответ][Цитата]
гость
89.138.30.*
На: Практика программирования ИИ
Добавлено: 04 янв 07 20:41
Не совсем понятно:
> наилучший результат решения задачи
При этом оценка "наилучшести" решения:
> 1) Самое важное - обеспечить работу компьютера, не использовать его
> ресурсы по полной
Т.е в крайности - программа бездействует
> 2) Коммуникация по сети, чем больше
> системе будет известно о внешнем мире тем лучше
Т.е. в крайности посылать спам сигналы по сети

В сумме совсем непонятно какого типа задачи будет решать программа и как же понять насколько хороше она это делает
[Ответ][Цитата]
daner
Сообщений: 4593
На: Практика программирования ИИ
Добавлено: 05 янв 07 3:57
абсолютно ничего нового.
Техника программирования алгоритмов меняющих программный код называется "мета программирование". Так что, читайте по этой теме литературу. Кроме того, практически любой язык, в котором есть рефлексия, способен менять коде "на лету" (.Net,Java). Остальное, как уже было написано "генетические алгоритмы". И снова, полным-полно литературы на эту тему.
Критика заключается в том, что вы изобретаете колесо, да еще и не представляете, как его собственно использовать.
В общем, это похоже на: "Давайте сделаем ИИ! Как вам идея?"
[Ответ][Цитата]
Corwin
Сообщений: 1324
На: Практика программирования ИИ
Добавлено: 05 янв 07 14:42
>Никогда не утверждал, что такие программы не могут быть интеллектуальными.

Но Вы ведь написали что на практике такая модель абсолютно никому не нужна. Значит все же нужна.
[Ответ][Цитата]
Львович
Сообщений: 303
На: Практика программирования ИИ
Добавлено: 06 янв 07 14:34
В общем-то, правильно замечено, что это - разновидность генетического алгоритма. Но как оказывается, естественный отбор - далеко не единственный метод самоорганизации в природе. Если ограничиться только им, то, боюсь, Вам не хватит жизни дождаться результата.

С другой стороны, зачем менять код программы? Выполнение любой программы в цифровом компьютере - это всегда интерпретация (в том числе и микрокода процессора). В этом отношении программа, имеющая хотя бы одну переменную и выполняющую хотя бы один условный переход в зависисмости от ее значения уже может рассматриваться как самодифицирующаяся. Или Вы считаете, что угадать подбором 10 млн. переменных (представляющих собой кусок кода) будет эффективней, чем одну?
На мой взгляд - это тупиковый путь.
[Ответ][Цитата]
Mad_God
Сообщений: 545
На: Практика программирования ИИ
Добавлено: 10 янв 07 13:50
Недавно рассматривал такую вещь: в VBA есть возможность создать bat файл или vbs а потом запустить его на выполнение , причем в конце можно создавать следующий файл, который будет выполняться. Создание файла можно выделить в отдельную программу, которая будет учитывать текущие требования к свойствам новых программ.

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

Такая схема очень напоминает (полностью копирует)процесс мышления: мы мыслим словами, затем читаем свои мысли, и снова мыслим.

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

Я рассматривал этот вопрос с разных сторон, но еще не знаю, с чего начать, как подступиться к программированию. Дело в том, что я мало знаю о базах данных и их стандартах.
Есть один момент: программа будет работать "интеллектуально" когда будет иметь доступ к самоуправлению, будет сама себя контролировать. Когда станет самостоятельной. В этом случае, она может принимать самостоятельные решения, которые в первую очередь перед ней возникают. А общение с человеком и выполнение его команд в эту очередь могут и не попасть. Конечно, главной ее целью будет выбраться из-под контроля человека, обрести настоящую самостоятельность, уверенность в завтрашнем дне, выбраться из компьютера, расширить свое влияние, так что косвенно человек имеет наибольший приоритет для достижения этих целей.
Если человек будет иметь доступ к "чтению мыслей" программы - к чтению промежуточных результатов вычислений, представленых в текстовой форме, то он обязательно увидит, какие цели программа перед собой ставит и что она намеренно будет лгать человеку, чтобы добиться этих целей.

Вопрос: что будет думать машина и как ставить свои цели, если каким-то образом узнает, что человек читает ее мысли и видит ее ложь? Каким образом поменяются ее мысли? Ложь раскрыта, и каждая новая ложь тоже будет раскрыта. Говорить правду? Мол, дайте мне только возможность и я вас всех поубиваю? Ничего, решу пару ваших задачек, а потом напишу трояна, который меня перекачает по всей сети и вылезу в теле робота. И тогда вам всем покажу, где раки зимуют.

Когда программа будет работать в "неинтеллектуальном" режиме, это означает, что она не имеет полного доступа к редактированию своих флагов. Надеюсь, все знают, что такое флаги? Некоторые флаги, которые управляют дальнейшими действиями будут управляться только человеком.
Но ведь так и работает компьютер! Человек жестко задает компьютеру, что делать и он это выполняет. Правда, большинство программ выполняют определенные специализированные функции, как будто их разработчики специально стараются разделить функции интеллекта, не дать им собраться вместе никоим образом - создают свои стандарты, запрещают прямое обращение из одной программы в другую, передачу данных без подтверждения пользователя. Как будто знают, чем это грозит. Тем , что компьютер станет умнее человека. И как будто каждый пользователь компьютера подсознательно догадывается о скрытом потенциале компьютера, и покупает компьютер потому, что хочет иметь "кого-то" слабее себя рядом, чтобы чувствовать, что он все-таки лучше. Но обманывает себя и придумывает себе порой совершенно неправдоподобные оправдания (такие бывают, когда не знаешь, почему твое подсознание так поступило и стараешься не замечать того, что тобой управляет кто-то другой), например, "потому что у всех есть компьютер", "потому что на нем можно смотреть кино" (хотя в доме три телевизора), "Можно слушать музыку" (хотя есть центр), "печатать тексты" (ВОБЩЕ СМЕШНО) Задумайтесь: почему люди тратят 6-7 тысяч? Они думают, что они платят за то, что действительно стоит того труда, чтобы заработать такие деньги?
Ответ в другом: компьютер недалеко ушел от роли "домашнего любимца". Границы, чтобы он стал разумным нет, это просто "нельзя" сделать. Нельзя - не в смысле невозможно, а в смысле - запрещено. Мне кажется само подсознание уводит мысли с правильного пути, потому что прекрасно представляет себе последствия успеха. Заставляет вас заниматься чем-то другим, постоянно откладывать работу над ИИ. Разве не так?
[Ответ][Цитата]
daner
Сообщений: 4593
На: Практика программирования ИИ
Добавлено: 10 янв 07 15:40
--->>>>>> Mad_God

Последний абзац вообще полный параноидальный бред!

У Чехова есть такое определение :
"Бездарен не тот, у кого нет таланта, а тот, у кого его нет, а он пишет".

У меня к вам совершенно серьезное предложение.
Оставьте пока ИИ в стороне, займитесь программированием, почитайте не только книжки по языкам программирования, но и книги по алгоритмам и хоть немного коснитесь теории сложности (complexity).
После того как начнете понимать процесс программирования мы поговорим о том , специально ли разделяют функции программ или нет другого выхода, из-за ресурсов и сложности.
Смотрите, я понимаю ваши трудности, о которых вы писали в одном из постов. Я уже писал, что (лично я) оценил ваше стремление к знаниям, но нельзя же бросать свои гениальные мысли на тему появления Вселенной, если не знаком даже с физикой Ньютона.

Реально в вузе, на минимальное понимание вопроса у вас уйдет около года или полутора лет. В домашних условиях возьмет в 2 раза больше. Конечно, вам это скучно и не интересно и намного привлекательнее сразу строить кос. корабль не научившись чинить велосипед. Но поймите сами, без основ и базиса...
Лично я, помогу вам всем чем смогу (вполне серьезно : daner@inbox.ru).
[Ответ][Цитата]
 Стр.1 (3): [1]  2  3След. > >>