最大化問題は、機械学習アルゴリズムの非常に重要な部分です。ほぼすべての機械学習アルゴリズムの中核は、最大化問題の処理です。 この記事では、機械学習の分野で一般的に使用され、よく知られている最適化アルゴリズムをいくつか紹介します。この記事を読むと、次のことが理解できるようになります。
さあ始めましょう! 勾配降下法 勾配降下法は、コスト関数を最小化するパラメータ値を見つけるための最適なアルゴリズムです。解析計算(線形代数演算など)では関数の最適解が得られない場合、勾配降下法を使用して問題を解決できます。 勾配降下法の直感的な体験 シリアルを食べたり、食べ物を保存したりするためによく使用する大きなボウルを想像してください。コスト関数の形状はこのボウルの形状に似ています。 ボウルの表面上の任意のランダムな位置は、現在の係数に対応するコスト値を表し、ボウルの底は、最適なソリューション セットに対応するコスト関数値を表します。勾配降下法の目的は、さまざまな係数値を継続的に試し、コスト関数を評価して、コスト関数を減らすパラメータ値を選択することです。上記の手順を収束するまで繰り返すことで、最小コスト関数値に対応する最適解を得ることができます。 勾配降下法のプロセス 勾配降下法では、まず初期パラメータ値を設定することが必要です。通常、初期値はゼロ (係数 = 0 係数 = 0) に設定します。次に、コスト関数 cost=f(係数)cost=f(係数) または cost=evaluate(f(係数))cost=evaluate(f(係数)) を計算する必要があります。次に、関数の導関数を計算し(導関数は微積分の概念であり、関数内の特定の点における傾きの値を指します)、学習効率パラメータ(アルファ)の値を設定する必要があります。
パラメータ値が収束するまで上記のプロセスを繰り返すと、関数の最適解が得られます。 勾配降下法の考え方がいかにシンプルであるかがおわかりいただけると思います。コスト関数または最適化する必要のある関数の勾配値を知るだけで十分です。次に、勾配降下法を機械学習の分野にどのように応用するかを紹介します。 バッチ勾配降下法 すべての教師あり機械学習アルゴリズムの目標は、独立変数 (X) に関する既知のデータを使用して従属変数 (Y) の値を予測することです。すべての分類および回帰モデルはこの問題に対処します。 機械学習アルゴリズムは、統計を使用してターゲット関数の適合性を特徴付けます。異なるアルゴリズムには異なる目的関数の表現方法と異なる係数値がありますが、目的関数を最適化することで最適なパラメータ値を取得するという共通の目標があります。 線形回帰モデルとロジスティック回帰モデルは、勾配降下法を使用して最適なパラメータ値を見つける典型的な例です。 機械学習モデルが目的関数にどの程度適合しているかを評価するために使用できる指標は多数あります。コスト関数法は、各トレーニング セットの予測値と実際の値 (残差二乗和など) の差の度合いを計算することによって、モデルの適合度を測定します。 コスト関数内の各パラメータに対応する導関数値を計算し、上記の更新方程式を反復処理することができます。 勾配降下法の各反復の後に、コスト関数とその導関数を計算する必要があります。各反復計算プロセスはバッチと呼ばれるため、この形式の勾配降下法はバッチ勾配降下法とも呼ばれます。 バッチ勾配降下法は、機械学習の分野で一般的な勾配降下法です。 確率的勾配降下法 大規模なデータを処理する場合、勾配降下法の計算効率は非常に低くなります。 勾配降下法では、各反復でトレーニング セットの予測を計算する必要があるため、データ量が非常に多い場合は時間がかかります。 大量のデータを扱う場合、確率的勾配降下法を使用して計算効率を向上させることができます。 このアルゴリズムと前述の勾配降下法の違いは、サンプルの各バッチが計算された後に係数更新プロセスを実行するのではなく、ランダムなトレーニング サンプルごとに係数更新プロセスを実行することです。 確率的勾配降下法の最初のステップでは、係数更新プロセスを中断するために、トレーニング セット内のサンプルをランダムに並べ替える必要があります。各トレーニングインスタンスの後に係数値を更新するため、係数値とコスト関数値にランダムなジャンプが発生します。係数更新プロセスの順序をシャッフルすることで、このランダムウォークの特性を利用して、モデルの非収束の問題を回避できます。 コスト関数の計算方法が異なることを除けば、確率的勾配降下法の係数更新プロセスは、前述の勾配降下法とまったく同じです。 大規模データの場合、確率的勾配降下法の収束速度は他のアルゴリズムよりも大幅に速くなります。通常、比較的良好なフィッティングパラメータを得るには、少数の反復のみが必要です。 勾配降下法に関するいくつかの提案 このセクションでは、機械学習における勾配降下アルゴリズムをよりよく習得するのに役立つヒントをいくつか紹介します。 時間の経過に伴うコスト関数のプロット: 各反復中に取得されたコスト関数の値を収集してプロットします。勾配降下法では、反復計算ごとにコスト関数の値を減らすことができます。コスト関数の値を下げることができない場合は、学習効率の値を下げることを試してください。 学習効率: 勾配降下アルゴリズムの学習効率の値は通常、0.1、0.001、または 0.0001 です。さまざまな値を試して、最も学習効率の高い値を選択できます。 正規化: コスト関数が歪んでいない場合、勾配降下法はすぐに収束します。入力変数を事前に標準化することができます。 コスト平均傾向グラフを描画する: 確率的勾配降下法の更新プロセスでは通常、ランダム ノイズが発生するため、アルゴリズムの収束傾向を測定するには、10、100、または 1000 の更新プロセスの平均誤差の変化を観察することを検討できます。 要約する この記事では主に機械学習における勾配降下法について紹介します。この記事を読むことで、以下のことが分かります。
勾配降下法についてご質問がある場合は、コメント欄に残していただければ、できる限りお答えします。 |
<<: AI全盛の時代、機械翻訳はどのように革命を起こすのか?
>>: AIのブラックボックス問題をどう解決するか?ニューラルネットワークモデルアルゴリズムが答えを導きます
アプリケーション スイッチング テクノロジには、主に次の 4 つの主要テクノロジが含まれます。 ◆ト...
[[396914]]今日、クラスメートがファングループでアルゴリズムに関する質問をしました。対話のト...
多くの企業が AI イニシアチブの導入に意欲的に取り組んでいる一方で、AI が自社のビジネスにどのよ...
[[401361]]この記事では主に、カウンター アルゴリズム、リーキー バケット アルゴリズム、...
前回の記事「AIビッグモデルの解釈、トークンの理解から始める」では、最も基本的な概念である「トークン...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
COVID-19のパンデミックにより、私たちはテクノロジー、オンライン活動、人工知能への依存をさら...
過去 1 年間で、人工知能 (AI) は私たちの日常生活のより大きな部分を占めるようになり、さまざま...
第 3 世代のニューラル ネットワークとして知られるスパイキング ニューラル ネットワーク (SNN...
機械学習と人工知能に関しては、スキャンダルが後を絶ちません。過去数ヶ月、マイクロソフトのジャーナリス...
みなさんこんにちは、CUGGZです。ブラウザの開発者ツールは、DOM ツリー構造の表示、CSS スタ...
[[186071]]今日、私は BAT のアルゴリズム エンジニアに再び拒否されました。はい、お読み...
以前、RSA アルゴリズムの説明をしてほしいと頼まれたことがあります。今日は私が学んだことに基づいて...
劉慈欣には『鏡』という短編小説があり、次のような物語が語られています。気象庁のソフトウェアエンジニア...
言語モデルが前例のない規模にまで拡大し続けるにつれて、下流のタスクのすべてのパラメータを微調整するこ...