리키 렐루 함수
리키 렐루(Leaky ReLU) 함수는 입력 값이 음수이면 0이 아닌 0.001처럼 매우 작은 수를 반환합니다. 이렇게 하면 입력 값이 수렴하는 구간이 제거되어 렐루 함수를 사용할 때 생기는 문제를 해결할 수 있습니다.
▲ 그림 4-11 리키 렐루 활성화 함수와 미분 결과
소프트맥스 함수
소프트맥스(softmax) 함수는 입력 값을 0~1 사이에 출력되도록 정규화하여 출력 값들의 총합이 항상 1이 되도록 합니다. 소프트맥스 함수는 보통 딥러닝에서 출력 노드의 활성화 함수로 많이 사용됩니다. 수식으로 표현하면 다음과 같습니다.
exp(x)(앞의 식에서는 exp(ak)와 exp(ai)를 의미)는 지수 함수(exponential function)입니다. n은 출력층의 뉴런 개수, yk는 그중 k번째 출력을 의미합니다. 즉, 이 수식처럼 소프트맥스 함수의 분자는 입력 신호 ak의 지수 함수, 분모는 모든 입력 신호의 지수 함수 합으로 구성됩니다.
다음은 렐루 함수와 소프트맥스 함수를 텐서플로 2에서 구현하는 코드입니다.
from tensorflow.keras import layers
model = tf.keras.Sequential()
model.add(layers.Dense(64, activation='relu')) ------유닛 64개를 가진 완전연결층을 모델에 추가합니다.
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(10, activation='softmax')) ------ 출력 유닛 열 개를 가지면서 소프트맥스 함수를 사용하는 출력층을 추가합니다.