본문 바로가기
Deep Learning

인공신경망 ANN(Artificial Neural Network)

by wave_m 2020. 9. 7.
728x90

ANN이란 ?

- 생체 신경망 구조와 유사하게 은닉 계층을 포함하는 인공신경망 기술

- 입력, 은닉, 출력 계층으로 구성되어 있으며 은닉 계층을 한 개 이상 포함할 수 있고, 각 계층은 여러 노드로 구성된다.

- 은닉 계층 수나 각 은닉 계층의 노드 수는 사용자의 선택 사항이므로 입력 데이터아 목표로 하는 출력 데이터의 모양에 따라 적절한 값으로 선정해야 한다. 이러한 과정을 모델 최적화 또는 하이퍼 파리미터 최적화라고 한다. 

 

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분 딥러닝 케라스맛

728x90