나는야 데이터사이언티스트/Deep Learning

딥러닝 개론(퍼셉트론, 다층 퍼셉트론)

우주먼지의하루 2021. 9. 22. 00:02
728x90

딥러닝이란 ?

머신러닝의 여러 방법론 중 하나로 인공신경망에 기반하여 컴퓨터에게 사람의 사고방식을 가르치는 방법입니다. 생물학의 신경망에서 영감을 얻은 학습 알고리즘으로 사람의 신경 시스템을 모방했습니다.

 

딥러닝의 역사

1958년에 딥러닝의 기초 개념인 Perceptron의 연구가 시작되었습니다. 퍼셉트론으로, AND,OR,NAND 같은 선형문제는 풀수 있었지만 XOR 같은 비선형 문제는 해결할 수 없었고, 대부분의 데이터는 선형보다 비선형 형식으로 분포되어 있어 문제가 있었습니다. 이러한 문제로 인공지능 연구가 끊기게 되고 1969년 딥러닝의 첫번째 빙하기가 찾아오게 됩니다.

 

1986년 인공지능의 첫 번째 빙하기를 깨고 인공지능의 부활을 알린 사람이 있었으니 바로 딥 러닝의 아버지라 불리는 제프리 힌튼(Geoffrey Everest Hinton)입니다. 제프리 힌튼 교수는 다층 퍼셉트론(Multi-Layer Perceptrons, MLP)과 Back-propagation Algorithm을 실험적으로 증명하였고 이를 통해 XOR 문제를 해결하였습니다.

 

그러나 1990년대 다층 퍼셉트론에서도 한계가 보이기 시작하면서 인공지능 연구의 두 번째 빙하기를 맞이하게 됩니다.

 

두 번째 문제는 Vanishing Gradient와 Overfitting 이었습니다. 다층 신경망의 은닉층(Hidden layer)을 늘려야 복잡한 문제가 해결 가능한데 신경망의 깊이가 깊어질수록 오히려 기울기(gradient)가 사라져 학습이 되지 않는 문제인 Vanishing Gradient가 발생했습니다. 또한, 신경망이 깊어질수록 너무 정교한 패턴을 감지하게 되어 훈련 데이터 외 새로운 데이터에 대해서는 정확성이 떨어지는 Overfitting 문제가 발생했습니다.

 

그리고 2012년에 일련의 사건을 통해서 다시 주목받았습니다. ImageNet이라는 챌린지(?!)에서 GPU을 통합 딥러닝 AlexNet이 나오게 됩니다. 이것은 기존에 있던 정확도를 더 높게 끌어올리게 되었고 학계와 산업계에서 주목받았습니다.

 

▼딥러닝 역사에 대해 더욱 자세한 아래 블로그에서 확인하세요

 

 

人Co BLOG :: 인공지능(AI)의 역사

Posted at 2020/03/10 14:16 Filed under 지식관리 인공지능의 개념은 언제, 어디서부터 시작되어 오늘날 이렇게 각광 받고 있는지 함께 알아보도록 하겠습니다! 영화 속 주인공인 토니 스타크가 아이언맨

insilicogen.com

 

 

퍼셉트론

사람의 신경세포부터 먼저 보면 왼쪽에 Input 이라는 곳에 어떤 신호가 들어오는 부분을 말합니다. 신호를 받는 돌기가 X1...Xn까지 모두 n개가 있는데 이것이 모두 들어와서 하나로 합쳐지게 되고 이것이 m개의 Output으로 나오게 된다. 이것을 본따서 만든 것이 딥러닝입니다.

 

딥러닝도 똑같이 여러 개의 X 값들이 들어와 하나의 식으로 모여진 다음 출력값이 나옵니다. 위의 그림을 살펴보면 X1,X2가 입력 값이고 가중치 w1, w2가 곱해져있습니다. 가중치는 들어오는 신호(X)에 대해 얼만큼 그 신호를 증폭해줄지에 대한 부분을 말합니다. 마지막으로 하나 남은 것은 w0는 들어오는 입력 값에 상관없이 그냥 들어오는 값을 의미합니다. 이 모든 값들을 더하고 활성화 함수를 거쳐 출력 값이 나오게 되는데 활성화 함수는 x가 0보다 크면 1이고 0보다 작으면 0으로 나오는 함수를 말합니다. 그래프를 그리면 아래 그림과 같습니다.

 

활성화 함수(activation function)

퍼셉트론 동작

0과 1로 잘 나누어지기 위해서는 가중치 값들을 잘 정해야합니다. 다시말해 데이터를 잘 구분시키기 위한 선형 그래프를 잘 만들어야합니다. 퍼셉트론은 선형 분류기로 데이터 분류가 가능합니다.

 

왼쪽의 그림은 강아지와 고양이가 선형 그래프로 잘 나누어 지는 것을 볼 수 있습니다. 오른쪽 그림은 선형 그래프로 나누어지기 힘듭니다. 하나의 선만으로 구분할 수 없는 경우가 있는데 이러한 경우에 다층 퍼셉트론이 나오게 된 것입니다.

 

다층 퍼셉트론(비선형적인 문제 해결)

 

 

다층 퍼셉트론은 말 그대로 단층 퍼셉트론을 여러개 쌓은 것입니다. 오른쪽 그림을 보면 퍼셉트론 두개를 쌓아 개와 고양이를 분리했습니다. 그리고 여기에서 Hidden Layer라는 용어가 나오게 되는데 Input 값과 Output 값들 사이에 있는 모든 퍼셉트론 노드들을 Hidden Layer라고 합니다. 이런 Hidden층이 많아진다면, 깊이가 깊어진다고하고 이러한 깊은 신경망을 Deep Learning이라고 합니다. 

 

이런 다층 퍼셉트론의 장점으로는 분류가 잘 됩니다. 아무래도 그럴수 밖에 없겠죠 ? 단점은 가중치입니다. 많이 쌓으면 쌓을 수록 가중치를 다 구해줘야합니다. 구하는 과정이 쉽지 않기때문에 모델을 마냥 깊게 만들 수는 없습니다.

 

다음 포스팅에는 딥러닝을 어떻게 학습에 사용하는지, 가중치를 어떻게 구하는지 적어보도록 하겠습니다.

 

 

출처 : NIPA AI 온라인 교육 과정

 

 

반응형