Введение. Существует несколько форм обучения, начиная с усвоения сообщенных знаний и заканчивая обучением в результате открытия
Существует несколько форм обучения, начиная с усвоения сообщенных знаний и заканчивая обучением в результате открытия. В первом случае ученику явно сообщают понятия, которые он должен усвоить. В этом смысле программирование представляет собой своего рода обучение путем усвоения сообщенных знаний. Основная нагрузка при обучении такого типа возлагается на учителя, хотя задача ученика может также оказаться трудной, поскольку ему иногда нелегко понять, что хочет сказать учитель. Поэтому при обучении путем усвоения сообщенных знаний может потребоваться интеллектуальное взаимодействие ученика и учителя, в том числе наличие у ученика достаточного объема знаний о самом учителе. На другом краю спектра методов обучения, при использовании обучения в результате открытия, ученик самостоятельно открывает новые понятия путем неорганизованных наблюдений или в ходе планирования и проведения экспериментов в той среде, где он находится. В этом обучении учитель не участвует, и вся тяжесть ложится на ученика. Роль наставника играет среда самого ученика.
Между этими двумя крайностями находится еще одна форма обучения - обучение на примерах. В этом случае инициатива распределяется между учителем и учеником. Учитель предоставляет примеры для изучения, а от ученика требуется, чтобы он пришел к определенным выводам в отношении этих примеров, иными словами,
л
создал своего рода теорию, объясняющую смысл предъявленных примеров. Учитель может помочь ученику, выбирая хорошие учебные примеры и описывая эти примеры на языке, обеспечивающем составление изящных общих правил. В определенном смысле при обучении на основе примеров используется известное эмпирическое наблюдение, что специалистам в своей области (которые играют роль учителей) проще подготовить хорошие примеры, чем разрабатывать явно сформулированные и полные общие теории. С другой стороны, для ученика задача прийти к какому-то общему выводу на основе примеров может оказаться сложной.
Обучение на примерах называется также индуктивным обучением. Индуктивное обучение - это наиболее глубоко исследованный способ обучения в искусственном интеллекте, и исследования, проведенные в этой области, принесли много фундаментальных результатов. На примерах может быть организовано обучение выполнению заданий нескольких типов: с их помощью можно научить программу диагностировать заболевания людей или болезни растений; предсказывать погоду; прогнозировать биологическую активность нового химического соединения; определять способность химических веществ к биологическому разложению; предсказывать механические свойства стали на основе ее химических характеристик; принимать лучшие финансовые решения; управлять динамической системой или повышать эффективность решения задач символического интегрирования.
Методы машинного обучения были применены для решения всех этих конкретных задач и многих других проблем. Разработаны удобные методы, которые могут эффективно использоваться в сложных приложениях. Одна из прикладных областей относится к приобретению знаний для экспертных систем. Накопление знаний происходит автоматически на основе примеров, что позволяет устранить узкое место в работе экспертных систем, связанное с приобретением знаний. Еще одним способом использования методов машинного обучения является обнаружение скрытых закономерностей в базах данных (Knowledge Discovery in Databases - KDD), называемое также интеллектуальным анализом данных. Данные в базе данных используются в качестве примеров для индуктивного обучения, что позволяет открывать интересные закономерности в больших объемах данных. Например, в результате интеллектуального анализа данных можно обнаружить, что клиент супермаркета, который покупает спагетти, скорее всего, купит также сыр пармезан, и соответствующим образом организовать торговлю.
В данной главе в основном рассматриваются методы изучения понятий на примерах. Вначале определим проблему изучения понятий на примерах более формально. Затем для иллюстрации основных идей в этой области рассмотрим подробный пример изучения понятий, представленных с помощью семантических сетей. После этого рассмотрим, как происходит логический вывод правил и деревьев решения.