ニューラルネットワークは近年、さまざまな分野で活用が進んでいます。
その一方で、ニューラルネットワークの設計における「活性化関数の選び方」は、予測精度や学習の安定性を大きく左右します。
本記事では、実際に活躍しているエンジニアや研究者の実例を交えながら、ニューラルネットワークにおける活性化関数の選び方や、その背後にある理論、最新動向について詳しく説明します。
ニューラルネットワークを最大限に活かしたい方、これからディープラーニングを学ぶ方は必見です。
ニューラルネットワークの構造と活性化関数の役割
ニューラルネットワークは、多数のニューロン(ノード)を層状につなげた構造を持ち、各層のニューロンは入力値に重みをかけて合計し、活性化関数に通すことで出力値を算出します。
単純な線形関数だけでは実現できない複雑な非線形表現を可能にするのが、活性化関数の主な役割です。
例えば、MITの著名なAI研究者であるジェフリー・ヒントン氏も活性化関数の選び方の重要性を複数の論文で指摘しています。
ニューラルネットワークに多様な活性化関数を組み込むことで、音声認識や画像認識、自然言語処理など、さまざまな分野で高精度なモデル構築が可能となります。
代表的な活性化関数の特徴と選び方
シグモイド関数
シグモイド関数は、ニューラルネットワークの初期によく使われていた活性化関数です。
0から1までの出力値を取り、確率的な解釈がしやすいのがメリットです。
しかし、学習が進むにつれ勾配消失問題が発生しやすく、大規模なニューラルネットワークには向いていません。
そのため、現在では出力層やロジスティック回帰など、限定的な用途で選ばれることが多いです。
ReLU(Rectified Linear Unit)関数
ReLU関数は、「0以上の入力はそのまま出力し、0未満の入力は0にする」という非常にシンプルな数式です。
2012年のImageNetチャレンジでアレックス・クジレフスキー氏が開発したAlexNetがReLU関数を採用し、他を圧倒する精度を達成したことで、一躍主流となりました。
ReLUのメリットは、勾配消失問題が起きにくく、学習スピードも速い点です。
一方、入力が負の値になると常に0を出力し続けてしまう「死んだニューロン」問題が生じやすいため、その点に着目した活性化関数の選び方が重要になっています。
Leaky ReLU関数とその派生
「Leaky ReLU」は、ReLUの欠点である死んだニューロン問題を緩和するために開発された活性化関数です。
入力が負の値でも僅かな傾きを保つことで、情報の流れを確保します。
実務で大規模な画像認識タスクなどに取り組むエンジニア、たとえばGoogleのAIチームは、こうしたLeaky ReLUを含む派生型活性化関数をしばしば利用しています。
活性化関数の選び方として、ReLU系列がボトルネックになりそうな時にはLeaky ReLUやParametric ReLU (PReLU)を検討すると良いでしょう。
Tanh関数(双曲線正接関数)
Tanh関数は−
