2014-09-15 4 views
1

Я занимаюсь классификацией многоклассов, используя нейронные сети. Скажем, у меня есть 10 целевых классов и один нулевой (без цели). Лучше ли я тренировать нейронную сеть отдельно для каждой цели с двумя выходными нейронами для каждой сети (целевой, нецелевой), так что мне понадобится 10 отдельных нейронных сетей в вышеприведенном случае или нейронная сеть с 11 выходами (10 целей , 1 другое)? Я видел людей, использующих один из двух подходов в разных документах, но без объяснений, но есть ли теоретическое превосходство в использовании отдельной сети для каждого целевого класса? Является ли вычислительная накладная стоимость выгодной и выгодной в отношении альтернативного подхода?Обнаружение многоскалярной цели: N X (1 против всех) или 1 X (N против всех)?

Заранее благодарен!

P.S. (1) Конечно, в любом из подходов распределение примеров обучения сильно искажается по отношению к нецелевому («другому») классу и (2) Предполагается, что выходной уровень NN имеет активацию softmax.

+0

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

+0

Ну, конечно, более высокая производительность с точки зрения ошибки обобщения. – user252584

ответ

0

Есть несколько способов, которые вы могли бы потенциально тали проблему так:

Поезд в единую сеть с отдельным классом выходов

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

Поезд сети, которая специализируется на определенном классе

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

построить нейронную сеть Modular, что поезда на группы тесно связанных классов

Здесь вы могли бы потенциально разделить 10 групп на две группы по пять, в зависимости от которых нейронная сеть считается наилучшим для случая тестирования , Здесь вы можете обучить одну сеть назначению специализированной нейронной сети и обучить двух других для оценки конкретных классов. Это своего рода промежуточная точка между двумя предыдущими.

Существует много других подходов, которые могут работать, но это основные три, которые приходят на ум, исходя из вопроса, изложенного выше.