Что такое экспертная система (ЭС)? Все слышали этот термин, он часто воспринимается как устаревший, немодный, далекий от мэйнстрима и в науке, и в технике. «Это очень специальная область программирования, не имеющая широкого применения». ЭС проходят в институте и потом благополучно забывают.

Они появились в конце 60-х годов как самое многообещающее, практичное направление развития науки об искусственном интеллекте. Несмотря на множество интересных разработок, ЭС не только не получили широкого распространения, но нет даже ни одной коммерчески успешной разработки.

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


Когда появились первые электронный вычислительные машины (ЭВМ), их называли электронным мозгом и с опаской ожидали скорого прихода машин, заменяющих человека. Машин стало много, их мощность возросла в миллионы раз, но человека они заменить не смогли. Появление «электронного мозга» в ближайшие годы не прогнозируется, несмотря на то, что уже прошло более 60 лет со времени появления первых вычислительных машин.

Одна из основных причин слабого развития ЭС – алгоритмическая парадигма мышления разработчиков прикладных программ. Эта парадигма настолько глубоко проникла во все, что касается компьютеров, что мы этого не замечаем. Кажется, все замечательно – человек дает команды (нажимает мышкой нужные кнопки на экране) – машина исполняет, чего еще желать? Если же копнуть глубже – какие команды отдает человек? Вместо того, чтобы давать машине задание – сказать ЧТО надо сделать, что хочет пользователь, человек дает инструкции – КАК делать, какую последовательность операций выполнить машине, чтобы получить нужный результат.

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

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

В результате, чем больше программ должен применять человек, тем больше он должен запомнить и выучить. Компьютер не «разгружает», а «нагружает».

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

Чтобы добиться от него результата, человек – пользователь должен хорошо потрудиться — выучить программу, постоянно ею управлять, готовить исходные данные для программы и еще обрабатывать результаты работы.

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

Какой может быть интеллектуальная программа – бухгалтерская ЭС? Такая программа полностью заменяет специалиста-бухгалтера – автоматически и безошибочно классифицирует и кодирует денежные операции, знает, автоматически собирает и применяет все необходимые нормативные и правовые акты и может консультировать директора по текущим операциям и по общим бухгалтерским вопросам.

Если взять наши текстовые редакторы – они облегчают труд машинисток, избавляя от необходимости перепечатывать страницу при обнаружении ошибок. В результате мы перестали писать ручкой и сами стали машинистками. Есть ли от этого выигрыш в производительности труда?

Интеллектуальный текстовый редактор должен сам создавать тексты документов по указаниям пользователя. Например: «На это письмо надо ответить согласием», «На эту претензию надо подготовить возражение», «Вот это письмо надо переписать в более мягкой форме».

А если взять электронные таблицы – сама по себе мощная парадигма электронных таблиц могла бы быть намного более массовой и эффективной, если бы не сложность ее освоения. Большинство пользователей не используют и половины функций электронных таблиц и текстовых редакторов из-за трудностей полного освоения этих программ.

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

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

Одно из важных отличий ЭС – ориентация на язык пользователя, поскольку в ЭС пользователь формулирует описание своей задачи – ЧТО он хочет, а не инструкции машине – КАК выполнить его задание.

Существует один пробел в современном программировании из-за которого в сознании программистов нет установки на смысловую обработку информации – нет формальной основы – языков программирования для представления и обработки смысловой информации, хотя все необходимые языковые средства описаны в соответствующих публикациях. Система концептуального программирования разрабатывается в НПФ «Семантикс Рисеч».

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

Замена существующих прикладных программ экспертными системами кардинально повысит эффективность компьютеров и улучшит современный мир. Приведем лишь несколько возможных примеров.

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

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

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

В не очень далекой перспективе развития ЭС, можно представить, что каждый человек сможет получить неограниченные возможности заинтересованного и активного персонального общения, которые сегодня обеспечивают коммерческий успех социальный сетей и поисковых программ Интернет. Общение с виртуальными интеллектуальными личностями кардинально изменят не только парадигму общения человека с компьютером, но и сами основы экономической деятельности общества.
Поделиться с друзьями
-->

