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

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

[[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 は、ビジネスに関する洞察を解釈し、すべての目標の達成を支援します。多くの企業が基...

AIが中国の山水画を生成!プリンストン大学の女子学生が卒業制作で描いた線と筆致は、人間の観察者の半数を騙した。

GAN を使用して作品を制作することは新しいことではないようです。 2019年、NVIDIAはGT...

人工知能倫理ガバナンスは早急に実践段階へ移行する必要がある

今日の社会では、デジタル工業化と産業のデジタル化により、デジタル世界と物理世界の深い融合と発展が促進...

モデルが 10 倍大きくなると、パフォーマンスは何倍向上しますか? Googleの研究者が調査を実施

ディープラーニング モデルが大きくなるにつれて、あらゆる種類のハイパーパラメータ調整を行うのは非常に...

将来、人工知能は人間の意識を発達させるでしょうか?

今日はそれについて話しましょう。あらゆるものには規則性がある。これを植物と生物学の2つの観点から議論...

200日!上海の18歳の高校生が、250行のPythonコードで「魂を注入」したロボットを自作した。

以前、22歳の何さんは卒業プロジェクトで「理工系男子の究極のロマンス」を解釈しました。ハードコアな卒...

危険が迫っています!マスク氏、AIが5年以内に人間を超える可能性があると警告

[[335742]]メディアの報道によると、7月30日、マスク氏はニューヨークタイムズ紙との独占イン...

強く連結されたコンポーネントを解決するための Tarjan アルゴリズムを実装する 20 行のコード

今日紹介するアルゴリズムは Tarjan と呼ばれていますが、これも非常に奇妙な名前です。奇妙なのは...

AIがサプライチェーンを変革する7つの方法

ビジネスにおける AI の役割は拡大し続けています。これは、サプライ チェーンとビジネス プロセスの...

...

科学者らが自己再生材料に使える3Dプリント「生きたインク」を開発

[[437285]]この記事はLeiphone.comから転載したものです。転載する場合は、Leip...

上海交通大学卒業生によるソロ作品! 50年間のゼロ進歩アルゴリズム問題が解決された

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

...

...