케라스(Keras)는 텐서플로(Tensorflow) 2.0 기반의 고수준 API로, 딥러닝 모델을 간단한 함수 형태로 구현하여 배우기 쉽고 성능도 뛰어나다. 인공 신경망은 뇌 신경계의 정보 처리 구조를 모방하여 만든 컴퓨터 계산 알고리즘이다.
1. 활성화 함수
인공 신경망은 입력값을 가중치와 곱하고, 그 결과를 전부 더한다. 이렇게 가중 합산한 값을 활성화(activation) 함수에 입력하여 최종 출력으로 변환한다. 즉, 입력값들의 수학적 선형 결합을 다양한 형태의 비선형 결합으로 변환하는 역할을 한다. 근데 뭔소린지 모르겠다!
문제 유형 | 목표 레이블 | 활성화 함수 |
회귀 예측 | 연속형(숫자형) | 선형(Linear) |
이진 분류 | 이산형(범주형) | 시그모이드(Sigmoid) |
다중 분류 | 이산형(범주형) | 소프트맥스(Softmax) |
활성화 함수를 이용한 비선형 변환은 중요한 역할을 한다. 실제로 어떤 활성화 함수를 사용하는지에 따라 딥러닝의 예측력에 큰 차이가 발생한다. 문제 유형에 따라 위와 같이 다른 종류의 활성화 함수를 적용한다.
2. 손실 함수
손실 함수(loss function): 인공 신경망이 출력하는 값과 실제 정답과의 차이로, 작을수록 좋다.
문제 | 손실 함수 |
회귀 예측 | 평균 제곱 오차 |
이진 분류 | 이진 교차 엔트로피 |
다중 분류 | 범주형 교차 엔트로피 |
딥러닝 학습을 통해 인공 신경망의 출력값과 실제값을 비교해, 그 차이를 최소화하는 가중치와 편향의 조합을 찾는다. 일반적으로 상황에 따라 위의 손실함수를 적용한다.
3. 옵티마이저(최적화 알고리즘)
손실 함수가 2차 함수와 같이 볼록 함수의 형태라면 미분을 통해 손실이 가장 작은 가중치를 찾을 수 있다. 즉, 미분해서 0이 되는 지점에서 가중치의 최소값을 찾을 수 있다.
하지만 딥러닝에서는 손실함수의 형태가 복잡하므로, 계산량이 매우 커지고 미분해서 0이 되는 값이 여러 개가 존재한다. 때문에 경사하강법과 같은 최적화 방법을 이용한다.
경사하강법(Gradient Desent Method): 손실 함수의 현재 위치에서 조금씩 손실이 낮아지는 쪽으로 가중치를 이동하면서 최소값을 찾는 방법
옵티마이저(Optimizer)는 손실함수를 최소화하는 방향으로 가중치를 갱신하는 알고리즘을 의미한다. 경사하강법에 기반을 둔 옵티마이저로는 SGD, RMSProp, Adagrad, Adam 등이 있다.
4. 다층 신경망(MLP: Multi-Layer Perceptron)
인공 신경망은 일반적으로 여러 레이어를 쌓아서 만든다. 입력 레이어와 출력 레이어가 신경망의 앞/뒤에 위치하고, 그 사이에 여러 층의 은닉 레이어를 배치한다.
각 레이어는 여러 개의 유닛(Unit)으로 구성되고, 각 유닛은 하나의 퍼셉트론(Perceptron)으로 이루어 진다. 각 유닛은 이력값과 가중치(weight)를 갖고 활성화 함수를 거쳐 출력을 내보낸다.
인접한 두 레이어의 각 유닛은 서로 가중치를 갖는 연결선을 통해 이어지고 일대일 대응 관계를 갖는다.
이처럼 복잡한 아키텍처를 사용하여 데이터에 내재된 복잡한 관계를 파악할 수 있다.
'인공지능(AI)' 카테고리의 다른 글
[딥러닝 입문] 1. 인공 신경망의 구조 (0) | 2021.04.07 |
---|
댓글