Почему theta0 пропускается при выполнении регуляризации регрессии? - PullRequest
0 голосов
/ 03 января 2019

В настоящее время я изучаю ML на Coursera с помощью курса по ML Эндрю Нг.Я выполняю задания на python, потому что я больше к этому привык, чем к Matlab.Недавно я столкнулся с проблемой, касающейся моего понимания темы регуляризации.Я понимаю, что, делая регуляризацию, можно добавить менее важные функции, которые достаточно важны в прогнозировании.Но при его реализации я не понимаю, почему 1-й элемент тета (параметров), то есть тета [0], пропускается при расчете стоимости.Я ссылался на другие решения, но они также сделали то же самое без объяснения.

Вот код:

`

 term1 = np.dot(-np.array(y).T,np.log(h(theta,X)))
 term2 = np.dot((1-np.array(y)).T,np.log(1-h(theta,X)))
 regterm = (lambda_/2) * np.sum(np.dot(theta[1:].T,theta[1:])) #Skip theta0. Explain this line
 J=float( (1/m) * ( np.sum(term1 - term2) + regterm ) )
 grad=np.dot((sigmoid(np.dot(X,theta))-y),X)/m
 grad_reg=grad+((lambda_/m)*theta)
 grad_reg[0]=grad[0]

`

А вот формула:

Regularized Cost function

Здесь J (тета) - функция стоимости h (x) - сигмоидальная функция или гипотеза.lamnda - это параметр регуляризации.

1 Ответ

0 голосов
/ 03 января 2019

Theta0 относится к смещению. Смещение проявляется, когда мы хотим, чтобы границы наших решений были должным образом разделены. просто рассмотрим пример

Y1 = w1 * X, а затем Y2 = w2 * X

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

Y1 = w1 * X + b1 и Y2 = w2 * X + b2

теперь, благодаря обучению, границы принятия решений будут все время ясны.

Давайте рассмотрим, почему мы используем регуляризацию сейчас.

Так что мы не перегружаемся и не сглаживаем кривую. Как вы можете видеть уравнение, его наклоны w1 и w2, которые необходимо сгладить, смещение - это просто пересечения сегрегации. Так что нет смысла использовать их в регуляризации.

Хотя мы можем использовать это, в случае нейронных сетей это не будет иметь никакого значения. Но мы можем столкнуться с проблемами снижения значения смещения настолько, что это может привести к путанице в данных. Таким образом, лучше не использовать смещение в регуляризации.

Надеюсь, это ответит на ваш вопрос. Первоначально опубликовано: https://medium.com/@shrutijadon10104776/why-we-dont-use-bias-in-regularization-5a86905dfcd6

...