この記事では、機械学習の結果を改善するために使用される最も一般的なハイパーパラメーターの最適化方法を詳しく紹介します。
翻訳者| 解決策は、トレーニング データをさらに追加することです。追加データは (特定の状況を除いて) 役立つことがよくありますが、高品質のデータを生成するには非常にコストがかかる場合があります。ハイパーパラメーターの最適化では、既存のデータを使用して最高のモデルのパフォーマンスを得ることで、時間とリソースを節約します。
名前が示すように、ハイパーパラメータの最適化は、最適化関数を満たす (つまり、研究対象のデータセットが与えられたモデルのパフォーマンスを最大化する) ための機械学習モデルのハイパーパラメータの最適な組み合わせを決定するプロセスです。 。言い換えれば、各モデルには、モデルに最適なハイパーパラメータの組み合わせが得られるまで変更できるオプションの複数の調整「ボタン」が用意されています。ハイパーパラメータの最適化中に変更できるパラメータの例としては、学習率、ニューラル ネットワークのアーキテクチャ (隠れ層の数など)、正則化などが挙げられます。
この記事では、最も一般的な 3 つのハイパーパラメータ最適化手法、つまりグリッド検索、ランダム検索、ベイジアン最適化を概念的に紹介し、それらを 1 つずつ実装していきます。
読者の参考のために記事の冒頭に大まかな比較表を示し、その後、記事の残りの部分全体で比較表の各項目をさらに調査、説明、実装していきます。
表 1: ハイパーパラメータ最適化手法の比較 1. グリッド検索アルゴリズムグリッド検索は、スーパーパラメータである可能性があります。パラメータ最適化の最も単純かつ直感的な方法。これには、定義された検索空間内でハイパーパラメータの最適な組み合わせを徹底的に検索することが含まれます。この文脈における「検索スペース」とは、ハイパーパラメータ全体と、最適化中に考慮されるそのようなハイパーパラメータの値です。例を挙げてグリッド検索をより深く理解しましょう。
パラメータが 3 つだけある機械学習モデルがあるとします。各パラメータは、表に示されている値を取ることができます:
parameter_1 = [1 , 2, 3]
パラメータ_2 = [a, b, c]パラメータ_3 = [x, y, z]
これらのパラメータのどの組み合わせが最適化関数を最適化するかわかりませんモデルの最適化 (つまり、機械学習モデルに最適な出力を提供する)。グリッド検索では、これらのパラメーターのあらゆる組み合わせを試し、各パラメーターのモデルのパフォーマンスを測定し、最高のパフォーマンスが得られる組み合わせを選択するだけです。この例では、パラメータ 1 は 3 つの値 (つまり、1、2、または 3) を取ることができ、パラメータ 2 は 3 つの値 (つまり、a、b、c) を取ることができ、パラメータ 3 は 3 つの値を取ることができます(つまり、x、y、z)。つまり、組み合わせは全部で3*3*3=27通りあります。この例のグリッド検索では、最高のパフォーマンスの組み合わせを見つけるために、機械学習モデルのパフォーマンスを 27 ラウンド評価します。
ご覧のとおり、この方法は非常に簡単です (試行錯誤のタスクに似ています) が、いくつかの制限もあります。この方法のメリットとデメリットをまとめてみましょう。
その利点は次のとおりです:
- 多数のハイパーパラメータを持つ大規模モデルや複雑なモデルではコストがかかります (すべての組み合わせを試して評価する必要があるため)
- メモリがない - 学習がありません過去から 観察して学ぶ
- 探索空間が大きすぎると、最適な組み合わせを見つけることができない可能性があります。探索空間が小さい単純なモデルの場合は、グリッド探索を使用することをお勧めします。 ; それ以外の場合は、読み続けて、より大きな検索スペースに適したソリューションを見つけることをお勧めします。 それでは、実際の例を使用してグリッド検索を実装してみましょう。
- 1.1. グリッド検索アルゴリズムの実装
- グリッド検索を実装するには、scikit-learn の Iris データセットを使用してランダム フォレスト分類モデルを作成します。このデータ セットには 3 つの異なるアイリスの花びらとがく片の長さが含まれており、この分類演習に使用されます。このペーパーでは、さまざまなハイパーパラメータ最適化戦略のパフォーマンスを比較することが目的であるため、モデル開発は二次的です。モデルの評価結果と、選択したハイパーパラメーターのセットに到達するまでの各ハイパーパラメーター最適化メソッドに必要な時間に注目することをお勧めします。実行の結果について説明し、この記事で使用した 3 つの方法の概要比較表を提供します。
すべてのハイパーパラメータ値を含む検索スペースは次のように定義されます:
search_space = {'n_estimators': [10, 100, 500, 1000],
' max_ Depth' : [2, 10, 25, 50, 100],'min_samples_split': [2, 5, 10],
'min_samples_leaf': [1, 5, 10]} 上記の検索空間は、合計 4*5*3*3=180 個のハイパーパラメーターの組み合わせで構成されます。次のようにグリッド検索を使用して、目的関数を最適化する組み合わせを見つけます。# ライブラリのインポート
from sklearn.model_selection import GridSearchCV
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection importcross_val_score
インポート時間
# Iris データ セットの読み込み
iris =load_iris() #XX, y = iris.data, iris.target
#ハイパーパラメータ検索スペースの定義
search_space = {'n_estimators': [10, 100, 500, 1000],
'max_ Depth': [2, 10, 25, 50, 100],
'min_samples_split': [2, 5, 10 ] ,
'min_samples_leaf': [1, 5, 10]}
#ランダム フォレスト分類器の定義
clf = RandomForestClassifier(random_state=1234)
# オプティマイザー オブジェクトの生成
optimizer = GridSearchCV(clf, search_space, cv=5, sinners='accuracy')
#合計時間を計算するための開始時間を保存します
start_time = time.time()
#フィッティング時のオプティマイザーdata
optimizer.fit(X, y)
# 合計消費時間を計算するために使用できるように終了時刻を保存します。
end_time = time.time ()
# Print最適なハイパーパラメータ セットと対応するスコア
print(f"selected hyperparameters:")
print(optimizer.best_params_)
print("")
print(f"best_score: { optimizer.best_score_}")
print(f"elapsed_time: {round(end_time-start_time, 1)}")
上記のコードの出力は次のとおりです:
- 理解と実装が簡単
- 並列化が簡単
- 離散空間と連続空間の両方に適しています
- グリッドと比較して安価な検索
- 同じ試行回数のグリッド検索よりも最適な結果に収束する可能性が高くなります。 欠点:
- 記憶がない – 過去の観察から学習しない
- ランダムな選択を考慮する重要なハイパーパラメータ値が見逃される可能性があります。
from sklearn.model_selection import RandomizedSearchCV
from scipy.stats import randint
# RandomizedSearchCV オブジェクトの作成
optimizer = RandomizedSearchCV( clf, param_distributinotallow=search_space,
n_iter=50, cv=5, sinners='accuracy',
random_state=1234)
# 合計実行時間を計算するために開始時間を保存します
start_time = time.time()
# オプティマイザをデータに適合させる ##optimizer.fit(X, y)
# 終了時刻を保存します合計実行時間を計算します
end_time = time.time()
# 最適なハイパーパラメータ セットと対応するスコアを出力します
print(f"selected hyperparameters:")
print (optimizer .best_params_)
print("")
print(f"best_score: {optimizer.best_score_}")
print(f"elapsed_time: {round(end_time-start_time, 1) }" )
上記のコードの出力結果は次のとおりです。
ランダム検索結果
グリッド検索の結果、これらの結果は非常に興味深いものです。 best_score は変わりませんが、elapsed_time は 352.0 秒から 75.5 秒に減少しました。なんて印象的なのでしょう!言い換えれば、ランダム検索アルゴリズムは、グリッド検索に必要な時間の約 21% で、グリッド検索と同様に実行される一連のハイパーパラメータを見つけることができました。ただし、ここでの効率ははるかに高くなります。
次に、ベイズ最適化と呼ばれる次の方法に進みましょう。これは、最適化プロセス中のすべての試行から学習します。
3. ベイジアン最適化
ベイジアン最適化は、確率モデルを使用して以前の試行から「学習」し、探索空間内のハイパーパラメータに探索を指示するハイパーパラメータ最適化手法です。機械学習モデルの目的関数。
ベイズ最適化手法は 4 つのステップに分けることができ、以下で説明します。プロセスをよりよく理解するためにこれらの手順を読むことをお勧めしますが、この方法を使用するために必要な前提知識はありません。
- 「事前」を定義します。これは、特定の時点で目的関数を最適化するためのハイパーパラメータの最も可能性の高い組み合わせに関する信念の確率的モデル評価です。
- 評価ハイパーパラメータ サンプルのモデル
- ステップ 2 で得た知識を使用してステップ 1 の確率モデル (「事前」と呼ぶもの) を更新し、目的関数を最適化すると考えられる最適なハイパーパラメータを理解します。可能な組み合わせ。私たちの最新の信念は「事後信念」と呼ばれます。言い換えれば、ステップ 2 で得られた知識は、探索空間をより深く理解するのに役立ち、事前から事後へと進み、事後はステップ 2 で決定された探索空間と目的関数に関する「最新の」知識になります。情報を提供する
- モデルのパフォーマンスが収束するか、リソースが枯渇するか、その他の事前定義されたメトリックが満たされるまで、ステップ 2 と 3 を繰り返します。
Baye についてさらに詳しく知りたい場合は、Si の詳細情報をご覧ください。最適化については、次の投稿をご覧ください:
「機械学習におけるベイジアン最適化アルゴリズム」、アドレスは:
https://medium.com/@fmnobar/concept -overview-of-bayesian-機械学習におけるパラメータ調整の最適化-a3b1b4b9339f。
さて、ベイジアン最適化がどのように機能するかを理解したところで、その利点と欠点を見てみましょう。
利点:
- 過去の観察から学習するため、より効率的です。言い換えれば、与えられた特定の仮定に基づいて最適な値に収束するメモリレスメソッドよりも、より少ない反復回数でより適切なハイパーパラメータのセットを見つけることが期待されます。反復ごとのグリッド検索やランダム検索よりも
- ベイズ最適化で使用される事前関数と関数 (例: 取得関数の初期確率分布の選択など) は、パフォーマンスとその学習曲線に大きな影響を与える可能性があります
- 詳細はこのくらいにして、ベイジアン最適化を実装して結果を見てみましょう。
- 3.1. ベイジアン最適化アルゴリズムの実装
- 前のセクションと同様に、次のコード スニペットを使用して、グリッド検索実装の最適化で説明したのと同じ問題に対してベイジアン ハイパーパラメーターを実装します。
# ライブラリをインポートします
from skopt import BayesSearchCV # ベイズ最適化を実行しますoptimizer = BayesSearchCV(estimator=RandomForestClassifier(),
search_spaces =search_space , n_iter=10,
cv=5,
得点='accuracy',
random_state=1234)
# 合計を計算するための開始時間を保存します実行時間
start_time = time.time()
optimizer.fit(X, y)
# 合計実行時間を計算するために終了時間を保存します
end_time = time.time()
# 最適なハイパーパラメータ セットと対応するスコアを出力します。
print(f"selected hyperparameters:")
print(optimizer.best_params_)
print ("")
print(f"best_score: {optimizer.best_score_}")
print(f"elapsed_time: {round(end_time-start_time, 1)}")
#上記のコードの出力結果は次のとおりです。
ベイズ最適化の結果
もう 1 つの興味深い結果が見つかりました。 best_score はグリッド検索とランダム検索で得られた結果と一致していますが、結果にかかる時間はわずか 23.1 秒でした。これに対し、ランダム検索では 75.5 秒、グリッド検索では 352.0 秒かかりました。つまり、ベイジアン最適化を使用すると、グリッド検索よりも約 93% 時間が短縮されます。これは生産性の大幅な向上であり、より大規模で複雑なモデルや検索空間ではさらに意味が大きくなります。
ベイジアン最適化では、(ランダム検索やグリッド検索とは異なり) 以前の反復から学習できるため、これらの結果を得るために 10 回の反復のみを使用したことに注意してください。
結果の比較
下の表は、これまで説明した 3 つの方法の結果を比較しています。 「方法論」列では、使用されるハイパーパラメータの最適化方法について説明します。これに、各方法を使用して選択されたハイパーパラメータが続きます。 「ベスト スコア」は特定の方法を使用して取得されたスコアで、「経過時間」はローカル ラップトップで最適化戦略を実行するのにかかった時間を表します。最後の列「得られた効率」では、ベースラインとしてグリッド検索を想定し、グリッド検索と比較して他の 2 つの方法のそれぞれによって得られる効率を計算します (経過時間を使用)。たとえば、ランダム検索には 75.5 秒かかり、グリッド検索には 352.0 秒かかるため、グリッド検索ベースラインに対するランダム検索の効率は、1 – 75.5/352.0 = 78.5% と計算されます。
表 2 - メソッドのパフォーマンス比較表
上記の比較表の 2 つの主な結論:
- #効率: ベイズ最適化などの学習方法を使用すると、どのようにして最適化されたハイパーパラメーターのセットを短時間で見つけることができるかがわかります。
- パラメータの選択: 正解は複数存在する可能性があります。たとえば、評価指標 (つまり、best_score) は同じままですが、ベイジアン最適化で選択されたパラメーターはグリッド検索やランダム検索のパラメーターとは異なります。これは、大規模で複雑な環境ではさらに重要になります。
元のタイトル: ハイパーパラメータ最適化 — グリッド検索、ランダム検索、ベイジアン最適化の概要と実装 、著者: Farzad Mahmoodinobar
以上がハイパーパラメータ最適化の比較: グリッド検索、ランダム検索、ベイジアン最適化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ジョン・ロールズの独創的な1971年の著書「正義の理論」で、彼は私たちが今日のAIデザインの核となり、意思決定を使用するべきであるという思考実験を提案しました:無知のベール。この哲学は、公平性を理解するための簡単なツールを提供し、リーダーがこの理解を使用してAIを公平に設計および実装するための青写真を提供します。 あなたが新しい社会のルールを作っていると想像してください。しかし、前提があります。この社会でどのような役割を果たすかは事前にわかりません。過半数または限界少数派に属している、金持ちまたは貧弱、健康、または障害者になることがあります。この「無知のベール」の下で活動することで、ルールメーカーが自分自身に利益をもたらす決定を下すことができません。それどころか、人々はより公衆を策定する意欲があります

