Есть ли разница в выводе (конечном слое) между NN и CNN? - PullRequest
0 голосов
/ 26 мая 2020

В случае мультиклассовой классификации, если количество классов N, тогда NN имеет N выходных узлов. Однако для двоичной классификации с использованием NN выходной узел - только один.

Путаница: Для двоичной классификации с использованием CNN с целочисленными метками (0/1 или 1/2) будет ли количество выходных узлов 2? Или со схемой однократного горячего кодирования 0-0, 0-1,1-0 и 1-1 количество выходных узлов будет 2, иначе 1 выходной узел.

Эта путаница также происходит из-за синтаксиса реализации. В приведенном ниже коде с использованием CNN для двоичной классификации я должен указать numClasses =2, когда классы имеют целочисленные значения 0/1 или 1/2. Означает ли это, что есть 2 выходных узла? Пожалуйста, поправьте меня, где нет.

inputSize = [28 28 1];
numClasses = 2;

layers = [
    imageInputLayer(inputSize)
    convolution2dLayer(5,20)
    batchNormalizationLayer
    reluLayer
    fullyConnectedLayer(numClasses)
    softmaxLayer
    classificationLayer];

1 Ответ

1 голос
/ 27 мая 2020

Синтаксис реализации правильный. Но для двоичной классификации используйте только активацию сигмоида вместо softmax с одним узлом для последнего уровня.

Когда используется сигмоид, то количество выходных узлов равно 1, а одно горячее кодирование не используется. Выход сигмоида - это вероятность, и если вероятность больше 0,5, выходной класс - это класс 1, а в противном случае - класс 2.

Когда используется softmax, то количество выходных узлов равно 2 и требуется одно горячее кодирование. Оба выходных узла представляют вероятности каждого соответствующего класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...