|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
30.08.2016, 10:04 | #1 |
Новичок
Джуниор
Регистрация: 30.08.2016
Сообщений: 1
|
Какой метод коллективного распознавания использовать для классификации цифр/символов?
Структура вопроса следующая: сначала даю объяснение разных методов коллективной классификации, которые я нашел и в конце я привожу свой вопрос. Кто уже съел собаку в этом деле и им возможно не требуется объяснять, что это такое и какие методы есть, может просто взглянуть на заголовки приведенных мною методов и перейти к вопросу.
Метод областей компетентности Идея коллективной классификации на базе областей компетентности в том, что каждый базовый классификатор может работать хорошо в некоторой области пространства признаков (область компетентности), превосходя в этой области остальные классификаторы по точности и достоверности решений. Область компетентности каждого базового классификатора должна как-то оцениваться. Соответствующая программа называется рефери. Задача классификации решается таким образом, что каждый алгоритм используется только в области своей компетентности, т.е. там, где он дает наилучшие результаты по сравнению с другими классификаторами. При этом в каждой области принимается во внимание решение только одного классификатора. Однако, необходимо иметь какой-то алгоритм, который для любого входа определяет, какой из классификаторов наиболее компетентен. Один из подходов предполагает, что вместе с каждым классификатором используется специальный алгоритм (рефери), который предназначен для оценки компетентности классификатора. Под компетентностью классификатора в данной области пространства представления объектов классификации понимается его точность, т.е. вероятность правильной классификации объектов, чье описание принадлежит этой области. Общая же схема обучения коллективному распознавания на основе оценки компетентности состоит из 2 шагов (рис. 1). На 1-м шаге производится обучение и тестирование каждого конкретного базового классификатора. Этот шаг не отличается от обычных схем обучения. На следующем шаге, после тестирования каждого классификатора, обучающая выборка, которая использовалась на этапе тестирования для некоторого классификатора, разделяется на два подмножества, L+ и L−. При этом в первое подмножество включаются те экземпляры исходной тестовой выборки, которые при тестировании были классифицированы правильно. Во второе подмножество включаются остальные экземпляры тестовой выборки, т.е. те, которые были классифицированы ошибочно. Рассматривая эти множества данных в качестве областей компетентности и некомпетентности классификатора соответственно, их можно использовать в качестве обучающих данных для обучения алгоритма «рефери». При классификации новых данных задача рефери состоит в том, чтобы для каждого входного примера определить, принадлежит ли он области компетентности алгоритма или нет, и если принадлежит, то какова вероятность правильной классификации этого примера. После этого рефери поручает наиболее компетентному классификатору решать задачу классификации. Нейросетевые подходы. Нейросетевые подходы коллективной классификации делятся на методы, которые используют объединение классификаторов с помощью нейронной сети, ансамбли сетей (ensembles of neural networks) и те, которые используют нейронные сети, построенные из модулей. Нейросеть для объединения классификаторов Один из подходов, рассматривает использование нейронной сети для объединения решений базовых классификаторов (рис. 2). Выходом каждого базового классификатора является вектор решений (вектор, содержащий в качестве значений мягкие метки), значения элементов которого принадлежат некоторому числовому интервалу [a, b]. Эти значения подаются на вход нейронной сети (она должна быть обучена объединению решений классификаторов базового уровня), выходом которой является решение в пользу того или иного класса. Выходом сети также может являться вектор, размерность которого равна количеству классов распознаваемых объектов, который на каждой позиции имеет значение некоторой меры доверия в пользу того или иного класса. В этом случае в качестве решения может быть выбран класс с максимальным значением такой меры. Система объединения решений функционирует следующим образом:
Метод модульных нейросетей Для модульных нейронных сетей предлагается использовать так называемую шлюзовую сеть (“gating network”), нейронную сеть для оценки компетентности классификаторов для конкретного входного вектора данных предъявляемых классификаторам. Этот вариант рассматривает нейросетевую парадигму для объединения решений на основе оценок компетентности. Соответствующая теория здесь называется mixture of experts — «смесь экспертов». Каждому классификатору ставится в соответствие программа «рефери», которая предсказывает степень его компетентности по отношению к конкретному входу, подаваемому на вход множества классификаторов базового уровня (рис. 3). В зависимости от входного вектора Х решения различных классификаторов могут быть выбраны и использованы для принятия объединенного решения. Количество входов предсказывающей сети равно размерности входного вектора пространства признаков. Количество выходов сети равняется количеству классификаторов, т.е. L. Предсказывающая нейросеть обучается предсказывать меру компетентности каждого классификатора при предъявлении ей конкретного входного вектора, т.е. оценку того факта, что классификатор выдает правильное решение. Степень компетентности оценивается числом из интервала [0,1]. Ансамбли нейронных сетей Ансамбль нейронных сетей – это набор нейросетевых моделей, принимающий решение путем усреднения результатов работы отдельных моделей. В зависимости от того, как конструируется ансамбль, его использование позволяет решить одну из двух проблем: склонность базовой нейросетевой архитектуры к недообучению (эту проблему решает мета-алгоритм boosting), либо склонность базовой архитектуры к переобучению (мета-алгоритм bagging). Существуют различные универсальные схемы голосования, для которых победителем является класс:
Мой вопрос Вопрос состоит в том, какую схему коллективного распознавания лучше использовать для распознавания символов и цифр. Источники данных, с которых я брал информацию о различных схемах групповой классификации датируются 2006 годом и боюсь, что некоторые методы могли устареть. Какую схему будет более рационально использовать с точки зрения актуальности какого-либо метода. Какой из подходов в потенциале может выдать лучшие показатели точности и производительности в сфере распознавания символов/цифр. Возможно, некоторые методы устарели или показали свою несостоятельность в определенных сферах, и я бы хотел узнать у людей разбирающихся в этом. Возможно есть и другие более эффективные и актуальные методы коллективного распознавания (групповой классификации), о которых я не упомянул ранее. |
08.10.2016, 13:01 | #2 |
Пользователь
Регистрация: 07.10.2016
Сообщений: 23
|
Если ранее не имели дело с нейросетями, то лучше начать с простых реализаций, которые иногда назвать нейросетями можно с большой натяжкой. Примеры можно найти на Хабре:
- реализация на Дельфи - реализация на Лис
С уважением,
Ваган Саруханов |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Какой компонент использовать для списка с чекбоксами? | 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 |