1. Генетичесмкие алгоритмы, эволюционные вычисления — изначально рассматривались как часть ИИ.
Алгоритмы, навеянные живой природой.
Есть замечательная книга Карпенко: Современные алгоритмы поисковой оптимизации.
2. Представление знаний + вывод на знаниях.
Здесь последнее время рулят нечеткости и вероятности.
А начиналось все с представления знаний с помощью исчисления высказываний и предикатов и метода резолюции Робинсона.
Где-то в то же время — семантические сети, которые постепенно перешли в онтологии.
Потом правила-продукции — которые сейчас фактически предлставляют собой базу нечетких правил.
Первые экспертные системы (Dendral, Mycin, Casnet) работали с эвристическими методами вывода на правилах.
Ну, и Марвин Минский со своими фреймами, которые сейчас прктическив всегда представляю узлы семантиической сети = онтологии.
Байесовские сети — и байесовский вывод — название говорит само за себя...
В общем, постепенно математика проникает.
Но в принципе, любые эвристически подходы, решающие некую задачу, относят к ИИ.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, alex_public, Вы писали:
_>Ну первым делом стоило бы взглянуть на язык Пролог — он всё же именно для этого был изначально создан (и без всяких нейронных сетей).
Пролог был создан до современного понимания проблем ИИ и фактически к этому не пригоден. Если идти к истокам и пропустить Хаскель, то лучше смотреть на LISP (но смысла и в этом не будет).
Здравствуйте, Nuzhny, Вы писали:
_>>Ну первым делом стоило бы взглянуть на язык Пролог — он всё же именно для этого был изначально создан (и без всяких нейронных сетей). N>Пролог был создан до современного понимания проблем ИИ и фактически к этому не пригоден. Если идти к истокам и пропустить Хаскель, то лучше смотреть на LISP (но смысла и в этом не будет).
Ну, с учётом того, что Пролог используется в Watson, то думаю говорить о его непригодности несколько странно. )))
Здравствуйте, alex_public, Вы писали:
F>>Есть ли такое в природе? По-моему, должно быть. F>>Поделитесь, пожалуйста, информацией. _>Ну первым делом стоило бы взглянуть на язык Пролог — он всё же именно для этого был изначально создан (и без всяких нейронных сетей).
а я туда смотрел.
проблема в том, что он не располагает к обучаемости, хотя на нём можно сделать какую-то экспертную систему уровня, как тут поминали, альфа-бета-отсечения.
в итоге, чтобы оценить исход какого-либо сложного процесса, проще смоделить сам процесс и нагенерить результатов, обработав потом статистически.
я так баланс для игры генерил.
Здравствуйте, alex_public, Вы писали:
_>Ну, с учётом того, что Пролог используется в Watson, то думаю говорить о его непригодности несколько странно. )))
Ну, надо бы конкретнее указать, что он там делает. Если для каких-то логических выводов, но это же не ИИ. Казалось бы, LISP тут больше подходит.
Здравствуйте, Nuzhny, Вы писали:
_>>Ну, с учётом того, что Пролог используется в Watson, то думаю говорить о его непригодности несколько странно. ))) N>Ну, надо бы конкретнее указать, что он там делает. Если для каких-то логических выводов, но это же не ИИ. Казалось бы, LISP тут больше подходит.
Здравствуйте, Nuzhny, Вы писали:
F>>механизм, который можно обучить обрабатывать какие-то данные. N>О, так этого добра полно. Самый лучший обзор области, который я видел.
спасибо. то, что нужно: много слов, которые можно нагуглить.
The Prolog language is recognized to be an excellent solution for the problem of pattern matching and all problems that involve a depth-first search and backtracking [6, 1]. Although simple, the Prolog language is very expressive allowing recursive rules to represent reachability in parse trees and the operation of negation-as-failure to check the absence of conditions.
Движок рекурсивного pattern matching с откатами. Я о том и говорю, что данный пункт сейчас уже не считается за ИИ. Вроде как Пролог с середины 90-х годов признали не пригодным для написания ИИ, потому что логический вывод и строгое сравнение с образцом — это не оно.
Здравствуйте, neFormal, Вы писали:
_>>Ну первым делом стоило бы взглянуть на язык Пролог — он всё же именно для этого был изначально создан (и без всяких нейронных сетей). F>а я туда смотрел. F>проблема в том, что он не располагает к обучаемости, хотя на нём можно сделать какую-то экспертную систему уровня, как тут поминали, альфа-бета-отсечения. F>в итоге, чтобы оценить исход какого-либо сложного процесса, проще смоделить сам процесс и нагенерить результатов, обработав потом статистически. F>я так баланс для игры генерил.
На самом деле с Прологом есть два отдельных подхода и даже два вида его реализаций:
— неполноценная (причём большинство наследников Пролога используют её). Когда у нас имеется набор правил, которые применяются к некой базе меняющихся фактов. Самообучение в такой систем естественно тоже возможно и производится с помощью алгоритмов динамически корректирующих базу фактов. Однако здесь нет никаких принципиальных преимуществ перед каким-нибудь специализированным Java-движком (который ещё и производительнее, т.к. использует алгоритм Rete, а не полноценную унификацию), работающим поверх Oracle, кроме разве что специально предназначенного синтаксиса и более крутого (с откатами) сопоставления с образцом.
— полноценная. Изначальный Пролог подразумевал удобный способ для динамического задания не только фактов, но и произвольных правил. Современный аналог подобной возможности даже трудно подобрать. Что-то очень отдалённое можно себе представить на современных динамических языках, если использовать на каждом шаге функцию eval(), но всё равно по удобству даже близко ничего подобного не будет (например если играться в рантайме с произвольным кодом на этих языках, то он будет выглядеть как строки, а в Прологе это это будут те же самые правила, которые можно разобрать на части, поменять, собрать обратно и т.д.). Т.е. для истинного самообучения (когда подстраивается сам алгоритм, а не просто его параметры) ничего мощнее придумать нельзя. Однако это оказался слишком мощный инструмент, которым пока так и не смогли полноценно воспользоваться — нет готовых обобщённых алгоритмов такого обучения (т.е. удобный способ модификации своего кода программистам дали, а те не смогли придумать как его модифицировать в процессе обучения в общем случае). А вот в мелких частных задачах с узкой специализацией тут бывают очень интересные решение. Но их надо каждый раз придумывать с нуля, в отличие от тех же нейронных сетей, где мы по сути скачиваем типовое решение, правим пару мелочей и сразу получаем работающий код. Поэтому как раз с точки зрения бизнеса нейронные сети кажутся самым крутым решением из ИИ, хотя результаты у них не всегда хороши.
N>The Prolog language is recognized to be an excellent solution for the problem of pattern matching and all problems that involve a depth-first search and backtracking [6, 1]. Although simple, the Prolog language is very expressive allowing recursive rules to represent reachability in parse trees and the operation of negation-as-failure to check the absence of conditions.
N>Движок рекурсивного pattern matching с откатами.
Ну да, по сути это определение Пролога. ))) Если конечно при этом не забывать, что сам "pattern" является динамически модифицируемой сущностью, а не зашитым кодом, как в большинстве языков.
N>Я о том и говорю, что данный пункт сейчас уже не считается за ИИ.
Кем это не считается? ) Вот в данном случае он обеспечивает возможность распознавания естественно языка — это ты считаешь не задача ИИ? )
N>Вроде как Пролог с середины 90-х годов признали не пригодным для написания ИИ, потому что логический вывод и строгое сравнение с образцом — это не оно.
Здравствуйте, alex_public, Вы писали:
_>Ну да, по сути это определение Пролога. ))) Если конечно при этом не забывать, что сам "pattern" является динамически модифицируемой сущностью, а не зашитым кодом, как в большинстве языков.
Так в Лиспе то же самое: программа есть данные. Но возможность самомодификации — это тоже не ИИ.
N>>Я о том и говорю, что данный пункт сейчас уже не считается за ИИ. _>Кем это не считается? ) Вот в данном случае он обеспечивает возможность распознавания естественно языка — это ты считаешь не задача ИИ? )
Да, это задача ИИ, но Пролог с ней справляется хуже современных, в том числе и нейросетевых методов. Именно потому, что его подход строго детерминированный, а не, так скажем, статистический, как в классических алгоритмах Machine learning'а.
N>>Вроде как Пролог с середины 90-х годов признали не пригодным для написания ИИ, потому что логический вывод и строгое сравнение с образцом — это не оно. _>С чего бы это? И кто признал? )))
Японцы признали в 1992 году после провала программы по разработке компьютеров пятого поколения. Вот есть перевод статьи об этом проекте: "Кто убил Пролог".
Когда мы его изучали в универе в начале 2000-х, делали экспертные системы уже было понятно, что он не жилец. Собственно, мы изучали логическое программирование в 3-х ипостасях: Пролог, Guru и в среде, реализованной силами нашего универа.
Здравствуйте, Nuzhny, Вы писали:
_>>Кем это не считается? ) Вот в данном случае он обеспечивает возможность распознавания естественно языка — это ты считаешь не задача ИИ? ) N>Да, это задача ИИ, но Пролог с ней справляется хуже современных, в том числе и нейросетевых методов. Именно потому, что его подход строго детерминированный, а не, так скажем, статистический, как в классических алгоритмах Machine learning'а.
И где можно увидеть подобное сравнение?
Кстати, а есть данные на базе чего работают Алиса (от Яндекса которая) или Алекса (от Амазона)? Я естественно имею ввиду не очевидный начальный шаг по переводу голоса в текст, а следующий, с попыткой понимания этого текста (да ещё и в контексте).
_>>С чего бы это? И кто признал? ))) N>Японцы признали в 1992 году после провала программы по разработке компьютеров пятого поколения. Вот есть перевод статьи об этом проекте: "Кто убил Пролог".
Ну так и каким образом провал того проекта говорит о том, что Пролог не подходит для задач ИИ?
N>Когда мы его изучали в универе в начале 2000-х, делали экспертные системы уже было понятно, что он не жилец.
Почему было понятно? )
N>Собственно, мы изучали логическое программирование в 3-х ипостасях: Пролог, Guru и в среде, реализованной силами нашего универа.
Однако как раз экспертные системы не факт что относятся к ИИ, потому как они не обязательно должны быть обучаемыми (что на мой взгляд является главным признаком ИИ).
Здравствуйте, alex_public, Вы писали:
_>И где можно увидеть подобное сравнение?
Хороший вопрос. Давай подумаем.
_>Кстати, а есть данные на базе чего работают Алиса (от Яндекса которая) или Алекса (от Амазона)? Я естественно имею ввиду не очевидный начальный шаг по переводу голоса в текст, а следующий, с попыткой понимания этого текста (да ещё и в контексте).
1. Google.Translate перешёл на нейросети, новость была недавно на форуме.
2. Google assistant, который по качеству превзошёл Siri — тоже нейросети, я ссылку приводил в соседней дискуссии.
3. Опять Google, но теперь открытый проект — tesseract ocr, в который для коррекции засунули LSTM.
4. Алиса — нейросети: раз и два.
5. Алекса — нейросети.
6. IBM тоже много говорит о нейросетях: раз, два, три.
_>Ну так и каким образом провал того проекта говорит о том, что Пролог не подходит для задач ИИ?
Ну, провал многомиллиардного проекта на 10 лет, результатом которого получился пшик? Хм. Надо подумать.
N>>Когда мы его изучали в универе в начале 2000-х, делали экспертные системы уже было понятно, что он не жилец. _>Почему было понятно? )
Потому что никакого ИИ не получалось. Логические задачки решать получалось, какие-то экспертные системы тоже. Но ничего нового не было.
_>Ну сейчас для бизнес-целей активно используют такие https://en.wikipedia.org/wiki/List_of_BPEL_engines игрушки, которые являются вариациями на тему этой https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_Rete штуки. Последнее слабее по функциональности Пролога, но лучше по производительности (при масштабирование на огромные базы правил). _>Однако как раз экспертные системы не факт что относятся к ИИ, потому как они не обязательно должны быть обучаемыми (что на мой взгляд является главным признаком ИИ).
Я о том и говорю. Пролога не видно дальше матчинга. Он ещё использовался в Windows для оптимального подбора драйверов. Но это тоже просто матчинг.
N>Японцы признали в 1992 году после провала программы по разработке компьютеров пятого поколения. Вот есть перевод статьи об этом проекте: "Кто убил Пролог".
Ну, кое-что от японцев осталось-таки...
Они сильно продвинули нечеткий вывод вместо логического. Такие вещи, как Такаги-Сугено, и Цукамото — все знают.
В 93-м в России вышла заключительная книжка японского проекта: Прикладные нечеткие системы.
Чего там только нет!
Например, управление скоростью автомобиля. управление доменной печью и холодной прокаткой...
Автовождение поездов, распознавание речи...
Экспертные системы и многоцелевое планирование...
В общем вклад в нечеткости получился очень весомый.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, Nuzhny, Вы писали:
N>Здравствуйте, neFormal, Вы писали:
F>>механизм, который можно обучить обрабатывать какие-то данные.
N>О, так этого добра полно. Самый лучший обзор области, который я видел.
прикольный чувак — начал читать с сетей, закончил евротрипом — все так знакомо и легко изложено