Информационное моделирование, программа курса (осень 2007)

МФТИ, ФУПМ, Кафедра "Интеллектуальные Системы", гуппа 274-б

Аудитория 355 ВЦ РАН, четверг в 10:00

Литература

  1. MacKay, D. Information Theory, Inference, and Learning Algorithms, Cambridge University Press, 2003. Получить.
  2. Nabney, Yan T., Netlab: Algorithms for pattern recognition. Springer, 2004.
  3. Bishop, C. Pattern Recognition And Machine Learning. Springer, 2006.
  4. Malada, H. R. and Ivakhnenko, A. G. Inductive Learning Algorithms for Complex Systems Modeling, CRC Press, 1994. Получить.
  5. Friedman, J., Hastie, T. Tibshirani, R. The Elements of Statistical Learning. Springer, 2001.
  6. Брандт З. Анализ данных. М.: Мир, 2003.
  7. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. — М.: Мир, 1969.
  8. Айвазян С. А., Бухштабер В. М., Енюков И. С., Мешалкин Л. Д. Прикладная статистика: Классификация и снижение размерности. — М.: Финансы и статистика, 1989.

Практика

Дополнительная информация к заданию n содержится в заданиях от 1 до n-1.

Задание 1. Построение линейных и нелинейных регрессионных моделей как суперпозиции библиотечных функций

Дано:

  1. Не менее трех выборок, с одной, двумя, тремя свободными переменными. Выборки не должны быть тривиальны. Первый столбец — зависимая переменная, все остальные — свободные. См. пример data1.csv. (Все примеры в файле regression.zip)
  2. Набор библиотечных функций, не менее 12 функций. Функция принимает вектор параметров, вектор или матрицу свободных переменных и возвращает значения зависимой переменной. См. пример gaussian.m.
  3. Пользователь строит из библиотечных функций модель, определяет для нее начальные параметры и область допустимых значений каждого параметра. См. пример 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 не позволяет использовать инлайн-функции в качестве аргументов.
    Параметрыww(1)w(2)w(3)w(4)w(5)
    ФиксированныеNaNNaNNaNNaN0.2NaN
    Линейныеwlin110NaN1
    Начальныеwini0.111NaN0
    Максимумwmin-100NaN-100NaN-100
    Минимумwmax100NaN100NaN100

Требуется:

  1. Найти параметры заданной модели. Если все параметры входят линейно, запустить метод наименьших квадратов. Если есть нелинейно-входящие параметры, запустить метод сопряженных градиентов в режиме мультистарта.
  2. Нарисовать график полученной модели. Для одной и двух свободных переменных есть стандартные методы. Для трех и более переменных предложить решение.
  3. Все документировать, написать краткое руководство пользователя.

Задание 2. Построение линейных регрессионных моделей методом группового учета аргументов

Дано:

  1. Выборка с несколькими свободными переменными — файл.
  2. Набор порождающих функций свободных переменных (можно использовать список стандартных, требуется только задать этот список).
  3. Набор внешних критериев (три критерия).
  4. Список преобразований свободных переменных. Пользователь задает список преобразований свободных переменных. См. пример 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))];

Требуется:

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

Задание 3. Построение набора нелинейных моделей путем индуктивного порождения

Дано:

  1. Две выборки с одной и с двумя свободными переменными — файлы.
  2. Библиотека порождающих функций. Можно взять из списка в статье.
  3. Для каждой порождающей функции задан набор параметров — файл.
  4. Набор моделей начального приближения. Пример построения набора моделей начального приближения см. в http://strijov.com/sources/mvr5.zip. Пример организации структуры суперпозиции в генетическом программировании см. в http://gplab.sourceforge.net/.

Требуется:

  1. Найти нелинейную модель, наиболее точно приближающую выборку по внутреннему критерию. Построить алгоритм генетического программирования, выполняющий оптимизацию структуры суперпозиции.
  2. Все документировать, написать краткое руководство пользователя.

Задание 4. Вычисление Парето-оптимального фронта в пространстве критериев качества регрессионных моделей

Дано:

  1. Две выборки с одной и с двумя свободными переменными — файлы.
  2. Набор линейных моделей — файл, структура произвольная.
  3. Набор критериев. (Три внешних критерия и три внутренних).

Требуется:

  1. Построить Парето-оптимальный фронт на множестве критериев качества.
  2. Построить графики пар и троек критериев, где каждая модель — точка в пространстве критериев, выделить модели, принадлежащие Парето-оптимальному фронту.
  3. Построить те же графики, но каждая модель — набор (облако) точек, полученных при различных разбиениях выборки на контрольную и тестовую. Разбиение делать пополам.
  4. Все документировать, написать краткое руководство пользователя.