ロボットプロセスオートメーション(RPA)を専門とする多くの企業は、繰り返しタスクを自動化するためのボットを提供しています。 一方、プロセスマイニング、オーケストレーション、インテリジェントドキュメント処理スペシャル

AIの未来は、単純な単語の予測と会話シミュレーションを超えて動いています。 AIエージェントは出現しており、独立したアクションとタスクの完了が可能です。 このシフトは、AnthropicのClaudeのようなツールですでに明らかです。 AIエージェント:研究a

急速な技術の進歩は、仕事の未来に関する将来の見通しの視点を必要とします。 AIが単なる生産性向上を超えて、私たちの社会構造の形成を開始するとどうなりますか? Topher McDougalの今後の本、Gaia Wakes:

多くの場合、Harmonized System(HS)などのシステムからの「HS 8471.30」などの複雑なコードを含む製品分類は、国際貿易と国内販売に不可欠です。 これらのコードは、すべてのINVに影響を与える正しい税申請を保証します

データセンターと気候技術投資におけるエネルギー消費の将来 この記事では、AIが推進するデータセンターのエネルギー消費の急増と気候変動への影響を調査し、この課題に対処するための革新的なソリューションと政策の推奨事項を分析します。 エネルギー需要の課題:大規模で超大規模なデータセンターは、数十万の普通の北米の家族の合計に匹敵する巨大な力を消費し、新たなAIの超大規模なセンターは、これよりも数十倍の力を消費します。 2024年の最初の8か月で、Microsoft、Meta、Google、Amazonは、AIデータセンターの建設と運用に約1,250億米ドルを投資しました(JP Morgan、2024)(表1)。 エネルギー需要の成長は、挑戦と機会の両方です。カナリアメディアによると、迫り来る電気

