2014-02-02 4 views
4

Я реализовал бинарный классификатор логистической регрессии. Чтобы играть, я заменил сигмовидную функцию (1/1 + exp (-z)) с помощью tanh. Результаты были точно такими же, с тем же порогом 0,5 для классификации, и хотя tanh находится в диапазоне {-1,1}, тогда как сигмоид находится в диапазоне {0,1}.Действительно ли сигмоидная функция имеет значение в логистической регрессии?

Действительно ли имеет значение, что мы используем сигмовидную функцию или может ли любая дифференцируемая нелинейная функция, такая как работа с таном?

Спасибо.

ответ

4

Вы также изменили функцию тренировки, или вы использовали один и тот же метод обучения, а затем изменили сигмоид на tanh?

Я думаю, что, скорее всего, произошло следующее. Посмотрите на графиках сигмовидной и TANH:

сигмовидной: http://www.wolframalpha.com/input/?i=plot+sigmoid%28x%29+for+x%3D%28-1%2C+1%29 TANH: http://www.wolframalpha.com/input/?i=plot+tanh%28x%29+for+x%3D%28-1%2C+1%29

Мы можем видеть, что в случае Тань, значение у = 0,5 составляет около х = 0,5. В сигмоиде x = 0,5 получает нас примерно y = 0,62. Поэтому, вероятно, теперь я думаю, что ваши данные не содержат никакой точки, которая попадает в этот диапазон, поэтому вы получаете точно такие же результаты. Попробуйте напечатать сигмоидные значения для ваших данных и посмотреть, есть ли между 0,5 и 0,62.

Причина использования сигмоидной функции заключается в том, что она получена из вероятности и максимального правдоподобия. В то время как другие функции могут работать очень схожим образом, у них не будет такого вероятностного фона теории. Подробнее см., Например, http://luna.cas.usf.edu/~mbrannic/files/regression/Logistic.html или http://www.cs.cmu.edu/~tom/mlbook/NBayesLogReg.pdf

+0

Спасибо за отличное объяснение! Как вы сказали, у меня не было никаких значений, которые падали в этом диапазоне, и поэтому разница не была заметна. – rahulm

+1

Ссылка lunc.cas дает 404 сейчас. –

0

Диапазон функции должен быть {0,1}, поскольку он представляет вероятность результата.