Функции потерь достигают глобальных минимумов - PullRequest
0 голосов
/ 25 июня 2019

В Deep Learning можем ли мы иметь точность обучения намного меньше 100% при глобальном минимуме функции потерь?

Я кодировал нейронную сеть в python для классификации кошек и не кошек. Я выбрал 2-х слойную сеть. Он дал точность поезда 100% и точность испытания 70%.

Когда я увеличил #layers до 4, функция потерь застревает на 0,6440, что приводит к точности поезда 65% и точности теста 34% для многих случайных инициализаций.

Мы ожидаем, что точность нашего поезда на четырехслойной модели должна составлять 100%. Но мы застряли на 65%. Мы думаем, что функция потерь достигает глобального минимума, так как при многих случайных инициализациях мы стагнируем значение потери 0,6440. Итак, хотя функция потерь достигает глобального минимума, почему точность поезда не достигает 100%? Отсюда наш вопрос: «В глубоком обучении мы можем иметь ненулевую точность обучения при глобальном минимуме функции потерь?»

1 Ответ

0 голосов
/ 25 июня 2019

Конечно, это зависит только от емкости сети. Если у вас есть только линейные активации, то сеть является линейной и точность обучения составляет только 100%, если данные линейно разделимы. Для нелинейных функций активации емкость не так ясна. Теоретически мы знаем, что NN со скрытым слоем является универсальным аппроксиматором функции с учетом достаточного количества нейронов (https://towardsdatascience.com/can-neural-networks-really-learn-any-function-65e106617fc6).). Таким образом, теоретически он должен иметь возможность произвольно аппроксимировать любую функцию и, следовательно, достигать 100% точности поезда.

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

...