给定相同的A
,b
和L2正则化参数beta = 0
,为什么ridge
和\
会提供两种不同的解决方案?
b = [ 0
-2
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3
-3 ];
A = [
1 0 0 0
0.750000000000000 0.250000000000000 0 0
0.500000000000000 0.500000000000000 0 0
0.250000000000000 0.750000000000000 0 0
0 1 0 0
0 0.750000000000000 0.250000000000000 0
0 0.500000000000000 0.500000000000000 0
0 0.250000000000000 0.750000000000000 0
0 0 1 0
0 0 0.750000000000000 0.250000000000000
0 0 0.500000000000000 0.500000000000000
0 0 0.250000000000000 0.750000000000000
0 0 0 1
];
>> ridge(b, A, 0,0)
ans =
0.6942
-0.1856
0
-0.0468
>> A \ b
ans =
-0.8604
-3.4188
-2.8970
-3.0343
答案 0 :(得分:1)
这是因为,正如你可以在documentation中看到的那样,ridge
使用的算法与mldivide
略有不同:因为“经典”的伪逆向((A' * A)^ - 1 * A )可能对(A' * A)的小错误敏感^ - 1 接近奇异值,公式被修改为(A' * A - kI)^ - 1 * A ,减少问题的条件。