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

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

[[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 の主な応用分野

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

ドローンは将来何ができるのか

ドローンは、専用のリモートコントロールユニットを介して自律飛行できる無人航空機 (UAV) です。コ...

AI はフロントエンドコードを生成できますか?

この号で共有されているのは、AIGC の用途の 1 つは、フロントエンド コードの作成または生成を支...

OpenAI の Whisper モデルを使用して音声をテキストに変換する

翻訳者 |ブガッティレビュー | Chonglou図1. OpenAI Whisperモデルの動作原...

彼女はウルトラマンを追い出すキーパーソンなのか? OpenAI CTOがビッグニュースを発表

OpenAI の内部紛争が 1 年経っても解決されていないとは思いもしませんでした。またしても爆発メ...

...

...

Kuaishouは、技術的な実践を共有する最初のFlutter交換会を開催しました

Flutter はますます多くの開発者や組織で使用されており、Kuaishou も Flutter ...

Java 上級: 負荷分散のための 5 つのアルゴリズムの詳細な理解

この記事はWeChatの公開アカウント「Android Development and Progra...

タッチから音声へ: 音声テクノロジーが IoT 環境をどう変えるか

猛威を振るう新型コロナウイルス感染症のパンデミックは、経済と社会に大きな打撃を与えている。この世界的...

データコレクターにおける TensorFlow を使用したリアルタイム機械学習

DataOps プラットフォームの真の価値は、ビジネス ユーザーとアプリケーションがさまざまなデータ...

...

表の数学的推論の正解率は98.78%です! UCLA が新しい「カメレオン推論フレームワーク」を発表

自然言語処理タスクで目覚ましい成功を収めた大規模言語モデル (LLM) は、優れたパフォーマンスを示...

Microsoft の 38 TB の内部データが漏洩!秘密鍵と3万件以上の仕事上の会話が漏洩、その背後にある理由は衝撃的

何か大きなことが起こりました!数か月前、マイクロソフトの AI 研究チームは、大量のオープンソースの...

...

2022 年の AI 開発とイノベーションのトップ 10 トレンド

イノベーションは終わりがなく、人工知能(AI) などのテクノロジーが静かに世界を変えています。人工知...