logo

機械学習のハイパーパラメータ

機械学習のハイパーパラメータは、学習プロセスを制御するためにユーザーによって明示的に定義されるパラメータです。 これらのハイパーパラメータはモデルの学習を改善するために使用され、その値はモデルの学習プロセスを開始する前に設定されます。

機械学習のハイパーパラメータ

このトピックでは、機械学習の最も重要な概念の 1 つであるハイパーパラメータ、その例、ハイパーパラメータの調整、ハイパーパラメータのカテゴリ、ハイパーパラメータと機械学習のパラメータの違いについて説明します。ただし、始める前に、まずハイパーパラメータについて理解しましょう。

ハイパーパラメータとは何ですか?

機械学習/深層学習では、モデルはパラメータによって表されます。対照的に、トレーニング プロセスには、最良の結果を提供するために学習アルゴリズムで使用される最良/最適なハイパーパラメーターの選択が含まれます。では、これらのハイパーパラメータとは何でしょうか?答えは、「 ハイパーパラメータは、学習プロセスを制御するためにユーザーによって明示的に定義されるパラメータとして定義されます。

ここで、接頭辞「ハイパー」は、パラメータが学習プロセスの制御に使用されるトップレベルのパラメータであることを示唆しています。ハイパーパラメータの値は、学習アルゴリズムがモデルのトレーニングを開始する前に、機械学習エンジニアによって選択および設定されます。 したがって、これらはモデルの外部にあり、トレーニング プロセス中に値を変更することはできません。

int を文字列 Java に変換する

機械学習におけるハイパーパラメータの例

  • kNN または K 最近傍アルゴリズムの k
  • ニューラル ネットワークをトレーニングするための学習率
  • トレーニングとテストの分割比率
  • バッチサイズ
  • エポック数
  • デシジョン ツリーの分岐
  • クラスタリングアルゴリズムのクラスタ数

パラメータとハイパーパラメータの違いは?

パラメーターとハイパーパラメーターまたはモデルのハイパーパラメーターの間には、常に大きな混乱があります。したがって、この混乱を解消するために、両方の違いと相互の関係を理解し​​ましょう。

モデルパラメータ:

モデル パラメーターはモデルの内部にある構成変数であり、モデルはそれを独自に学習します。例えば 、W 線形回帰モデルの独立変数の重みまたは係数 。または SVM の独立変数の重みまたは係数、ニューラル ネットワークの重みとバイアス、クラスタリングのクラスター重心。 モデルパラメータの重要なポイントは次のとおりです。

  • これらはモデルが予測を行うために使用します。
  • それらはデータ自体からモデルによって学習されます
  • 通常、これらは手動で設定されません。
  • これらはモデルの一部であり、機械学習アルゴリズムの鍵となります。

モデルのハイパーパラメータ:

ハイパーパラメータは、学習プロセスを制御するためにユーザーによって明示的に定義されるパラメータです。モデルパラメータの重要なポイントは次のとおりです。

  • これらは通常、機械学習エンジニアによって手動で定義されます。
  • 特定の問題に対するハイパーパラメータの正確な最適値を知ることはできません。最適な値は、経験則または試行錯誤によって決定できます。
  • ハイパーパラメータの例をいくつか示します。 ニューラル ネットワークをトレーニングするための学習率、KNN アルゴリズムの K、

ハイパーパラメータのカテゴリ

大まかに、ハイパーパラメータは以下の 2 つのカテゴリに分類できます。

    最適化のためのハイパーパラメータ 特定のモデルのハイパーパラメータ

最適化のためのハイパーパラメータ

使用する最適なハイパーパラメータを選択するプロセスはハイパーパラメータ調整として知られており、調整プロセスはハイパーパラメータの最適化とも呼ばれます。最適化パラメータはモデルを最適化するために使用されます。

機械学習のハイパーパラメータ

一般的な最適化パラメータの一部を以下に示します。

    学習率:学習率は、モデルの重みが更新されるたびに、推定誤差に応じてモデルをどの程度変更する必要があるかを制御する最適化アルゴリズムのハイパーパラメーターです。これはニューラル ネットワークを構築する際の重要なパラメーターの 1 つであり、モデル パラメーターとのクロスチェックの頻度も決定します。学習率が非常に低い場合、トレーニング プロセスが遅くなる可能性があるため、最適化された学習率を選択することは困難な作業です。一方、学習率が大きすぎると、モデルが適切に最適化されない可能性があります。

注: 学習率はモデルを最適化するための重要なハイパーパラメーターであるため、単一のハイパーパラメーターのみを調整する必要がある場合は、学習率を調整することをお勧めします。

    バッチサイズ:学習プロセスの速度を高めるために、トレーニング セットはバッチと呼ばれるさまざまなサブセットに分割されます。 エポック数: エポックは、機械学習モデルをトレーニングするための完全なサイクルとして定義できます。エポックは反復学習プロセスを表します。エポックの数はモデルによって異なり、さまざまなモデルが複数のエポックで作成されます。正しいエポック数を決定するには、検証エラーが考慮されます。エポック数は、検証エラーが減少するまで増加します。連続するエポックの削減誤差に改善が見られない場合は、エポック数の増加を停止することを示します。

特定のモデルのハイパーパラメータ

モデルの構造に関係するハイパーパラメーターは、特定のモデルのハイパーパラメーターとして知られています。これらを以下に示します。

    隠しユニットの数:隠れユニットはニューラル ネットワークの一部であり、ニューラル ネットワークの入力ユニットと出力ユニットの間のプロセッサ層を構成するコンポーネントを指します。

ニューラル ネットワークの隠れユニットのハイパーパラメーターの数を指定することが重要です。入力層のサイズと出力層のサイズの間にある必要があります。より具体的には、隠れユニットの数は、入力層のサイズの 2/3 に出力層のサイズを加えたものでなければなりません。

複雑な関数の場合、隠れユニットの数を指定する必要がありますが、モデルを過剰適合させてはなりません。

    レイヤー数:ニューラル ネットワークは、レイヤーと呼ばれる垂直に配置されたコンポーネントで構成されます。主にあります 入力層、隠れ層、出力層 。 3 層のニューラル ネットワークは、2 層のネットワークよりも優れたパフォーマンスを提供します。畳み込みニューラル ネットワークの場合、層の数が多いほど、より良いモデルが作成されます。

結論

ハイパーパラメータは、機械学習アルゴリズムをデータセットに適用する前に、学習プロセスを制御するために明示的に定義されるパラメータです。これらは、モデルの学習能力と複雑さを指定するために使用されます。ハイパーパラメーターの一部は、バッチ サイズ、学習率など、モデルの最適化に使用されます。また、一部は、非表示レイヤーの数など、モデルに固有のものです。