技術(非IT系)

シグモイド関数とは?意味と特徴をわかりやすく解説!(活性化関数:ニューラルネットワーク:機械学習:ロジスティック関数など)

当サイトでは記事内に広告を含みます

「シグモイド関数」という言葉を機械学習・ニューラルネットワークの学習で目にしたとき、その意味と特徴を正確に説明できるでしょうか。

活性化関数・ニューラルネットワーク・ロジスティック関数——これらはすべてシグモイド関数と深く関わっています。

本記事では、シグモイド関数の意味と定義、数学的な特徴、ニューラルネットワークにおける活性化関数としての役割、ロジスティック関数との関係、そして現在の機械学習での位置づけまで、わかりやすく体系的に解説していきます。

機械学習の基礎をしっかりと固めたい方にとって、重要な概念を網羅した内容となっているでしょう。

シグモイド関数の意味と定義——S字型カーブの数学的な正体

それではまず、シグモイド関数の意味と定義について解説していきます。

シグモイド関数(Sigmoid Function)とは、任意の実数値を入力として0から1の間の値を出力する、S字型(シグモイド型)の形状を持つ数学関数です。

「シグモイド(sigmoid)」という名前はギリシャ文字のシグマ(Σ・σ)に由来し、「シグマのような形をした」という意味です。

シグモイド関数の定義式と基本的な性質

シグモイド関数の定義式

σ(x) = 1 ÷ (1 + e^(−x))

または同値の表現:σ(x) = eˣ ÷ (1 + eˣ)

主な性質:

・出力範囲:0 < σ(x) < 1(0と1に漸近するが到達しない)

・σ(0) = 0.5(x=0のとき出力は0.5)

・x → +∞ のとき σ(x) → 1

・x → −∞ のとき σ(x) → 0

・単調増加関数(xが増加するとσ(x)も増加)

・全域で微分可能な滑らかな関数

シグモイド関数のグラフの特徴

シグモイド関数をグラフに描くと、特徴的なS字型(シグモイド曲線)になります。

x=0付近では出力が0.5で最も急激に変化し、xが正の方向に大きくなるにつれて出力は1に近づき(正の飽和領域)、xが負の方向に小さくなるにつれて出力は0に近づきます(負の飽和領域)。

このS字型カーブは「入力の大きさに応じて0から1の間の確率的な値を返す」という性質から、確率の表現に非常に適した関数形状となっています。

シグモイド関数とロジスティック関数の関係

シグモイド関数と「ロジスティック関数(Logistic Function)」は、多くの文脈で同義として使われます。

数学的には、ロジスティック関数は「σ(x) = 1 ÷ (1 + e^(−x))」という形の関数の総称であり、これは標準シグモイド関数と完全に同じ形式です。

ロジスティック回帰(Logistic Regression)において、モデルの出力を0〜1の確率に変換するために使われるのがこのロジスティック関数(=シグモイド関数)であり、名前の由来もロジスティック回帰に関連しています。

シグモイド関数が活性化関数として使われる理由

続いては、ニューラルネットワークにおけるシグモイド関数の役割について確認していきます。

ニューラルネットワークにおいてシグモイド関数が活性化関数として採用された理由には、数学的・直感的に重要な理由があります。

活性化関数とは何か——非線形性の導入

活性化関数(Activation Function)とは、ニューラルネットワークの各ニューロン(ノード)において、前の層からの入力の重み付き和に対して適用する関数です。

活性化関数がなければニューラルネットワークはいくら層を重ねても「線形変換の組み合わせ」にしかならず、線形分離不可能な問題を解くことができません。

シグモイド関数のような非線形関数を活性化関数として使うことで、ニューラルネットワークに非線形性が導入され、複雑なパターンの学習が可能になります。

活性化関数による非線形性の導入こそが、ニューラルネットワークが「万能近似器(Universal Approximator)」として機能できる根拠です。

シグモイド関数が活性化関数として選ばれた理由

シグモイド関数が初期のニューラルネットワークで広く採用された理由は以下の通りです。

採用理由 具体的な説明
出力範囲が0〜1 ニューロンの「発火率」を0〜1の確率として解釈できる
微分可能 バックプロパゲーションで勾配計算が可能
滑らかな連続関数 勾配降下法で安定した最適化が行える
確率への変換 二値分類の最終層で確率として解釈できる
生物学的な類似性 神経細胞の発火特性に類似した非線形性を持つ

シグモイド関数の微分——バックプロパゲーションでの役割

シグモイド関数の微分は非常にシンプルな形になり、バックプロパゲーションでの計算効率が高いという特徴があります。

シグモイド関数の微分

σ'(x) = σ(x) × (1 − σ(x))

つまりシグモイド関数の微分値は、シグモイド関数の出力値σ(x)だけで計算できる

例:σ(0) = 0.5 のとき → σ'(0) = 0.5 × (1 − 0.5) = 0.25(最大値)

  σ(3) ≒ 0.95 のとき → σ'(3) ≒ 0.95 × 0.05 ≒ 0.048(飽和領域では小さい)

この微分の性質から、シグモイド関数の出力が0や1に近い飽和領域では微分値が非常に小さくなることが分かります。

これが深層学習における深刻な問題「勾配消失問題」の主要な原因の一つです。

