線形回帰の勾配降下アルゴリズムのオクターブシミュレーション

線形回帰の勾配降下アルゴリズムのオクターブシミュレーション

[[190464]]

勾配降下法の理論部分では、導出プロセスが非常にわかりにくいと嘆いたことがあり、より直感的な感覚が得られるシミュレーションを期待していました。昨晩、Octave シミュレーションを終えたとき、達成感を抑えるのは難しかったです。シミュレーションのプロセスと結果を共有し、前回の記事で十分に理解できなかった部分を補います。

勾配降下法アルゴリズムでは、連続微分法を使用して、このアルゴリズムの非常に重要な 2 つの式を取得します。1 つは J(θ) の解の式で、もう 1 つは θ の解の式です。

シミュレーションでは、これら 2 つの式を直接使用して、J(θ) の分布面と θ の解の経路を描画します。

提案は次のとおりです。チェーンレストラン会社の新店舗開店の利益を予測しています。チェーングループの店舗の地域人口データと利益額は持っています。線形回帰アルゴリズムを使用して人口と利益の関係を確立し、新店舗の利益を予測して店舗の運営見通しを評価する必要があります。

まず、下の図に示すように、会社のデータを座標グラフにプロットします。構築する必要があるモデルは、人口と利益の関係に最もよく適合する直線です。そのモデルは次のとおりです。

θ を近似するプロセスでは、次のように勾配降下法を実装します。1500 回の反復 (最適な適合点に向かって 1500 ステップを実行することに相当) の後、1500 ステップ後に θ=[-3.630291,1.166362] が得られます。3000 回の反復の後、その値は [-3.878051,1.191253] になります。これを 100,000 回実行すると、その値は [-3.895781,1.193034] になります。初期のステップは非常に大きく、その後、最適点までの距離が近づくにつれて、勾配がどんどん小さくなり、ステップもどんどん小さくなることがわかります。計算時間を節約するには、1500 ステップで十分な反復回数になります。その後、近似曲線を描くと、近似度が良好であることがわかります。

次の図はJ(θ)の分布面です。

次は、等高線マップ上で見つけた最適な θ 値の位置です。これは実際には前の図と重なることがあります。

キーコードは次のとおりです。

1. j(theta)を計算する

  1. 関数J = computeCost(X, y, theta)
  2. %COMPUTECOST線形回帰計算コスト
  3. % J = COMPUTECOST(X, y, theta )theta
  4. Xyデータポイントを適合させるため線形回帰%パラメータ
  5.   
  6. %いくつかの有用なを初期化する 
  7. m = length(y); %トレーニング例
  8.   
  9. 必要がある 次の変数を正しく返す
  10. 0 = 0;
  11.   
  12. % ======================== ここにあなたのコードを入力 =======================
  13. % 手順:特定θ選択コストを計算する
  14. % Jコスト設定する必要があります。
  15. h = X*シータ;
  16. e = hy;
  17. J = e'*e/(2*m)
  18. % =========================================================================
  19.   
  20. 終わり 

2. 勾配降下アルゴリズム:

  1. 関数[theta, J_history] ​​= gradientDescent(X, y, theta, alpha, num_iters)
  2. %GRADIENTDESCENT 勾配降下法を実行してθを学習する
  3. % theta = GRADIENTDESENT(X, y, theta, alpha, num_iters)はthetaを次のように更新します。  
  4. %学習率 alphanum_iters の勾配ステップを実行
  5.   
  6. %いくつかの有用なを初期化する 
  7. m = length(y); %トレーニング例
  8. J_history = ゼロ(num_iters、1);
  9.   
  10. 反復回数 = 1:num_iters
  11.   
  12. % ======================== ここにあなたのコードを入力 =======================
  13. % 手順:パラメータベクトルに対して単一の勾配ステップを実行する
  14. % シータ。
  15. %
  16. % ヒント: デバッグ中に、印刷する便利です 
  17. ここではコスト関数(computeCost)%勾配を示します。
  18. %
  19.       
  20. h=X*シータ;
  21. e=ハイ;
  22. シータ = シータ-アルファ*(X'*e)/m;
  23.   
  24. % ============================================================
  25.   
  26. %各反復コストJを節約する
  27. J_history(iter) = computeCost(X, y, theta);
  28.   
  29. 終わり 
  30.   
  31. 終わり 

<<:  TensorFlow を使い始めるための重要なポイントをここにまとめました。まだ怠ける理由がありますか?

>>:  人工知能と自然言語処理の概要: AI の 3 つの主要段階と NLP の主な応用分野

ブログ    

推薦する

AIベースのクラウド管理ツールではコンテキストが重要

AI を活用したクラウド管理ツールはまだ導入の初期段階にありますが、IT 業界の専門家は、このような...

...

トレンドにおける危険とチャンス: 生成 AI の黄金期をどう捉えるか?

ChatGPTは今年9月末に音声チャットと画像認識機能を追加しました。テキスト駆動型と比較して、C...

本当に感動しました! Sora はまだリリースされていませんが、すでにお金を稼いでいる人がいます。

みなさんこんにちは。私はXuanyuanです。 Sora の人気はここ数日続いています。今日は、So...

自己教師あり学習:AI技術の将来の方向性

ディープラーニングは人工知能の分野に多大な貢献をしてきましたが、その技術自体には依然として致命的な欠...

わずか 2 分で、シングル ビューの 3D 生成が高速かつ良好に行えます。北京大学などが新しいRepaint123法を提案

画像を 3D に変換する方法としては、通常、スコア蒸留サンプリング (SDS) 方式が採用されていま...

カリフォルニア大学バークレー校のDeepMindと他の企業が共同で、仮想と現実の境界を打ち破る現実世界シミュレーターをリリースした。

現実世界のシミュレーターが登場!トレーニングされた大規模モデルが現実の物理世界に適応できないのではな...

普通のプログラマーから人工知能の仕事に転職するにはどうすればいいでしょうか?

人工知能は非常にホットな話題になっています。普通のプログラマーとして、人工知能に転向する方法。プログ...

...

人工知能による雇用促進

近年、人工知能は急速に発展し、新たな科学技術革命と産業変革を主導する中核的な原動力となり、人類の生産...

...

...

5分間の技術講演 | AI技術と「サイバー暴力」のガバナンス

パート01 「ネットいじめ」とは何ですか? 「サイバー暴力」とは、インターネット上で文章、画像、動画...

オブジェクトストレージがAIと機械学習に適している3つの理由

[[328561]]今日、あらゆるタイプの企業が人工知能や機械学習のプロジェクトに取り組んでいますが...