Нейронные сети: классификация с использованием Encog

Я пытаюсь начать использовать нейронные сети для решения проблемы классификации. Я решил использовать библиотеку Encog 3.x, так как работаю над JVM (в Scala). Пожалуйста, дайте мне знать, если эта проблема лучше решается другой библиотекой.

Я использовал устойчивое обратное распространение. У меня есть 1 скрытый слой и, например. 3 выходных нейрона, по одному на каждую из 3 целевых категорий. Таким образом, идеальными выходами являются либо 1/0/0, 0/1/0, либо 0/0/1. Теперь проблема в том, что обучение пытается минимизировать ошибку, например. превратить 0,6/0,2/0,2 в 0,8/0,1/0,1, если идеальный результат равен 1/0/0. Но поскольку я выбираю наивысшее значение в качестве прогнозируемой категории, для меня это не имеет значения, и я бы хотел, чтобы обучение тратило больше усилий на фактическое уменьшение количества неправильных прогнозов.

Итак, я узнал, что я должен использовать функцию softmax в качестве вывода (хотя мне неясно, станет ли это 4-м слоем или я должен просто заменить функцию активации 3-го слоя на softmax), а затем обучение уменьшит крест энтропия. Теперь я думаю, что эту кросс-энтропию нужно рассчитывать либо по всей сети, либо по всему выходному слою, но ErrorFunction, который можно настроить, вычисляет ошибку для каждого нейрона (считывает массив идеальных входов и фактических входов , записывает массив значений ошибок). Так как же на самом деле минимизировать перекрестную энтропию с помощью Encog (или какую другую библиотеку на основе JVM выбрать)?


person herman    schedule 07.04.2014    source источник


Ответы (1)


Я также работаю с Encog, но на Java, хотя не думаю, что это имеет большое значение. У меня похожая проблема, и, насколько я знаю, вам нужно написать свою собственную функцию, которая минимизирует перекрестную энтропию.

И как я понимаю, софтмакс должен просто заменить ваш 3-й слой.

person mstechly    schedule 29.04.2014
comment
Ну а как правильно написать эту кросс-энтропийную минимизирующую функцию ошибки, это как раз вопрос. Любые идеи? Если у вас есть реализация Java, это нормально. - person herman; 30.04.2014
comment
Привет, эти две ссылки уже мертвы. У вас есть текущие ссылки на эти две страницы на HeatonResearch? - person Shamit Verma; 10.07.2016
comment
Извините, я не смог найти его. - person mstechly; 17.07.2016