deep-learning-ANN #1

be1le·2022년 5월 9일
0

DL

목록 보기
1/9

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 : 학습률이 급격히 떨어지지 않게 감쇠 항을 추가한 적응 알고리즘

profile
그저 그런 개발자가 되지 않겠습니다.

0개의 댓글