[IT에 한걸음 더 다가가기] SMAC의 분석 부문, 지능화를 지향하는 Machine Learning (4편)

[IT에 한걸음 더 다가가기] SMAC의 분석 부문, 지능화를 지향하는 Machine Learning (4편)

지난 3편에서는 학습과 검증을 위한 훈련용 데이터, 학습 매커니즘, 학습 유형에 대해서 기본적인 내용 위주로 살펴보았습니다. [관련기사 바로 가기 : 머신러닝 매커니즘과 유형] 이번 글에서는 머신러닝(Machine Learning, 기계학습)의 학습모델과 알고리즘에 대해서 인공신경망을 대상으로 보다 구체적으로 살펴보고자 합니다. 이전 글에 비해서 조금 어려울 수 있으나, 수식에 대한 막연한 두려움과 저항감을 잠시 내려놓으시고 이번 편은 특히나 집중해서 읽어보시길 권해 드립니다.

 

제 4화: 다양한 머신러닝 알고리즘

인공신경망(ANN, Artificial Neural Network)에 대한 개념을 처음 접하는 분들의 경우, 짧은 몇 편을 글을 읽고 약 70년의 역사를 자랑하는 인공신경망의 학습모델과 알고리즘을 정확하게 제대로 이해하기란 쉽지 않을 것입니다. 그러나 인공신경망의 근간이 되는 개념을 조금이나마 이해하게 된다면 머신러닝에 대해 최소한의 개념이 자리 잡을 것이라 확신합니다. 이를 위해서 인공신경망의 학습 모델/규칙/과정을 3가지 항목을 차근차근 살펴보도록 하겠습니다.

물론 이보다 훨씬 많은 수의 알고리즘들이 존재하며 최근에 화두가 되는 딥러닝의 경우도 수많은 변종(?) 알고리즘이 존재합니다. 위에서 언급한 내용은 머신러닝 알고리즘을 이해하기 위한 기본 개념의 발원지라 할 수 있으며, 다음의 3가지로 이야기해보고자 합니다.

  • 학습 모델: 뉴런 모델
  • 학습 규칙: 뉴런 간의 연결강도(시냅스) 조정
  • 학습 과정: 뉴런과 시냅스의 만남
학습 모델

인공신경망은 말 그대로 (인간의) 신경망을 컴퓨터로 구현해야 하는데, 그 중심에는 역시 뉴런과 시냅스가 있습니다. 결국 뉴런과 시냅스를 디지털 컴퓨터로 구현하기 위해서는 논리적 서술이 필요로 하며, 학습모델은 이를 컴퓨터로 구현하는 방식입니다.

지난 [1편각광받는 딥러닝의 근원인공신경망]에서 살펴보았던 신경망 뉴런의 모델링 도식과 동작 특징을 살펴보면 ‘입력-처리-출력’의 논리적 흐름을 가지며, 도식의 각 구성요소 의미와 특징은 다음과 같습니다.

학습모델 표

신경세포(뉴런)의 입력신호는 다수이고 출력은 하나이며, 여러 신경세포로부터 전달되어 온 신호들은 합산되어 출력됩니다. 합산된 값이 설정값 이상이면 출력 신호가 생기고 이하이면 출력 신호가 없습니다.

전체 흐름 : 입력 링크에서 여러 입력신호를(x1, x2, , xN-1) 받아서 새로운 활성화 수준 (f(∑wixi))을 계산하고 출력 링크로 출력 신호를(y) 내보냄

입력 신호 : 미가공 데이터 또는 다른 뉴런의 출력이 될 수 있음

가중치(weight) : 실선(wi)으로 표현된 연결강도(strength)로서,

wi는 i 번째 입력의 노드 결합의 연결강도로서 학습에 의해 값이 변함

뉴런/노드(node) : 입력신호(입력값)을 처리하여 출력 신호(출력값)을 내보내는 처리 역할을 하며, Processing Element/Threshold unit라고도 지칭함

출력 신호 : 다른 뉴런의 입력이거나 최종 결과값 일 수 있음

 

‘입력-처리-출력’의 구성에서 가장 중요한 부분은 역시나 ‘처리’를 담당하는 뉴런입니다. 뉴런의 계산은 노드 결과값을 결정짓는 함수 f(∑wixi)에 의해 결정되며, 이러한 함수를 활성 함수(activation function) 또는 전이 함수(transfer function)라 부릅니다. 결과값(y)이 1이면 노드가 활성/작동 상태이고 0이면 비활성/비작동 상태가 됩니다.

 

