Automated Machine Learning (AutoML)
自動機械学習(AutoML)は、モデル選択、ハイパーパラメーター調整、特徴量の準備を自動化します。探索の仕組み、ツール、YOLOのチューニングを解説します。
自動機械学習(AutoML)とは、機械学習(ML)モデルの構築における試行錯誤を自動化することです。特徴量の準備、アルゴリズムの選択、ハイパーパラメーターの設定に加え、ネットワークアーキテクチャの設計や複数モデルの組み合わせを行う場合もあります。データセット、目標メトリクス、計算予算を与えると、AutoMLシステムは候補パイプラインを探索し、それぞれをホールドアウトデータで評価して、見つかった中で最良のものを返します。Auto-WEKAプロジェクトは、このタスクの中核を、アルゴリズム選択とハイパーパラメーター最適化を組み合わせた問題(CASH)として定式化しました。この定式化は、後にauto-sklearnなどのツールに採用されました。AutoMLは、専門家でない人にも強力なベースラインを提供し、専門家の実験に伴う反復作業を削減します。
AutoMLの仕組み#
AutoMLシステムは3つの要素で構成されます。探索空間では、データ前処理や特徴量エンジニアリングの手順から、線形回帰、XGBoost、ニューラルネットワークなどのモデルファミリー、さらに学習率など各ファミリーの設定まで、変更可能な要素を定義します。探索戦略は試す候補を選びます。ランダムサーチ、探索空間の有望な領域をモデル化するベイズ最適化、良好な設定を変異・再結合する進化的アルゴリズムなどが使われます。評価ステップでは、各候補を検証データまたは交差検証で評価します。多くのシステムでは、以前のデータセットからのメタ学習で探索をウォームスタートし、最後に最良の候補を組み合わせてモデルアンサンブルを作成します。
すべての候補を最後まで学習させることが主なコストとなるため、マルチフィデリティ手法では、まず多数の設定を低コストで学習させ、有望な候補にだけ追加の計算資源を割り当てます。Hyperbandの基本要素である逐次半減法では、設定が1つ残るまでラウンドを繰り返します。
大規模な探索では検証データに過学習することもあります。多くの候補の中から選ばれた最良候補は、単に最も運が良かっただけの可能性があるため、最終モデルは独立したテストセットで評価します。
AutoMLツール#
- AutoGluon: Amazonで開発が始まったオープンソースライブラリです。表形式、テキスト、画像、時系列のデータを使って多様なモデルを学習し、それらをスタックしてアンサンブルを構築します。
- auto-sklearn: ベイズ最適化、メタ学習、アンサンブル構築を用いてscikit-learnのパイプラインを探索します。
- FLAML: 表形式モデルとハイパーパラメーターを低コストで探索することを目指す、Microsoftのライブラリです。
- Optuna: 有望でない試行を早期に打ち切るプルーナーを備えたハイパーパラメーター最適化フレームワークです。カスタムAutoMLループ内の探索エンジンとしてよく使われます。
- Google Cloud AutoML: 現在はGemini Enterprise Agent Platformの一部であり、以前はVertex AIとして提供されていたマネージドサービスです。コードを書かずに画像分類、物体検出、表形式モデルを学習できます。
- Amazon SageMaker Autopilot: AWSのAutoMLサービスです。現在、そのインターフェースはSageMaker Canvasにあります。
小規模な表形式データには、表形式基盤モデルも同じ目的を達成する別の方法です。データセットごとに探索を行わず、コンテキスト内の学習行から予測します。
YOLOの自動チューニング#
アーキテクチャが固定された事前学習済みのコンピュータービジョンモデルでは、自動探索は通常、学習レシピを対象とします。Ultralytics YOLOのmodel.tune()は、学習率、モメンタム、損失ゲイン、データ拡張の強度など、デフォルトで26個の学習ハイパーパラメーターを進化させます。各イテレーションでは、これまでに見つかった最良の設定を変異・再結合し、短時間学習させて適合度を記録します。また、実行時にはbest_hyperparameters.yamlとイテレーションごとの適合度プロットが保存されます。use_ray=Trueを渡すと、代わりにRay Tuneに探索を委ねます。
from ultralytics import YOLO
# チューニングする事前学習済みYOLO26モデルを読み込みます
model = YOLO("yolo26n.pt")
# ハイパーパラメーターを進化させます。各イテレーションでは、これまでの最良設定を変異させ、学習させて適合度を評価します
model.tune(data="coco8.yaml", epochs=30, iterations=10, plots=False, save=False, val=False)AutoMLと関連用語の比較#
- ハイパーパラメーターチューニング: 選択済みの1つのモデルの設定を最適化します。AutoMLでは通常、モデルの選択も含む広範な探索の1段階として行います。
- ニューラルアーキテクチャ探索(NAS): 層の種類、深さ、接続など、ネットワークアーキテクチャを設計するAutoMLの分野です。
- 転移学習: ゼロからではなく、事前学習済みモデルを起点にします。AutoMLシステムは事前学習済みバックボーンを探索することが多く、両者は相補的です。
- 機械学習オペレーション(MLOps): デプロイ、モニタリング、再学習など、モデルを取り巻くライフサイクル全体を扱い、学習パイプラインの1段階としてAutoMLを実行することもよくあります。










