Лучшая функция активации вывода для классификации двоичной маски - PullRequest
0 голосов
/ 06 июля 2018

У меня есть CNN, который вводит спутниковое изображение и должен выводить маску, где он находит автомобили. Я вручную пометил изображения и создал маски для каждого изображения, где каждый пиксель равен 1, если в этом пикселе есть часть автомобиля, в противном случае - 0.

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

Может кто-нибудь предложить свое мнение? В настоящее время я использую следующие выходные данные и потери в кератах:

conv10 = Conv2D(1, 1, activation='sigmoid')(conv9)

model = Model(inputs=[inputs], outputs=[conv10])

model.compile(optimizer=Adam(lr=1e-4), loss='binary_crossentropy', metrics=['accuracy'])

Это хорошая идея? Спасибо!

1 Ответ

0 голосов
/ 06 июля 2018

На мой взгляд, это хорошая идея, потому что вы хотите вывести вероятность P(px is part of a car | image) для каждого пикселя px в image. Следовательно, это проблема двоичной классификации, для которой уместно использовать функцию потерь binary_crossentropy (плюс сигмовидная активация в выходном слое).

...