[일반인을 위한]  K-MOOC

 인공지능을 위한 기초수학 입문

      (Introductory Mathematics for Artificial Intelligence)


                          이상구  with  이재화, 함윤미, 박경은


V.  주성분 분석과 인공신경망


 Week 13.  인공신경망


  13.1 신경망

사람의 뇌에 있는 뉴런(신경세포, neuron)은 혈액 중의 아미노산으로부터 신경전달물질을 만든다. 신경의 자극은 한 방향으로 일어나며,

만들어진 신경전달물질을 이용하여 주위의 다른 신경세포들에 신호를 전달한다. 하나의 신경세포는 여러 개의 다른 신경세포들로부터 전달받은 신호(입력신호)에 반응하여

세포막이 역치(threshold value, 임계값) 전위에 도달하면 다음 신경세포에도 일정한 크기의 신호(출력신호)를 전달하게 된다.

인간의 뇌는 약 1000억 개의 뉴런을 가지고 있으며, 어려운 이미지 인식과 같은 업무를 잘 수행한다.

      그림입니다.
원본 그림의 이름: 00neuronnetwork4.jpg
원본 그림의 크기: 가로 567pixel, 세로 504pixel

              [그림 출처]  http://scienceon.hani.co.kr/397536


신경망(neural network)은 신경계의 기본 단위인 뉴런을 모델화한 것이다. 하나의 인공 뉴런(노드, node)에서는 다수의 입력 신호 를 받아서 하나의 신호를 출력한다.

이는 실제 뉴런에서 전기신호를 내보내 정보를 전달하는 것과 비슷하다. 이때 뉴런의 돌기가 신호를 전달하는 역할을 하듯이 인공 뉴런에서는 가중치(weight) 가 그 역할을 한다.

각 입력신호에는 고유한 가중치가 부여되며 가중치가 클수록 해당 신호가 중요하다고 볼 수 있다.

            그림입니다.
원본 그림의 이름: CLP000040900003.bmp
원본 그림의 크기: 가로 883pixel, 세로 504pixel


  13.2 신경망의 작동 원리

아래와 같이 하나의 노드는 입력 신호를 받아 결과를 전달해주는 하나의 함수로 볼 수 있다. 따라서 입력신호 를 받아 를 출력하는 경우 와 같이 나타낼 수 있다.

여기서 는 편향(bias)을 의미한다. 예를 들어, 입력신호 를 받으면, 미리 부여된 가중치 와 계산 후 그 결괏값이 임계값 를 넘으면 1을 출력, 즉

                    1을 출력

할 때 를 왼쪽으로 이항하면 를 얻는다.

       그림입니다. 그림입니다.

같은 방법으로 입력신호가 두 개인 경우는 , 입력신호가 세 개인 경우는 와 같이 표현할 수 있다.

        그림입니다.      그림입니다.

만일 출력이 두 개인 경우는 다음과 같이 행렬의 곱을 이용하여 나타낼 수 있다.

이때, 편의상 편향은 0이라고 하고, 는 입력층의 번째 노드에서 출력층의 번째 노드로 연결된 가중치를 의미한다.

                            그림입니다.     

        또는 

뉴런에서 임계값 이상의 자극이 주어져야 감각이 반응하는 것처럼, 인공 뉴런에서도 다수의 입력신호가 주어지면, 미리 부여된 가중치와 계산을 한 후

그 총합이 정해진 임계값을 넘으면, 1을 출력하고 넘지 못하면 0 (또는 -1)을 출력한다. 이때 출력을 결정하는 함수를 활성화 함수(activation function)라 한다.

활성화 함수의 대표적인 예로는 Sigmoid 함수가 있다.

          

이는 임계값을 기준으로 활성화 되거나 혹은 비활성화 되는 계단함수(step function) 또는 Heaviside function을 근사화 한 것이다.

         

              그림입니다.
원본 그림의 이름: CLP000021100001.bmp
원본 그림의 크기: 가로 545pixel, 세로 480pixel



Sigmoid 함수 에 대하여 다음이 성립한다.

 ⓵ 모든 에 대하여 이다.

 ⓶ 일 때 , 일 때 이다.

 ⓷ Sigmoid 함수의 미분 공식은 다음과 같다. 를 그대로 활용할 수 있다.

   



Sigmoid 함수는 계단함수와 비교할 때, 출력신호를 극단적인 값(0 또는 1)이 아니라 연속적인 0과 1사이의 값으로 정규화 하여 전달해준다.

