ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [이석중의 알기쉬운 인공지능] 인공 신경망의 구조와 학습 방법
    사업계획 2021. 9. 29. 21:43

    [인공 신경망의 구조와 학습방법]

     

     

    지난 연재를 통하여, 사람의 뇌세포와 유사한 구조를 갖는 인공세포에 대하여 살펴보았다. 이런 인공세포(뉴런)들을 연결하여 망(network)을 구성할 수 있으며, 이것을 인공신경망(artificial neural network, 줄여서 신경망)이라고 부른다.

    사람의 뇌세포들은 방사형으로 복잡하게 연결이 되어 있지만, 인공신경망은 해석을 단순하게 하기 위해 보통은 층 구조로 구성한다. 맨 앞에서 입력 신호를 받아들이는 부분을 ‘입력 층(input layer)’, 최종 결과를 출력하는 부분을 ‘출력 층(output layer)’, 그리고 입력 층과 출력 층 사이에 있는 모든 층을 ‘은닉 층(hidden layer)’라고 부른다. 이런 은닉 층이 1개 이상 있는 신경망을 ‘심층 신경망(deep neural network)’이라고 부른다.


    층간에 있는 뉴런들은 전부 연결이 되는 구조로 구성이 되기 때문에 층간의 뉴런의 숫자가 많을수록 연결선이 많아지게 된다. 예를 들어, 입력 층, 1개의 은닉 층, 출력 층으로 구성이 되는 아주 간단한 신경망이 있고, 입력 층에 뉴런이 5개, 은닉 층에 뉴런이 7개, 출력 층에 뉴런이 3개인 아주 간단한 구성에 대하여 고려해보자. 입력과 은닉 층 사이에는 5x7 = 35 개의 연결이 있고, 은닉과 출력 층 사이엔 7x3 = 21 개의 연결이 있기 때문에, 총 56개의 연결이 존재한다.

    이 56개의 연결선에는 가중치(weight)라고 부르는 변수들이 할당이 되며, 이 56개의 변수를 적절한 값으로 설정을 해줘야만 이 신경망을 통해서 원하는 결과를 얻을 수 있다. 은닉 층의 뉴런이 7개뿐인 아주 작은 신경망 임에도 불구하고 56개의 변수가 만들어졌으며, 이것을 어떻게 풀어야 할지 막막하기만 하다. 물론 인내심을 갖고 도전해본다면, 이 정도는 풀 수 있을지 모른다. 하지만 은닉 층의 수가 증가하고, 각각의 층에 있는 뉴런의 수가 증가하게 되면 더 이상 사람이 어떻게 해결할 수 없는 지경이 된다.

    그래서 인공세포의 구조와 학습의 가능성을 발견한 뒤에 뛸 듯이 기뻐했던 초창기 연구자들은 학습시킬 방법(변수들을 최적의 값으로 설정하는 방법)을 몰라 곧바로 실망하게 되고, 관련 연구는 빙하기에 접어들게 된다. 이후 무려 35년 이상이 흐른 1986년 그 유명한 “Rumelhart와 Hinton”이 드디어 신경망을 학습시킬 수 있는 방법을 발표하는데 이 때부터 다시 신경망 연구가 불붙게 된다.

    이들은 신경망의 많은 가중치 변수를 대수(algebra)적인 방식으로 풀어내는 대신에 수치해석을 통해서 점진적으로 접근하는 방식을 사용하였다. 학습이 되지 않은 망에, 훈련 데이터(training data)를 입력시키고 결과를 확인하면 아직은 학습이 제대로 되지 않았기 때문에 엉터리 결과가 나오게 된다. 훈련 데이터를 인가했을 때 실제 신경망에서 출력되는 값과 정상적이었을 경우의 기대값과의 차를 보통 오차(error)라고 하는데, 이 오차를 최소화 시켜주는 방식으로 망의 뒷부분부터 값을 조금씩 바꿔준다. 이것을 오차의 ‘역전파(back-propagation)’라고 부른다.

    변수들을 무작위로 조금씩 바꾸는 방법으론 방향성을 제대로 설정할 수 없어 학습이 불가능하지만, 오차의 역전파는 확실한 방향성(실제 출력값과 기대값의 차를 최소로 만드는 방향으로)을 제시할 수 있다는 면에서 확실히 효과적이다. 개념적으로도 크게 어렵지 않은 이 방법을 발견하는데 30년 이상이 걸렸다는 것은 아이러니 하다.

    오차를 최소화 시키는 방식으로 전체 신경망의 변수를 조정한 후 다시 입력을 인가하고 실제 망의 출력을 보면 이전보다는 오차가 작아질 것이고, 이런 과정을 무수히 반복하면 어느 순간에 오차가 거의 없는 수준에 도달할 수 있게 된다. 이렇게 무수히 반복하는 과정에 많은 연산이 필요하며 시간도 오래 걸린다. 이 때 GPU가 빛을 발하게 된다. CPU보다 훨씬 많은 병렬 연산 장치들을 갖고 있는 GPU를 사용하게 되면, 단순하게 CPU를 사용할 때보다 수십 배의 성능 향상을 꾀할 수 있게 된다.

    정리하면 인공신경망에 있는 많은 가중치 변수들을 조정하고 최적값에 도달하게 하는 과정을 학습(training)이라고 부르며, 여기에는 ‘오차의 역전파’라는 기법이 사용된다. 다음 연재에서는 인공신경망의 학습에 대한 좀 더 이론적인 부분에 대하여 살펴볼 예정이다.

    출처 : YTIMES청년신문(http://www.ytimes.co.kr)

Designed by Tistory.