Я не получаю эту строку кода в машинном обучении - PullRequest
0 голосов
/ 25 июня 2018

Я должен написать этот фрагмент кода для назначения функции lrcostfunction в курсе машинного обучения в Coursera. Но я до сих пор не понимаю, почему

theta1 = [0 ; theta(2:end, :)];

написано? theta1 означает что?

h = sigmoid(X * theta)
theta1 = [0 ; theta(2:end, :)];
p = lambda * (theta1' * theta1)/(2 * m);
J = ((-y)'*log(h)-(1-y)'*log(1-h))/m + p;

grad = (X' * (h - y) + lambda * theta1)/ m;

1 Ответ

0 голосов
/ 25 июня 2018

В логистической регрессии тета (θ) - это вектор, представляющий параметры (или веса) линейной функции x.

enter image description here

Теперь, учитывая тренировочный набор, один из способов узнать параметры тета (θ) - сделать h (x) близким к yПо крайней мере для обучающих примеров, которые мы имеем.Это определяется с использованием функции стоимости или функции ошибки (J (θ)) для каждого значения θ, которое мы хотим минимизировать.

enter image description here

Первый параметр theta1 инициализируется как ноль.Позже, используя градиентный спуск, вычисляется следующий тета-параметр.При градиентном спуске параметр J (θ) рассчитывается с использованием частичного дифференцирования, поскольку мы хотим минимизировать его.

enter image description here

Здесь \ alpha - скорость обучения скакой алгоритм градиентного спуска работает.Он начинается с начального значения в массиве - theta1 как ноль, а затем следующее значение рассчитывается с использованием приведенного выше уравнения.и т. д. для других тэта-параметров.

РЕДАКТИРОВАТЬ:

Объяснение кода:

theta1 = [0 ; theta(2:end, :)];

Приведенный выше код является кодом MATLAB.Здесь theta1 - массив (векторное или матричное представление).Он создается с использованием горизонтального объединения двух полей.

  • 1) 0

  • 2) theta(2:end, :)

Во-первых, этоскалярное значение 0

Во-вторых, это означает, что все значения принимаются такими, как есть, кроме первой строки из массива theta.(Обратите внимание, что тэта является входным массивом LRCOSTFUNCTION(theta, X, y, lambda))

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