케라스에서 제공하는 구성도를 살펴보면, 크게 Model API와 Layer API가 있고 필요한 모듈들을 Modules API를 호출해서 사용
딥러닝은 여러개의 레이어로 구성
기본적으로 입력층, 은닉층, 출력층으로 구분
레이어는 딥러닝 모델을 구성하는 핵심 데이터 구조로서 하나 이상의 텐서를 입력받아 하나 이상의 텐서를 출력하는 데이터 처리 모듈
시그모이드 함수
확률 예측 모델에 자주 사용되며, 값을 0과 1사이로 표현
0과 1에서 포화(saturate)되는 문제가 있다.
입력값이 작아도 0이하가 될 수 없고, 커져도 1 이상이 될 수 없기 때문에 훈련 시간이 오래 걸리고, 그래디언트(기울기)가 0에 가까워져서 가중치 업데이트가 발생하지 않게된다
하이퍼볼릭 탄젠트 함수
0을 중심으로 -1과 1 사이로 값을 표현
일반적으로 시그모이드 함수보다는 빨리 훈련
여전히 -1과 1에서 포화되는 문제가 있음
ReLU 함수
0부터 무한대까지의 범위를 가짐
하이퍼볼릭 탄젠트 함수보다 몇 배는 더 빠르게 훈련
ReLU 함수 출력 값이 0이 중심이 아니고, 학습률이 크면 ReLU를 사용한 노드에서 출력을 0으로만 하는 문제가 있음
Leaky ReLU 함수
ReLU 함수에서 노드 출력을 0으로만 하던 문제를 아주 작은 음수값을 출력하게 만들어 해결
ELU 함수
ReLU가 중심점이 0이 아니고, 노드 출력을 0으로만 하던 문제를 해결한 활성화 함수
ELU 함수는 0이하에서는 exponential 연산이 수행되므로 계산 비용이 높아지는 단점
케라스에서 모델과 유틸리티들을 사용할 수 있도록 import
다시복습하기