機械学習における勾配降下法

機械学習における勾配降下法

最大化問題は、機械学習アルゴリズムの非常に重要な部分です。ほぼすべての機械学習アルゴリズムの中核は、最大化問題の処理です。

この記事では、機械学習の分野で一般的に使用され、よく知られている最適化アルゴリズムをいくつか紹介します。この記事を読むと、次のことが理解できるようになります。

  • 勾配降下法とは何ですか?
  • 線形回帰モデルに勾配降下法を適用するにはどうすればよいでしょうか?
  • 勾配降下法を使用して大規模データを処理するにはどうすればよいですか?
  • 勾配降下法に関するヒント

さあ始めましょう!

勾配降下法

勾配降下法は、コスト関数を最小化するパラメータ値を見つけるための最適なアルゴリズムです。解析計算(線形代数演算など)では関数の最適解が得られない場合、勾配降下法を使用して問題を解決できます。

勾配降下法の直感的な体験

シリアルを食べたり、食べ物を保存したりするためによく使用する大きなボウルを想像してください。コスト関数の形状はこのボウルの形状に似ています。

ボウルの表面上の任意のランダムな位置は、現在の係数に対応するコスト値を表し、ボウルの底は、最適なソリューション セットに対応するコスト関数値を表します。勾配降下法の目的は、さまざまな係数値を継続的に試し、コスト関数を評価して、コスト関数を減らすパラメータ値を選択することです。上記の手順を収束するまで繰り返すことで、最小コスト関数値に対応する最適解を得ることができます。

勾配降下法のプロセス

勾配降下法では、まず初期パラメータ値を設定することが必要です。通常、初期値はゼロ (係数 = 0 係数 = 0) に設定します。次に、コスト関数 cost=f(係数)cost=f(係数) または cost=evaluate(f(係数))cost=evaluate(f(係数)) を計算する必要があります。次に、関数の導関数を計算し(導関数は微積分の概念であり、関数内の特定の点における傾きの値を指します)、学習効率パラメータ(アルファ)の値を設定する必要があります。

  1. 係数 = 係数 − (アルファ ∗ デルタ)
  2. 係数 = 係数 − (アルファ ∗ デルタ)

パラメータ値が収束するまで上記のプロセスを繰り返すと、関数の最適解が得られます。

勾配降下法の考え方がいかにシンプルであるかがおわかりいただけると思います。コスト関数または最適化する必要のある関数の勾配値を知るだけで十分です。次に、勾配降下法を機械学習の分野にどのように応用するかを紹介します。

バッチ勾配降下法

すべての教師あり機械学習アルゴリズムの目標は、独立変数 (X) に関する既知のデータを使用して従属変数 (Y) の値を予測することです。すべての分類および回帰モデルはこの問題に対処します。

機械学習アルゴリズムは、統計を使用してターゲット関数の適合性を特徴付けます。異なるアルゴリズムには異なる目的関数の表現方法と異なる係数値がありますが、目的関数を最適化することで最適なパラメータ値を取得するという共通の目標があります。

線形回帰モデルとロジスティック回帰モデルは、勾配降下法を使用して最適なパラメータ値を見つける典型的な例です。

機械学習モデルが目的関数にどの程度適合しているかを評価するために使用できる指標は多数あります。コスト関数法は、各トレーニング セットの予測値と実際の値 (残差二乗和など) の差の度合いを計算することによって、モデルの適合度を測定します。

コスト関数内の各パラメータに対応する導関数値を計算し、上記の更新方程式を反復処理することができます。

勾配降下法の各反復の後に、コスト関数とその導関数を計算する必要があります。各反復計算プロセスはバッチと呼ばれるため、この形式の勾配降下法はバッチ勾配降下法とも呼ばれます。

バッチ勾配降下法は、機械学習の分野で一般的な勾配降下法です。

確率的勾配降下法

大規模なデータを処理する場合、勾配降下法の計算効率は非常に低くなります。

勾配降下法では、各反復でトレーニング セットの予測を計算する必要があるため、データ量が非常に多い場合は時間がかかります。

大量のデータを扱う場合、確率的勾配降下法を使用して計算効率を向上させることができます。

