Сокращение вычетов в экспертных системах - PullRequest
5 голосов
/ 26 марта 2010

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

Например, в статье Джона Маккарти Пример понимания естественного языка и проблем с искусственным интеллектом, который он поднимает , он описывает потенциальные проблемы в получении программы для интеллектуального ответа на вопросы о новостной статье в New York Times. , В разделе 4 «Потребность в немонотонном рассуждении» он обсуждает использование Razer Оккама для ограничения включения фактов в рассуждения об истории. Пример истории, которую он использует, рассказывает о грабителях, которые преследуют владельца мебельного магазина.

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

1 Ответ

2 голосов
/ 30 марта 2010

Хороший вопрос.

Из вашего Вопроса я думаю, что то, что вы называете «обрезкой», - это шаг построения модели, выполняемый ex ante - то есть, чтобы ограничить входные данные, доступные алгоритму для построения модели. Термин «сокращение» при использовании в машинном обучении относится к чему-то другому - шаг ex post , после построения модели, который действует на самой модели, а не на доступных входах. (В области ML может быть второе значение термина «обрезка», но я не знаю об этом.) Другими словами, обрезка действительно буквально является техникой «ограничения своей цепи дедукции», так как Вы говорите это, но это так ex post , исключая компоненты полной (работающей) модели, а не ограничивая входные данные, используемые для создания этой модели.

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

Какую проблему решает обрезка?

По крайней мере w / r / t специфические алгоритмы ML, которые я фактически кодировал и использовал - Деревья решений, MARS и Нейронные сети - сокращение выполняется на изначально модели с избыточной посадкой (модель это соответствует обучающим данным настолько близко, что он не может обобщать (точно прогнозировать новые экземпляры). В каждом случае сокращение включает удаление маргинальных узлов (DT, NN) или членов в уравнении регрессии (MARS) один за другим.

Во-вторых, , почему обрезка необходима / желательна?

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

...