Выходной слой для двоичной классификации в Керасе - PullRequest
0 голосов
/ 08 апреля 2020

Мне нужно классифицировать изображения как злокачественные или не злокачественные.

Для этого я построил классический CNN, но я колеблюсь между маркировкой своего набора данных двумя векторами из двух столбцов, например:

cancerous: [0, 1]
not cancerous: [1, 0]

и с использованием функции активации softmax с 2 выходными нейронами.

model.add(Dense(2, activation='softmax'))

ИЛИ

cancerous: [1]
not cancerous: [0]

и использованием функции активации сигмоида с одним выходным нейроном.

model.add(Dense(1, activation='sigmoid'))

Какая модель лучше, учитывая, что мне нужно использовать вероятность наличия рака в качестве конечного показателя c для пациента, а также для построения кривой RO C?

1 Ответ

1 голос
/ 08 апреля 2020

Общая тенденция заключается в использовании нескольких выходных узлов с сигмовидной кривой для классификации по нескольким меткам. Часто softmax используется для мультиклассовой классификации, где softmax предсказывает вероятности каждого выхода, и мы выбираем класс с наибольшей вероятностью. Для двоичной классификации мы можем выбрать один выход нейрона, пропущенный через сигмоид, а затем установить порог для выбора класса или использовать два выхода нейрона и затем выполнить softmax. В любом из случаев возможно пороговое значение. Построить кривую RO C с одним выходом нейрона довольно просто, так как вам придется установить пороговое значение для одного значения. Таким образом, вы можете легко go с model.add(Dense(1, activation='sigmoid'))

...