Информационное моделирование, программа курса (осень 2007)
МФТИ, ФУПМ, Кафедра "Интеллектуальные Системы", гуппа 274-б
Аудитория 355 ВЦ РАН, четверг в 10:00
Литература
- MacKay, D. Information Theory, Inference, and Learning Algorithms, Cambridge University Press, 2003. Получить.
- Nabney, Yan T., Netlab: Algorithms for pattern recognition. Springer, 2004.
- Bishop, C. Pattern Recognition And Machine Learning. Springer, 2006.
- Malada, H. R. and Ivakhnenko, A. G. Inductive Learning Algorithms for Complex Systems Modeling, CRC Press, 1994. Получить.
- Friedman, J., Hastie, T. Tibshirani, R. The Elements of Statistical Learning. Springer, 2001.
- Брандт З. Анализ данных. М.: Мир, 2003.
- Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир, 1969.
- Айвазян С. А., Бухштабер В. М., Енюков И. С., Мешалкин Л. Д. Прикладная статистика: Классификация и снижение размерности. М.: Финансы и статистика, 1989.
Практика
Дополнительная информация к заданию n содержится в заданиях от 1 до n-1.
Задание 1. Построение линейных и нелинейных регрессионных моделей как суперпозиции библиотечных функций
Дано:
- Не менее трех выборок, с одной, двумя, тремя свободными переменными. Выборки не должны быть тривиальны. Первый столбец зависимая переменная, все остальные свободные. См. пример data1.csv. (Все примеры в файле regression.zip)
-
Набор библиотечных функций, не менее 12 функций. Функция принимает вектор параметров, вектор или матрицу свободных переменных и возвращает значения зависимой переменной. См. пример gaussian.m.
-
Пользователь строит из библиотечных функций модель, определяет для нее начальные параметры и область допустимых значений каждого параметра. См. пример model1.csv.
fstr = 'w(1)*x+w(2)*sin(w(3)*x+w(4))+w5'; % Функция fstr изменится, если использовать две свободные переменные, x(:,1) и x(:,2);
Использовать конструкцию f = inline(fstr,'w','x'); лучше только для собрки модели, так как inline не позволяет использовать инлайн-функции в качестве аргументов.
| Параметры | w | w(1) | w(2) | w(3) | w(4) | w(5) |
| Фиксированные | NaN | NaN | NaN | NaN | 0.2 | NaN |
| Линейные | wlin | 1 | 1 | 0 | NaN | 1 |
| Начальные | wini | 0.1 | 1 | 1 | NaN | 0 |
| Максимум | wmin | -100 | NaN | -100 | NaN | -100 |
| Минимум | wmax | 100 | NaN | 100 | NaN | 100 |
Требуется:
- Найти параметры заданной модели. Если все параметры входят линейно, запустить метод наименьших квадратов. Если есть нелинейно-входящие параметры, запустить метод сопряженных градиентов в режиме мультистарта.
-
Нарисовать график полученной модели. Для одной и двух свободных переменных есть стандартные методы. Для трех и более переменных предложить решение.
-
Все документировать, написать краткое руководство пользователя.
Задание 2. Построение линейных регрессионных моделей методом группового учета аргументов
Дано:
-
Выборка с несколькими свободными переменными файл.
-
Набор порождающих функций свободных переменных (можно использовать список стандартных, требуется только задать этот список).
-
Набор внешних критериев (три критерия).
-
Список преобразований свободных переменных. Пользователь задает список преобразований свободных переменных. См. пример generators1.csv:
[x( :,1), sin(0.5*x( :,1)), log(x( :,1)), x( :,2), exp(x( :,2), log(x( :,2)), x( :,3), log(x( :,3))];
Требуется:
-
Найти линейную модель оптимальной сложности. Для моделей с малой длиной полинома запускать полный перебор, для моделей с большой длиной полинома запускать многорядный алгоритм. При использовании внешнего критерия выборку разделять пополам один раз случайным образом.
-
Сгенерировать файл отчета, в котором указать список порождающих функций, степень полинома, используемый внешний критерий, несколько наилучших моделей, с внутренними и внешними ошибками и параметрами.
-
Все документировать, написать краткое руководство пользователя.
Задание 3. Построение набора нелинейных моделей путем индуктивного порождения
Дано:
-
Две выборки с одной и с двумя свободными переменными файлы.
-
Библиотека порождающих функций. Можно взять из списка в статье.
-
Для каждой порождающей функции задан набор параметров файл.
-
Набор моделей начального приближения. Пример построения набора моделей начального приближения см. в http://strijov.com/sources/mvr5.zip. Пример организации структуры суперпозиции в генетическом программировании см. в http://gplab.sourceforge.net/.
Требуется:
-
Найти нелинейную модель, наиболее точно приближающую выборку по внутреннему критерию. Построить алгоритм генетического программирования, выполняющий оптимизацию структуры суперпозиции.
-
Все документировать, написать краткое руководство пользователя.
Задание 4. Вычисление Парето-оптимального фронта в пространстве критериев качества регрессионных моделей
Дано:
-
Две выборки с одной и с двумя свободными переменными файлы.
-
Набор линейных моделей файл, структура произвольная.
-
Набор критериев. (Три внешних критерия и три внутренних).
Требуется:
-
Построить Парето-оптимальный фронт на множестве критериев качества.
-
Построить графики пар и троек критериев, где каждая модель точка в пространстве критериев, выделить модели, принадлежащие Парето-оптимальному фронту.
-
Построить те же графики, но каждая модель набор (облако) точек, полученных при различных разбиениях выборки на контрольную и тестовую. Разбиение делать пополам.
-
Все документировать, написать краткое руководство пользователя.
Задание 5. Генетическое программирование и метод группового учета аргументов
Дано:
См. Задание 2.
Требуется:
-
Найти линейную модель оптимальной сложности. Использовать генетический оптимизационный алгоритм. При вычислении внешних критериев использовать усреднение по нескольким разбиениям. Разбивать выборку пополам случайным образом.
-
Сгенерировать файл отчета, в котором указать список порождающих функций, степень полинома, используемый внешний критерий, несколько наилучших моделей, с внутренними и внешними ошибками и параметрами.
-
Все документировать, написать краткое руководство пользователя.
Рекомендации по выполнению заданий
-
Написать план работы модуля с использованием обозначений. Ввести имена переменных. Поделить все на модули. Задать интерфейсы.
-
Написать модули ввода данных. Щелкнуть, например, по файлу 'model1.csv', в окне Import Wizard поставить галочку Cenerate M-code, полученную функцию доработать в соответствии с интерфейсом лучше передавать осмысленные конструкции, чем таблицы, в которых строки и столбцы неизвестно что означают.
-
Тут же в руководство пользователя добавить, как составлять файлы с входной информацией, какие значения можно использовать.
-
После ввода данных и моделей тут же попробовать настроить хотя бы одну модель и показать результаты. Для этого в случае нелинейной регрессии использовать функцию nlinfit, в случае линейной регрессии написать функцию. Обе функции должны получать данные и модель и возвращать веса.
-
После получения параметров модели (на первом шаге можно даже просто использовать параметры начального приближения) нарисовать график. Сначала для задачи с одной свободной переменной, затем с двумя.
-
По мере написания кода документировать его (можно по-русски или по-английски).
-
Каждый написанный блок выносить в отдельную функцию, интерфейс документировать.
-
Просмотреть функции, которые лежат в папке bin (а также в других папках). Эти функции можно использовать.
-
По завершении работы быть готовым к тому, что для тестирования продукта будут предложены новые данные и модели.
Что такое краткое руководство пользователя?
Человек, знающий основы Матлаба может в течение краткого времени разобраться в вашей системе. Для этого ему нужно объяснить следующее.
-
Назначение системы что она делает, какие алгоритмы использует.
-
Список основных модулей системы, их взаимодействие.
-
Организация входных данных, что нужно сделать, чтобы система заработала.
-
Предполагаемый результат, пример работы системы.
Экзамен: практика и теория
Экзамен 13 декабря 2007 г. 20 декабря 2007 г. в аудитории 355, начало в 10:00. Экзамен включает теорию: вопрос с подготовкой, дополнительные вопросы и разбор практического задания. Предполагается, что практическое задание будет проверяться на данных и моделях, полученных перед началом экзамена.
Билеты
-
Метод наименьших квадратов. Сингулярное разложение. Свойства сингулярного разложения. Примеры применения: поведение системы в экстремальных условиях, кластеризация с ограничением размерности пространства. Метод главных компонент.
-
Метод группового учета аргументов. Алгоритм МГУА. Внешние критерии. Комбинированные критерии. Парето-оптимальный фронт в пространстве критериев. Однорядный и многорядный алгоритм.
-
Регуляризация в задачах регрессии. Регуляризация с использованием сингулярного разложения. Регуляризация при вычислении ковариационных матриц. Поиск опорных векторов при вычислении главных компонент.
-
Интегральные индикаторы. Методы их построения. Экспертные оценки. Согласование экспертных оценок в линейных шкалах(альфа, гамма-квадрат). Согласование экспертных оценок в ранговых шкалах.
-
Двухуровневый Байесовский вывод. Первый уровень вывода. Множество моделей-претендентов. Вычисление достоверности модели.
Второй уровень вывода. Пространство параметров модели. Множитель Оккама. Роль достоверности модели на втором уровне.
-
Вычисление информативности элементов индуктивно-порождаемых моделей.
Материалы для подготовки к экзамену
-
-
Лекция: Стрижов В.В. Введение, метод наименьших квадратов. Конспект.
[PDF]
-
Лекция: Стрижов В.В. Сингулярное разложение. Конспект.
[PDF]
-
Лекция: Стрижов В.В. Библиотека часто используемых моделей. Конспект.
[PDF]
-
Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир, 1969. 167 c.
[DJVU, 1.6 MB]
-
Голуб Дж., Ван-Лоун Ч. Матричные вычисления М.: Мир, 1999.
[В библиотеке]
-
Рао С.Р. Линейные статистические методы и их применения. М.: Наука. 1968. 547 c. (О методе главных компонент см. в самом конце книги).
[DJVU, 21 MB]
-
Айвазян С.А. Бухштабер В.М. Енюков Е.С. Прикладная статистика. Классификация и снижение размерности М.: Финансы и статистика. 1989 607 с.
[DJVU, 6.4 MB]
-
-
Лекция: Стрижов В.В. Метод группового учета аргументов. Конспект.
[PDF]
-
GMDH method for data mining, forecasting algorithms, fuzzy models analysis, statistical learning networks and predictive software systems.
[http://www.gmdh.net]
-
Ивахненко А.Г. Индуктивный метод самоорганизации моделей сложных систем. Киев: Наукова думка. 1981. 296 с.
[PDF, 17.6 MB]
-
Ивахненко А.Г., Степашко В.С. Помехоустойчивость моделирования. Киев: Наукова думка. 1985. 216 с.
[PDF, 12.3 MB]
-
Malada, H.R., Ivakhnenko, A.G. Inductive Learning Algorithms for Complex Systems Modeling. CRC Press. 1994. 368 p.
[PDF, 11 MB]
-
-
Лекция: Стрижов В.В., Казакова Т.В. Устойчивые интегральные индикаторы с выбором опорного множества описаний. Заводская лаборатория. Диагностика материалов. 2007. Т.7. C. 72-76.
[PDF]
-
Тихонов А.Н, Арсенин В.Я. Методы решения некорректных задач. М.: Наука. 1979. 284 c.
[DJVU, 2.7 MB]
-
-
Лекция: Стрижов В.В. Уточнение экспертных оценок с помощью измеряемых данных. Заводская лаборатория. Диагностика материалов. 2006. No 7. С. 59-64.
[PDF]
-
Лекция: Strijov, V., Shakin, V. Index construction: the expert-statistical method. Environmental research, engineering and management. 2003. No.4(26), P.51-55.
[PDF]
-
-
Лекция: Стрижов В.В. Двухуровневый Байесовский вывод и сравнение моделей. Конспект.
[PDF]
MacKay, D. Information Theory, Inference, and Learning Algorithms, Cambridge University Press, 2003.
[PDF]
-
-
Лекция: Стрижов В.В. Поиск параметрической регрессионной модели в индуктивно заданном множестве. Журнал вычислительных технологий. 2007. No 1. С. 93-102.
[PDF]
-
Лекция: Стрижов В.В, Пташко О.Г. Алгоритмы поиска суперпозиций при выборе оптимальных регрессионных моделей. М.: ВЦ РАН. 2007. 56 с.
[PDF]
-
Nabney, Y.T., Netlab: Algorithms for pattern recognition. Springer, 2004. [Книга лежит в 268]
Примечание: те книги, которые находятся в библиотеке можно взять на короткое время в комнате 268.
Благодарности
Спасибо Андрею Елисееву, Александру Маценову, Ивану Гузу за отлично подготовленные практические работы и за вопросы, которые задавались как во время лекций, так и после них.
В. В. Стрижов