Задание 5. Генетическое программирование и метод группового учета аргументов

Дано:
См. Задание 2.

Требуется:

  1. Найти линейную модель оптимальной сложности. Использовать генетический оптимизационный алгоритм. При вычислении внешних критериев использовать усреднение по нескольким разбиениям. Разбивать выборку пополам случайным образом.
  2. Сгенерировать файл отчета, в котором указать список порождающих функций, степень полинома, используемый внешний критерий, несколько наилучших моделей, с внутренними и внешними ошибками и параметрами.
  3. Все документировать, написать краткое руководство пользователя.

Рекомендации по выполнению заданий

  1. Написать план работы модуля с использованием обозначений. Ввести имена переменных. Поделить все на модули. Задать интерфейсы.
  2. Написать модули ввода данных. Щелкнуть, например, по файлу 'model1.csv', в окне Import Wizard поставить галочку Cenerate M-code, полученную функцию доработать в соответствии с интерфейсом — лучше передавать осмысленные конструкции, чем таблицы, в которых строки и столбцы неизвестно что означают.
  3. Тут же в руководство пользователя добавить, как составлять файлы с входной информацией, какие значения можно использовать.
  4. После ввода данных и моделей тут же попробовать настроить хотя бы одну модель и показать результаты. Для этого в случае нелинейной регрессии использовать функцию nlinfit, в случае линейной регрессии написать функцию. Обе функции должны получать данные и модель и возвращать веса.
  5. После получения параметров модели (на первом шаге можно даже просто использовать параметры начального приближения) нарисовать график. Сначала для задачи с одной свободной переменной, затем с двумя.
  6. По мере написания кода документировать его (можно по-русски или по-английски).
  7. Каждый написанный блок выносить в отдельную функцию, интерфейс документировать.
  8. Просмотреть функции, которые лежат в папке bin (а также в других папках). Эти функции можно использовать.
  9. По завершении работы быть готовым к тому, что для тестирования продукта будут предложены новые данные и модели.

Что такое краткое руководство пользователя?
Человек, знающий основы Матлаба может в течение краткого времени разобраться в вашей системе. Для этого ему нужно объяснить следующее.

  1. Назначение системы — что она делает, какие алгоритмы использует.
  2. Список основных модулей системы, их взаимодействие.
  3. Организация входных данных, что нужно сделать, чтобы система заработала.
  4. Предполагаемый результат, пример работы системы.

Экзамен: практика и теория

Экзамен 13 декабря 2007 г. 20 декабря 2007 г. в аудитории 355, начало в 10:00. Экзамен включает теорию: вопрос с подготовкой, дополнительные вопросы и разбор практического задания. Предполагается, что практическое задание будет проверяться на данных и моделях, полученных перед началом экзамена.

Билеты

  1. Метод наименьших квадратов. Сингулярное разложение. Свойства сингулярного разложения. Примеры применения: поведение системы в экстремальных условиях, кластеризация с ограничением размерности пространства. Метод главных компонент.
  2. Метод группового учета аргументов. Алгоритм МГУА. Внешние критерии. Комбинированные критерии. Парето-оптимальный фронт в пространстве критериев. Однорядный и многорядный алгоритм.
  3. Регуляризация в задачах регрессии. Регуляризация с использованием сингулярного разложения. Регуляризация при вычислении ковариационных матриц. Поиск опорных векторов при вычислении главных компонент.
  4. Интегральные индикаторы. Методы их построения. Экспертные оценки. Согласование экспертных оценок в линейных шкалах(альфа, гамма-квадрат). Согласование экспертных оценок в ранговых шкалах.
  5. Двухуровневый Байесовский вывод. Первый уровень вывода. Множество моделей-претендентов. Вычисление достоверности модели. Второй уровень вывода. Пространство параметров модели. Множитель Оккама. Роль достоверности модели на втором уровне.
  6. Вычисление информативности элементов индуктивно-порождаемых моделей.

Материалы для подготовки к экзамену

Примечание: те книги, которые находятся в библиотеке можно взять на короткое время в комнате 268.

Благодарности

Спасибо Андрею Елисееву, Александру Маценову, Ивану Гузу за отлично подготовленные практические работы и за вопросы, которые задавались как во время лекций, так и после них.

В. В. Стрижов