RBF и псевдообратный XOR - PullRequest
       22

RBF и псевдообратный XOR

0 голосов
/ 07 марта 2012

Проблема, которую я пытаюсь понять, проста, но я не могу получить правильный результат в Matlab. Фактическая проблема заключается в том, что я хочу получить весовые векторы входного RBF для 2-х скрытых слоев, используя только простое расстояние как функцию, то есть без функции Байса или Гаусса в качестве моего φ. Я буду использовать функцию с 2 центрами, скажем, 0,0 и 1,1. Так что это даст мне матрицу φ:

[0 кв. (2); 1 1; 1 1; sqrt (2) 0] * [w1; w2] = [0; 1; 1; 0] Как определено моей функцией XOR.

Когда я применяю псевдообратную Φ в Matlab * [0; 1; 1; 0], хотя я получаю [0,33; 0,33], что не является правильным значением, которое позволило бы мне получить правильные выходные значения [0; 1; 1; 0].

т.е. .33 * sqrt (2)! = 0.

Может кто-нибудь объяснить мне, почему это так?

1 Ответ

0 голосов
/ 07 марта 2012

Я сделаю это.Матрица, которую я назову A, A = [0 sqrt(2) ; 1 1; 1 1; sqrt(2) 0], имеет полный ранг столбца, но не полный ранг строки, то есть rank(A) = 2.Затем вы по существу решаете систему Ax = b, где x - ваш весовой вектор.Вы также можете просто сделать x = A\b в Matlab, который, предположительно, является гораздо более точным ответом.Я получаю тот же ответ, что и вы.Это очень грубое объяснение, когда ваша система не может быть решена для определенного вектора решения, это означает, что не существует такого вектора x, который можно решить для Ax = b.Matlab пытается оценить ответ как можно ближе.Я предполагаю, что вы использовали pinv, если вы посмотрите на справку Matlab, она говорит:

Если A имеет больше строк, чем столбцов и не имеет полного ранга, то проблема переопределения наименьших квадратов

minimize norm(A*x-b)

не имеет уникального решения.Два из бесконечно многих решений -

x = pinv(A)*b 

и

y = A\b 

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

...