본문 바로가기
  • AI와 함께 세상을 아름답게
인공지능(AI)이란? - 기초 개념 및 이론

인공지능(AI)과 인공 신경망(Artificial Neural Network) (2)

by neo-Lee 2023. 5. 21.

2023.05.19 - [인공지능(AI; Artificial Intelligence)] - 인공지능(AI)과 인공 신경망(Artificial Neural Network) (1)

 

  (인공 신경망은 하드웨어로 구현될 수도 있으나, 주로 컴퓨터 프트웨어로 구현됩니다. 인공 신경망은 기초 컴퓨팅 단위인 뉴런 여러 개가 가중된 링크(weighted link)로 연결된 형태입니다. 가중된 링크(weighted link)는 주어진 환경에 적응할 수 있도록 가중치를 조정할 수 있습니다.)
인공 신경망은 초기 퍼셉트론을 시작으로 순 신경망(RNN: Recurrent Neural Network), 합성곱 신경망(CNN: Convolutional Neural Network), 자기 조직화지도 (SOMSelf-Organizing Map) 등과  같은 다양한 모델에 대한 총칭으로, 그 종류는 수십 가지에 이릅니다.

   여기서는 대표적인 몇 가지 계층형 신경망의 개념을 중심으로 공부합니다.

3. 퍼셉트론(perceptron)

    퍼셉트론(perceptron)은 신경망 연구 초기에 활발하게 연구된 신경망 알고리즘입니다. 1958년 프랑크 로젠블라트(Frank Rosenblatt)가 지도 학습(supervised learning)이 가능한 퍼셉트론(perceptron) 모델을 개발하였습니다. 당시 컴퓨터의 낮은 성능과 단층 퍼셉트론(single-layer perceptron)의 한계 등으로 인해 쇠퇴했던 인공 신경망에 대한 연구는 1970년대 군집 분석을 위한 자기 조직화 지도 등의 모델이 연구되며 그 명맥을 이었고, 1986년 다층 퍼셉트론(multi-layer perceptron)의 지도 학습을 위한 역전파 알고리즘인 오차 역전파법 (backpropagation algorithm)이 재발견되며, 다시 활성화되었습니다.

 

계층형 신경망의 하나인 퍼셉트론의 구조는 수용층, 연합층, 반응층의 세 부분으로 구성되어 있습니다. 수용층(input)에서는 외부 자극을 받아들이고, 연합층(hidden)은 수용층의 가중 압력을 받아 반응층으로 전달하는 기능을 담당하며, 반응층(output)은 최종 출력을 내보내는 기능을 한다. 퍼셉트론은 연결 강도를 조정하기 위하여 출력의 오차가 작아질 때까지 인공 뉴런의 가중치와 임계값을 다음의 순서로 조절한다.

     

    출력의 오차가 충분히 작아질 때까지 다음의 과정을 반복합니다.

         1. 학습 데이터세트에서 학습 데이터 하나를 선택한다.

         2. 학습 데이터를 퍼셉트론에 입력하고 퍼셉트론 출력 O를 계산한다.

         3. 출력 O를 학습 데이터 Ot와 비교하여 출력 오차 E를 계산한다.

         4. 오차 E가 작아지도록 출력층의 가중치 W1를 은닉층의 신호강도 H1에 따라 조절한다. 

             (오차 E 계산식: E = Ot - O,  Wi <--- Wi + E x Hi )

             *이 계산법은 퍼셉트론의 출력에서 생기는 오차의 원인이 출력층에 주어지는 은닉층의 신호강도 Hi의 결합 크기에 영향을 받는다는데 근거한 것입니다.

 

이와 같이 퍼셉트론에서는 출력층의 인공 뉴런만을 대상으로 학습을 진행합니다. 그리고 은닉층의 인공 뉴런은 난수에서 초기화된 매개변수를 이용해서 학습대상 없이 초기값을 그대로 사용합니다. 이러한 제약 때문에 일반적으로 퍼셉트론을 이용해서 임의의 입출력함수를 다루는 것은 불가능하고,  AND, OR 연산 등 선형 분리가 가능한 문제의 해결에만 사용되었습니다.

 

4. 계층형 신경망과 오차 역전파법(backpropagation)

    퍼셉트론의 한계를 넘어 임의의 입출력 관계를 표현하는 계층형 신경망을 구성하려면 은닉층에도 학습 순서를 적용할 필요가 있습니다. 그래서 앞서 설명했듯 오차역전파법(backpropagation)이라는 학습 방법이 제안되었습니다. 오차역전파법'역전파'라고도 합니다. 오차역전파법은 다층 퍼셉트론 학습에 사용되는 통계적 기법으로, 가중치 매개변수의 기울기를 효율적으로 계산하는 방식입니다.

    아래 그림은 3 계층 2 입력 1 출력의 간단한 형태의 계층형 네트워크입니다. 이 네트워크의 학습 방범에 대해 간단히 설명해 보겠습니다.

 

(그림) 3계층 2입력 1출력의 계층형 네트워크

    오차역전파법에 의한 학습 과정

        1) 처음에 학습 데이터세트에서 학습 데이터 하나를 선택한다..   

        2) 학습 데이터를 퍼셉트론처럼 입력층(input)에 입력하고, 순방향 계산으로 퍼셉트론의 출력 o를 구한다.

        3) 출력 o를 학습 데이터 o1과의 차이에서 오차값 E를 구한다.

        4) 퍼셉트론처럼 출력오차 E를 이용하여 출력층(output)의 가중치 wi를 은닉층의 신호강도 hi에 따라 조절한다.

        5) 오차 E가 출력층의 가중치 wi에 비례해 배분된 것으로 간주하고 은닉층의 가중치를 조절한다. 출력층 가중치 wi의 업데이트 식은 다음과 같다.   

          E = ot - o

          wi <-----  wi + 학습계수 x E x f'(u) x hi 

           * 전달 함수로 시그모이드 함수를 사용하는 경우,

          f'(u) = f(u) x (1 - f(u)  =  o x (1-o)

          따라서,    wi <--- wi + 학습계수 x E x o x (1 - o) x hi

 

    다음에는 은닉층 학습을 실시합니다. 은닉층 학습에서도 네트워크 출력의 오차를 줄이기 위하여 가중치와 임계값을 조절합니다. 은닉층에서 오차의 수정 정도는 출력층 인공 뉴런의 가중치에 비례한 값을 사용합니다. 즉, 네트워크 출력에 포함된 오차를 출력층의 가중치에 비례 배분해서 은닉층의 오차를 계산합니다. 이러한 처리는 출력 오차 E가 출력층과 은닉층의 결합을 매개로 입력층으로 거꾸로 올라가는 것처럼 보입니다. 오차가 네트워크의 일반 계산 방향과는 반대로 전달되는 것처럼 보이기 때문에 이 방법을 오차 역전파법이라고 하는 것입니다. 

    오차역전파법을 이용하면 출력층만이 아니라 은닉층의 인공 뉴런에 대한 학습도 가능합니다. 나아가서 은닉층을 더 늘린 계층형 네트워크에서도 오차역전파법을 이용한 학습이 가능해집니다. 이와 같이 오차역전파법으로 다층에 대규모적인 네트워크의 이용이 가능해졌고, 나중에는 딥러닝(deep learning)으로 이어지는 길이 확립되었다고 하겠습니다.

 

(다음 편에 이어집니다.)

 

2023.05.19 - [인공지능(AI; Artificial Intelligence)] - 인공지능(AI)과 인공 신경망(Artificial Neural Network) (1)

728x90

댓글