Почему глубокое обучение не страдает от ошибок с плавающей или числовой точностью, если большая часть его обучения находится на данных со средним значением 0 и std 1?

74
6

Вдохновленный вопросом:

Почему разные методы решения Xc = y в python дают другое решение, если они не должны?

который, кажется, имеет числовую проблему из-за плавающих точек, инвертируя матрицы и ограничивая значения [-1,1], теперь мне любопытно, почему глубокое обучение не страдает от ошибок с плавающей запятой или численной точностью, если большая часть его обучения находится на данные со средним значением 0 и std 1 (я предполагаю, что я предполагаю, что большая часть данных была предварительно обработана, чтобы быть в этом диапазоне, плюс я считаю, что это должно быть примерно правильно, учитывая высокий уровень использования пакетной нормализации). Это потому, что глубокое обучение не тренируется, поднимая многочлен в очень высокой степени или почему глубокое обучение обычно хорошо? Есть ли что-то особенное с SGD или, возможно, (популярная) функция активации, relu, elu и т.д. Не являются численно неустойчивыми (по сравнению с полиномом высокой степени)? Или, может быть, обучение GPU позволяет избежать представления с плавающей запятой? Или почему обучение с глубоким обучением численно стабильно?

спросил(а) 2017-10-22T00:22:00+03:00 3 года, 4 месяца назад
1
Решение
76

Нет ничего действительно волшебного в DL как таковой - он также страдает от числовых ошибок, все время. Однако из-за масштабов и числа нелинейностей численные неустойчивости в DL обычно приводят к бесконечным или неправильным ответам. Следовательно, их обычно легко обнаружить. В частности, нет ничего сложного в интервале [0,1], на самом деле, это отличное место для хранения float, поскольку четверть представимых поплавков действительно живет в [0,1] ! Проблема, о которой вы говорите, заключается в том, что она принимает огромный показатель такого числа, что опасно приближается к точности машины. Ни одна из стандартных методов DL не принимает 30-ю степень активации. Фактически, большинство наиболее успешных методов DL (основанных на сигмоидах, tanhs и relus) почти линейны, и поэтому числовые неустойчивости в основном происходят из операций exp в оценках вероятности.

Так:

    это о полиноме высокого уровня? да, это основная проблема и не встречается в DL. есть что-то особенное в SGD? На самом деле, нет. это об активационных функциях? Да, они не допускают такого огромного падения точности (экспонента является исключением, и это приводит к числовым проблемам) GPU избегает поплавков? Нет, это не так, графические процессоры не имеют к этому никакого отношения.

ответил(а) 2017-10-22T02:21:00+03:00 3 года, 4 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема