機械学習におけるシグモイド関数の役割を探ります。この活性化関数がUltralytics YOLO26のようなモデルで二値分類を可能にする方法を学びましょう。
シグモイド関数は、機械学習(ML) および深層学習(DL)の分野で広く用いられる基本的な数学的構成要素である。しばしば「スクワッシュ関数」とも呼ばれ、実数値を入力として受け取り、0から1の間の値へ写像する。この特徴的な「S」字型の曲線は、モデルの生の出力を解釈可能な確率値へ変換する上で非常に有用である。ニューラルネットワーク(NN)の文脈では、 シグモイド関数は活性化関数として機能し、 単純な線形関係を超えた複雑なパターンを学習可能にする非線形性を導入します。 深層隠れ層では他の関数にほぼ置き換えられたものの、 二値分類タスクにおける出力層の標準的な選択肢として 現在も用いられています。
シグモイド関数の本質は、入力データ(ロジットと呼ばれることが多い)を正規化された範囲に変換することにある。この変換は、事象の発生確率を予測することを目的とするタスクにおいて極めて重要である。出力を0から1の間に制限することで、関数は明確な確率スコアを提供する。
シグモイドはかつてすべての層のデフォルトでしたが、研究者は、勾配が小さくなりすぎてディープネットワークで重みを効果的に更新できない勾配消失問題のような制限を発見しました。これにより、隠れ層の代替案が採用されるようになりました。
シグモイド関数は、確率推定が必要とされる様々な産業でその有用性が発揮されます。
ディープラーニングモデル構築のための人気ライブラリであるPyTorchを使用して、Sigmoidがデータをどのように変換するかを観察できます。この簡単な例は、様々な入力値に対する「押しつぶし」効果を示しています。
import torch
import torch.nn as nn
# Create a Sigmoid layer
sigmoid = nn.Sigmoid()
# Define input data (logits) ranging from negative to positive
input_data = torch.tensor([-5.0, -1.0, 0.0, 1.0, 5.0])
# Apply Sigmoid to squash values between 0 and 1
output = sigmoid(input_data)
print(f"Input: {input_data}")
print(f"Output: {output}")
# Output values near 0 for negative inputs, 0.5 for 0, and near 1 for positive inputs
低レベルのコードを書くことなく、これらの概念を利用するモデルを学習したい方には、Ultralytics Platformがデータセットを管理し、YOLO26のような最先端モデルを学習するための直感的なインターフェースを提供します。アーキテクチャの複雑さを自動的に処理することで、ユーザーは特定のコンピュータービジョンアプリケーション向けに高品質のトレーニングデータを収集することに集中できます。

未来の機械学習で、新たな一歩を踏み出しましょう。