Взвешенная потеря перекрестной энтропии в Керасе - PullRequest
0 голосов
/ 07 марта 2019

Хорошо, у меня есть нейронная сеть, которая классифицирует размер пожара на 3 группы: 0-1, 1 - 100 и более 100 акров.Мне нужна функция потерь, которая взвешивает потери как двойные, когда классификатор угадывает класс, который выключен на 2 (Actual = 0, прогнозируемый = 3)

1 Ответ

0 голосов
/ 07 марта 2019

I need a loss function that weights the loss as double when the classifier guesses a class that is off by 2 (Actual = 0, predicted = 3)

вдвое больше?

A) Удваивает ли значение потерь, когда классификатор правильно угадывает,

B) или удваивает значение потерь, когда классификатор выключен, на 1.

C)Можем ли мы ослабить это «двойное» ограничение, и можем ли мы предположить, что любой подходящей более высокой степени будет достаточно?

Допустим, A).

Пусть f (x) обозначает вероятность того, что ваш входпеременные принадлежат к определенному классу.Обратите внимание, что в f (x) x является абсолютным значением разности в категориальном значении.

Тогда мы видим, что f (0) = 0,5 является решением для предположения A. Это означает, что f (1) = 0,25 и f (2) = 0,25.Кстати, тот факт, что f (1) == f (2) не выглядит естественным.

Предположим, что ваш классификатор вычисляет функцию f (x) и использует ее следующим образом.

def classifier_output(firesize):
    if (firesize >=0 and firesize < 1.0):
        return [f(0), f(1), f(2)]
    elif  (firesize >= 1.0 and firesize < 100.0):
        return [f(1), f(0), f(1)]
    else :
        assert(firesize > 100.0)
        return (f(2), f(1), f(0)]

Ограничения:

C1)

f(x) >=0

C2)

the components of your output vector should always sum to 1.0
ie. sum of all three components of the return value should always be 1.

C3)

When the true class and predicted class differ by 2, the 1-hot encoding loss 
will be -log(f(2)), According to assumption A, this should equal -2log(f(0)).

т.е.:

log(f(2))=2*log(f(0))

Это означает

f(2) = f(0)*f(0)

Положим z = f (0).Теперь f (2) = z * z.Мы не знаем f (1).Предположим, что f (1) = y.

. Из ограничения C2 имеем следующие уравнения:

z+ z*z + y=1
z + 2*y=1

. Решение вышеизложенного: z = 0,5, y = 0,25.

Если вы предположите B), вы не сможете найти такую ​​функцию.

...