このアルゴリズムと前述の勾配降下法の違いは、サンプルの各バッチが計算された後に係数更新プロセスを実行するのではなく、ランダムなトレーニング サンプルごとに係数更新プロセスを実行することです。

確率的勾配降下法の最初のステップでは、係数更新プロセスを中断するために、トレーニング セット内のサンプルをランダムに並べ替える必要があります。各トレーニングインスタンスの後に係数値を更新するため、係数値とコスト関数値にランダムなジャンプが発生します。係数更新プロセスの順序をシャッフルすることで、このランダムウォークの特性を利用して、モデルの非収束の問題を回避できます。

コスト関数の計算方法が異なることを除けば、確率的勾配降下法の係数更新プロセスは、前述の勾配降下法とまったく同じです。

大規模データの場合、確率的勾配降下法の収束速度は他のアルゴリズムよりも大幅に速くなります。通常、比較的良好なフィッティングパラメータを得るには、少数の反復のみが必要です。

勾配降下法に関するいくつかの提案

このセクションでは、機械学習における勾配降下アルゴリズムをよりよく習得するのに役立つヒントをいくつか紹介します。

時間の経過に伴うコスト関数のプロット: 各反復中に取得されたコスト関数の値を収集してプロットします。勾配降下法では、反復計算ごとにコスト関数の値を減らすことができます。コスト関数の値を下げることができない場合は、学習効率の値を下げることを試してください。

学習効率: 勾配降下アルゴリズムの学習効率の値は通常、0.1、0.001、または 0.0001 です。さまざまな値を試して、最も学習効率の高い値を選択できます。

正規化: コスト関数が歪んでいない場合、勾配降下法はすぐに収束します。入力変数を事前に標準化することができます。

コスト平均傾向グラフを描画する: 確率的勾配降下法の更新プロセスでは通常、ランダム ノイズが発生するため、アルゴリズムの収束傾向を測定するには、10、100、または 1000 の更新プロセスの平均誤差の変化を観察することを検討できます。

要約する

この記事では主に機械学習における勾配降下法について紹介します。この記事を読むことで、以下のことが分かります。

  • 最適化理論は機械学習の非常に重要な部分です。
  • 勾配降下法は、多くの機械学習アルゴリズムで使用できるシンプルな最適化アルゴリズムです。
  • バッチ勾配降下法では、まずすべてのパラメータの微分値を計算し、次にパラメータ更新プロセスを実行します。
  • 確率的勾配降下法では、各トレーニングインスタンスの導関数を計算し、パラメータの更新を実行します。

勾配降下法についてご質問がある場合は、コメント欄に残していただければ、できる限りお答えします。

<<:  AI全盛の時代、機械翻訳はどのように革命を起こすのか?

>>:  AIのブラックボックス問題をどう解決するか?ニューラルネットワークモデルアルゴリズムが答えを導きます

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

推薦する

HSBC、コロナウイルス危機中にAIガードレールを導入

規制の厳しい業界の企業は、AI を導入しようとすると、いわゆる「ブラック ボックス」問題に直面するこ...

機械翻訳:人工知能分野の重要な中核技術

近年、機械翻訳 (MT) は大きな進歩を遂げ、満足のいく成果を達成しました。 MT は人工知能分野の...

...

自動運転企業のほとんどは失敗する運命にある

「まだ非常に初期段階です。」これは、自動運転技術の現在の開発について、多くの業界関係者がYiou氏に...

NLP がヘルスケアにおける AI の価値を実現する方法

複雑な AI モデルを学習するには膨大な量のデータが必要であり、ヘルスケア データは全データのほぼ ...

...

...

清華大学とアリババDAMOアカデミーが開発した業界初の少数サンプルNERデータセット

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

私たちの重要なインフラは人工知能に対応できるでしょうか?

ChatGPT を楽しみや機能のために使用する個人から、タスクの自動化に人工知能 (AI) を適用...

OpenAIの年間収益は13億ドルに達し、月間1億ドル以上となり、夏に比べて30%増加した。

10月13日、The Informationは現地時間12日、複数の関係者の話として、OpenAI...

...

...

...

...