계속 승승장구 했을 것만 같은 딥러닝이지만 지난 몇 십년간 수차례 위기가 있었습니다.

 

 

 

보통 2번의 AI winter가 있었다고들 이야기하곤 하지요.

 

 

 

이러한 위기들을 극복하면서 지금까지 딥러닝이 발전해온 것인데요

 

 

Artificial Neural Network(줄여서 뉴럴 넷)

 

시기별로 과연 어떤 사건들이 딥러닝을 발전시켜왔는지 알아보겠습니다.

 

1. 워렌 맥컬록과 윌터 피츠(1943) - 뉴럴 넷

1943년 신경생리학자 워렌 맥컬록은 인간의 신경세포인 Neuron에서 영감을 얻어서 "Neural Net"이라는 것을 발표합니다. 이는 후에 딥러닝으로 발전하게 됩니다(아직까진 딥러닝이 아닙니다).

 

한 뉴런에 전달되는 여러 개 입력값들이 특정한 과정을 거쳐 하나의 결과값으로 도출되며, 이는 또다른 뉴런에 입력값으로 작용하게 됩니다. 이러한 여러 과정을 거쳐 우리 뇌가 신호를 처리하는 것입니다.

 

워렌 맥컬록은 생리학자인만큼 신경세포인 뉴런의 신호 전달 원리에 문제 해결 기법을 적용한 것인데요, 

친구였던 수학자 윌터 피츠가 뉴런 간 전달되는 신경전달 물질의 화학적 반응을 수학적 개념으로 설명했습니다.

 

이러한 뉴런 간의 네트워크를 비유했기 때문에 알고리즘의 이름을 "Neural Net"으로 명명했습니다.

 

 

이렇게 제안된 알고리즘은 아직까지는 문제 해결에 쓰이지는 않았고요, 

이를 실제 문제 해결에 적용한 사람이 뒤에 나오는 로젠버그라는 사람입니다.

 

2. 프랭크 로젠버그(1958) - 퍼셉트론(perceptron)

 

로젠버그는 1958년 기존의 "Neural Net"을 발전시킨 "Perceptron"을 발표합니다.

이 때 Input, Weights, Activation function, sigmoid 등 현재의 딥러닝의 기본 뼈대라 할 수 있는 개념들이 등장합니다.

 

어떤 입력값(input)에 가중치(weight), 편향(bias)이 적용되어 sigmoid 같은 활성화 함수(Activation function)를 거치게 되면 이는 곧 결과값(output)으로 계산되어 나온다는 원리입니다.

 

어렵나요? 쉽게 설명하면,

내가 어떤 상자(activation function)에 사과 씨앗 세 개(input)를 넣고 흙(weight)과 비료(bias)를 주었더니, 얼마 후에 보니 사과 열매(output)가 열렸더라~ 뭐 이런 것이지요.

 

이러한 퍼셉트론의 개념은 당대 문제 해결 알고리즘에 큰 반향을 일으켰습니다.

실제로 로젠버그는 퍼셉트론 연구를 낸 후 연구비를 다양한 곳에서 받는 등 인공지능 붐이 이는 듯 했죠.

 

 

자, 그런데 여기서 첫 번째 인공지능의 겨울이 찾아옵니다.

1969년 Marvin Minsky 교수에 의해 제시된 "XOR 문제"가 바로 그것입니다.

 

3. 마빈 민스키 교수(1969) - XOR 문제, 인공신경망의 첫번째 위기

마빈 민스키 교수는 그의 저서에서 다음과 같이 말합니다.

 

"Perceptrons은 단순한 선형 분류기이다.

비선형 문제를 해결할 수 없다.

예를 들어 XOR 문제이다."

 

로젠버그의 퍼셉트론은 비교적 단순한 문제는 해결이 가능하지만,XOR 문제 같은 복잡한 문제는 해결할 수가 없다는 것입니다.

 

사과 나무에 열매가 열리는데 흙, 비료와 같은 요소가 영향을 미치는 것으로 간단한 예측이 가능합니다.

하지만 문제가 이보다 복잡해지면 단순한 알고리즘이 먹히지 않는다는 것이죠.

 

 

그간 활발하던 인공지능 연구에 먹구름이 드리우는 순간이었습니다.

이때부터 1980년대까지 인공지능 연구는 정체됩니다.

 

4. 다층 퍼셉트론(1980), 역전파법(1986) - 인공지능 위기탈출!

 

그럼에도 불구하고 이 암흑기를 뚫기 위한 인간들의 노력은 계속됩니다.

퍼셉트론이 여러 층으로 쌓이며 가중치(Weight)를 계산하는 "다층 퍼셉트론"이 연구되었고(1980년),

그 층들을 거꾸로 돌아가면서 에러율을 조정하는 "역전파법(backpropagation)"이 세상에 나왔습니다(1986).

그리고 이러한 연구들을 통해 XOR문제는 해결됩니다.

20여년 만에 문제가 해결되니 기쁘겠지요?

그런데 이 기쁨을 만끽한지 얼마 되지 않아서, 두번째 인공지능의 겨울이 찾아옵니다. 

 

 

5. Vanishing gradient 문제(1986) - 인공지능의 두번쨰 겨울

 

이번에는 위에서 활성화 함수로 사용하였던 sigmoid라는 녀석이 문제였습니다.

데이터의 입력과 가중치, 편향을 계산해주던 sigmoid는 인공지능망의 층이 얇을 때는 문제가 없었지요.

그런데 다층 퍼셉트론이 되면서부터 층이 길어지고, sigmoid의 특성 상 층이 길어지면 점차 그 계산 값이 희미해지는 특성이 있었습니다.

 

"희미해지는 불빛사이로"

 

꺼져가는 불빛을 살릴 새로운 방법이 필요한 순간이었습니다.

2006년 인공지능을 살릴 위대한 구세주가 등장합니다. sigmoid 대신 relu라는 활성화 함수를 제안한 그는 바로

 

6. 인공지능망을 구해낸 제프리 힌튼(2006) - ReLU 활성화 함수 제안

인공지능의 대부 제프리 힌튼 교수였습니다. 

인공신경망이 길어질수록 값이 희미해져서 문제가 되었던 sigmoid 대신 ReLU 활성화 함수를 사용해서 Vanishing gradient 문제를 해결합니다.

 

더불어 가중치(Weight) 초기값 세팅을 통해 그 성능을 높이는 방법도 제시됩니다.

2006년 제프리 힌튼의 업적을 기점으로 인공지능 연구는 다시 활발해지게 됩니다.

 

 

자 여기까지가 딥러닝의 위기와 극복 과정이었습니다.

물론 아직 모든 인공지능의 모든 문제가 해결된 것은 아닙니다. 과적합(overfitting)과 같은 문제들은 여전히 인공지능을 사용하는데 있어서 고려해야 할 문제입니다. 

 

 

여러 차례의 위기가 있던 만큼 그 극복과정 끝에 얻은 현재의 인공지능과 딥러닝은 더욱 빛이 나는 것 같습니다.

 

딥러닝 역사를 살펴보면서 어느새 딥러닝의 기본 알고리즘들에 대해 공부를 하였습니다.

다음 글에는 딥러닝 기초 알고리즘에 대해 좀 더 자세히 알아보도록 하겠습니다.

 

 

 

+ Recent posts