2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Stochastic Activations: SILU と RELU をランダムに切り替えて最適化とスパース性を両立する手法

2
Last updated at Posted at 2025-12-09

Stochastic Activations: SILU と RELU をランダムに切り替えて最適化とスパース性を両立する手法

背景

トークン効率とスパース性の問題

大規模言語モデルは、Feed-Forward Network (FFN) に多くのパラメータを持つ。
ここで使う 活性化関数(入力を非線形に変換する処理)が性能と効率を左右する。

LLMでは SILU(Sigmoid Linear Unit)が精度面で主流だが、スパース性を生まないため、CPU推論時の高速化が難しい。

一方、RELU(Rectified Linear Unit)は負値をすべて0にするため 高いスパース性を得られる。
しかし、負の入力で勾配が0になるため、dead neuron(死んだニューロン)問題が深刻で、学習が進みにくいという欠点がある。

つまり

  • 精度が出るが遅いのが SILU
  • 速いが学習が死ぬのが RELU
    という構図がある。

この矛盾を解くのが Stochastic activations である。

従来の限界

  • RELUの最大の弱点は、負値領域の勾配ゼロによってニューロンが最終的に機能しなくなる点
  • SILUは精度は高いがスパース性が無く、推論時のFLOPsを減らせない
  • 両者を切り替える勝手な“後付け”では性能が破綻する(学習と推論のギャップが大きい)

提案手法の概要

論文は2つのアプローチを導入する:

  1. Swi+FT (Switch + Fine-Tune)

    • ほぼ全学習を SILU で行い、最後の5–10%だけ RELU に切り替えて微調整
    • SILUの最適化能力とRELUのスパース性を両立
  2. StochA (Stochastic Activations)

    • 活性化関数を SILU と RELU の間でベルヌーイ分布に従ってランダムに切り替える
    • 特に x < 0 の領域のみランダム化
    • 学習・推論のいずれにも適用可能

この組み合わせにより、以下を達成する:

  • RELUベースのモデルにも関わらず SILUに近い精度
  • 90%を超えるスパース性
  • CPU推論で 約1.65倍の高速化(Figure 3, p.7)

提案手法

手法の全体像

提案手法は、「負の入力に対して、SILUかRELUかを確率的に選ぶ」。
数学的には次のように定義される。


【図1】Stochastic activations の基本原理(p.1)

スクリーンショット 2025-12-10 1.57.39.png

  • 入力 x < 0 のとき、確率 p で SILU、確率 1−p で RELU を適用する
  • x ≥ 0 のときは RELUかSILUかを設定に応じて固定

重要:

  • SILUの滑らかな勾配により dead neuron を防ぐ
  • 一方で RELU のスパース性も獲得できる
  • 最適化と推論の双方に相性のいい中間の挙動を作れる

1. Swi+FT:SILUで学習し、最後だけRELUへ切り替える

Swi+FTは 学習の最後の5–10%だけ活性化を切り替える単純な戦略。

活性化切り替えによる学習曲線の特徴

【図2】Swi+FT の損失推移(p.4)

スクリーンショット 2025-12-10 1.59.05.png

(PDF p.4 の Figure 2)

  • SILUで学習 → 最終5–20%のステップで RELU に変更
  • 切り替え直後に "loss spike" が起きるがすぐに収束

重要:

  • RELUに突然切り替えても“破綻しない”ことを示す

  • 活性化関数の変更は本来不安定だが、SILU と RELU の形が近いことが効いている

  • SILUで得た表現を、RELUに合わせて最後に微調整するのがポイント

  • これだけでは性能改善は弱く、StochAと併用して効果が最大化される


2. StochA:負領域だけSILU/RELUを確率的に選択

数学的定義(p.4):

$Ψ_p(x) = (1 - ω)\cdot \text{RELU}(x) + ω \cdot \text{SILU}(x), \quad ω\sim\text{Bernoulli}(p),;x<0 $

この構造が意味するもの

  • 負の領域だけ SILU を混ぜる → 勾配が流れる
  • 正の領域はそのまま → スパース性は損なわない
  • 学習中に “RELUで動くモード” と “SILUで動くモード” の両方に適応
  • 結果として 推論をRELUにしても破綻しないモデルが得られる

3. Swi+FT と StochA の併用が最良

スクリーンショット 2025-12-10 2.00.38.png

【図4】StochA + Swi+FT の学習曲線(p.7)

図を見ると:

  • StochAで学習し、最後の5–20%でRELUに切り替え(Swi+FT)
  • 切り替え直後にスパイク → すぐに収束 → 最良の結果へ

重要:

  • Swi+FT単独よりも精度が高く、学習が安定

  • “死んだニューロン”がほぼ消える(Appendix B 参照)

  • StochAで負領域に勾配が流れるため、RELUへの遷移に耐性がつく

  • これが死んだニューロン(dead neuron)の抑制につながる


スパース化と高速化の効果

スクリーンショット 2025-12-10 2.02.32.png

【図3】スパース性とCPU推論速度(p.7)

  • x < 0 の割合が増えるほどスパース率が上がる
  • スパース率90% → CPU推論が 約1.65倍高速化
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?