Przypuśćmy, że chcę wytrenować głęboką sieć neuronową do przeprowadzania klasyfikacji lub regresji, ale chcę wiedzieć, jak pewne będą prognozy. Jak mogłem to osiągnąć?
Moim pomysłem jest obliczenie entropii krzyżowej dla każdego układu odniesienia na podstawie wyników jego prognozowania w miernikach neuronowych powyżej. Następnie trenowałbym drugą sieć neuronową do regresji, która przyjmowałaby każdy układ odniesienia jako dane wejściowe, a jego entropię krzyżową jako dane wyjściowe (jeden węzeł wyjściowy). Następnie użyłbyś obu sieci w praktyce - jednej do przewidywania etykiety / wartości, a drugiej do przewidywania zaufania do pierwszej sieci. (.... Ale czy potrzebowałbym wtedy trzeciej sieci, aby przewidzieć pewność drugiej sieci i tak dalej ...?!)
Czy to poprawny pomysł? Co więcej, czy jest to powszechnie stosowany standardowy pomysł? Jeśli nie, co byś zaproponował?
źródło
Odpowiedzi:
Być może nie rozumiem pytania, ale wydaje mi się, że w przypadku klasyfikacji standardowym wyjściem jest neuron wyjściowy dla każdej z
N
klas.Następnie
N
wektor[0, 1]
wartości wyjściowych reprezentuje prawdopodobieństwo wejścia należącego do każdej klasy, a zatem może być interpretowany jako „pewność”, którą chcesz uzyskać.źródło
Dla osób, które są zainteresowane szacowaniem ufności prognoz NN, możesz rzucić okiem na Dropout jako aproksymację Bayesa: Reprezentacja niepewności modelu w głębokim uczeniu się (Gal i in., 2016) . W skrócie, pokazuje, w jaki sposób wariancja prognoz sieci z rezygnacją w populacji przebiegów, w których przeprowadza się rezygnację, może być wykorzystana do oszacowania pewności prognozy. Takie podejście można zastosować w przypadku sieci zaprojektowanych do klasyfikacji lub regresji.
źródło