生成AIは、映画とテレビの制作に革命をもたらしています。 LumaのRay 2モデル、滑走路のGen-4、OpenaiのSora、GoogleのVEO、その他の新しいモデルは、前例のない速度で生成されたビデオの品質を向上させています。これらのモデルは、複雑な特殊効果と現実的なシーンを簡単に作成できます。短いビデオクリップやカメラ認知モーション効果も達成されています。これらのツールの操作と一貫性を改善する必要がありますが、進歩の速度は驚くべきものです。 生成ビデオは独立した媒体になりつつあります。アニメーション制作が得意なモデルもあれば、実写画像が得意なモデルもあります。 AdobeのFireflyとMoonvalleyのMAであることは注目に値します

ChatGptユーザーエクスペリエンスは低下します:それはモデルの劣化ですか、それともユーザーの期待ですか? 最近、多数のCHATGPT有料ユーザーがパフォーマンスの劣化について不満を述べています。 ユーザーは、モデルへの応答が遅く、答えが短い、助けの欠如、さらに多くの幻覚を報告しました。一部のユーザーは、ソーシャルメディアに不満を表明し、ChatGptは「お世辞になりすぎて」、重要なフィードバックを提供するのではなく、ユーザービューを検証する傾向があることを指摘しています。 これは、ユーザーエクスペリエンスに影響を与えるだけでなく、生産性の低下やコンピューティングリソースの無駄など、企業の顧客に実際の損失をもたらします。 パフォーマンスの劣化の証拠 多くのユーザーは、特にGPT-4などの古いモデル(今月末にサービスから廃止される)で、ChatGPTパフォーマンスの大幅な分解を報告しています。 これ


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

ホットトピック









