Обсуждение:Практикум на ЭВМ (317)/Autoencoder
Материал из MachineLearning.
(7 промежуточных версий не показаны.) | |||
Строка 1: | Строка 1: | ||
+ | == 2014 == | ||
+ | |||
+ | == 2013 == | ||
+ | |||
'''Вопрос №1:''' Каким образом можно справиться с переполнением, возникающим при подстановке числа 3000-4000 в степень экспоненты сигмоидальной функции активации (и ее производной)? Сразу отмечу, что вариант "сократить на квадрат экспоненты" не проходит, так как встречаются и положительные, и отрицательные числа такого порядка--[[Участник:Alex.Ryzhkov|Alex.Ryzhkov]] 20:37, 1 марта 2013 (MSK) | '''Вопрос №1:''' Каким образом можно справиться с переполнением, возникающим при подстановке числа 3000-4000 в степень экспоненты сигмоидальной функции активации (и ее производной)? Сразу отмечу, что вариант "сократить на квадрат экспоненты" не проходит, так как встречаются и положительные, и отрицательные числа такого порядка--[[Участник:Alex.Ryzhkov|Alex.Ryzhkov]] 20:37, 1 марта 2013 (MSK) | ||
: Александр, сигмоида стремится к нулю или единице при больших по модулю значениях аргумента. При использовании вещественных типов эти случаи даже не нужно специально обрабатывать: при переполнении экспонента будет равна +Inf, и вся дробь будет равна нулю. Или я неправильно понял вопрос? [[Участник:Shapovalov|Shapovalov]] 13:17, 3 марта 2013 (MSK) | : Александр, сигмоида стремится к нулю или единице при больших по модулю значениях аргумента. При использовании вещественных типов эти случаи даже не нужно специально обрабатывать: при переполнении экспонента будет равна +Inf, и вся дробь будет равна нулю. Или я неправильно понял вопрос? [[Участник:Shapovalov|Shapovalov]] 13:17, 3 марта 2013 (MSK) | ||
+ | |||
+ | :: Роман, а если взять и рассмотреть производную сигмоиды? У нее и сверху, и снизу экспоненты, причем снизу даже квадрат, и при вычислении экспоненты уже получается Inf, а при вычислении производной сигмоиды в такой точке имеем, что Inf / Inf = NaN, что собственно и печалит всю картину..--[[Участник:Alex.Ryzhkov|Alex.Ryzhkov]] 13:31, 3 марта 2013 (MSK) | ||
+ | |||
+ | ::: Если поступать так, то нужно рассматривать этот случай отдельно и раскрывать неопределённость. Обычно же делают проще: производная сигмоиды выражается через её значение (которое ограничено), и там не возникает неопределённостей. [[Участник:Shapovalov|Shapovalov]] 13:40, 3 марта 2013 (MSK) | ||
+ | |||
+ | :::: Спасибо, помогло =) --[[Участник:Alex.Ryzhkov|Alex.Ryzhkov]] 13:58, 3 марта 2013 (MSK) | ||
+ | |||
+ | '''По итогам консультации.''' 1. В качестве функционала ошибки лучше использовать среднюю квадратичную ошибку по объектам (MSE), а не сумму. Предлагаемые в задании параметры алгоритмов должны хорошо работать именно с нормированной ошибкой. | ||
+ | |||
+ | 2. При использовании online или mini-batch оптимизации, номер итерации при подсчёте величины шага — это не номер эпохи. Нужно увеличивать номер итерации с каждым вычислением градиента. [[Участник:Shapovalov|Shapovalov]] 15:40, 4 марта 2013 (MSK) |
Текущая версия
2014
2013
Вопрос №1: Каким образом можно справиться с переполнением, возникающим при подстановке числа 3000-4000 в степень экспоненты сигмоидальной функции активации (и ее производной)? Сразу отмечу, что вариант "сократить на квадрат экспоненты" не проходит, так как встречаются и положительные, и отрицательные числа такого порядка--Alex.Ryzhkov 20:37, 1 марта 2013 (MSK)
- Александр, сигмоида стремится к нулю или единице при больших по модулю значениях аргумента. При использовании вещественных типов эти случаи даже не нужно специально обрабатывать: при переполнении экспонента будет равна +Inf, и вся дробь будет равна нулю. Или я неправильно понял вопрос? Shapovalov 13:17, 3 марта 2013 (MSK)
- Роман, а если взять и рассмотреть производную сигмоиды? У нее и сверху, и снизу экспоненты, причем снизу даже квадрат, и при вычислении экспоненты уже получается Inf, а при вычислении производной сигмоиды в такой точке имеем, что Inf / Inf = NaN, что собственно и печалит всю картину..--Alex.Ryzhkov 13:31, 3 марта 2013 (MSK)
- Если поступать так, то нужно рассматривать этот случай отдельно и раскрывать неопределённость. Обычно же делают проще: производная сигмоиды выражается через её значение (которое ограничено), и там не возникает неопределённостей. Shapovalov 13:40, 3 марта 2013 (MSK)
- Спасибо, помогло =) --Alex.Ryzhkov 13:58, 3 марта 2013 (MSK)
По итогам консультации. 1. В качестве функционала ошибки лучше использовать среднюю квадратичную ошибку по объектам (MSE), а не сумму. Предлагаемые в задании параметры алгоритмов должны хорошо работать именно с нормированной ошибкой.
2. При использовании online или mini-batch оптимизации, номер итерации при подсчёте величины шага — это не номер эпохи. Нужно увеличивать номер итерации с каждым вычислением градиента. Shapovalov 15:40, 4 марта 2013 (MSK)