Perl и AI

В копилке CPANа накопилось довольно много модулей для AI,
хотелось услышать мнение разных людей, кто использует,
что использует, чего не хватает. За AI - будущее!

А применение

А применение какое?

Вообще что понимается в данном случае под AI?

...

http://ru.wikipedia.org/wiki/AI
http://ru.wikipedia.org/wiki/Искусственная_нейронная_сеть
http://www.statsoft.ru/home/textbook/modules/stneunet.html
http://www.basegroup.ru
http://www.basegroup.ru/library/analysis/neural/math/
http://www.neuroproject.ru/neuro.php
http://alife.narod.ru/
http://neuroschool.narod.ru/

Наиболее интересные модули (и не только эти):
AI-Prolog
AI-Genetic-Pro
AI-NeuralNet-SOM
AI-NeuralNet-Kohonen

http://search.cpan.org/search?query=AI&mode=all
...

Ну вообще-то,

Ну вообще-то, генетические алгоритмы очень относительно относятся к AI, примерно так-же стоит привести тут алгоритм A-star.
Но то вобщем ладно, не на экзамене :).

А какое все-же практическое применение AI в данном контексте (скажем, прямо сейчас и лет через 5)?
- Вопрос далеко не праздный - история знает массу случаев, когда делался очень серьезный, правильный инструмент, но не подумали, зачем, в итоге он оказался никому не нужен..

...

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

Спасибо, я знаю

Спасибо, я знаю как сейчас вообще применяют AI :)

Кстати, реально я лично встречал только один случай применения огрызка AI в администрировании - знакомый использовал пакет SNORT для распознавания хакерских атак на сервер, ну плюс еще аналогичная система от 3COM используется у одного киевского провайдера, но особого от ее толку я не вижу, возможно дело в том что ее очень сложно правильно настроить.

Да, среди реально крупных серьезных шагов могу назвать только внедрение распознавания лиц (улыбок) в фотокамерах (еще аналогичную технологию сейчас внедрили в одной социальной сети), ну и также где-то плюс-минус трамвайная остановка, находится технология автоматического распознавания номерных знаков авто, которую используют ГАИ/полицейские.

Вопрос в том, как вы лично это используете/планируете использовать? - Просто ни один из приведенных примеров не является задачей, где есть смысл применять перл..

...

Хорошо, задам конкретный вопрос:
байесовские фильтры кто нибудь делал на Perl?
Очень интересная тема!

Байесовские

Байесовские категоризаторы на самом деле скучная тема..
И в них главное именно хорошая база примеров для настройки, и конечно достаточно мощная машина чтобы достаточно быстро считать.
Еще можно добавить, что тема очень хорошо алгоритмически проработана, и ИМХО нет смысла использовать для нее интерпретируемый язык.

Если смотреть конкретно на борьбу со спамом, мощные парсинговые средства Перла тут плохо применимы, но кстати есть другие области, где полезен именно парсинг, и их и стоит искать.

...

Более конкретный пример, можно,
по поводу парсинга и AI. Или это не так?

Пожалуйста,

Пожалуйста, попробуйте менее двусмысленно сформулировать что вы хотите сказать - нас читают обычные люди, не только посвященные :)

...

Quote:

кстати есть другие области, где полезен именно парсинг, и их и стоит искать

...

Умение сделать не главное, главное - продать!

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

Quote:

Разработчики, задействованные в проекте GlobalGCC представят на саммите разработчиков GCC 2008 открытый расширяемый инструмент автоматической проверки правил кодирования C++ для GCC и надеются что он войдет в основную ветку GCC и будет расширен и на остальные языки. Проект особенно интересен тем что в отличие от известных коммерческих аналогов (Parasoft, Klocwork, Coverity), его можно адаптировать под собственные правила кодирования.

Модифицированный предоставленными патчами компилятор GCC строит по программе базу знаний в виде Пролог-утверждений и затем программа на Прологе производит валидацию стиля кодирования в соответствии с правилами. В настоящий момент на Прологе реализована часть правил HICPP (High-Integrity C++), реализуются остальные правила стандарта правил кодирования и ведутся работы над созданием специализированного языка описания правил кодирования CRISP (Coding Rules In Sugared Prolog).

http://www.opennet.ru/opennews/art.shtml?num=16153

...

PERL не интерпретируемый язык!
Смотри лучше доки!

А как

А как интерпретируемость относится к теме?

...

simne написал
А как интерпретируемость относится к теме?

simne написал
Еще можно добавить, что тема очень хорошо алгоритмически проработана, и ИМХО нет смысла использовать для нее интерпретируемый язык.

Вообще-то в

Вообще-то в контексте было, что любой имеющейся сейчас производительности недостаточно для AI, и возможно только некоторое приближение, и чем быстрее работает программа, тем больше возможности, поэтому необходимо использовать самые быстрые средства, даже ассемблер, если есть возможность.
И факт что нормально написанная на C программа будет быстрее чем на Perl.

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

Мое личное

Мое личное мнение насчет AI и Perl.

Perl может быть идеальным решением для написания агентов. Несколько приложений, можно даже распределенных, каждое выполняет какое-нибудь специфическое действие, потом они обмениваются данными или же передают их арбитру, на более высокой уровень, тоже основанные на агентах.
Что-то типа того, что было реализовано Бруксом.
Perl в качестве языка для формализации понятий, описания знаний и т.д.(читай, разработки экспертных систем) - на любителя. Я сам не пробовал, но мне почему-то кажется, что LISP будет удобнее.
NN, FuzzyLogic - тут без разницы на чем писать. Первое вообще лучше воплощать в железе. Но можно и на чистом Perl, если это применимо к решению конкретной задачи.

Согласен

Согласен. Если на конкретной задаче хватает производительности чистого Перл, можно и на чистом Перл.
Но в общем случае нужно стремиться поближе к чисто железному решению (вставки на Си/асме в Перл или движок на Си/асме а в Перл только интерфейс к движку => Си => асм => какой-нить HDL).

Конкретное приложение укажет свои ограничения, например мне интересна задача автоматической категоризации картинок (и видеороликов) на основе распознавания на них образов и анализа движения образов; тут такие нюансы:
1. выделение образов так или иначе работа с битмапами (коррекция яркости/гаммы/балансов белого и тп; выделение контуров)
2. для серьезной задачи нужна немаленькая база данных
3. задача пока еще не имеет общего решения, и для конкретного случая нужно вырабатывать свои коэффициенты для алгоритмов

Поэтому тут однозначно нужно делать на "близко_к_железных" инструментах работу с битмапами (вобщем-то делать особо ничего и не надо - оно уже все есть почти готовое); возможно прийдется делать расширения для движка базы данных (вероятнее всего на Си), или есть вероятность что можно базу образов сжать, но тогда тоже нужно Си для быстрой распаковки; а верхний уровень на языке высокого уровня с хорошими средствами работы с абстракциями, и который удобнее, например на Перле, может даже какую-то часть окажется удобно сделать на инлайновом Прологе/Лиспе.

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