用語集

シグモイド

AIにおけるシグモイド関数のパワーをご覧ください。シグモイド関数がどのように非直線性を実現し、バイナリ分類を助け、MLの進歩を牽引しているかをご覧ください!

Ultralytics HUB で
を使ってYOLO モデルをシンプルにトレーニングする。

さらに詳しく

シグモイド関数は、機械学習(ML)、特にニューラルネットワーク(NN)で広く使われている活性化関数です。この特性は、モデルからの生の出力(logit)を解釈しやすい確率に変換するのに特に役立ちます。歴史的には、シグモイドはNNの隠れ層によく使われる選択肢でしたが、現代の深層学習(DL)アーキテクチャでは、ある制限のために、その目的のためにReLUのような関数に取って代わられています。

シグモイドの仕組み

シグモイド関数は、任意の実数を受け取り、それを(0, 1)の範囲に押し込めます。大きな負の入力は0に近い出力となり、大きな正の入力は1に近い出力となり、0の入力は0.5の出力となる。非線形性を持たないニューラルネットワークで複数の線形レイヤーを積み重ねると、単に別の線形関数になり、画像やテキストのようなデータに存在する複雑なパターンを学習するモデルの能力が制限されるからだ。シグモイドはまた微分可能であり、これはバックプロパゲーションや 勾配降下のような勾配ベースの最適化手法を用いてニューラルネットワークを学習する際に必要な特性である。

シグモイドの応用

シグモイドの現在の主な用途は、2値分類モデルの出力層である。その出力は自然に0と1の間に収まるので、入力が正のクラスに属する確率を表現するのに理想的である。

  1. 医療診断: 医療画像解析では、モデルはスキャン(例えば脳腫瘍データセット)の特徴を解析し、シグモイド出力層を使って特定の状態(例えば悪性腫瘍)が存在する確率を予測するかもしれない。ある閾値(多くの場合0.5)以上の出力は、肯定的な予測を示す。この確率的出力は、臨床医がモデルの信頼性を理解するのに役立ちます。放射線AI研究の例を参照。
  2. スパムの検出 自然言語処理(NLP)では、シグモイド関数は、電子メールがスパムかどうかを識別するようなテキスト分類のために設計されたモデルの最終レイヤーで使用することができます。モデルはメールの内容を処理し、そのメールがスパムである確率を(シグモイドを使って)出力します。これは、NLPアプリケーションで一般的な古典的なバイナリ分類問題です。

シグモイドは、入力が同時に複数のカテゴリに属する可能性のある、マルチラベル分類タスクにも使用できる(例えば、「政治」、「経済」、「ヨーロッパ」のタグが付けられたニュース記事)。この場合、潜在的なラベルごとに個別のシグモイド出力ニュー ロンが使用され、他のラベルとは独立に、その特定のラベルが関連する確率を推定する。これは、多クラス分類(画像を「猫」、「犬」、「鳥」に分類するように、1つのラベルのみが適用される)とは対照的で、通常ソフトマックス関数を使用する。

シグモイド対関連活性化関数

シグモイドを理解するには、しばしば他の活性化関数と比較する必要がある:

  • ReLU(整流線形ユニット)ReLUは入力が正であればそのまま出力し、そうでなければゼロを出力する。ReLUは計算が単純で、正の入力に対する勾配の消失問題を避けることができるため、多くのNNを含む最新のNNの隠れ層に好んで使われている。 Ultralytics YOLOモデル YOLOv8.Leaky ReLUのような変種は、ReLUの「死にゆくニューロン」の問題に対処している。
  • Tanh(ハイパーボリックタンジェント)TanhはSigmoidと数学的に関連していますが、入力を(-1, 1)の範囲に縮小します。その出力はゼロ中心で、シグモイドのゼロ中心でない出力(0から1)に比べて最適化に役立つことがある。しかし、シグモイドと同様、消失勾配の問題に悩まされます。
  • ソフトマックスマルチクラス分類問題の出力層に使用される。シグモイド(バイナリまたはマルチラベルのタスクに対して独立した確率を提供する)とは異なり、ソフトマックスはすべてのクラスにわたって確率分布を出力し、確率の和が1になるようにする。
  • SiLU (Sigmoid Linear Unit) / スウィッシュより新しい活性化関数で、入力にシグモイドを掛ける。より深いモデルではReLUよりも優れた性能を発揮することが多く、EfficientNetやいくつかのYOLO ようなアーキテクチャで使用されている。これは、Sigmoidが新しい関数のコンポーネントとしていかに重要であり続けるかを示しています。SiLUの実装は PyTorch ドキュメントを参照してください。

利点と限界

利点がある:

  • 確率論的解釈:(0, 1)の出力範囲は、2値分類における確率を表すのに直感的である。
  • 滑らかな勾配:急激な変化をする関数(ステップ関数など)とは異なり、シグモイドは滑らかでよく定義された導関数を持ち、勾配ベースの学習を容易にします。

制限:

  • 勾配の消失:入力値が非常に大きいか小さい場合、シグモイド関数の勾配は非常に小さくなる(ゼロに近くなる)。バックプロパゲーションの間、この小さな勾配は多くの層にわたって乗算され、以前の層の勾配を消失させ、効果的に学習を停止させます。これが、バックプロパゲーションが深い隠れ層にあまり好まれない大きな理由である。
  • ゼロ中心出力ではない:出力範囲(0, 1)はゼロを中心としていない。これは、Tanhのようなゼロ中心の関数に比べて、勾配降下アルゴリズムの収束を遅くすることがあります。
  • 計算コスト:指数演算が含まれるため、ReLUのような単純な関数よりも若干計算コストが高くなる。

現代の使用法と利用可能性

今日、ディープネットワークの隠れ層ではあまり見かけなくなったが、シグモイドはバイナリ分類やマルチラベル分類タスクの出力層では依然として標準的な選択肢である。また、LSTMや GRUのようなリカレント・ニューラル・ネットワーク(RNN)内のゲーティング・メカニズムの中核を形成し、情報の流れを制御する。

シグモイドは、すべての主要メーカーで入手可能である。 深層学習フレームワークを含む。 PyTorch (として torch.sigmoidそして TensorFlow (として tf.keras.activations.sigmoid).プラットフォーム Ultralytics HUB 様々な活性化関数を利用したモデルをサポートし、ユーザーは以下のことができる。 汽車 そして 配備 洗練された コンピュータビジョン ソリューションを提供する。

すべて読む