ANN이란 ?
- 생체 신경망 구조와 유사하게 은닉 계층을 포함하는 인공신경망 기술
- 입력, 은닉, 출력 계층으로 구성되어 있으며 은닉 계층을 한 개 이상 포함할 수 있고, 각 계층은 여러 노드로 구성된다.
- 은닉 계층 수나 각 은닉 계층의 노드 수는 사용자의 선택 사항이므로 입력 데이터아 목표로 하는 출력 데이터의 모양에 따라 적절한 값으로 선정해야 한다. 이러한 과정을 모델 최적화 또는 하이퍼 파리미터 최적화라고 한다.
ANN의 활용 ?
- 크게 분류와 회귀로 나뉨
- 분류 ANN은 입력 정보를 클래스 별로 분류하는 방식이며, 회귀 ANN은 입력 정보로 다른 값을 예측하는 방식
분류 ANN이란 ?
- 입력 정보를 바탕으로 해당 입력이 어느 클래스에 속하는 지를 결정
- 판별은 두 출력 노드의 값을 비교하여 더 큰 쪽을 선택하도록 구현
- 가중치의 학습은 예측값의 목푯값에 대한 오차를 역방향으로 되돌리면서 이루어지기 때문에 오차역전파(error back propagation)라고 한다.
- 오차역전파는 오차를 줄이는 경사 하강법(gradient descent)에서 유도된 방법
- 경사 하강법은 가중치에 대한 손실 함수를 미분하고, 그 미분 값의 방향과 크기를 활용해 가중치를 보상하는 방법
- 손실 함수(loss function)는 가중치에 따라 오차가 얼마나 커지거나 작아지는 지를 평가
- 손실함수로 교차 엔트로피(cross-entropy) 함수를 주로 사용하는데 이를 적용하려면 출력 노드의 결과를 확률값으로 바꿔야 함
- 확률값은 출력 노드 값을 소프트맥스 연산으로 구함
회귀 ANN이란 ?
- 입력값으로부터 출력값을 직접 예측하는 방법
- 실제 데이터의 규칙을 잘 표현하는 함수를 찾는 것이 회귀
- 오차역전파 방법으로 학습시키려면 주로 평균제곱오차, 즉 MSE(mean-square error)를 손실 함수로 사용
- 학습에 의한 최적화 방법으로 확률적 경사 하강법을 많이 사용했으나 최근에는 더 발전된 방법인 Adam, Adagrad, RMSprop 등과 같은 방법을 사용
- Adam : 경사의 분산과 평균으로부터 파라미터를 업데이트하는 적응 알고리즘
- Adagrad : 밀집되지 않은 데이터에 적합하도록 경사 제곱을 통해 시간에 따라 학습률을 조정하는 적응 알고리즘
- RMSprop : 학습률이 급격히 떨어지지 않게 감쇠 항을 추가한 적응 알고리즘
케라스를 이용한 ANN 알고리즘 구현 ?
- 함수형 구현은 ANN 모델을 직접 설계하는 인공지능 전문가에게 적합하고, 객체지향형 구현 방식은 전문가가 만들어놓은 ANN 모델을 사용하는 사용자에게 적합
- ANN 모델링은 분산 방식, 연쇄 방식 또는 둘의 혼합 방식으로 구현 가능
- 분산 방식은 구조가 복잡한 경우에 적합, 연쇄 방식은 하나의 순서로 구성된 간단한 신경망의 구현에 적합
- 1단계 : 인공지능 구현용 패키지 불러오기
- 2단계 : 인공지능에 필요한 파라미터 설정
- 3단계 : 인공지능 모델 구현
- 4단계 : 학습과 성능 평가용 데이터 불러오기
- 5단계 : 인공지능 학습 및 성능 평가
- 6단계 : 인공지능 학습 결과 분석
reference ?
한빛 미디어 / 코딩 셰프의 3분 딥러닝 케라스맛
'Deep Learning' 카테고리의 다른 글
순환신경망 RNN (Recurrent Neural Network) (0) | 2020.09.21 |
---|---|
합성곱신경망 CNN(Convolutional Neural Network) (0) | 2020.09.10 |
심층신경망 DNN(Deep Neural Network) (0) | 2020.09.08 |
필기체를 구분하는 분류 ANN (0) | 2020.09.08 |
인공지능과 인공신경망의 기초 (0) | 2020.09.06 |