Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.08.2016, 10:04   #1
ChicoID
Новичок
Джуниор
 
Регистрация: 30.08.2016
Сообщений: 1
По умолчанию Какой метод коллективного распознавания использовать для классификации цифр/символов?

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

Метод областей компетентности
Идея коллективной классификации на базе областей компетентности в том, что каждый базовый классификатор может работать хорошо в некоторой области пространства признаков (область компетентности), превосходя в этой области остальные классификаторы по точности и достоверности решений. Область компетентности каждого базового классификатора должна как-то оцениваться. Соответствующая программа называется рефери. Задача классификации решается таким образом, что каждый алгоритм используется только в области своей компетентности, т.е. там, где он дает наилучшие результаты по сравнению с другими классификаторами. При этом в каждой области принимается во внимание решение только одного классификатора. Однако, необходимо иметь какой-то алгоритм, который для любого входа определяет, какой из классификаторов наиболее компетентен.

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

Общая же схема обучения коллективному распознавания на основе оценки компетентности состоит из 2 шагов (рис. 1). На 1-м шаге производится обучение и тестирование каждого конкретного базового классификатора. Этот шаг не отличается от обычных схем обучения. На следующем шаге, после тестирования каждого классификатора, обучающая выборка, которая использовалась на этапе тестирования для некоторого классификатора, разделяется на два подмножества, L+ и L−. При этом в первое подмножество включаются те экземпляры исходной тестовой выборки, которые при тестировании были классифицированы правильно. Во второе подмножество включаются остальные экземпляры тестовой выборки, т.е. те, которые были классифицированы ошибочно. Рассматривая эти множества данных в качестве областей компетентности и некомпетентности классификатора соответственно, их можно использовать в качестве обучающих данных для обучения алгоритма «рефери». При классификации новых данных задача рефери состоит в том, чтобы для каждого входного примера определить, принадлежит ли он области компетентности алгоритма или нет, и если принадлежит, то какова вероятность правильной классификации этого примера. После этого рефери поручает наиболее компетентному классификатору решать задачу классификации.



Нейросетевые подходы.
Нейросетевые подходы коллективной классификации делятся на методы, которые используют объединение классификаторов с помощью нейронной сети, ансамбли сетей (ensembles of neural networks) и те, которые используют нейронные сети, построенные из модулей.

Нейросеть для объединения классификаторов
Один из подходов, рассматривает использование нейронной сети для объединения решений базовых классификаторов (рис. 2).


Выходом каждого базового классификатора является вектор решений (вектор, содержащий в качестве значений мягкие метки), значения элементов которого принадлежат некоторому числовому интервалу [a, b]. Эти значения подаются на вход нейронной сети (она должна быть обучена объединению решений классификаторов базового уровня), выходом которой является решение в пользу того или иного класса. Выходом сети также может являться вектор, размерность которого равна количеству классов распознаваемых объектов, который на каждой позиции имеет значение некоторой меры доверия в пользу того или иного класса. В этом случае в качестве решения может быть выбран класс с максимальным значением такой меры.

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

Метод модульных нейросетей
Для модульных нейронных сетей предлагается использовать так называемую шлюзовую сеть (“gating network”), нейронную сеть для оценки компетентности классификаторов для конкретного входного вектора данных предъявляемых классификаторам. Этот вариант рассматривает нейросетевую парадигму для объединения решений на основе оценок компетентности. Соответствующая теория здесь называется mixture of experts — «смесь экспертов». Каждому классификатору ставится в соответствие программа «рефери», которая предсказывает степень его компетентности по отношению к конкретному входу, подаваемому на вход множества классификаторов базового уровня (рис. 3).


В зависимости от входного вектора Х решения различных классификаторов могут быть выбраны и использованы для принятия объединенного решения. Количество входов предсказывающей сети равно размерности входного вектора пространства признаков. Количество выходов сети равняется количеству классификаторов, т.е. L. Предсказывающая нейросеть обучается предсказывать меру компетентности каждого классификатора при предъявлении ей конкретного входного вектора, т.е. оценку того факта, что классификатор выдает правильное решение. Степень компетентности оценивается числом из интервала [0,1].

Ансамбли нейронных сетей
Ансамбль нейронных сетей – это набор нейросетевых моделей, принимающий решение путем усреднения результатов работы отдельных моделей. В зависимости от того, как конструируется ансамбль, его использование позволяет решить одну из двух проблем: склонность базовой нейросетевой архитектуры к недообучению (эту проблему решает мета-алгоритм boosting), либо склонность базовой архитектуры к переобучению (мета-алгоритм bagging).

Существуют различные универсальные схемы голосования, для которых победителем является класс:
  1. максимальное – с максимальным откликом членов ансамбля;
  2. усредняющее – с наибольшим средним откликом членов ансамбля;
  3. большинством – с наибольшим числом голосов членов ансамбля.

Мой вопрос
Вопрос состоит в том, какую схему коллективного распознавания лучше использовать для распознавания символов и цифр. Источники данных, с которых я брал информацию о различных схемах групповой классификации датируются 2006 годом и боюсь, что некоторые методы могли устареть. Какую схему будет более рационально использовать с точки зрения актуальности какого-либо метода.

Какой из подходов в потенциале может выдать лучшие показатели точности и производительности в сфере распознавания символов/цифр. Возможно, некоторые методы устарели или показали свою несостоятельность в определенных сферах, и я бы хотел узнать у людей разбирающихся в этом. Возможно есть и другие более эффективные и актуальные методы коллективного распознавания (групповой классификации), о которых я не упомянул ранее.
ChicoID вне форума Ответить с цитированием
Старый 08.10.2016, 13:01   #2
one_man_show
Пользователь
 
Аватар для one_man_show
 
Регистрация: 07.10.2016
Сообщений: 23
По умолчанию

Если ранее не имели дело с нейросетями, то лучше начать с простых реализаций, которые иногда назвать нейросетями можно с большой натяжкой. Примеры можно найти на Хабре:
- реализация на Дельфи
- реализация на Лис
С уважением,
Ваган Саруханов
one_man_show вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какой компонент использовать для списка с чекбоксами? Dux Компоненты Delphi 2 23.11.2015 01:02
Какой компонент использовать? Для получения данных. Fahman Общие вопросы Delphi 16 11.08.2014 05:33
Какой упаковщик использовать для Delphi проектов? bilibian Общие вопросы Delphi 12 04.02.2014 13:31
Какой метод подключения лучше использовать для авторизации на сайтах? Blourid Работа с сетью в Delphi 3 13.03.2010 12:43
Какой метод использовать (java) I_cope Общие вопросы по Java, Java SE, Kotlin 2 19.11.2009 23:22