Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

Activation Function

活性化関数とは、ニューロンが重み付き入力に適用する非線形関数であり、ネットワークが曲線的なパターンを学習できるようにします。一般的な関数を比較します。

活性化関数とは、ニューラルネットワーク(NN)のニューロンが入力の重み付き和に適用し、出力を生成する関数です。主な役割は非線形性を加えることです。これがなければ、層を何段重ねても単一の線形変換に帰着し、深さに意味はありません。活性化関数があれば、手書き数字の筆跡からカメラ映像内の歩行者の輪郭まで、曲線的な決定境界をネットワークで表現できます。活性化関数には2つの役割があります。隠れ層では、ReLU、SiLU、GELUなどの関数によってネットワークが特徴を構築します。出力層では、sigmoidやsoftmaxなどの関数によって生のスコアを確率に変換します。

ネットワークに非線形性が必要な理由#

活性化関数のない層ではWx + bが計算されます。このような層を2つ重ねるとW₂(W₁x + b₁) + b₂となり、これは(W₂W₁)x + (W₂b₁ + b₂)、すなわち別の1つの線形層と等価です。層の間に活性化関数を入れると、この単純化を防げます。普遍近似定理は、十分な数の非線形ユニットを持つ1つの隠れ層で、有界領域上の任意の連続関数を近似できることを示しています。

活性化関数は形状だけでなく、その導関数も重要です。逆伝播では、各層の導関数を次々に乗算するためです。sigmoidの導関数は0.25を超えず、tanhの導関数は入力が大きくなるほど0に近づきます。そのため、飽和する層を多く通ると勾配が小さくなる、勾配消失の問題が発生します。ReLUは正の入力に対する導関数が常に1であり、非常に深いネットワークの学習を実用的にした主な理由の1つです。

一般的な活性化関数#

  • ReLU: max(0, x)。計算コストが低く、正の入力に対する勾配は1、負の入力に対する出力は正確に0です。2012年のAlexNet以降、CNNの隠れ層で標準的に使われていますが、負の入力しか受け取らないユニットは学習を停止します。
  • Leaky ReLU: 負の入力に0.01や0.1などの小さな傾きを掛けるため、すべてのユニットで勾配が維持されます。
  • SiLU(Swish): x · σ(x)。負の入力に対してわずかに0を下回る、滑らかな曲線です。効率的なCNNやリアルタイム検出器でよく使われます。
  • GELU: x · Φ(x)。Φは標準正規累積分布関数です。BERT、GPT-2、ビジョントランスフォーマーで標準的に使われる活性化関数です。
  • tanh: 入力をゼロ中心の−1から1の範囲に圧縮します。GRUなどのリカレントネットワークの隠れ状態を形成します。
  • sigmoid: 入力を0から1の範囲に圧縮します。二値出力やマルチラベル出力、リカレントセルのゲートに適しています。
  • softmax: スコアのベクトル全体を、合計が1になる確率分布に変換します。単一ラベル分類やアテンションの重みに使われます。
  • SwiGLU: SiLUで活性化した射影に、学習可能な別の射影を掛け合わせるゲート付き層です。近年の多くの大規模言語モデル(LLM)で、フィードフォワード層の単純な活性化関数に取って代わりました。

PyTorchでは、各要素ごとの関数がtorch.nnのモジュールとして提供されているため、同じ入力で簡単に比較できます。

import torch
from torch import nn

x = torch.tensor([-3.0, -1.0, 0.0, 1.0, 3.0])

# Common activations, each applied element-wise to the same inputs
activations = {
    "ReLU": nn.ReLU(),
    "Leaky ReLU": nn.LeakyReLU(0.1),
    "SiLU": nn.SiLU(),
    "GELU": nn.GELU(),
    "Tanh": nn.Tanh(),
    "Sigmoid": nn.Sigmoid(),
}
for name, act in activations.items():
    print(f"{name:>10}: {[round(v, 3) for v in act(x).tolist()]}")

入力が−3、−1、0、1、3の場合、ReLUは[0.0, 0.0, 0.0, 1.0, 3.0]を、Leaky ReLUは[-0.3, -0.1, 0.0, 1.0, 3.0]を出力します。SiLUは[-0.142, -0.269, 0.0, 0.731, 2.858]、GELUは[-0.004, -0.159, 0.0, 0.841, 2.996]となり、どちらも小さな負の値を通し、大きな入力ではReLUに近づきます。tanhは[-0.995, -0.762, 0.0, 0.762, 0.995]、sigmoidは[0.047, 0.269, 0.5, 0.731, 0.953]となり、どちらも±3で平坦になります。この時点では勾配もすでに小さくなっています。

活性化関数の選び方#

隠れ層では通常、アーキテクチャファミリーの慣例に従い、出力層ではタスクに応じた関数を使います。各入力が必ず1つのクラスに属するタスクにはsoftmaxが適し、複数ラベルが同時に当てはまるタスクにはsigmoidが適しています。回帰出力では、任意の値を取れるように活性化関数を使いません。ハードウェアが選択を制約する場合もあります。エッジアクセラレーターの中には、ReLU、Leaky ReLU、Hard-Swishなどの単純な関数のみをネイティブに実行するものがあります。YOLO26は、すべてのConvブロックで畳み込みとバッチ正規化の後にSiLUを適用します。各検出クラスのスコアには独立したsigmoidを適用するため、1つのボックスのクラススコアの合計が1になる必要はありません。また、分類モデルでは、1,000個のImageNetクラスに対してsoftmaxを適用します。

  • 損失関数: フォワードパスでは活性化関数が各ニューロンの出力を整形し、損失関数はネットワークの最終予測とラベルを比較して評価します。数値安定性のため、ライブラリでは最後の活性化を損失関数に統合することがよくあります。たとえば、CrossEntropyLossではsoftmaxを統合しています。
  • バッチ正規化: バッチ正規化やレイヤー正規化では、統計量と学習可能なパラメーターを使って活性化を安定した範囲に再スケーリングします。通常は活性化関数の直前に配置され、活性化関数と隣接します。正規化自体は非線形性を加えません。
  • 活性化: 複数形の名詞としての「活性化」は、層が生成する出力値を指します。「非線形性」と、以前から使われる「伝達関数」は、活性化関数の同義語です。学習中、フレームワークは逆伝播に備えて各層の活性化をメモリに保持します。勾配チェックポイントでは一部の活性化を破棄し、逆伝播中に再計算することでメモリを節約します。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう