Предварительный анализ рабочих данных

Какую бы задачу в области информационных технологий вы не решали, она в любом случае будет, в широком смысле, задачей обработки данных. Такова судьба - это и только это умеет делать ЭВМ, но и этого хватает. Для любой разрабатываемой системы или алгоритма всегда существует понятие обрабатываемых данных. В случае машинного зрения и обработки изображений это, в бОльшей части случаев, некоторый класс изображений или наборов изображений. Очень важно, уметь на самых ранних этапах исследования максимально аккуратно изучить те данные, с которыми предстоит работать. Об этом мы и поговорим ниже.

Какую бы задачу в области информационных технологий вы не решали, она в любом случае будет, в широком смысле, задачей обработки данных. Такова судьба - это и только это умеет делать ЭВМ, но и этого хватает. Для любой разрабатываемой системы или алгоритма всегда существует понятие обрабатываемых данных. В случае машинного зрения и обработки изображений это, в бОльшей части случаев, некоторый класс изображений или наборов изображений. Очень важно, уметь на самых ранних этапах исследования максимально аккуратно изучить те данные, с которыми предстоит работать. Об этом мы и поговорим ниже.

 

Цели

 

Зачем проводить анализ данных? Насколько сильно он может повлиять на исход исследований?

 

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

 

Любой алгоритм работает только на определённых данных. Даже такой хорошо изученный объект, как СЛАУ невозможно разрешить универсально. Всегда встаёт вопрос о проверке некоторых свойств наблюдаемых данных, для доказательства правомерности применения тех или иных методов решения поставленной задачи. От верной оценки свойств данных зависит то, насколько адекватный метод решение будет выбран, что может означать успех всего исследования в целом.

 

Все начинается с выборки

 

Любой анализ начинается с составления выборки исследуемых данных. В случае задач машинного зрения и обработки изображений выборкой данных будет набор возможных входных изображений. Составление такой выборки должно предшествовать любым «программистским» действиям (до её составления не стоит ничего программировать) и обычно совпадает с фазой обзора литературы.

 

Какими свойствами должна обладать выборка:

  1. Прецеденты (примеры из выборки) должны быть выбраны случайно и независимо из полного множества возможных данных. Строго говоря, языком математической статистики, они должны быть реализациями независимых, одинаково распределённых случайных величин;
  2. Выборка должна максимально возможного размера;
  3. Выборка должна быть «обозрима», то есть быть пригодна для анализа.

 

Первое требование гарантирует наибольшую «описательную ёмкость» выборки. Если бы, например, прецеденты выбирались не случайно, а по какому-то закону, то выборка описывала бы не изучаемые данные, а работу на них алгоритма выбора. Так же, если прецеденты были бы зависимы, то есть прецеденты добавлялись в выборку в зависимости от прецедентов в ней уже присутствующих, то выборка описывала эту взаимосвязь, а не изучаемые данные.

 

Второе требование достаточно очевидное – чем больше прецедентов у нас есть, тем наиболее точно мы описываем всё множество данных.

 

Третье требование имеет наиболее расплывчатый характер. Основной смысл данного пункта – составить выборку по своим размерам и представлению поддающуюся анализу имеющимися средствами. Точная формулировка этого требования может быть получена только для каждой конкретной задаче. Например, для визуального анализа человеком не имеет смысла делать выборку больше 100 изображений.

 

Как видно, второе и третье требование могут противоречить друг другу. Можно пытаться наращивать мощь методов анализа (например, нанять ещё 5 исследователей). Однако, на мой взгляд, самым простым решением такой проблемы, может являться составление максимально возможной выборки данных и автоматическая генерация «обозримых» подвыборок для анализа. Фактически, вначале мы собираем максимально большую выборку, руководствуясь только 1-2 пунктами, а далее независимо и случайно выбираем подвыборку «обозримых» размеров.

 

Анализ как проверка гипотез

 

Как наилучшим образом предоставить имеющуюся в данных информацию для последующего её использования при принятии решений? Вероятно, существуют разные подходы, я выделю лишь два, на мой взгляд, базовых:

  1. Проверка гипотез – от идей к данным;
  2. Data Mining – от данных к идеям.

 

