От правила персептрона к градиентному спуску: чем отличаются перцептроны с функцией активации сигмовидной кишки от логистической регрессии?


21

По сути, мой вопрос заключается в том, что в многослойных персептронах персептроны используются с сигмовидной активационной функцией. Так что в правиле обновления у вычисляется какY^

Y^знак равно11+ехр(-весTИкся)

Чем этот «сигмовидный» персептрон отличается от логистической регрессии?

Я бы сказал , что однослойный персептрон сигмовидной эквивалентно логистической регрессии в том смысле , что оба используют у = 1 в правиле обновления. Кроме, как обратныйзнак( у =1Y^знак равно11+ехр(-весTИкся)в прогнозе. Однако в многослойных персептронах функция активации сигмоида используется для возврата вероятности, а не сигнала включения-выключения в отличие от логистической регрессии и однослойного персептрона.подписать(Y^знак равно11+ехр(-весTИкся))

Я думаю, что использование термина «персептрон» может быть немного неоднозначным, поэтому позвольте мне дать некоторые сведения, основанные на моем текущем понимании однослойных персептронов:

Классическое правило персептрона

Во-первых, классический персептрон Ф. Розенблатта, где у нас есть ступенчатая функция:

Δwd=η(yiyi^)xidyi,yi^{1,1}

обновить веса

wk:=wk+Δwk(k{1,...,d})

Так что у рассчитывается какy^

y^=sign(wTxi)=sign(w0+w1xi1+...+wdxid)


Градиентный спуск

Используя градиентный спуск, мы оптимизируем (минимизируем) функцию стоимости

J(w)=i12(yiyi^)2yi,yi^R

где у нас есть «реальные» числа, так что я вижу это в основном аналогично линейной регрессии с той разницей, что наш классификационный результат имеет пороговое значение.

Здесь мы делаем шаг в отрицательном направлении градиента, когда мы обновляем веса

Δwk=ηJwk=ηi(yiyi^)(xik)=ηi(yiyi^)xik

Но здесь мы имеем у = ш Т х я вместо у = знак ( ш Т х I )y^=wTxiy^=sign(wTxi)

wk:=wk+Δwk(k{1,...,d})

Кроме того, мы рассчитываем сумму квадратов ошибок для полного прохода по всему набору обучающих данных (в режиме пакетного обучения) в отличие от классического правила персептрона, которое обновляет весовые коэффициенты по мере поступления новых обучающих выборок (аналог стохастического градиентного спуска - онлайн учусь).


Сигмовидная функция активации

Теперь вот мой вопрос:

В многослойных персептронах персептроны используются с сигмовидной функцией активации. Так что в правиле обновления у вычисляется какy^

y^=11+exp(wTxi)

Чем этот «сигмовидный» персептрон отличается от логистической регрессии?


4
Удивительно, но этот вопрос сам по себе позволил мне сжать основы машинного обучения и нейронной сети!
Варун

Ответы:


4

Используя градиентный спуск, мы оптимизируем (минимизируем) функцию стоимости

J(w)=i12(yiyi^)2yi,yi^R

Если вы минимизируете среднеквадратичную ошибку, то она отличается от логистической регрессии. Логистическая регрессия обычно связана с перекрестной потерей энтропии, вот страница введения из библиотеки scikit-learn .


(Я предполагаю, что многослойные персептроны - это то же самое, что называется нейронными сетями.)

Если вы использовали кросс-энтропийную потерю (с регуляризацией) для однослойной нейронной сети, то это будет та же модель (лог-линейная модель), что и логистическая регрессия. Если вместо этого вы используете многослойную сеть, ее можно рассматривать как логистическую регрессию с параметрическими нелинейными базисными функциями.


Однако в многослойных персептронах функция активации сигмоида используется для возврата вероятности, а не сигнала включения-выключения в отличие от логистической регрессии и однослойного персептрона.

Выходные данные как логистической регрессии, так и нейронных сетей с функцией активации сигмоида могут быть интерпретированы как вероятности. Поскольку кросс-энтропийная потеря на самом деле является отрицательной логарифмической вероятностью, определенной через распределение Бернулли.


2

Поскольку градиентный спуск обновляет каждый параметр таким образом, что он уменьшает выходную ошибку, которая должна оставаться функцией всех параметров. Активация на основе порога не дифференцируема, поэтому используется сигмовидная или танх активация.

Вот однослойная НН

dJ(w,b)dωkj=dJ(w,b)dzkdzkdωkj

dJ(w,b)dzk=(akyk)(ak(1ak))

dzkdωkj=xk

J(w,b)=12(ykak)2

ak=sigm(zk)=sigm(Wkjxk+bk)

if activation function were a basic step function (threshold), derivative of J w.r.t zk would be non-differentiable.

here is a link that explain it in general.

Edit: Maybe, I misunderstood what you mean by perceptron. If I'm not mistaken, perceptron is threholded weighed sum of inputs. If you change threholding with logistic function it turns into logistic regression. Multi-layer NN with sigmoid (logistic) activation functions is cascaded layers composed of logistic regressions.


3
This doesn't answer the question.
Neil G

Спасибо за написание этого хорошего комментария, но это было не то, что я просил. Мой вопрос был не «почему градиентный спуск», а «что отличает персептрон с сигмовидной активационной функцией от логистической регрессии»

@SebastianRaschka Они одинаковы. С чего ты взял, что они разные? Я вел градиентный спуск, потому что увидел ошибку в вашей оценке градиентного спуска. Вы предполагалиYзнак равноWTИкскогда ты ехал на нем Вот почему вы нашли один и тот же вывод для обновления как Перцептрона, так и Градиента.
yasin.yazici

1
"What makes you think that they are different?" -- the nomenclature, thus I was wondering if there is something else; I am just curious why we have 2 different terms for the same thing. Btw. I don't see any mistake in the gradient descent in my question. y=wjTxji is correct. And I also didn't find the same derivation between "perceptron rule" and "gradient descent" update. The former is done in an online learning manner (sample by sample), the latter is done in batch, and also we minimize the sum of squared errors instead of using a stepwise function.

I think what might caused the confusion is that you have distinguish between the "classification" and the "learning" step. The classification step is always thresholded (-1 or 1, or 0 and 1 if you like). However, the update is different, in the classic perceptron, the update is done via η(ysign(wTxi))x whereas in let's say stochastic gradient descent it is η(ywTxi)xi

2

Intuitively, I think of a multilayer perceptron as computing a nonlinear transformation on my input features, and then feeding these transformed variables into a logistic regression.

The multinomial (that is, N > 2 possible labels) case may make this more clear. In traditional logistic regression, for a given data point, you want to compute a "score", βiX, for each class, i. And the way you convert these to probabilities is just by taking the score for the given class over the sum of scores for all classes, βiXjβjX, Таким образом, класс с большим баллом имеет большую долю комбинированного балла и, следовательно, более высокую вероятность. Если вы вынуждены прогнозировать отдельный класс, вы выбираете класс с наибольшей вероятностью (что также является наибольшим баллом).

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

Многослойный персептрон подобен аспиранту, у которого слишком много времени. Посредством обучения градиентному спуску и активации сигмоидии он будет вычислять произвольные нелинейные комбинации ваших исходных входных переменных. В последнем слое персептрона эти переменные фактически становятсяИкс в приведенном выше уравнении, и ваш градиентный спуск также вычисляет связанный окончательный βя, Платформа MLP - просто абстракция этого.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.