Опубликован: 02.09.2013 | Доступ: свободный | Студентов: 427 / 54 | Длительность: 19:27:00
Самостоятельная работа 3:

Машинное обучение

Аннотация: В работе приводится краткое описание некоторых алгоритмов классификации и кластеризации. Приводятся и описываются интерфейсы структур и классов, прототипы функций библиотеки OpenCV, реализующих рассматриваемые алгоритмы. Предлагаются примеры программ, демонстрирующие использование данных классов и функций. Приводятся результаты работы алгоритмов на модельных задачах. Разрабатывается структура приложений, для решения задач классификации и кластеризации.
Ключевые слова: объект, кластеризация

Введение

Презентацию к лабораторной работе Вы можете скачать здесь.

Дополнительные материалы к лабораторной работе Вы можете скачать здесь.

В настоящее время алгоритмы машинного обучения находят широкое применение в системах различного назначения: поисковых системах, алгоритмах распознавания, анализа и синтеза речи, медицинской диагностике, биоинформатике, финансовом прогнозировании и т.д. Исключением не является и компьютерное зрение. Например, подавляющее большинство современных систем детектирования объектов на изображениях и видео основано на применении алгоритмов машинного обучения. Такой подход позволяет компьютерной системе самой "научиться" отличать изображения, содержащие искомый объект, от остальных, используя для этого лишь примеры таких изображений. Также кластеризация и обучение с учителем успешно применяется в алгоритмах классификации изображений, опять же позволяя автоматически установить неявные различия между изображениями различных типов.

В настоящей работе рассматриваются некоторые алгоритмы обучения с учителем и кластеризации, реализованные в открытой библиотеке компьютерного зрения OpenCV [6].

1. Методические указания

1.1. Цели и задачи работы

Цель данной работы – изучить некоторые алгоритмы обучения с учителем и без с использованием соответствующих функций библиотеки компьютерного зрения OpenCV.

Данная цель предполагает решение следующих задач:

  1. Изучить основные идеи, лежащие в основе следующих алгоритмов классификации:
    • машина опорных векторов;
    • дерево решений;
    • случайный лес;
    • градиентный бустинг деревьев решений.
  2. Изучить идеи метода центров тяжести (k-means) для кластеризации.
  3. Рассмотреть прототипы функций и интерфейсы классов, реализующих перечисленные алгоритмы в библиотеке OpenCV.
  4. Рассмотреть простые примеры использования указанного набора функций.
  5. Разработать приложения для решения задач классификации и кластеризации рассмотренными методами.
  6. Применить разработанное приложение для решения модельных задач и проанализировать полученные результаты.

1.2. Структура работы

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

1.3. Тестовая инфраструктура

Вычислительные эксперименты проводились с использованием следующей инфраструктуры (табл. 10.1).

Таблица 10.1. Тестовая инфраструктура
Операционная система Microsoft Windows 7
Среда разработки Microsoft Visual Studio 2010
Библиотека TBB Intel® Threading Building Blocks 3.0 for Windows, Update 3 (в составе Intel® Parallel Studio XE 2011 SP1)
Библиотеки OpenCV Версия 2.4.4

1.4. Требования к участнику лабораторной работы

Для выполнения данной лабораторной работы требуется:

  • Изучение лекционного материала курса по теме "Обзор библиотек OpenCV и IPP"
  • Изучение практического материала курса по теме "Сборка и установка библиотеки OpenCV. Использование библиотеки в среде разработки Microsoft Visual Studio"
  • Изучение лекционного материала курса по теме "Введение в машинное обучение".

1.5. Рекомендации по проведению занятий

При выполнении данной лабораторной работы рекомендуется следующая последовательность действий:

  1. Привести примеры задач и приложений компьютерного зрения, которые могут решаться с помощью алгоритмов машинного обучения.
  2. Последовательно рассмотреть принципы, положенные в основу рассматриваемых методов. Параллельно описать классы и функции библиотеки OpenCV, реализующие данные алгоритмы, и продемонстрировать примеры программ, в которых выполняется их применение.
  3. Разработать структуру приложения, поддерживающего все рассмотренные алгоритмы обучения с учителем. Пояснить общую логику работы программы и описать функции, требующие реализации. Поставить задачу по исследованию качества решения модельных задач.
  4. Разработать структуру приложения, осуществляющего кластеризацию методом k-means. Пояснить общую логику работы программы и описать места, требующие реализации. Поставить задачу по исследованию качества решения модельных задач.
Андрей Терёхин
Андрей Терёхин

Нахожу в тесте вопросы, которые в принципе не освещаются в лекции. Нужно гуглить на других ресурсах, чтобы решить тест, или же он всё же должен испытывать знания, полученные в ходе лекции?

Демянчик Иван
Демянчик Иван

В главе 14 мы видим понятие фильтра, но не могу разобраться, чем он является в теории и практике.

" Искомый объект можно описать с помощью фильтра F= \lbrace f_{x',y'},x' \in \lbrace0, ...,w_f \rbrace , y' \in \lbrace 0,...,h_f \rbrace \rbrace "