用語集

シグモイド

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

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

さらに詳しく

シグモイド関数は、機械学習(ML)や深層学習(DL)で広く使われている活性化関数だ。シグモイド関数の特徴は、数学的にはシグモイド曲線として知られる「S」字型の曲線である。シグモイド関数の主な役割は、入力として任意の実数値を受け取り、それを0と1の間の出力値に押し潰すことです。この特性により、モデルの出力を確率スコアに変換し、特定の結果やクラスメンバーシップの可能性を表すのに特に有用です。

シグモイドの仕組み

シグモイド関数は、入力値を範囲(0, 1)にマッピングする。大きな正の入力値は1に近い出力となり、大きな負の入力値は0に近い出力となり、0の入力は0.5の出力となる。この変換は滑らかで微分可能であるため、どの点でも勾配を計算できる。この微分可能性は、モデルの重みを更新するためにバックプロパゲーション中に計算された勾配に依存する勾配降下のような最適化アルゴリズムを使用してニューラルネットワーク(NN)を訓練するために重要である。

機械学習への応用

シグモイド関数はMLにおいていくつかの重要な応用がある:

  1. バイナリ分類:バイナリ分類問題(Yes/No、スパム/非スパムなど、出力が2つのクラスのうちの1つ)では、シグモイド関数は、ロジスティック回帰やニューラルネットワークなどのモデルの最終出力層でよく使われます。0と1の間の出力値は、入力が正のクラスに属する確率として解釈されます。そして、しきい値(一般的には0.5)が適用され、最終的な分類決定が行われます。
  2. マルチラベル分類:各入力が1つのクラスのみに属するマルチクラス分類(多くの場合ソフトマックスで処理される)とは異なり、マルチラベル分類では、入力が同時に複数のクラスに属することができる。シグモイドは各出力ニューロンに独立して適用でき、特定のラベルが存在する確率を与える。
  3. ゲート機構:シグモイド関数は、LSTM(Long Short-Term Memory)GRU(Gated Recurrent Unit)のようなリカレント・ニューラル・ネットワークのゲート機構の基本的な構成要素です。シグモイド関数の0から1の出力範囲は、ゲートが「開いている」または「閉じている」度合いを自然に表します。
  4. オブジェクト検出の信頼性: オブジェクト検出モデルの中には、以前のバージョンの Ultralytics YOLOのようなオブジェクト検出モデルでは、出力レイヤーでシグモイド関数(または類似のロジスティック関数)が信頼度スコア(オブジェクトが提案されたバウンディングボックス内に存在する確率と、そのボックスの正確さ)を予測するために使用されます。Ultralytics モデルセクションで、様々なYOLO モデルを調べることができます。

実例

  • 医療診断の確率:患者データで学習したモデルは、シグモイド出力レイヤーを使って、患者の症状や検査結果に基づいて、患者が特定の状態にある確率(0と1の間)を予測することができる。これは、医師が意思決定を行う際の助けとなる。医療画像解析におけるAIの使用方法と、ヘルスケアにおけるより広範なAIソリューションをご覧ください。
  • センチメント分析:テキストの一部(製品レビューなど)が肯定的または否定的なセンチメントを表現しているかどうかを決定する際に、シグモイド関数はセンチメントが肯定的である確率を出力することができます。センチメント分析の詳細を見る

他の活性化関数との比較

シグモイドは歴史的に重要なものではあるが、ディープネットワークの隠れ層では、ある制限のために他の活性化関数に置き換えられることが多い。

  • シグモイドとReLU(Rectified Linear Unit)の比較:ReLU(およびLeaky ReLUのようなその変種)は、正の入力に対してSigmoidほど深刻な消失勾配問題に悩まされず、計算コストが安いため、隠れ層に好まれることが多い。しかし、ReLUの出力は0から無限大の範囲であり、確率を直接出力するには不向きである。
  • シグモイドとTanh(ハイパーボリックタンジェント)の比較:TanhもS字型だが、入力を範囲(-1, 1)にマッピングする。その出力はゼロ中心であり、Sigmoidのゼロ中心でない出力(0から1)に比べ、学習中の収束が速くなることがある。しかし、Tanhもまた消失勾配の問題を抱えている。
  • シグモイドとソフトマックスの比較:ソフトマックスはマルチクラス分類問題に使われる。これとは対照的に、シグモイドは各出力ニューロンを独立に扱い、出力の合計が1になる必要がないバイナリまたはマルチラベルタスクに適している。次のようなフレームワーク PyTorchのようなフレームワークは、これらの一般的な活性化関数の実装を提供しています。

制限事項

  1. 勾配の消失:入力値が非常に大きいか小さい場合、シグモイド関数の勾配は非常に小さくなる(ゼロに近くなる)。ディープ・ネットワークのバックプロパゲーションでは、この小さな勾配が何度も掛け合わされ、初期層の勾配が消失するほど小さくなることがある。これにより、それらの層の重みが更新されなくなり、学習プロセスが妨げられる。
  2. ゼロ中心でない出力:シグモイドの出力は常に0と1の間にあり、ゼロ中心ではありません。これは勾配降下の収束を遅くする可能性があります。重みの更新は、レイヤーのすべての重みに対して一貫してプラスかマイナスの方向に動く傾向があるからです。
  3. 計算コスト:ReLUに比べ、シグモイド計算の指数関数は計算コストが高い。

これらの制限にもかかわらず、シグモイド関数は、特にバイナリ分類タスクの出力層や、LSTMやGRUのような特定のアーキテクチャ内では、依然として貴重なツールです。Ultralytics HUBのようなプラットフォーム上で、様々な活性化関数を使用してモデルを管理し、トレーニングすることができます。

すべて読む