1

Courseraで利用可能な機械学習コースの機能をベクトル化する方法を理解している問題があります。途中でCoursera機械学習:グラデーションデサントベクトル化

、アンドリュー・ウは仮説は、xを掛けたシータの転置にベクトル化することができることを説明しています

H(x) = theta' * X 

私の最初の問題は、私は練習でこれを実装する場合です。なぜ紙のベクトル化はthetaの転置にxを掛けたのですが、OctaveではX回のthetaですか?

theta'*X % leads to errors while multiplying 

私の2番目の問題は、最初の問題に続きます。

私は勾配降下機能のこの合計をベクトル化したい:

sum((h(x)-y)*x)) 

私は本当にあなたがこの度ベクトル化に着く方法を理解していない:

X'*(h(x)-y) 

誰もがこれを説明するだろうか?

+1

これに答えるには、行列のサイズ(X、theta、x、y ...)を知ることが重要です。 Btw、 '' 'を転置として使うべきではありません。 ''を使用してください。 – Andy

+0

あなたの答えをありがとう。現在のところ、Xの値は、47x3の行列で、値と値が入っています:https://github.com/yhyap/machine-learning-coursera/blob/master/mlclass-ex1/ex1data2.txt 3列目はy(47x1行列)です。シータは[0; 0; 0]。この特定のケースでは、なぜこのようにvecotrizeできるのか分かりますか? – etiennefr

+0

[機械学習 - バッチ勾配降下を使用した線形回帰]の可能な複製(https://stackoverflow.com/questions/32274474/machine-learning-linear-regression-using-batch-gradient-descent) – rayryeng

答えて

1

味の問題です。通常、行列 - ベクトル乗算、すなわち、あなたが好むものを持つことが慣習である。 すべてをに転記すると、あるモードから別のモードに切り替えることができます。作品X*thetaあなたの乗算は、その後、転置式はX*thetaXの各行のtheta.' * X.'

ある一つのサンプルポイントのデータ(カーネル関数値)が含まれている場合それは、です。

theta.'*Xの規則では、サンプルポイントデータを含むのはXの列です。

したがって、常にコンテキストに依存し、行として定義され、列ベクトルとしてどのように定義され、どのように大きなオブジェクトや演算に組み入れられますか。