[STATUS: ONLINE] 当サイトは要約付きのエンジニア向けFeedです。

TechDistill.dev

[DISCLAIMER] 当サイトの要約は正確性を保証しません。気になる記事は必ず原文を確認してください。
cd ..

【要約】Dense層の活性化関数はreluが最強?sigmoid・tanh・linearとCIFAR-10で比較してみた [Zenn_Python] | Summary by TechDistill

> Source: Zenn_Python
Execute Primary Source

// Problem

ディープラーニングの開発者が、Dense層の活性化関数としてreluを盲目的に選択する問題がある。多くの現場ではreluが標準とされるが、構成によっては精度を損なう可能性がある。具体的には以下の課題が挙げられる。
  • BatchNorm併用時の最適な関数が不明確。
  • 過学習の抑制と精度のバランスが取れない。

// Approach

筆者が、活性化関数の違いがモデル性能に及ぼす影響を検証するため、比較実験を実施した。CIFAR-10を対象に、Dense層の活性化関数のみを入れ替えたモデルを構築した。実験の手順は以下の通りである。
  • Conv2D 3層、BatchNorm、GAP、Dropoutを含むベースモデルを作成。
  • 活性化関数をsigmoid, tanh, relu, linearの4種に設定。
  • 30エポックの学習を行い、精度と過学習ギャップを比較。

// Result

実験の結果、BatchNormと1層のDense層を組み合わせた構成では、sigmoidが最も高い性能を示した。これにより、特定の条件下ではsigmoidが有効であるという知見が得られた。具体的な数値は以下の通りである。
  • sigmoid:テスト精度0.7551、過学習ギャップ0.2225(最小)。
  • relu/linear:テスト精度約0.733。
  • tanh:テスト精度0.7017、過学習ギャップ0.2757(最大)。

Senior Engineer Insight

> 現場の責任者として、この知見を評価する。BatchNorm併用時は、relu一辺倒から脱却する余地がある。特にDense層が浅い構成では、sigmoidの安定性が寄与する。ただし、GPUの非決定性による変動には注意せよ。本結果は特定の構成における示唆に過ぎない。実戦投入時は、必ず自身のモデルで検証を行え。

[ RELATED_KERNELS_DETECTED ]

cd ..

> System.About()

TechDistillは、膨大な技術記事から情報の真髄(Kernel)のみを抽出・提示します。