뉴런 계산식

지금까지 하나의 뉴런에 대한 모델을 설명했는데, 인공신경망은 이런 뉴런들이 여러 개 모여서 복수의 층이 구성되어 작동하게 됩니다. 이러한 복수 개의 뉴런들이 시냅스(연결강도, 가중치)로 연결되어, 시냅스(연결강도, 가중치)가 어떻게 조정되는지 아래의 학습 규칙에서 살펴보겠습니다.

학습 규칙

뇌에는 약 1천억 개의 신경세포가 있으며 한 개의 신경세포는 1천~10만 개의 시냅스라는 접점을 통해서 다른 신경세포와 연결을 이루면서, 전기화학적 신호에 의해서 다른 신경세포들과 서로 대화합니다. 즉, 시냅스는 신경세포 사이의 접점으로 신경전달이 일어나는 장소이며, 신경세포는 시냅스를 통해 들오는 수많은 신호를 분석하고 이를 종합하여 다음 신경세포에 전달합니다. 이와 같이 뇌가 학습을 하는데 있어 시냅스는 매우 중요한 역할을 합니다.

학습을 하면 신경회로망을 구성하는 시냅스에 일정한 물리적, 구조적 변화가 일어나게 되는데 오랫동안 반복적인 학습을 하면 시냅스 수가 많아집니다. 새로운 사실을 배울 때마다 뇌의 미세한 구조가 조금씩 변하고 경험과 학습을 통해 뇌는 변화를 겪게 됩니다.

두 개의 뉴런 i, j가 서로 반복적이고 지속적으로 점화(firing)하여 어느 한쪽 또는 양쪽 모두에 어떤 변화를 야기한다면, 상호 간의 점화의 효율(또는 연결강도)은 점점 커지게 됩니다. 뉴런 i가 다른 뉴런 j로부터 입력을 받으면 두 뉴런은 모두 활성화된 상태에서 i와 j 사이의 연결강도 wij는 더욱 강해집니다. 강해지는 연결강도의 증가분을 식으로 나타내면 다음과 같습니다.

Δwij = ηaioj (η : 학습률 비례상수, a: 뉴런 i의 출력, oj : 뉴런 j의 출력)

학습 규칙 표

시냅스로 연결된 두 개의 뉴런이 동시에 또는 반복적으로 활성화되면 이 두 뉴런 사이의 연결강도는 강화된다는 의미를 갖고 있습니다. 이와 같이 신경세포(뉴런) 사이의 연결강도(Weight)를 조정하는 학습이1943년 등장한 헵의 학습 규칙 (Hebb Learning Rule)입니다. 헵의 학습 규칙은 이후 개발되는 다른 신경망 모델들의 학습 규칙의 토대가 되었습니다.

1949년 캐나다의 심리학자인 도날드 헵(Donald Hebb)은 그의 저서인 ‘The Organization of Behavior’에서‘헵의 시냅스’라고 알려진 시냅스의 연결강도 조정을 위한 생리학적 학습 규칙을 기술했습니다. 이 책은1949년경의 신경심리학에 대해 폭넓고 깊이 있게 기술하였고 도입 부분에서 복잡한 두뇌 모델링에 대해‘커넥셔니즘(connectionism)’이란 말을 처음으로 사용하였습니다.

위에서 설명한 바와 같이 신경세포는 시냅스 결합을 통하여 신호를 전달하고 기억은 시냅스에 축적되는 방식으로, 학습과 기억은 신경세포 간의 연결고리인 시냅스라는 연결강도(Weight)를 강화합니다.

학습 과정

위에서 설명드린 내용을 간략하게 다시 한번 강조하자면 학습 결과는 신경세포가 아니라 시냅스라는 연결강도(또는 가중치 wi)에 저장(?)되며, 학습이 강화되면 될수록 연결강도의 값은 커지게 됩니다. 뭔가 새롭게 배우게 되면 연결강도가 변하게(강하게) 되고 배운 것이 없다면 연결강도는 (물론 약해지는 경우도 있습니다만) 변화 없이 그대로입니다. 즉, 학습이라는 것이 학습 데이터를 이용하여 연결강도를 조정하면서 원하는 값이 나오도록 조정해 나가는 작업입니다.

