BLOG

深層学習3、活性化関数

深層学習3、活性化関数

2.2 活性化関数

ユニットが持つ活性化関数には通常、単調増加する非線形関数が用いられる。古くから最もよく使われているのがロジスティックシグモイド関数(Logistic Sigmoid Function)、あるいはロジスティック関数(Logistic Function)と呼ばれる

$$f\left(u\right)=\frac{1}{1+e^{-u}}$$

だ。定義域は実数全体、地域は(0,1)だ。

ロジスティック関数の代わりに類似な双曲線正接、f(u)=tanh(u)も使える。値域は(-1,1)と変わるが、

$$\tanh \left(u\right)=\frac{e^u-e^{-u}}{e^u+e^{-u}}$$

とも表せるように、ロジスティック関数とよく似た性質を持つ。これらは一般にシグモイド関数と総称される。生物の神経細胞が持つ性質をモデル化したものである。

近年、正規化線形関数(Rectified Linear Function)、f(u)=max(u,0)がよく使われている。単純で計算量が小さく、学習も早く進み、良い結果が得られる。

シグモイド関数は大きすぎると出力がほとんどの場合0か1のどちらかになってしまうため、入力の変動の大きさに気を使う必要があるが、正規化線形関数はない。正規化線形関数を持つユニットのことをReLU(Rectified Linear Unit)と略記する。

回帰問題のためクラス分類を目的とするネットワークは出力層の活性化関数にソフトマックス関数を使う。

また、ロジスティック関数を区分的に直線で近似した次の関数を使うことがある。

$$f\left(u\right)=\begin{cases}-1\ \left(u<-1\right)\\u\ \left(-1\le u<1\right)\\1\ \left(u\ge 1\right)\end{cases}$$

直線の組合せで非線形性を表現 → 正規化線形関数、最大化出力関数と似ている。

値域に制限がある点 → シグモイド関数に近い。

マックスアウト(maxout): マックスアウトを持つユニット1つは、K個の異なるユニットをまとめて1つにしたような構造を持つ。K個の1つ1つが異なる重みとバイアスを持ち、それぞれの総入力をuj1,...,ujkと別々に計算した後、それらの最大値をこのユニットの出力とする。

$$u_{jk}=\sum _i^{\ }W_{jik}\times z_i+b_{jk}\ \left(k=1,...,K\right)$$

各種ベンチマークテストで正規化線形関数を使うネットワークを凌ぐ結果を残しているが、パラメータ数が普通のユニットのK倍あることから、よく使われない。

2.2 활성화함수

유닛이 가진 활성화 함수로 보통 증가하는 비선형함수가 사용된다. 가장 널리 쓰이는 것이 로지스틱 시그모이드 함수, 혹은 로지스틱 함수로 불리는

$$f\left(u\right)=\frac{1}{1+e^{-u}}$$

이다. 정의역은 실수 전체이고, 치역은 (0,1)이다.

로지스틱 함수 대신 유사한 쌍곡 탄젠트 함수,

$$\tanh \left(u\right)=\frac{e^u-e^{-u}}{e^u+e^{-u}}$$

도 사용할 수 있다. 치역은 (-1,1)로 달라지지만, 쌍곡 탄젠트 식에서 볼 수 있듯 로지스틱 함수와 유사한 성질을 가지고 있다.

최근에는 정규화선형함수(Rectified Linear Function), f(u) = max(u, 0)이 자주 사용된다. 단순하기에 계산량도 적고, 학습도 빠르게 진행되며, 좋은 결과를 얻을 수 있다.

시그모이드 함수는 값이 지나치게 커지면 출력이 거의 모든 상황에서 0, 혹은 1이 되버리기에 입력의 변동치에 주의를 기울일 필요가 있으나, 정규화선형함수는 그렇지 않다. 정규화선형함수를 가진 유닛을 ReLU(Rectified Linear Unit)이라고 줄여 부른다.

선형문제를 위해 클래스를 분류하는 목적의 네트워크는 출력층의 활성화함수로 Softmax를 사용한다.

또한, 로지스틱 함수를 구간 별로 직선에 근사한 다음의 함수가 사용되기도 한다.

$$f\left(u\right)=\begin{cases}-1\ \left(u<-1\right)\\u\ \left(-1\le u<1\right)\\1\ \left(u\ge 1\right)\end{cases}$$

직선의 조합으로 비선형성을 표현한다는 점에서는 정규화선형함수나 최대화출력함수를 닮았다.

치역에 제한이 있다는 점에서는 시그모이드 함수에 가깝다.

Maxout: Maxout을 가진 유닛 하나는, K개의 다른 유닛을 하나로 모은 듯한 구조를 가지고 있다. K개의 하나하나가 다른 가중치와 편차를 가지고 있어, 그것들의 총입력값을 uj1,...,ujk로 각기 계산한 후, 최대치를 유닛의 출력으로 한다.

$$u_{jk}=\sum _i^{\ }W_{jik}\times z_i+b_{jk}\ \left(k=1,...,K\right)$$

각종 벤치마크 테스트에서 정규화선형함수를 사용한 네트워크의 기록을 넘는 결과를 보여주지만, 파라미터 수가 보통 유닛의 K배이므로 잘 사용하지 않는다.