
- •11. Интеллектуальные задачи в экономике
- •11.1. Экономика в Искусственном Интеллекте
- •11.2. Нечёткая логика
- •Математический аппарат
- •Нечёткий логический вывод
- •Интеграция с интеллектуальными парадигмами
- •Нечёткие нейронные сети
- •Адаптивные нечёткие системы
- •Нечёткие запросы
- •Нечёткие ассоциативные правила
- •Нечёткие когнитивные карты
- •Нечёткая кластеризация
- •11.3. Нейронные сети в экономике
- •Параллели из биологии
- •Базовая искусственная модель
- •Применение нейронных сетей
- •Сбор данных для нейронной сети
- •Пре/пост процессирование
- •Многослойный персептрон (mlp)
- •Обучение многослойного персептрона
- •Алгоритм обратного распространения
- •Переобучение и обобщение
- •Другие алгоритмы обучения многослойного персептрона
- •Радиальная базисная функция
- •Вероятностная нейронная сеть
- •Обобщённо-регрессионная нейронная сеть
- •Линейная сеть
- •Сеть Кохонена
- •11.4. Генетические алгоритмы в экономике
- •Основные понятия генетических алгоритмов
- •Классический генетический алгоритм
- •Оператор скрещивания
- •11.5. Экспертные системы, их структура и применение в экономике
- •11.5.1. Общая характеристика, принципы, алгоритмы
- •Продукционные системы
- •Rete – алгоритм
- •Пример разработки экспертной системы
- •Преимущества экспертных систем
- •11.5.2.Особенности экспертных систем экономического анализа*
- •11.5.3. Экспертная система анализа финансового состояния предприятия
- •11.5.4. Экспертная система анализа эффективности результатов финансово-хозяйственной деятельности предприятия
- •Контрольные вопросы и упражнения
- •Заключение
Применение нейронных сетей
В предыдущем разделе в несколько упрощенном виде было описано, как нейронная сеть преобразует входные сигналы в выходные. Теперь возникает следующий важный вопрос: как применить нейронную сеть к решению конкретной задачи?
Класс задач, которые можно решить с помощью нейронной сети, определяется тем, как сеть работает и тем, как она обучается. При работе нейронная сеть принимает значения входных переменных и выдаёт значения выходных переменных. Таким образом, сеть можно применять в ситуации, когда у Вас имеется определённая известная информация, и Вы хотите из неё получить некоторую пока не известную информацию (Patterson, 1996; Fausett, 1994). Вот некоторые примеры таких задач:
Прогнозирование на фондовом рынке. Зная цены акций за последнюю неделю и сегодняшнее значение индекса FTSE, спрогнозировать завтрашнюю цену акций.
Предоставление кредита. Требуется определить, высок ли риск предоставления кредита частному лицу, обратившемуся с такой просьбой. В результате разговора с ним известен его доход, предыдущая кредитная история и т.д.
Управление. Нужно определить, что должен делать робот (повернуться направо или налево, двигаться вперёд и т.д.), чтобы достичь цели; известно изображение, которое передаёт установленная на роботе видеокамера.
Разумеется, вовсе не любую задачу можно решить с помощью нейронной сети. Если Вы хотите определить результаты лотереи, тираж которой состоится через неделю, зная свой размер обуви, то едва ли это получится, поскольку эти вещи не связаны друг с другом. На самом деле, если тираж проводится честно, то не существует такой информации, на основании которой можно было бы предсказать результат. Многие финансовые структуры уже используют нейронные сети или экспериментируют с ними с целью прогнозирования ситуации на фондовом рынке, и похоже, что любой тренд, прогнозируемый с помощью нейронных методов, всякий раз уже бывает "дисконтирован" рынком, и поэтому (к сожалению) эту задачу тоже вряд ли удастся решить.
Итак, мы приходим ко второму важному условию применения нейронных сетей: необходимо знать (или хотя бы иметь серьёзные подозрения), что между известными входными значениями и неизвестными выходами имеется связь. Эта связь может быть искажена шумом (так, едва ли можно ожидать, что по данным из примера с прогнозированием цен акций можно построить абсолютно точный прогноз, поскольку на цену влияют и другие факторы, не представленные во входном наборе данных, и, кроме того, в задаче присутствует элемент случайности), но она должна существовать.
Как правило, нейронная сеть используется тогда, когда неизвестен точный вид связей между входами и выходами, - если бы он был известен, то связь можно было бы моделировать непосредственно.
Другая существенная особенность нейронных сетей состоит в том, что зависимость между входом и выходом находится в процессе обучения сети. Для обучения нейронных сетей применяются алгоритмы двух типов (разные типы сетей используют разные типы обучения): управляемое ("обучение с учителем") и не управляемое ("без учителя"). Чаще всего применяется обучение с учителем, и именно этот метод сейчас рассмотрим.
Для управляемого обучения сети пользователь должен подготовить набор обучающих данных. Эти данные представляют собой примеры входных данных и соответствующих им выходов. Сеть учится устанавливать связь между первыми и вторыми. Обычно обучающие данные берутся из исторических сведений. В рассмотренных выше примерах это могут быть предыдущие значения цен акций и индекса FTSE, сведения о прошлых заемщиках - их анкетные данные и то, успешно ли они выполнили свои обязательства, примеры положений робота и его правильной реакции.
Затем нейронная сеть обучается с помощью того или иного алгоритма управляемого обучения (наиболее известным из них является метод обратного распространения, предложенный в работе Rumelhart et al., 1986), при котором имеющиеся данные используются для корректировки весов и пороговых значений сети таким образом, чтобы минимизировать ошибку прогноза на обучающем множестве. Если сеть обучена хорошо, она приобретает способность моделировать (неизвестную) функцию, связывающую значения входных и выходных переменных, и впоследствии такую сеть можно использовать для прогнозирования в ситуации, когда выходные значения неизвестны.