Линейное ядро положительно определено?
Во многих статьях линейное ядро (внутреннее произведение двух матриц) указывается как положительно определенное, однако, когда я пробую его с набором игрушечных данных, тест положительной определенности возвращает отрицательный результат. Я проверил функцию Matlab SVM для линейного ядра.
Линейная функция ядра - это однострочная команда,
K=(u*v')
однако после этого шага в основной функции svm_train он выполняет другую операцию, используя K,
kx= (kx+kx')/2 + diag(1./boxconstraint)
где kx
это К и diag(1./boxconstraint)
это просто диагональная матрица размера kx
и результат kx
пройти тест положительной определенности. В качестве объяснения этого шага говорится '% ensure function is symmetric.'
Я тоже проверил libsvm
но я не смог найти эту дополнительную операцию там.
Однако внутреннее произведение уже симметрично, и этот шаг обычно используется для превращения неопределенных матриц в положительно определенные матрицы. Меня немного смущает, почему внутреннее ядро продукта не проходит тест положительной определенности?
2 ответа
Если u, v оба являются векторными строками (т. Е. K вычисляется как скаляр), K будет только положительно определенным, если K= точка (u,v)>0.
Если u и v являются более общими матрицами (а не векторами строк) и u~=v, то K=u*v'обычно не будет симметричным, не говоря уже о положительно определенном. Даже когда u=v, K будет неотрицательно определенным, но не будет строго положительно определенным, если u не имеет полного ранга строки. Однако дополнительная матрица 1./diag(boxconstraint) строго положительно определена при условии, что все boxconstraint(i)>0. Добавление неотрицательно определенной матрицы к строго положительно определенной матрице всегда дает строго положительно определенный результат.
Хорошо, то, что вы говорите, имеет смысл на самом деле, когда я создаю игрушечный набор данных с полным рангом строки, внутренняя матрица продуктов становится положительно определенной. Если есть даже две линейно зависимые строки, то это больше не является положительно определенным. Я приму ваш ответ. Благодарю.