Второй подход (Data Mining) является «свежим взглядом» на анализ данных. Появления данного подхода связано с накоплением данных сверх высоких объёмов и размерности в различных областях человеческой деятельности (кредитные истории, чеки из супермаркетов и т.д.). Основной задачей Data Mining является «дОбыча» некоторой новой информации (зависимостей, структуры) из уже существующей, притом за обозримое время. В задачах машинного зрения и обработки изображений, на мой взгляд, такая методика малоприменима (возможно, со временем это изменится), т.к. требует больших объемов хорошо анализируемых данных. Изображение, пока что, слишком сложный объект для применения подобных техник. К тому же, «накладные расходы» и сложность проведения такого анализа могут быть слишком велики и превышать сложность и резерв ресурсов на проект.

 

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

 

Например, для применения некоторого метода требуется чтобы входные изображения были резкими. Чтобы такой метод можно было оправдано применять следует проверить выполнения такого предположения. Для этого (на основе визуальных наблюдений) формулируется статистическая гипотеза:  на 95% изображений энергия частот верхней части спектра (например, верхняя треть) в среднем не ниже 10 децибел по отношению к энергии шума. Эту гипотезу легко проверить постановкой простого эксперимента (10 минут программирования на Matlab + время счёта). Важно формулировать гипотезы строго, в терминах вычислимых отношений над данными. «Все изображения резкие» - это не гипотеза, т.к. вычислить предикат «изображения резкие» напрямую невозможно и «все» - утверждение не поддающиеся проверке (для этого нужно поставить эксперимент на ВСЕХ возможных данных, что невоплотимо в жизнь).

 

Как выдвигать гипотезы:

  1. Любое условие применимости претендующего на использование алгоритма – гипотеза требующая проверки;
  2. Наблюдения, сделанные исследователем в процессе изучения данных и сформулированные в виде некоторых утверждений следует переформулировать как гипотезы и проверить;
  3. Любые утверждения, делаемые заказчиком о данных так же следует переформулировать в виде гипотез и проверить (если они не верны – сообщить заказчику).

 

Первое правило гарантирует, что все применяемые алгоритмы будут применены правомерно. Например, если какой-то алгоритм требует чтобы изображения имели одинаковый динамический диапазон, то прямая проверка этого условия до реализации алгоритма спасёт от дальнейших проблем.

 

Второе правило способствует отсутствию «голословных» суждений о данных. Исследователь, заметив некоторую закономерность в данных, пробует использовать её для решения задачи (шаг абсолютно верный), однако, зачастую закономерность может быть сформулирована слишком расплывчато и не до конца проверена. В этом случае, выводы из наблюдений могут быть ошибочны.

 

Третье правило скорее относится не столько к процессу построения решения, сколько к перестраховке от неверной постановки задачи.

 

Как проверять гипотезу:

  1. Гипотеза проверяется не на тех же данных, наблюдая которые она была сформулирована (но на данных той же природы);
  2. Следует ЗАРАНЕЕ (до экспериментов) определить при каких условиях гипотеза будет принята, а в каком отвергнута и какие действия будут предприняты в том или ином случае;
  3. Если возможно, следует сформулировать противоположную гипотезу и проверять их «друг против друга»;
  4. Если противоположной гипотезы сформулировать невозможно, следует попытаться переформулировать гипотезу как  «нулевую гипотезу» и проверить её.

 

Суть первого правила – если что-то пришло в голову глядя на одну подвыборку – проверь на другой. Второе правило запрещает исследователю менять «правила игры» по ходу. Это очень важный момент. Суть третьего и четвёртого правила – нужно применять хорошо разработанный аппарат проверки гипотез.

 

О том как грамотно формулировать статистические гипотезы и методах в их проверки можно почитать в различных материалах по мат. статистике. Очень рекомендую книгу Common Errors in Statistics (and How to Avoid Them), Phillip I. Good, James W. Hardin.

 

Буду очень рад комментариям и дополнениям к моим мыслям.