シグモイド関数の問題点——勾配消失問題と現代での位置づけ

続いては、シグモイド関数の課題と現代の機械学習での位置づけについて確認していきます。

シグモイド関数はニューラルネットワーク初期の主要な活性化関数でしたが、深層学習の発展とともにいくつかの重要な問題点が明らかになりました。

勾配消失問題——深層ネットワークでの深刻な課題

勾配消失問題(Vanishing Gradient Problem)とは、深層ニューラルネットワークのバックプロパゲーションにおいて、勾配が入力層方向に伝播するにつれて指数的に小さくなってしまう問題です。

シグモイド関数の微分の最大値は0.25であり、飽和領域ではさらに小さくなります。

層が深くなるほど各層での勾配の積が取られるため、多くの層を通ると勾配は事実上0に近づき、入力層に近い層のパラメータがほとんど更新されなくなります。

勾配消失問題はシグモイド関数をhidden層(中間層)の活性化関数として使う場合に特に深刻であり、これが現代の深層学習でReLUが標準的な活性化関数として採用された最大の理由です。

出力が0中心でないことの問題

シグモイド関数の出力は常に0より大きい(0〜1の範囲)ため、出力が0中心(zero-centered)ではありません。

この性質により、勾配降下法でのパラメータ更新がジグザグパターンになりやすく、学習効率が低下するという問題があります。

tanh(ハイパボリックタンジェント)関数はシグモイド関数を−1〜1の範囲にスケールした変形版であり、出力が0中心になるためシグモイドよりも学習効率が高い場合があります。

シグモイド関数が現在も使われる場面

中間層ではReLUなどに主役を譲ったシグモイド関数ですが、特定の場面では現在も重要な役割を担っています。

最も重要な使用場面は「二値分類の出力層」です。二値分類の最終出力を0〜1の確率として解釈するためにシグモイド関数が使われ、二値交差エントロピー損失との組み合わせで学習します。

また、LSTMやGRUなどのリカレントニューラルネットワーク(RNN)の内部のゲート機構(入力ゲート・忘却ゲート・出力ゲート)でもシグモイド関数が使われており、依然として重要な構成要素です。

シグモイド関数と他の活性化関数との比較

続いては、シグモイド関数と現代の主要な活性化関数との比較について確認していきます。

ReLU——現代の深層学習における標準活性化関数

ReLU(Rectified Linear Unit)は「f(x) = max(0, x)」というシンプルな関数で、現代の深層学習で最も広く使われる活性化関数です。

x > 0 の領域では微分値が常に1であるため勾配消失が起きにくく、計算コストが非常に低いというメリットがあります。

ただしx ≦ 0 の領域では出力が0になり、一度0になったニューロンは学習が止まってしまう「Dying ReLU問題」があります。

活性化関数 出力範囲 勾配消失 現在の主な用途
シグモイド (0, 1) 深刻に起きやすい 二値分類出力層・LSTMゲート
tanh (−1, 1) 起きやすい RNNの中間層・一部の生成モデル
ReLU [0, ∞) 起きにくい CNN・フィードフォワードNNの中間層
Leaky ReLU (−∞, ∞) ほぼ起きない ReLUの改善版として中間層で使用
Softmax 各成分が(0,1)で合計1 起きにくい 多クラス分類の出力層

シグモイド関数とSoftmax関数の関係

Softmax関数(多クラス分類の出力層に使われる)は、シグモイド関数の多クラス版への一般化と見ることができます。

2クラスのSoftmaxはシグモイド関数と数学的に等価であり、シグモイドが二値分類の確率を表現するのに対し、Softmaxは多クラス分類における各クラスへの確率分布を表現します。

シグモイド関数とSoftmaxは「出力を確率として解釈する」という共通の役割を持ち、それぞれ二値分類・多クラス分類の出力層における標準的な活性化関数として現在も重要な位置を占めているでしょう。

シグモイド関数の重要ポイントまとめ

・定義:σ(x) = 1÷(1+e^(−x))・出力範囲は(0,1)

・S字型曲線でx=0のとき出力0.5・全域で微分可能

・ロジスティック関数と同義として使われることが多い

・微分:σ'(x) = σ(x)×(1−σ(x))・飽和領域では非常に小さい値

・深層NNの中間層では勾配消失問題によりReLUに主役を譲った

・現在の主な用途:二値分類出力層・LSTMゲート機構

まとめ

本記事では、シグモイド関数の意味と定義から、数学的な性質、活性化関数としての役割とその理由、勾配消失問題、現代の機械学習での位置づけ、そして他の活性化関数との比較まで体系的に解説してきました。

シグモイド関数は「任意の実数を0〜1の確率に変換するS字型関数」として、ニューラルネットワーク研究の基礎を作った重要な関数であり、現在でも二値分類の出力層やLSTMのゲート機構で重要な役割を担っている関数です。

深層学習の中間層ではReLUなどに主役を譲りましたが、シグモイド関数の数学的性質と問題点を理解することは、なぜReLUが優れているのかを理解するためにも不可欠な知識です。

本記事を参考に、シグモイド関数への理解を深め、機械学習・ディープラーニングの学習や実装に役立てていただければ幸いです。