Model Weights
モデルの重みがAIの知識としてどのように機能するかを学びます。Ultralytics YOLO26が最適化された重みを使用して、より高速で高精度なトレーニングと推論を実現する方法を確認します。
モデルの重みとは、入力データを予測出力に変換する、機械学習モデル内の学習可能なパラメータです。ニューラルネットワークでは、これらの重みは異なる層にまたがるニューロン間の接続の強さを表します。モデルが初期化されると、通常、これらの重みはランダムな小さい値に設定されるため、モデルは何も「知らない」状態です。トレーニングと呼ばれるプロセスを通じて、モデルは自身の誤りに基づいてこれらの重みを反復的に調整し、データ内のパターン、特徴、関係を徐々に認識できるようになります。モデルの重みは、AIの「記憶」または「知識」と考えることができ、システムがトレーニングデータから学習した内容を保存しています。
学習における重みの役割#
ニューラルネットワークのトレーニングにおける主な目標は、モデルの予測と実際のグラウンドトゥルースとの誤差を最小化する、最適なモデルの重みの組み合わせを見つけることです。このプロセスでは、ネットワークにデータを通すフォワードパスと呼ばれるステップを実行し、特定の損失関数を使用して損失値を計算します。予測が正しくない場合、確率的勾配降下 (SGD)のような最適化アルゴリズムや、YOLO26で使用される新しいMuonオプティマイザーが、各重みが誤差にどの程度寄与したかを計算します。
バックプロパゲーションと呼ばれる手法を通じて、アルゴリズムは次回の誤差を減らすために重みをわずかに更新します。このサイクルを数千回または数百万回繰り返すことで、モデルの重みが安定し、システムが高い精度を達成します。トレーニングが完了すると、重みは「凍結」されて保存され、新しい未知のデータに対する推論用にモデルをデプロイできるようになります。
モデルの重みとバイアス#
重みとバイアスは連携して機能しますが、目的が異なるため、区別することが重要です。モデルの重みがニューロン間の接続の強さと方向(活性化の傾きを制御します)を決定する一方で、バイアスは活性化関数を左または右にシフトできるようにします。このオフセットにより、すべての入力特徴量がゼロの場合でも、モデルはデータにより適合できます。重みとバイアスは連携して、畳み込みニューラルネットワーク (CNNs)のようなアーキテクチャの動作を定義する学習可能なパラメータを形成します。
実世界での利用例#
モデルの重みは、AIシステムがさまざまな業界で機能するための中核コンポーネントです。ここでは、その適用方法を示す具体的な例を2つ紹介します。
- 小売業におけるコンピュータービジョン: スマートスーパーマーケットシステムでは、YOLO26のようなモデルがトレーニング済みの重みを使用して、棚にある商品を識別します。重みは、シリアルボックスの形状やソーダ缶の色などの視覚的特徴を「学習」しているため、システムは商品を検出し、在庫を管理し、さらには自動レジ処理まで効率的に実行できます。
- 医用画像解析: ヘルスケア分野では、ディープラーニングモデルが専用の重みを使用して、X線画像やMRIスキャンを解析します。たとえば、腫瘍検出用にトレーニングされたモデルは、その重みを使用して、健康な組織と潜在的な異常を区別します。これらの重みは、画素データ内の複雑で非線形なパターンを捉えます。こうしたパターンは人間の目にはわずかな違いに見える場合がありますが、放射線科医がより迅速に診断を下すのに役立ちます。
重みの保存と読み込み#
実際には、モデルの重みを扱う際、トレーニング済みのパラメータをファイルに保存し、後で予測やファインチューニングのために読み込みます。Ultralyticsエコシステムでは、通常、これらは.pt (PyTorch)ファイルとして保存されます。
YOLOモデルに事前トレーニング済みの重みを読み込み、予測を実行する簡単な例を次に示します。
from ultralytics import YOLO
# Load a model with pre-trained weights (e.g., YOLO26n)
model = YOLO("yolo26n.pt")
# Run inference on an image using the loaded weights
results = model("https://ultralytics.com/images/bus.jpg")
# Print the number of detected objects
print(f"Detected {len(results[0].boxes)} objects.")転移学習とファインチューニング#
モデルの重みの最も強力な特徴の1つは、移植性です。モデルをゼロからトレーニングするには大規模なデータセットと多大な計算能力が必要ですが、その代わりに開発者は転移学習を利用することがよくあります。これは、COCOやImageNetのような大規模なデータセットで事前トレーニングされた重みを持つモデルを、特定のタスクに適応させる方法です。
たとえば、汎用物体検出器の重みを取得し、ソーラーパネルの小規模なデータセットでファインチューニングできます。事前トレーニング済みの重みはすでにエッジ、形状、テクスチャを理解しているため、モデルの収束が大幅に速くなり、必要なラベル付きデータも少なくなります。Ultralytics Platformのようなツールを使用すると、このプロセスが簡単になり、チームはデータセットを管理し、クラウドでモデルをトレーニングし、最適化された重みをエッジデバイスにシームレスにデプロイできます。
圧縮と最適化#
現代のAI研究では、性能を犠牲にすることなくモデルの重みのファイルサイズを削減することに重点が置かれることが多く、このプロセスはモデル量子化と呼ばれます。重みの精度を下げることで(たとえば、32ビット浮動小数点から8ビット整数に変更します)、開発者はメモリ使用量を大幅に削減し、推論速度を向上させることができます。これは、携帯電話やRaspberry Piデバイスのようなリソースに制約のあるハードウェアにモデルをデプロイするうえで重要です。さらに、プルーニングのような手法では、出力への寄与が小さい重みを削除し、リアルタイムアプリケーション向けにモデルをさらに効率化します。









