함께하는 데이터 분석

[Find-A] 인공 신경망 본문

학회 세션/파인드 알파

[Find-A] 인공 신경망

JEONGHEON 2022. 9. 12. 14:01

신경망이란 무엇인가

인공 신경망(Artificial Neural network)은 생물학적 신경망에서 영감을 얻어 만들어짐

 

  • 생물학적 신경망은 여러 자극이 가지돌기들을 통해 신경세포로 들어오고 어느 정도 이상의 자극이 들어오면 이를 축식을 통해 다른 세포로 전달하는 구조
  • 인공 신경망은 여러 자극 혹은 입력이 들어오면 각각 가중치를 곱해 더해주고 추가적으로 편차도 더함. 이렇게 다 더한 값을 활성화 함수(activation fuction)를 통해 변형하여 전달하는 단위를 인공 뉴런이라 하고 이러한 뉴런들이 모인 네트워크를 인공 신경망이라고 함

 

 

인공 신경망의 요소

  • 입력층은 들어온 신호를 그대로 다음 노드에 전달하는 창구 역할로 가중합이나 활성화 함수를 계산하지 않고 시스템 외부로부터 입력자료를 받아들여 시스템으로 이들을 전송
  • 출력층은 노드의 출력이 신경망의 최종 결괏값이 되고 입력 값과 현재 시스템 상태에 기준하여 시스템 출력 값을 산출
  • 은닉층은 신경망의 외부에서는 이 계층의 노드들에 직접 접근할 수 없고 시스템 안쪽에 자리 잡고 있으며 입력 값을 넘겨받아 그것들을 처리한 뒤 결과 산출

 

인공 신경망은 그림처럼 여러 개의 입력값과 출력 값을 가질 수 있으며

 

입력 단과 출력 단 사니의 은닉층(hidden layer)의 수에 따라 신경망과 심층 신경망으로 나뉨

 

심층 신경망은 2개 이상의 은닉층을 가진 인공 신경망을 의미

 

하나의 셀에서와 마찬가지로 입력값들의 가중치 합을 활성화 함수에 통과시켜 변형시키고 이 과정을 반복적으로 진행하여 최종 결괏값을 냄

 

활성화 함수는 신경망의 output을 결정하는 식으로 input을 feeding 하여 생성된 output이 다음 레이어로 전해지는 과정 중 역할을 수행하는 수학적 게이트

 

인공 신경망에서 활성화 함수를 거치면 반드시 비선형성(nonlinearlity)을 띠게 됨

 

이러한 활성화 함수가 없다면 은닉층이 몇 개더라도 결국 선형 변환이기에 깊은 모델을 만든 의미가 사라짐

 

활성화 함수 중 인공 신경망에서 많이 사용되는 함수로는 시그모이드(sigmoid)하이퍼볼릭 탄젠트가 있음

 

  • 왼쪽의 시그모이드 함수는 결괏값 0 ~ 1인 완만한 곡선 형태이고 보통 이진 분류 출력을 가지는 출력층에서 사용
  • 오른쪽의 하이퍼볼릭 탄젠트 함수는 결괏값 -1 ~ 1로 시그모이드와 유사

 

두 함수는 모든 구간에서 미분이 가능하기 때문에 곧 배울 역전파를 하기에 유용

 

하지만 시그모이드 함수는 도함수에 들어가는 함수의 값이 0 또는 1에 가까울수록 출력되는 값이 0에 가까워지게 되므로 수렴되는 뉴런의 기울기(Gradient) 값이 0이 되고, 역전파 시 0이 곱해져 기울기가 소멸되는 기울기 소실(Gradient Vanishing) 현상이 발생함

 

하이퍼볼릭 탄젠트 함수도 시그모이드 함수만큼은 아니지만 기울기 소실 문제가 있어 최근에는 Relu 함수를 사용

 

 

전파와 역전파

인공 신경망은 입력값이 들어오면 여러 개의 은닉층을 순서대로 거쳐 결괏값을 내는데 이 과정을 전파(forward propagation)라고 함

 

위의 사진은 3개의 입력이 들어오고 2개의 은닉층을 지나 최종 2개의 결과를 내는 인공신경망

이 예에서 연산에 사용되는 가중치들을 행렬로 표현하면 위와 같음

 

전파의 과정은 텐서 간의 곱과 편차의 덧셈 그리고 활성화 함수의 적용으로 구성

 

간단하게 설명하기 위해 행렬의 곱으로 설명하고 편차의 덧셈은 무시

 

먼저 [5, 3] 형태로 5는 데이터의 개수, 3은 데이터의 특성의 개수를 의미하고 데이터의 개수는 어떤 숫자여도 무관

 

이 [5, 3]의 입력에 대하여 첫 번째 가중치를 곱해주면 아래와 같이 연산이 이루어짐

I는 입력(input), w는 가중치(weight), O는 출력(output)을 의미

 

여기서 O_00, O_02, O_32의 값은 다음과 같이 계산됨

이렇게 계산된 결과는 활성화 함수를 통과한 후 [3, 4] 형태의 첫 번째 가중치가 곱해져 [5, 4] 형태의 결과가 나오고 다시 여기에 [4, 4] 형태의 가중치가 곱해져 [5, 4] 형태의 결과가 나옴

 

마지막으로 [5, 4] 형태의 입력에 [4, 2] 형태의 가중치가 곱해져 최종 결과는 [5, 2]의 형태가 됨

가중치를 w, 편차를 b, 활성화 함수를 σ로 놓고 전파의 과정을 수식으로 표현하면 위와 같음

 

이렇게 y의 예측값을 구하는 과정이 전파

 

이제 손실을 계산하면 정답을 y라 했을 때 손실을 계산하고 경사 하강법을 사용하기 위해 변수인 가중치와 편차에 대해 손실을 미분해보면 다음과 같이 전개

가중치3과 편차3에 대한 미분은 바로 가능하지만 가중치2 같은 경우에는 바로 미분이 불가능하므로 연쇄법칙(chain rule)을 사용

 

우리의 예로 설명하면 다음과 같음(활성화 함수는 시그모이드 함수라고 가정)

따라서 가중치2로 미분한 결과는 다음 식으로 구할 수 있음

전파가 입력값이 여러 은닉층을 통과해 결과로 나오는 과정이었다면

 

역전파(backward propagation)는 결과와 정답의 차이로 계산된 손실을 연쇄법칙을 이용하여 입력 단까지 다시 전달하는 과정을 의미

위의 예제는 w_0, x_0, w_1, x_1, w_2 변수에 대해 차례대로 2, -1, -3, -2, -3 값을 넣고 기울기를 구하는 과정

 

-0.2, 0.39, -0.39, -0.59, 0.2의 값이 역전파를 통해 기울기를 계산한 결과


https://www.hanbit.co.kr/store/books/look.php?p_code=B7818450418 

 

파이토치 첫걸음

딥러닝 구현 복잡도가 증가함에 따라 ‘파이써닉’하고 사용이 편리한 파이토치가 주목받고 있다. 파이토치 코리아 운영진인 저자는 다년간 딥러닝을 공부하고 강의한 경험을 살려 딥러닝의

www.hanbit.co.kr