Yolo 深圳
深セン
今すぐ参加
用語集

活性化関数

ニューラルネットワークにおける活性化関数の役割、その種類、AIと機械学習における現実世界の応用例について解説します。

活性化関数は、ニューラルネットワーク(NN)内の重要な数学的要素である。 ニューラルネットワーク(NN)内の重要な数学的構成要素である。 特定のニューロンをアクティブにすべきか、非アクティブにすべきかを決定する。しばしばニューロンの「ゲートキーパー」と表現される。 入力の加重和を受け取り、次の層に渡す出力信号に変換する。この変換 ディープラーニング(DL)モデルに非線形性を導入するために不可欠である。 この変換は、ディープラーニング(DL)モデルに非線形性を導入するために不可欠である。活性化関数がなければ 関数がなければ、ニューラルネットワークは事実上、単純な線形回帰モデルのように振る舞うことになる。 単純な線形回帰モデルのように振る舞う。 この制限により、モデルは複雑なパターンを学習できなくなる。この制限により、モデルは手書きの数字のカーブや顔の特徴のような複雑なパターンを学習することができなくなる。 のような複雑なパターンを学習することができなくなる。

コア機能とタイプ

活性化関数の主な目的は、入力値を望ましい範囲にマッピングし、複雑さを導入することである。 様々な関数は、モデル・アーキテクチャの特定の要件と手元のタスクに基づいて選択される、 例えば、コンピュータビジョン(CV)や言語処理 処理などである。

  • バイナリーステップ:閾値ベースの関数で、入力がある値を超えると1を出力し、そうでなければ0を出力する。 を出力する閾値ベースの関数。これは生物学的なニューロンの発火を模倣したもので、ウィキペディアの人工ニューロンの歴史の中で探求されている概念である。 ウィキペディアの人工ニューロンの歴史において探求されている概念である。
  • ReLU (Rectified Linear Unit): 隠れ層の最も一般的な選択肢。入力が正であればそのまま出力し、そうでなければゼロを出力する。 を出力する。この効率はモデル学習を加速し 勾配の消失問題を軽減する。
  • シグモイド0と1の間の値をつぶす。 1 の間の値をつぶすので、バイナリ分類モデルの出力層で確率を予測するのに理想的です。
  • SiLU(シグモイド線形ユニット) のような最先端のアーキテクチャで使用される、滑らかで非単調関数。 YOLO11.従来のReLUに比べ、ディープネットワー ネットワークにおいて、従来のReLUよりも優れた勾配フローを可能にする。
  • ソフトマックス生の数値のベクトルを 確率分布に変換する。 画像分類によく使われる。

AIの実世界での応用

活性化関数は、現代のAIシステムの意思決定能力を支えるエンジンである。その選択は の精度と速度に直接影響する。 直接影響する。

  1. 自律走行車:自動運転車システムでは 物体検出モデルは、ビデオフィードを処理して 歩行者や交通標識を識別する。これらのネットワークは、隠れ層のReLUやSiLUのような効率的な関数に依存している。 これらのネットワークは、高解像度の画像データをミリ秒単位で処理するために、隠れ層にReLUやSiLUのような効率的な関数を採用している。出力層はソフトマックスを使用して物体を分類する、 自律走行車がブレーキをかけるか加速するか を決定するのに役立つ。
  2. 医療診断 医療画像解析では、AIモデルが X線やMRIスキャンを解析して異常をdetect する。腫瘍検出のために訓練されたモデルは、最終層でシグモイド関数を使用するかもしれない。 例えば0.95)を出力し、診断が陽性である可能性が高いことを示す。この この精度は、医療におけるAIに関する研究で議論されているように、医師が十分な情報に基づいた意思決定を行うことを支援する。 医療におけるAI

実施例

開発者は、次のようなライブラリを使用して、簡単に活性化関数を適用することができます。 PyTorch.次の例は 関数が同じ入力データをどのように変換するかを示しています。

import torch
import torch.nn as nn

# Sample data: a tensor with negative, zero, and positive values
data = torch.tensor([-2.0, 0.0, 2.0])

# Define activation functions
relu = nn.ReLU()
sigmoid = nn.Sigmoid()

# Apply functions to the data
# ReLU turns negatives to 0; keeps positives unchanged
print(f"ReLU Output:    {relu(data)}")
# Expected: tensor([0., 0., 2.])

# Sigmoid squashes values between 0 and 1
print(f"Sigmoid Output: {sigmoid(data)}")
# Expected: tensor([0.1192, 0.5000, 0.8808])

実装の包括的な詳細については PyTorch 参照してください。

関連用語の区別

活性化関数を学習プロセスの他の基本的な構成要素と区別することは有益である:

  • 活性化関数と損失関数の比較: 活性化関数は、ニューロンの出力を決定するフォワード・パスの間に動作する。対照的に、損失関数 (平均二乗誤差のような)損失関数は、フォワード・パスの最後に動作し、モデルの予測値と実際の目標値との誤差を計算する。 予測値と実際の目標値との誤差を計算する。
  • 活性化関数 vs. 最適化アルゴリズム 最適化アルゴリズム 活性化関数が出力形状を定義するのに対して、最適化アルゴリズム(例えば 確率的勾配降下法) 最適化アルゴリズム(確率的勾配降下など)は、その出力から得られる勾配に基づいてモデルの重みをどのように更新するかを決定します。この関係については この関係については Google Machine Learning Glossaryを参照してください。
  • 活性化関数対パラメータ パラメータweights and biases)は学習され、トレーニング中に更新される。活性化関数は一般に、アーキテクチャ設計段階で選択された固定 しかし、PReLUのような高度なタイプでは、学習可能なパラメータを使用することができます。 のように学習可能なパラメータもあります。

Ultralytics コミュニティに参加する

AIの未来を共に切り開きましょう。グローバルなイノベーターと繋がり、協力し、成長を。

今すぐ参加