앞서 설명한 학습 규칙과 학습 모델을 바탕으로 학습 과정을 보다 상세히 살펴보면 아래와 같습니다. 단, 너무 어렵게 느껴지는 경우는 제목만 읽고 흐름에 대한 원리만을 이해하셔도 무방합니다.

1단계, 인공신경망의 연결을 유아의 순수한 뇌처럼 만들기

연결강도(가중치, wi)와 임계값(<!–[if !msEquation]–> <!–[endif]–>)을 임의수(random number)로 초기화

wi(t)는 시간 t일 때 입력 i로부터의 연결강도를 나타내고 <!–[if !msEquation]–> <!–[endif]–>는 출력 노드의 임계값을 나타냄

2단계. 유아를 학습시키기 위한 낱말 카드 준비하기

사물과 이미지를 보여주고(입력값) 그에 맞는 명칭(목표값)을 알려주기 위해서 ‘사과’ 이미지와 단어가 쓰인 낱말 카드를 준비하는 것

학습을 위한 훈련용 데이터인 입력값 (x1, x2, , xN-1)과 기대하는 목표값 d(t)을 제시(준비)

3단계. 보여 주고 틀려주면서 유아가 더듬더듬 따라 하도록 하기

처음에 유아는 멀뚱 멀뚱 쳐다보다가, 반복해서 듣고 보고하다가 어느 순간 단발성 소리를 내기 시작하고 비슷하게 소리를 내는 것

아래의 공식은 인공신경망의 함수에 입력값을 넣어서 나오는 실제의 출력값을 계산하는 식

* 상세 내용은 ‘학습 모델’에서 설명

출력값 계산 식
4단계. 유아 뇌의 시냅스가 강화되면서 유아는 점차 학습해 나가게 됨

유아에게 반복해서 ‘사과’의 사진이나 실물을 보여주고 알려주면 유아 뇌의 시냅스는 연결강도가 높아지면서 제대로 학습하게 되는 것

인공신경망을 학습시키기 위한 연결강도(가중치) 조정해 나가는 단계로써, 단계 2에서 준비한 기대하는 목표값과 단계 3에서 나온 실제 계산된 출력값을 비교하여, 허용 가능한 임계치 이상의 차이가 있으면 차이를 줄이는 방향으로 연결강도(가중치)를 변경

아래의 공식은 인공신경망의 학습을 위해 연결강도(가중치) 변경되는 식

* 상세 내용은 ‘학습 규칙’에서 설명

인공신경망의 학습을 위해 연결강도(가중치) 변경되는 식

– n은 0과 1사이의 값이고 d(t)는 목표값

– 새로운 가중치 = 기존 가중치 + 학습보정값 x (목표값 – 출력값) x 입력값

5단계. 유아가 학습이 될 때까지 반복하기

목표값과 출력값이 같을 때까지 단계 2로 가서 반복 수행

유아가 지속적으로 보고 듣고 하면서, 이제 크기와 색깔이 다른 사과를 보더라도 모두 사과라고 말하는 단계에 이르면 사과에 대한 학습은 멈춤

단계 2에서 준비한 목표값과 실제 출력값이 허용 가능한 임계치 이하(즉, 비슷한 값)가 될 때까지 반복 수행

지금까지 설명한 학습 과정은 퍼셉트론(Perceptron)이라 불리는 신경망 학습 모델로, 1957년 프랭크 로젠블랫(Frank Rosenblatt)에 의해 개발된 가장 오래되고 가장 많이 논의되는 신경망의 기본이 되는 학습 알고리즘입니다.

이 알고리즘은 매우 큰 관심을 불러일으켰지만 나름의 한계에 직면하게 되고 그 이후로 다층 퍼셉트론, 역전파 알고리즘 등이 나타나면서 1980년대에 신경망이 다시 부활하는가 싶더니, [1각광받는 딥러닝의 근원인공신경망]에서 언급했던 성능상의 한계로 다시 한번 침체기를 걷게 됩니다. 그러다가 최근 들어 출현한 딥러닝(심층신경망)으로 재 각광을 받고 있습니다.

이번 글에서 인공신경망의 학습 모델/규칙/과정을 살펴보았는데, 다음 번 글에서는 머신러닝이 현재 어떻게 발전해서 활용되고 있는지 사례와 응용에 대해서 살펴보도록 하겠습니다.

<참고 자료>

  1. Machine learning, WIKIPEDIA
  2. 신경망 이론과 응용(I),김대수, 하이테크정보
  3. Computational Intelligence, technische universitat Dortmund

 

문병선 수석
공유하기