또한 계단함수는 일 때 미분가능하지 않으나 Sigmoid 함수는 모든 실수 에서 미분이 가능하며, 계산도 어렵지 않다.

이외에도 활성화 함수로 ReLU 함수, 하이퍼볼릭 탄젠트() 등이 있다. [자세한 사항은 대학수학 http://matrix.skku.ac.kr/2020-Math4AI-PBL/ 에서 배운다.]


이제 이 과정을 정리해보자.

⓵ 인공 뉴런은 입력 데이터 ()를 다른 인공 뉴런으로부터 혹은 외부로부터 입력받는다.

⓶ 인공 뉴런은 입력받은 데이터와 가중치를 결합하여 으로 표현되는 하나의 값으로 만든다.

⓷ ⓶에서 구한 값을 활성화 함수에 대입하여 을 출력값으로 내보낸다.


예를 들어, 3개의 입력데이터()와 가중치가 주어진 인공신경세포를 활성화 함수 σ (또는 f)를 이용하여 도식화하면 그림과 같으며, 출력값 을 얻을 수 있다.

   그림입니다.
원본 그림의 이름: CLP000038900008.bmp
원본 그림의 크기: 가로 1243pixel, 세로 671pixel 


  13.3 신경망의 학습

신경망은 순환하지 않는 그래프로 연결된 뉴런의 모음을 모델화 한 것으로 다음은 신경망을 그림으로 표현한 것이다.

왼쪽부터 입력층(Input layer), 은닉층(Hidden layer), 출력층(Output layer)으로 구성되어 있다. 입력층에서 신호를 받으면,

미리 부여된 가중치와 계산 후 주어진 활성화 함수를 거쳐 은닉층으로 전파되고, 같은 방식으로 그 다음 층으로 전해질 신호가 계산된다.

이런 식으로 전파되어 출력층에서 해당하는 결과를 내보낸다.

         그림입니다.
원본 그림의 이름: K-001.jpg
원본 그림의 크기: 가로 770pixel, 세로 468pixel

                          [그림 출처]  https://blog.lgcns.com/1359


이제 입력값과 정답을 알고 있는 데이터가 있다고 하자. 우리의 목적은 주어진 데이터를 잘 판단하도록 신경망의 가중치를 찾는 것이다.

이때 어떤 공식에 의해서 가중치를 계산하는 것이 아니라, 초기에 임의로 가중치를 부여해놓고, 주어진 데이터로부터 신경망을 이용하여 얻은 예측값과

미리 알고 있는 정답간의 오차를 줄이는 방향으로 가중치를 점차 갱신해 나간다.

이때 계층 간의 각각의 연결이 오차에 영향을 주는 정도에 비례해서 오차를 전달해준다. 대표적인 방법으로 오차 역전파법(back propagation)이 있다.


  13.4 오차 역전파법

오차 역전파법에 의해 각 계층에 전달된 오차를 바탕으로 가중치를 갱신하는 방법은 이미 학습한 경사하강법(gradient descent method)을 오차함수를 최소화하는 문제에 적용한 것과 같다.

예를 들어, 각 계층에서 입력신호 ()를 받아 미리 부여된 가중치와 계산 후 주어진 활성화 함수로부터 출력된 값을 라 하고, 실제 정답은 라 하자.

그러면 제곱 오차(squared error)는 다음과 같이 주어진다.

            

그러면 각 가중치를 갱신하는 공식은 경사하강법으로부터 다음과 같이 주어진다.

            .

여기서 를 변수 에 관하여 편미분한다는 뜻으로 를 제외한 다른 변수는 모두 상수로 취급하여 미분하는 것과 같다.

(자세한 사항은 대학수학에서 배운다.)


이제 아래와 같이 간단한 신경망의 각 계층에 전달된 오차로부터 가중치를 갱신하는 방법에 관하여 살펴보자.

① 각 계층에 전달된 오차를 계산한다. 먼저 출력층에서의 오차를 계산하기 위하여, 은닉층에서 입력 신호 를 받아 가중치 , , , 와 계산한 후, 

sigmoid 함수 를 거쳐 출력 를 얻었다고 가정하자.

그림입니다.
원본 그림의 이름: CLP0000250419dd.bmp
원본 그림의 크기: 가로 868pixel, 세로 299pixel

그러면 출력층에서의 제곱오차는 다음과 같다.

          

            

이제 은닉층에서의 오차를 계산해보자. 은닉층에는 출력층과 달리 목표하고자 하는 정답이 따로 없으므로 출력층에서의 오차 에 해당하는 것이 없다.

이때 앞서 언급한 오차 역전파법을 활용한다.

신경망에서 오차가 일어났다는 것은 결국, 입력신호가 입력층으로부터 은닉층을 거쳐 최종 출력층으로 전파될 때, 은닉층에서의 오차가 반영된 결과라고 볼 수 있으므로

계층 간의 각각의 연결이 오차에 영향을 주는 정도, 즉 가중치에 비례해서 오차를 역으로 전달해주면 된다.

      그림입니다.
원본 그림의 이름: CLP00003fc40c64.bmp
원본 그림의 크기: 가로 663pixel, 세로 276pixel

출력층의 첫 번째 노드에서 오차 을 얻었다고 가정하자. 이 노드는 은닉층의 첫 번째 노드와 가중치 , 두 번째 노드와 가중치 으로 연결되어 있다.

가중치가 크면 오차에 미치는 영향도 클 것이므로, 가중치에 비례하여 오차를 은닉층에 전달해준다.

따라서 예를 들어, 를 은닉층의 첫 번째 노드에 전파된 오차라 하면 다음과 같이 계산할 수 있다.

              

마찬가지로 를 구할 수 있다.

              

위의 두 식에서 분모를 제외하면 다음과 같이 행렬을 이용하여 나타낼 수 있다.

             

이때, 분모를 없애게 되면 원 식과 비교했을 때, 일정 부분의 비율이 사라지게 되는데, 다음 웹사이트에 따르면, 분모가 있는 경우와 실제로는 거의 차이가 없이 잘 작동하는 것이 알려져 있다.

[참고]  http://makeyourownneuralnetwork.blogspot.com/2016/07/error-backpropagation-revisted.html

② 출력층에서 얻은 오차로부터 은닉층과 출력층 사이의 가중치를 갱신한다. sigmoid 함수의 성질과 연쇄법칙으로부터 을 구하면 다음과 같다.

         

                 

(여기서는 에 관한 결과가 쉽게 계산된다는 것만 이해하면 된다.)

마찬가지 방법으로 다른 가중치에 대해서도 다음과 같이 계산한다.

        

        

        

즉, 가중치 는 은닉층의 번째 노드와 출력층의 번째 노드만 연결되어 있으므로, 에 대하여 편미분하면 다음과 같이 간단하게 표현됨을 알 수 있다.

        

여기서 는 은닉층의 번째 노드에서의 입력, 는 출력층의 번째 노드에서의 출력, 는 출력층의 번째 노드에서의 오차이다.

이제 경사하강법을 적용하여 다음과 같이 은닉층과 출력층 사이의 모든 가중치를 갱신한다.

        

③ 은닉층에 전달된 오차로부터 입력층과 은닉층 사이의 가중치를 갱신한다. 기본적으로는 은닉층과 출력층 사이의 가중치를 갱신하는 방식으로 계산하면 된다.

논의의 편의상 기호를 그대로 사용하였다.

       그림입니다.
원본 그림의 이름: CLP00004f0c0002.bmp
원본 그림의 크기: 가로 610pixel, 세로 259pixel

여기서 는 입력층의 번째 노드에서의 입력, 는 은닉층의 번째 노드에서의 출력, 는 은닉층의 번째 노드에 전파된 오차이다. 따라서 다음을 얻을 수 있다.

         

이제 경사하강법을 적용하여 다음과 같이 입력층과 은닉층 사이의 모든 가중치를 갱신할 수 있다.

         

신경망은 제대로 예측할 때까지 많은 데이터를 필요로 하며, 또한 입력층과 출력층 사이에 많은 은닉층을 둘 수도 있다.

이와 같이 은닉층이 여러 개 있는 인공신경망을 심층신경망(deep neural network)이라고 부르며, 심층 신경망을 학습하기 위한 기계학습 기법을 딥러닝(deep learning)이라고 부른다.

은닉층이 여러 개 있는 경우에도 마찬가지로 오차 역전파법을 이용하여 그 이전 층에서 전파된 오차로부터 경사하강법을 적용하여 가중치를 갱신할 수 있다.

기타 자세한 사항은 신경망, 딥러닝과 관련된 도서를 참조하라.


[열린문제] 인공신경망과 오차 역전파법(back propagation)에 대하여 아는 대로 서술하시오.


Copyright @ 2020 SKKU Matrix Lab. All rights reserved.
Made by Manager: Prof. Sang-Gu Lee and Dr. Jae Hwa Lee