第 2 週 | スタンフォード CS229 機械学習

序文

この記事はスタンフォード大学 CS229 機械学習コースの学習ノートです

この記事の主要部分は黄海光博士からの転載です.リンクは記事の最後にあります. 興味がある場合は、ノートのホームページに直接アクセスして、対応するコース教材と宿題コードをダウンロードできます。

コース公式 Web サイト: CS229: 機械学習 (stanford.edu)

コースビデオ:スタンフォード CS229: 機械学習コース、講義 1 - Andrew Ng (2018 年秋) - YouTube

ノートの概要:ノートの概要 | Stanford CS229 Machine Learning_ReturnTmp のブログ - CSDN ブログ

2週目

4. 複数の変数を使用した線形回帰

4.1 多次元特徴

参考ビデオ: 4 - 1 - 複数の機能 (8 分).mkv

これまで、単変量/特徴量の回帰モデルを検討してきましたが、今度は住宅価格モデルに部屋数や階数などの特徴量を追加して、複数の変数を持つモデルを形成します。 are ( x 1 , x 2 , . . , xn ) \left( {x_{1}},{x_{2}},...,{x_{n}} \right)( ×1バツ2... バツ

さらに機能を追加した後、新しいアノテーションのセットを導入します。

n は特徴の数を表します

x ( i ) {x^{\left( i \right)}}バツ(i)代表第 i i iトレーニング インスタンスは、特徴マトリックスのii 番目iはベクトル(vector) です。

たとえば、上記の

x ( 2 ) = [ 1416 3 2 40 ] {x}^{(2)}\text{=}\begin{bmatrix} 1416\\\ 3\\\ 2\\\ 40 \end{bmatrix}バツ( 2 ) = 1416 3 2 40

xj ( i ) {x}_{j}^{\left( i \right)}バツj()特徴マトリックスのiiを表しますi列のjjj の特徴、つまりiiiトレーニング インスタンスjjthjの特徴。

上に示すように、 x 2 ( 2 ) = 3 、 x 3 ( 2 ) = 2 x_{2}^{\left( 2 \right)}=3,x_{3}^{\left( 2 \right)}= 2バツ2( 2 )=3 バツ3( 2 )=2

多変量仮説をサポートしますhhhを定義しますh θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + 。. . . . . . . . + θ nxn h_{\theta}\left( x \right)={\theta_{0}}+{\theta_{1}}{x_{1}}+{\theta_{2}}{x_{2} }+...+{\theta_{n}}{x_{n}}h( × )=0+1バツ1+2バツ2+...+バツ

この式ではn + 1 n+1となります。n+1 つのパラメータとnnn個の変数、式を簡素化するために、x 0 = 1 x_{0}=1バツ0=1の場合、式は次のように変換されます:h θ ( x ) = θ 0 x 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ nxn h_{\theta} \left( x \right)={ \theta_ {0}}{x_{0}}+{\theta_{1}}{x_{1}}+{\theta_{2}}{x_{2}}+...+{\theta_{n }} {x_{n}}h( × )=0バツ0+1バツ1+2バツ2+...+バツ

このとき、モデル内のパラメータはn + 1 n+1となります。n+1次元ベクトル、トレーニング インスタンスもn + 1 n+1n+1次元ベクトル、特性行列XXXの次元は m ∗ ( n + 1 ) m*(n+1)ですメートル( n+1 )したがって、式は次のように簡略化できます:h θ ( x ) = θ TX h_{\theta} \left( x \right)={\theta^{T}}Xh( × )=TX上付き文字TTT は行列転置を表します。

4.2 多変量勾配降下法

参考ビデオ: 4 - 2 - 複数の変数の勾配降下法 (5 分).mkv

単変量線形回帰と同様に、多変量線形回帰でも、すべてのモデリング誤差の二乗和であるコスト関数、つまり J ( θ 0 , θ 1 . . . θ n ) = 1 2 m ∑ i を構築します。 = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J\left( {\theta_{0}},{\theta_{1}}...{\theta_{ n}} \right )=\frac{1}{2m}\sum\limits_{i=1}^{m}{ { {\ left ( h_{\theta} \left({x}^{\left( i \right)} \right)-{y}^{\left( i \right)} \right)}^{2}}}J(私は01...)=2m _1i = 1メートル( h( ×( i ) )y( i ) )2

その中:h θ ( x ) = θ TX = θ 0 + θ 1 x 1 + θ 2 x 2 + 。+ θ nxn h_{\theta}\left( x \right)=\theta^{T}X={\theta_{0}}+{\theta_{1}}{x_{1}}+{\theta_{ 2}}{x_{2}}+...+{\theta_{n}}{x_{n}}h( × )=TX _=0+1バツ1+2バツ2+...+バツ

私たちの目標は、一変量線形回帰問題と同様、コスト関数を最小化するパラメータのセットを見つけることです。
多変量線形回帰のバッチ勾配降下法アルゴリズムは次のとおりです。

たった今:

導関数を取得すると、次のようになります。

n >= 1の場合n >= 1n>=1のとき、
θ 0 : = θ 0 − a 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x 0 ( i ) { {\theta }_{0}}: = { {\theta }_{0}}-a\frac{1}{m}\sum\limits_{i=1}^{m}{({ {h}_{\theta }}({ { x } ^{(i)}})-{ {y}^{(i)}})}x_{0}^{(i)}0:=0あるメートル1i = 1メートル( h( ×( i ) )y( i ) )x0()

θ 1 : = θ 1 − a 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x 1 ( i ) { {\theta }_{1}}:={ { \シータ }_{1}}-a\frac{1}{m}\sum\limits_{i=1}^{m}{({ { h}_{\theta }}({ {x}^{( i)}})-{ {y}^{(i)}})}x_{1}^{(i)}1:=1あるメートル1i = 1メートル( h( ×( i ) )y( i ) )x1()

θ 2 : = θ 2 − a 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x 2 ( i ) { {\theta }_{2}}:={ { \シータ }_{2}}-a\frac{1}{m}\sum\limits_{i=1}^{m}{({ {h}_ {\theta }}({ {x}^{( i)}})-{ {y}^{(i)}})}x_{2}^{(i)}2:=2あるメートル1i = 1メートル( h( ×( i ) )y( i ) )x2()

まず一連のパラメーター値をランダムに選択し、すべての予測を計算し、すべてのパラメーターに新しい値を与えるということを収束するまで繰り返します。

コード例:

計算代价関数数
J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J\left( \theta \right)=\frac{1}{2m} \sum\limits_{i=1}^{m}{ { {\left( {h_{\theta}}\left( {x^{(i)}} \right)-{y^{(i)} } \右)}^{2}}}J()=2m _1i = 1メートル( h( ×( i ) )y( i ) )2
その中:h θ ( x ) = θ TX = θ 0 x 0 + θ 1 x 1 + θ 2 x 2 + 。+ θ nxn {h_{\theta}}\left( x \right)={\theta^{T}}X={\theta_{0}}{x_{0}}+{\theta_{1}}{ x_{1}}+{\theta_{2}}{x_{2}}+...+{\theta_{n}}{x_{n}}h( × )=TX _=0バツ0+1バツ1+2バツ2+...+バツ

Pythonコード:

def computeCost(X, y, theta):
    inner = np.power(((X * theta.T) - y), 2)
    return np.sum(inner) / (2 * len(X))

4.3 勾配降下法の実践 1 - 特徴のスケーリング

参考ビデオ: 4 - 3 - 勾配降下法の実践 I - 特徴スケーリング (9 分).mkv

多次元特徴の問題に直面した場合、これらの特徴が同様のスケールを持つことを確認する必要があります。これにより、勾配降下法アルゴリズムがより速く収束するのに役立ちます。

住宅価格の問題を例に挙げます。家の大きさと部屋の数という 2 つの特徴を使用するとします。大きさの値は 0 ~ 2000 平方フィート、部屋の数の値は 0 ~ 5 です。 2 つのパラメーターは水平座標と垂直座標であり、コスト関数の等高線マップを描画すると、画像が非常に平坦に表示され、勾配降下法アルゴリズムが収束するまでに多くの反復が必要であることがわかります。

解決策は、すべての特徴を可能な限り -1 から 1 の間でスケーリングすることです。図に示すように:

最も簡単な方法は、次のように設定することです: xn = xn − μ nsn { {x}_{n}}=\frac{ { {x}_{n}}-{ { {\mu}_{n}}}{ { { s}_{n}}}バツ=sバツメートル,其中 μ n {\mu_{n}} メートルは平均です、sn {s_{n}}sは標準偏差です。

4.4 勾配降下法演習 2 の学習率

参考ビデオ: 4 - 4 - 勾配降下法の実践 II - 学習速度 (9 分).mkv

勾配降下法アルゴリズムの収束に必要な反復回数はモデルによって異なり、事前に予測することはできませんが、反復回数とコスト関数のグラフを描くことで、アルゴリズムが収束傾向にあることを観察できます

コスト関数の変化を何らかのしきい値 (0.001 など) と比較するなど、収束をテストする自動方法もありますが、通常は上記のようなグラフを確認する方が良いでしょう。

学習率がaaの場合、勾配降下法アルゴリズムの各反復は学習率の影響を受けます。aが小さすぎる場合、収束に達するまでに必要な反復回数が非常に多くなります。学習率aaa が大きすぎる場合、各反復でコスト関数が削減されず、極小値を超えて収束しない可能性があります。

通常は、いくつかの学習率を試すことを検討できます。

α = 0.01,0.03,0.1,0.3,1,3,10 \alpha=0.01,0.03,0.1,0.3,1,3,10ある=0.01、0.03、0.1、0.3、1、3、10 _ _ _ _ _ _ _ _ _ _ _ _

4.5 固有回帰と多項式回帰

参考ビデオ: 4 - 5 - 特徴と多項式回帰 (8 分).mkv

たとえば、住宅価格予測問題、

h θ ( x ) = θ 0 + θ 1 × 間口 + θ 2 × 奥行き h_{\theta}\left( x \right)={\theta_{0}}+{\theta_{1}}\times{間口}+{\theta_{2}}\times{深さ}h( × )=0+1×フロントステージ_ _ _ _ _+2×_ _

x 1 = 間口 {x_{1}}= 間口バツ1=正面(間口幅) × 2 奥行き{x_{2} } 奥行きバツ2=d e pt h(纵向深度),x = 間口∗ 奥行き = 面積x=間口*奥行き=面積バツ=フロントステージ_ _ _ _ __ _=(定義)、つまり:h θ ( x ) = θ 0 + θ 1 x {h_{\theta}}\left( x \right)={\theta_{0}}+{\theta_{1} } としますバツh( × )=0+1×
線形回帰はすべてのデータに適しているわけではありません。場合によっては、二次モデルなどのデータに適合する曲線が必要になりますh θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 2 h_{\theta} \ left( x \right)={\theta_{0}}+{\theta_{1}}{x_{1}}+{\theta_{2}}{x_{2}^2}h( × )=0+1バツ1+2バツ22
デフォルト値: h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 2 + θ 3 x 3 3 h_{\theta}\left( x \right)={\theta_{0}} + {\theta_{1}}{x_{1}}+{\theta_{2}}{x_{2}^2}+{\theta_{3}}{x_{3}^3}h( × )=0+1バツ1+2バツ22+3バツ33

多くの場合、どのモデルを試すかを決定する前に、データを観察する必要があります。さらに、次のものも作成できます。

x 2 = x 2 2 、x 3 = x 3 3 { {x}_{2}}=x_{2}^{2}、{ {x}_{3}}=x_{3}^{3}バツ2=バツ22バツ3=バツ33したがって、モデルは線形回帰モデルに変換されます

関数グラフのプロパティに従って、次のものも作成できます。

h θ ( x ) = θ 0 + θ 1 ( サイズ ) + θ 2 ( サイズ ) 2 { { { h}}_{\theta}}(x)={ {\theta }_{0}}\text{ +}{ {\theta }_{1}}(サイズ)+{ {\theta}_{2}}{ {(サイズ)}^{2}}h( × )=0+1(サイズ) _ _+2(サイズ) _ _2

または:

h θ ( x ) = θ 0 + θ 1 ( サイズ ) + θ 2 サイズ { { {h}}_{\theta}}(x)={ {\theta }_{0}}\text{+}{ {\theta }_{1}}(サイズ)+{ {\theta }_{2}}\sqrt{size}h( × )=0+1(サイズ) _ _+2そうですね_ _

注:多項式回帰モデルを使用する場合は、勾配降下アルゴリズムを実行する前に特徴のスケーリングが必要です

4.6 正規方程式

参考動画:4~6~正規方程式(16分).mkv

これまでは勾配降下法アルゴリズムを使用してきましたが、一部の線形回帰問題では正規方程式アプローチの方が優れた解決策となります好き:

正規方程式は、次の方程式を解くことでコスト関数を最小化するパラメータを見つけることです: ∂ ∂ θ j J ( θ j ) = 0 \frac{\partial}{\partial{\theta_{j}}}J\left ( {\theta_{j}} \right)=0∂θ _jJ(私はj)=0
トレーニング セットの特徴マトリックスがXXX (x 0 = 1 { {x}_{0}}=1バツ0=1 ) トレーニング セットの結果はベクトルyyyを計算し、正規方程式を使用してベクトルθ = ( XTX ) − 1 XT y \theta ={ {\left( {X^T}X \right)}^{-1}}{X^{T} }y=( XTX )_1 ×タイ._
上付き文字T は行列の転置を表し、上付き文字 -1 は行列の逆行列を表します。行列A = XTXA={X^{T}}X=バツTX,则:XTX) − 1 = A − 1 { {\left( {X^T}X \right)}^{-1}}={A^{-1}}( XTX )_1=1
以下は例としてデータを表します。

たった今:

正規方程式法を使用してパラメータを解きます。

Octaveでは、正規方程式は次のように記述されます。

pinv(X'*X)*X'*y

注:不可逆的な行列の場合(通常、フィート単位のサイズとメートル単位のサイズの両方が含まれるなど、特徴が独立していないため、または特徴の数がトレーニング セットの数よりも大きい可能性があるため)、正規方程式は次のようになります。方法は利用できません

勾配降下法と正規方程式の比較:

勾配降下法 正規方程式
学習率α \alphaを選択する必要がありますある 不要
複数回の反復が必要 1 回の操作で結果が得られる
特徴量nnのとき大きなnにも適しています ( XTX ) − 1 { {\left( { {X}^{T}}X \right)}^{-1}} を計算する必要があります ( XTX )_1特徴量 n が大きい場合、逆行列の計算時間はO ( n 3 ) O\left( { {n}^{3}} \right)( n3 )、一般的に言えば、nnnが10000未満の場合は許容されます
あらゆるタイプのモデルに適しています 線形モデルにのみ適しており、ロジスティック回帰モデルなどの他のモデルには適していません

要約すると、特徴変数の数が大きくない限り、標準方程式はパラメーター $\theta$ を計算するための優れた代替手段となります。具体的には、特徴変数の数が 10,000 未満である限り、通常は勾配降下法の代わりに標準方程式法を使用します。

学習アルゴリズムがますます複雑になるにつれて、たとえば、ロジスティック回帰アルゴリズムなどの分類アルゴリズムについて話すとき、これらのアルゴリズムでは実際には標準方程式法を使用できないことがわかります。より複雑な学習アルゴリズムの場合は、引き続き勾配降下法を使用する必要があります。したがって、勾配降下法は、多数の特徴変数を使用する線形回帰問題に使用できる非常に便利なアルゴリズムです。または、標準方程式法が適していない、または使用できない他のアルゴリズムについては、後のコースで説明します。ただし、この特定の線形回帰モデルでは、標準方程式法が勾配降下法より高速な代替手段となります。したがって、特定の問題と特徴変数の数に応じて、両方のアルゴリズムを学習する価値があります。

正規方程式のPython実装:

import numpy as np
    
 def normalEqn(X, y):
    
   theta = np.linalg.inv(X.T@X)@X.T@y #X.T@X等价于X.T.dot(X)
    
   return theta

4.7 正規方程式と不可逆性 (オプション)

参考ビデオ: 4 - 7 - 正規方程式の非可逆性 (オプション) (6 分).mkv

このビデオでは、正規方程式とその不可逆性について説明します。
これは深い概念であり、私はそれについていつも質問されるので、ここで議論したいと思います。深い概念なので、このオプションの資料をゆっくり読んでください。おそらくあなたはそれについて深く探求されるかもしれません、そしてそれはそうなるでしょう将来理解するのに非常に役立ちます。ただし、正規方程式と線形回帰の関係が理解できていなくても、問題ありません。

私たちが話したい問題は次のとおりです: θ = ( XTX ) − 1 XT y \theta ={ {\left( {X^{T}}X \right)}^{-1}}{X^{ T}}y=( XTX )_1 ×Ty _

備考: このセクションの最後に、導出プロセスを書き留めます。

θ \thetaを計算するときに、何人かの学生が私に尋ねたことがあります。θ =inv(X'X ) X'y、行列X ' X X'Xバツ Xが不可逆だったらどうなるでしょうか?
線形代数を少しでも知っているなら、一部の行列は可逆であり、一部の行列は可逆でないことを知っているかもしれません。これらの非可逆行列を特異行列または縮退行列と呼びます
質問のポイントはX ' X X'Xバツ' Xの不可逆問題はオクターブ、これを使用してθ \thetaθを計算すると正規解が得られます。Octaveでは、行列の逆行列を見つける関数が 2 つあり、1 つは と呼ばれpinv()もう 1inv()つは と呼ばれます。2 つの違いは少し計算プロセスが必要で、1 つはいわゆる擬似逆行列で、もう 1 つは と呼ばれます。その逆。pinv()数学的プロセスはθ \thetaを使用して行列X ' X X'Xであってもθの値バツ Xは不可逆的です。」

の具体的な違いは何ですかpinv()?inv()

inv()高度な数値計算の概念を紹介しますたとえば、住宅価格を予測する場合、x 1 {x_{1}}の場合、バツ1フィート単位の家x 2 {x_{2}}バツ2は平方メートルで計算される家です。同時に、1 メートルが 3.28 フィートに等しいこともわかります (小数点第 2 位に四捨五入)。このようにして、2 つの固有値は常に制約を満たします: x 1 = x 2 ∗ ( 3.28 ) 2 {x_{1}}={x_{2}}*{ { \left( 3.28 \right)}^{2}}バツ1=バツ2( 3.28 )実際、これら 2 つの関連する固有値は、行列X' X X'X
のような線形方程式で示すことができます。バツ X は元に戻せなくなります。」

2 番目の理由は、多数の固有値を使用して学習アルゴリズムを実践しようとすると、行列X ' X X'Xが生成される可能性があることです。バツ' X元に戻せません。
具体的にはmmたとえば、 mが n 以下の場合mm がmが10 に等しいnnn は100 で特徴の数に相当します。近似を見つけるには( n + 1 ) (n + 1)( n+1 )次元パラメータ ベクトルθ \thetaθは 101 次元のベクトルになるため、10 個のトレーニング例から 101 個のパラメータを満たす値を見つけようとすると、時間がかかるかもしれませんが、それが常に良い考えであるとは限りません。なぜなら、これまで見てきたように、これら 100 または 101 のパラメーターに適合するサンプルは 10 個しかないため、データはまだかなり小さいからです。

これらの 100 または 101 のパラメーターを取得するために小さなデータ サンプルを使用する方法については後ほど説明します。通常は、特定の特徴を削除するか、特定のテクニックを使用することにより、正則化と呼ばれる線形代数手法を使用します。nnよりもmNさんが若い頃の問題。トレーニング セットが比較的小さい場合でも、多くの機能を使用して多くの適切なパラメーターを見つけることができます。
つまり、行列X' X X'Xバツ' Xが特異であるか、見つかった他の行列が可逆でない場合は、そうすることをお勧めします。

まず、固有値に冗長な特徴があるかどうかを確認します ( x 1 {x_{1}}など)。バツ1そしてx 2 {x_{2}}バツ2は線形関係にあり、相互に一次関数です。同時に、いくつかの冗長なフィーチャがある場合、繰り返される 2 つのフィーチャのうちの 1 つを削除でき、2 つのフィーチャを同時に保持する必要がなく、不可逆性の問題が解決されます。したがって、まずすべての機能を観察して、冗長な機能があるかどうかを確認する必要があります。冗長な機能がある場合は、冗長でなくなるまで削除します。機能が多すぎる場合は、削除して使用する機能を減らします。できるだけ多くのコンテンツを、それ以外の場合は正則化の方法を検討します。
行列X' X X'Xの場合バツ' Xは不可逆ですが (通常、これは起こりません)、Octave、擬似逆関数で実現できますpinv()さまざまな線形代数ライブラリを使用するこのアプローチは、擬似逆関数と呼ばれます。たとえX'X X'Xバツ' Xは元に戻せませんが、アルゴリズムの実行プロセスは正しいです。つまり、不可逆行列の発生はめったに発生しないため、線形回帰のほとんどの実装では、不可逆問題はXTX {X^{T}}XバツTX元に戻すことができません。

コンテンツを追加します:

θ = ( XTX ) − 1 XT y \theta ={ {\left( {X^{T}}X \right)}^{-1}}{X^{T}}y=( XTX )_1 ×T y:

J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J\left( \theta \right)=\frac{1}{2m}\sum\限界_{i=1}^{m}{ { {\left( {h_{\theta}}\left( {x^{(i)}} \right)-{y^{(i)}} \right )}^{2}}}J()=2m _1i = 1メートル( h( ×( i ) )y( i ) )2
その中:h θ ( x ) = θ TX = θ 0 x 0 + θ 1 x 1 + θ 2 x 2 + 。+ θ nxn {h_{\theta}}\left( x \right)={\theta^{T}}X={\theta_{0}}{x_{0}}+{\theta_{1}}{ x_{1}}+{\theta_{2}}{x_{2}}+...+{\theta_{n}}{x_{n}}h( × )=TX _=0バツ0+1バツ1+2バツ2+...+バツ

ベクトル表現形式を行列表現形式に変換すると、J ( θ ) = 1 2 ( X θ − y ) 2 J(\theta )=\frac{1}{2}{ { \left( X\theta - y \right)}^{2}}J ( θ )=21( y )2、ここでXXXはmmですmnnn列の行列 (mmmはサンプル数、nnnは特徴の数です)、θ \thetaθはnnですn行 1 列yyyはmmですJ ( θ ) J(\theta )のm行 1 列J ( θ )は次のように変換されます

J ( θ ) = 1 2 ( X θ − y ) T ( X θ − y ) J(\theta )=\frac{1}{2}{ {\ left( X\theta -y\right)}^{ T}}\left( X\theta -y \right)J ( θ )=21( y )T( y )

= 1 2 ( θ TXT − y T ) ( X θ − y ) =\frac{1}{2}\left( { {\theta }^{T}}{ {X}^{T}}-{ {y}^{T}} \right)\left(X\theta -y \right)=21(私はTX _Ty( y )

= 1 2 ( θ TXTX θ − θ TXT y − y TX θ − y T y ) =\frac{1}{2}\left( { { \theta }^{T}}{ {X}^{T }}X\シータ -{ {\シータ}^{T}}{ {X}^{T}}y-{ {y}^{T}}X\シータ -{ {y}^{T}}y \右)=21(私はTX _TXθ _TX _Ty _yTXθ _yタイ)_

次はJ ( θ ) J(\theta )ですJ ( θ )偏導関数には、次の行列の導出規則が必要です。

d AB d B = AT \frac{dAB}{dB}={ {A}^{T}}dB _dAB _ _=T

d XTAX d X = 2AX \frac{d{ {X}^{T}}AX}{dX}=2AXdX _dX _税金__=2A × _

フ:

∂ J ( θ ) ∂ θ = 1 2 ( 2 XTX θ − XT y − ( y TX ) T − 0 ) \frac{\partial J\left( \theta \right)}{\partial \theta }=\frac {1}{2}\left(2{ {X}^{T}}X\シータ -{ {X}^{T}}y -{}({ {y}^{T}}X )^{ T}-0 \右)∂θ _J ( θ )=21( 2X _TXθ _バツTy _( yTX )_T0 )

= 1 2 ( 2 XTX θ − XT y − XT y − 0 ) =\frac{1}{2}\left(2{ { X}^{T}}X\theta -{ {X}^{T} }y -{ {X}^{T}}y -0 \right)=21( 2X _TXθ _バツTy _バツTy _0 )

= XTX θ − XT y ={ {X}^{T}}X\theta -{ {X}^{T}}y=バツTXθ _バツTy _

∂ J ( θ ) ∂ θ = 0 \frac{\partial J\left( \theta \right)}{\partial \theta }=0∂θ _J ( θ )=0

则有θ = ( XTX ) − 1 XT y \theta ={ {\left( {X^{T}}X \right)}^{-1}}{X^{T}}y=( XTX )_1 ×Ty _

5. オクターブチュートリアル

Octave は使用されなくなりました。最新の Python コース コードはここから入手できます。

おすすめ

転載: blog.csdn.net/m0_63748493/article/details/132087305