Комментарии (25)


  1. A-Stahl
    15.07.2016 14:22
    +10

    Скучно и бессодержательно. Вы не ответили на поставленный вопрос. Хуже того — вы даже не смогли описать что же такое эта «экспертная система». А вот воды налили — на три Байкала хватит.
    Я хотел было изначально откомментироваться жёстче и с матами, но потом заметил «SEO startup» и понял что ругаться с вами бесполезно.
    Удачи…


    1. N_Ikhsanov
      15.07.2016 14:39
      -3

      Зачем ругаться? Мы не на коммунальной кухне, где громкость и грубость — главные аргументы.
      По тексту, пожалуйста, конкретно, с чем Вы не согласны.


      1. Calc
        15.07.2016 15:27
        +5

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

        «Есть ли от этого выигрыш в производительности труда?»
        есть

        «Одна из основных причин слабого развития ЭС – алгоритмическая парадигма мышления разработчиков прикладных программ»
        Это вообще какой то бред. Ну учились, не знаете, не говорите.

        А в пример ставить бухгалтерские программы… — тут вообще без комментариев.


        1. N_Ikhsanov
          15.07.2016 19:36

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


  1. 1win1
    15.07.2016 15:44
    +2

    Мда…

    Если взять наши текстовые редакторы – они облегчают труд машинисток, избавляя от необходимости перепечатывать страницу при обнаружении ошибок. В результате мы перестали писать ручкой и сами стали машинистками. Есть ли от этого выигрыш в производительности труда?

    Вот придумали автомобиль, чтобы облегчить труд извозчиков. В результате мы перестали возить грузы на лошадях. Есть ли от этого выигрыш в производительности труда?


    1. N_Ikhsanov
      15.07.2016 19:45

      Говорят «всякое сравнение хромает». ЭВМ изобрели для выполнения умственной работы, т.е. они должны были облегчить жизнь человеку, взять на себя часть его работы. Нынешние компьютеры выполняют только алгоритмические вычисления.
      Теперь давайте вспомним, какую часть умственной работы человека составляют вычисления по алгоритму — 1% или 2%? Остальная работа осталась за человеком, поэтому все нынешние системы — человеко-машинные, хотя никто об этом не вспоминает.


      1. Andy_Big
        16.07.2016 16:27
        +2

        ЭВМ изобрели для выполнения умственной работы

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

        Спросите это у инженеров-конструкторов, которые работают в различных САПР. Они будут долго и искренне смеяться :)


        1. N_Ikhsanov
          17.07.2016 15:26
          -1

          Основное применение первых ЭВМ — проведение вычислений. Почему-то мы забываем, что работа с числами тоже является умственной работой.
          Прежде чем выполнить какое-то вычисление, необходимо провести немалый объем логических действий — определить цель, поставить задачу, формализовать задачу, определить критерии оценки, подготовить данные — все это делает человек своей головой и пока еще машина ему в этом не помогает.


          1. Andy_Big
            17.07.2016 15:43
            +1

            Прежде чем выполнить какое-то вычисление, необходимо провести немалый объем логических действий — определить цель, поставить задачу, формализовать задачу, определить критерии оценки, подготовить данные

            Это все умственная работа, да. А вот после этого вступает в работу ЭВМ, выполняющая рутинное перемалывание чисел по заданным формулам с заданной последовательностью. И эта рутина занимает при проектировании зданий, механизмов, при статистической обработке больших данных, и т.п. — отнюдь не 1-2%.
            Архитектор может за неделю придумать дизайн нового здания, и потом несколько месяцев делать подробные чертежи и просчитывать прочностные характеристики, перебирая материалы и условия их использования — без компьютера. Какие-то сложные механизмы в докомпьютерную эру могли вообще годами просчитывать, не потому что это очень умственно-ориентированная работа, а потому что там очень и очень много рутинных вычислений по давно известным формулам и алгоритмам.


  1. leshabirukov
    15.07.2016 15:58
    +2

    Одна из основных причин слабого развития ЭС – алгоритмическая парадигма мышления разработчиков прикладных программ.

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

    Никто и не мешает кажется. Эксперты есть, средства для создания ЭС тоже какие-то имеются.


    1. N_Ikhsanov
      15.07.2016 19:52

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


      1. leshabirukov
        18.07.2016 11:35

        Сегодня есть возможность переводить обычный ЕЯ-текст на формальный язык представления семантики,...

        Вот вы раскрыли бы слегка вопрос как?. А то ваши две статьи (про Пролог и ЭС) напоминают два фрейма из «как нарисовать сову».


        1. N_Ikhsanov
          18.07.2016 13:16
          -1

          На Хабре у меня есть заметка «Как решить проблему машинного понимания естественного языка»


          1. leshabirukov
            18.07.2016 14:55

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


            1. N_Ikhsanov
              18.07.2016 16:06
              -1

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


  1. alexkunin
    15.07.2016 16:37
    +4

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

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

    Одним из ключевых моментов было то, что не обязательно было программировать систему в императивном стиле. Например, есть целый подкласс ЭС на нечеткой логике. Входные данные отображались на домен термов — «сильная качка», «средняя качка», «слабая качка», «сильный ветер», «слабый ветер», «штиль». И выходные так же — «сильно лево руля», «лево руля», «прямо», и т.д.

    И вот эти термы связывались правилами (выглядящими довольно императивно, кстати), которые можно было неформально из живого эксперта выудить:

    вот ежели качка сильная, а курс слегка влево завалился и мы на полном ходу, то надо рявкнуть «право руля!»

    Вопрос только в определении значимых входных параметров и разбиении их на термы. Сами правила можно почти так и писать, как выше приведено. Там можно еще коэффициенты дать правилам и термам в правилах, т.е. отрегулировать базу правил постфактум (без коэффициентов — вроде Мамдами-тип, с ними же — Сугено-тип правил).

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

    Так вот, о чем это я тут заврался… Как говорил наш главный преподаватель по этим делам: вся эта лабуда упирается в то, кто будет отвечать за ошибки с последствиями — программу не посадишь, нужен человек. И поэтому моя специальность была «системы поддержки принятия решений», а не «системы принятия решений».

    Не скажу, что это охватывает все возможные ЭС. Но уж какую-то часть — точно. В любом случае ЭС — это перенесенные экспертные знания из носителя-человека во что-то кремниевое (или пневматическое, или механическое), с возможностью их — знаний — применения к каким-то входным данным с целью получения экспертной оценки и/или решения.


    1. N_Ikhsanov
      15.07.2016 20:02

      Экспертные системы — длинная тема, надо здесь разбираться основательно. Я только напомню, что ЭС появились как средство для решения проблемы комбинаторного взрыва. Например, шахматы. Если гроссмейстер планирует на 6 ходов вперед, то сколько вариантов надо рассмотреть машине? В среднем в каждой позиции есть двадцать возможных ходов, на каждый из них есть двадцать вариантов ответов. Значит на один ход надо рассмотреть 400 вариантов, а на 6 ходов вперед? 400*400*400*400*400*400! Но шахматист не рассматривает столько позиций, потому что у него есть знания, накопленные многими поколениями шахматистов. Вот технология ЭС и состоит в том, чтобы эти знания формализовать и применить в компьютере.


      1. trir
        16.07.2016 07:41

        есть AlphaGo — она тоже обладает знаниями, полученными из n-количества партий

        «эти знания формализовать и применить в компьютере» — а вот тут как раз затык


  1. Gryphon88
    15.07.2016 18:33
    +2

    С интересом читал Ваши статьи про Пролог, поскольку он меня всегда привлекал красотой идеи. Также читал Братко и Болотову про ИИ; в этих книгах в качестве примера ЭС приводятся системы, написанные в 70-90 и в основном на лиспе, реже на прологе. Создаётся впечатление, что иначе как на лиспе это толком не сделать, и вообще ЭС перестали писать, Хотелось бы знать несколько более реальную картину: в каких областях ЭС по факту пишут и используют и как сделать свою маленькую карманную.


    1. N_Ikhsanov
      15.07.2016 19:26

      Можно и настоящую сделать — зайдите на мой сайт www.exxlog.ru — там есть все что нужно.


      1. Gryphon88
        15.07.2016 20:46

        Спасибо
        1. Запустится ли под вин7,8,10 или под линуксом через вайн?
        2. Все ли статьи в разделе публикации стоит прочесть перед началом работы с программой, или статья про const идёт как quickstart?
        3. У вас форум умер. 3 темы с сообщение в каждой.


        1. N_Ikhsanov
          15.07.2016 21:20
          -1

          1)XP только
          2)Достаточно описания программы в разделе «загрузки»
          3)Напишите в форум


    1. N_Ikhsanov
      18.07.2016 16:17
      -1

      Каково фактическое положение с применением технологии ЭС? Это очень интересный и важный вопрос. Положение, можно сказать плачевное, поскольку технология остается сырой — можно сделать почти любую ЭС, но затраты на раработку и поддержку будут столь велики, что результат не будет оправдан.
      Моя идея состоит в том, что необходимо создать надежную и эффективную технологию точного моделирования семантики естественного языка — транслятор естественного языка в формальный объектный язык, представляющий смысловое содержание текста. Это станет надежной основой для решения проблемы широкого применения технологии ЭС.


      1. Gryphon88
        18.07.2016 17:11

        А что по этому поводу сделано? В блоге Яндекса и нескольких других компаний были статьи про автоматическое аннотирование и семантический анализ. Тем не менее, в тот же OWL полностью автоматической перегонки текста не существует.

        Меня смущает другая грань проблемы — нехватка правил, работает ли теорема Гёделя в данном случае (можно ли собрать полный конечный свод правил) я не знаю. Допустим, мы пишем ЭС, которая должна решать задачу «Продолжи ряд чисел». Тогда в качестве правил мы должны скормить теорию чисел, ряды и ещё ряд больших разделов математики. И всё равно, если мы предложим машине продолжить ряд «4 8 15 16 23», она вернет нам веер ответов по принципу «увеличивающиеся натуральные числа».

        В прологе вроде появились интеллектуальные агенты, но как ими пользоваться? В рамках классической логики значение логического вывода бинарное или между 0 и 1 для нечёткой логики. Пусть наша программа научилась гуглить и преобразовывать естественный язык в правила. Как корректно убрать правило «исключения третьего» (чтобы при получении False начинался поиск новых правил), чтобы программа завершалась за конечное время и, в идеале, с оптимальным отсечением?


        1. N_Ikhsanov
          19.07.2016 05:24
          -1

          Как-то все забыли, что компьютерные фирмы-монстры(лидеры по сбору денег с населения планеты) не являются лидерами в области науки. Для серьезных тем есть серьезные ученые, которые неизвестны сообществу программистов.
          Просто так говорить об искусственном интеллекте можно бесконечно. Как-нибудь еще напишу об этом.
          Если Вы захотите что-то создать, пишите на сайт www.exxlog.ru.