Проблема при попытке написать векторизованную матричную запись для алгоритма градиентного спуска - PullRequest
0 голосов
/ 11 мая 2019

Я пытался написать векторизованную запись для итеративного процесса сходимости тета-значений в алгоритме градиентного спуска. Я нашел векторную запись, но по некоторым причинам значения не сходятся. Я пробовал много разных значений для альфы, но ни одно из них, похоже, не работает. Любая помощь приветствуется. Спасибо!

X=[1,2104,5,1,45;1,1416,3,2,40;1,1534,3,2,30;1,852,2,1,36]
y=[460;232;315;178]
m=size(X,1)
alpha=0.01
n+1=size(X,2)
theta=zeros(n+1,1)
for it=1:100,
    theta=theta-((alpha/m)*(X'*((X*theta)-y)))
end;
disp(theta)

Предполагается, что он даст результат тэта-значений, но он выбрасывает некоторые значения в течение нескольких итераций и затем переходит к Nan. Кроме того, значения до Nan нигде не близки к тем, которые я получил из метода нормальных уравнений.

1 Ответ

0 голосов
/ 14 мая 2019

Я нашел это. Так как я не нормализовал данные, я получил огромные значения для тэты, и вскоре он перешел к Inf, а затем к NaN. После нормализации данных алгоритм работал нормально.

...