Yolo 深圳
深セン
今すぐ参加
用語集

ニューラルアーキテクチャ探索(NAS)

ニューラルアーキテクチャサーチ(NAS)が深層学習モデルの設計を自動化する仕組みを学びましょう。その中核メカニズムを発見し、Ultralytics 最適化されたモデルを探求してください。

ニューラルアーキテクチャ検索(NAS)は、 自動機械学習(AutoML)の領域における高度な技術であり、 人工ニューラルネットワークの設計を自動化する。従来、高性能な 深層学習(DL)アーキテクチャの設計には、 膨大な人的専門知識、直感、そして時間のかかる試行錯誤が必要であった。 NASはこの手動プロセスを、 広範なネットワークトポロジーを体系的に探索し特定のタスクに最適な構造を発見する アルゴリズム戦略に置き換えます。NASは層と演算の様々な組み合わせをテストすることで、 精度、計算効率、推論速度のいずれにおいても 人間が設計したモデルを大幅に上回る性能を発揮するアーキテクチャを特定できます。

NASの核心的メカニズム

優れたアーキテクチャを発見するプロセスは、一般的に3つの基本的な次元が相互作用して 最適なニューラルネットワーク(NN)を見つけることを含む:

  1. 探索空間:アルゴリズムが探索可能な全てのアーキテクチャの集合を定義する。これは 畳み込みフィルタ、プーリング層、様々な 活性化関数といった構成要素のライブラリのような役割を果たす。明確に定義された探索空間は 複雑さを制限し、イノベーションのための十分な柔軟性を保ちつつ、探索が計算上実行可能であることを保証する。
  2. 探索戦略:あらゆる可能性を網羅的に試す(ブルートフォース)代わりに、NASは探索空間を効率的にナビゲートする知的なアルゴリズムを採用する。一般的な手法には、エージェントが時間をかけてより優れたアーキテクチャを生成することを学習する強化学習と、高性能モデルを突然変異させ組み合わせることで優れた候補を生成する進化アルゴリズムがある
  3. 性能推定戦略:候補となるネットワークをすべて一から学習させるのは非現実的に遅い。これを加速するため、NASは推定技術(例えば、少ないエポックでの学習、低解像度のプロキシデータセットの使用、重み共有の採用など)を用いて、候補アーキテクチャの可能性を迅速にランク付けする。

実際のアプリケーション

ハードウェアの制約や性能要件が厳しい産業分野において、NASはコンピュータビジョン(CV)やその他のAI領域の限界を押し広げる上で不可欠な存在となっている。

  • 効率的なエッジコンピューティング:モバイルデバイスへのAI導入には、軽量かつ高速なモデルが求められる。NAS(ニューラルアーキテクチャ検索)は、MobileNetV3やEfficientNetといったアーキテクチャの発見に広く活用され、高い精度を維持しつつ推論遅延を最小化する。これはスマートカメラや自律ドローンにおけるリアルタイム映像解析など、エッジAIアプリケーションにとって極めて重要である。
  • 医療画像医療画像解析において、精度は最優先事項である。NASはネットワークを最適化し、X線やMRIスキャンにおけるdetect 異常をdetect 、人間のエンジニアが見落とす可能性のある新たな特徴抽出経路を発見することが多い。これにより、脳腫瘍や骨折などの病態をより高い感度で特定する、信頼性の高いツールが実現する。

NASと関連概念

NASの具体的な役割を理解するには、類似の最適化手法との違いを区別することが有用である:

  • NASとハイパーパラメータ調整:どちらも最適化を伴うが、 ハイパーパラメータ調整は 固定されたアーキテクチャに対し、 学習率 やバッチサイズなどの設定値を調整することに焦点を当てる。 一方、NASは層の数やニューロンの接続方法など、 モデル自体の根本的な構造そのものを変更する。
  • NAS対転移学習: 転移学習は既存の事前学習済みモデルを用い、 その重みを新たなタスクに適応させる。 NASは学習開始前にモデルアーキテクチャを一から構築する(またはより優れたバックボーンを探索する)。

NAS由来モデルの活用

NASによる完全な探索を実行するにはGPU リソースが必要ですが、開発者はNASを通じて作成されたモデルを容易に利用できます。例えば、YOLOアーキテクチャYOLO物体検出タスク向けに最適化するため、これらの探索原理を用いて発見されました。

Python 、事前学習済みNASモデルをロードして使用する方法を示しています。 ultralytics パッケージで提供される:

from ultralytics import NAS

# Load a pre-trained YOLO-NAS model (architecture found via NAS)
# 'yolo_nas_s.pt' refers to the small version of the model
model = NAS("yolo_nas_s.pt")

# Run inference on an image to detect objects
# This utilizes the optimized architecture for fast detection
results = model("https://ultralytics.com/images/bus.jpg")

# Print the top detected class
print(f"Detected: {results[0].names[int(results[0].boxes.cls[0])]}")

NASの複雑さなしに最先端モデルをトレーニングしたい方へ、 Ultralytics 最新の研究成果を組み込んだ高度に最適化されたアーキテクチャを すぐに利用可能な状態で提供します。Ultralytics を使用すれば、 これらのモデルのデータセット管理、トレーニング、デプロイメントを容易に実行でき、 MLOpsライフサイクル全体を簡素化します。

Ultralytics コミュニティに参加する

AIの未来を共に切り開きましょう。グローバルなイノベーターと繋がり、協力し、成長を。

今すぐ参加