본문 바로가기
Deep Learning/딥러닝의 정석

[Chapter1 신경망] 딥러닝의 정의, 퍼셉트론, 인공 뉴런 모델

by hyunnie94 2020. 4. 2.

들어가기 전에...

 

최근 영드 셜록을 정주행 하다보니 셜록이 이런 말을 하더라구요

'개인의 심리와 기질, 무한한 확장성을 가진 배열로 모든 변수를 만들고, 확률 수학을 이용하면 모든 미래를 예측 가능하다.'

 

예전같으면 단순히 역시 천재는 다르네... 하고 지나갔을 대사였겠지만 인공지능에 관심을 가진 후 보니

아...정말 머지 않은 미래엔...

미래를 100% 예측하는 천재가, 아니 천재의 뇌를 모방한 기계가 있을 수 있겠다는 생각이 들더라구요

물론 쉽지는 않겠지만..?

 

딥러닝은 학교 수업 시간에 겉핥기 식으로 잠깐 배운게 다였는데

조금은 깊이 배워보기 위해 이 책을 통해 이해한 내용을 기록하고, 지식을 공유하고자 합니다.

 

딥러닝(Deep learning)이란?


딥러닝(Deep learning)은 사람의 뇌와 비슷한 지능형 기계를 프로그래밍 하는 과정입니다.

인간의 뇌는 매우 어릴 때부터 컴퓨터가 해결하지 못하는 복잡한 문제를 해결할 수 있습니다.

예를 들어, 얼굴이나 음성을 인식하고, 자연스러운 과정 속에서 물리적 직관을 갖추고 단어를 기억합니다.

기존 컴퓨터 프로그램들은 매우 빠르게 연산하기와 명령어 리스트 수행하기에 능하도록 설계되었기 때문에,

뇌와 같은 기능을 하는 기계를 만들기엔 한계가 있습니다.

 

그럼 어떻게 접근해야할까요?

우리가 어린 시절(뇌가 순수하던 시절) 받아들인 모든 것들은 '사례를 통한 경험'이었습니다.

여러 경험을 하고, 인식이 틀리면 수정하는 방식으로 인지 방법을 배웁니다.

즉, 뇌는 태어날 때부터 어떠한 모델을 가지고 있고, 평생에 걸친 경험을 통해 모델을 명확하게 만듭니다.

실제로 머신러닝은 사례를 통한 경험을 토대로 학습한다는 개념을 기반으로 하고, 딥러닝은 머신러닝의 일종입니다.

결국 우리는 모델 + 지속적인 경험 → 정확한 예측을 목표로 딥러닝을 한다고 볼 수 있죠.


책에서 제공하는 간단한 모델을 살펴봅시다.

전날의 수면시간, 공부시간을 바탕으로 시험 성적을 예측해보기로 합니다.

수면시간은 $x_1$ , 공부시간은 $x_2$ 라고 하고

데이터를 행렬 형태로 나열하면

$x = [ x_{1} x_{2}]^{T}$ 형태의 데이터가 여러 개 수집될 겁니다.

 

이 데이터에 성적을 예측하는 모델 $h(x, \theta)$를 학습시키고자 합니다.

 

이 모델은 3가지 원소로 이루어진 파라미터 벡터

$\theta = [\theta_{0} \theta_{1} \theta_{2}]^{T}$ 를 가지고 있네요.

 

모델이 선형이라고 가정 하면, 

이런식으로 선형 퍼셉트론(linear perceptron) 을 만들 수 있겠죠.

성적이 평균보다 크면 +1, 평균보다 작으면 -1을 반환하는 모델입니다. (기하학적으로는 좌표평면을 두 개로 나누는 선형 분류기 입니다.)

모델이 입력값(수면시간, 공부시간)을 잘 학습하면, 성적을 가장 잘 예측하도록 하는 파라미터 벡터 $\theta$를 찾아낼 것입니다.

 

 

퍼셉트론(perceptron)이란?


퍼셉트론은 1950년대에 Rosenblatt가 제안한 것으로 수용층, 연합층, 반응층의 세 부분으로 구성되어 있습니다.

수용층 : 외부 자극을 받아들이고,

연합층 : 수용층의 가중 압력을 받아 반응층으로 전달하는 기능을 담당하며,

반응층: 최종 출력을 내보내는 기능을 합니다.

퍼셉트론은 연결 강도를 조정하기 위하여 반복적 학습 방법을 사용합니다. 특히 퍼셉트론 학습법은 특정 목적에 맞는 정확한 연결 강도에 수렴한다고 입증되었습니다. 초기 퍼셉트론은 인지가 가능하다는 관점에서 상당한 관심을 모았으나, AND, OR 연산 등 선형 분리가 가능한 문제의 해결에만 사용될 수 있었습니다. (단층 퍼셉트론)

그러나 훗날 다층 퍼셉트론의 등장으로 XOR 연산이 가능해집니다.

출처 : [네이버 지식백과] 퍼셉트론 [perceptron] (실험심리학용어사전, 2008., 곽호완, 박창호, 이태연, 김문수, 진영선)

 

동작하는 방식 : 각 노드의 가중치와 입력치를 곱한것을 모두 합한 값이 활성함수에 의해 판단되는데,  그 값이 임계치(이 모델에선 0, 보통 0으로 하긴 한다.)보다 크면 뉴런이 활성화되고 결과값으로 1을, 뉴런이 활성화되지 않으면 결과값 -1을 출력합니다.  (출처:위키백과)

 

위의 예시에선 모델이 선형을 띄기 때문에 선형(단층) 퍼셉트론이라 할 수 있습니다. 모든 선형(단층) 퍼셉트론은 단일 뉴런으로 표현 가능합니다.

 

이런 느낌이려나요??

그럼, 단일 인공 뉴런은 어떻게 동작하는지 알아볼까요??

 

 

인공 뉴런 모델


출처 : zum 학습백과

사람의 뇌는 뉴런이라는 기본 단위로 이루어져있고, 뉴런은 수천 수만개의 다른 뉴런과 연결되어 자극을 수용하고 전달합니다. 들어오는 입력값은 연결 강도에 비례하여 가중된 뒤 신경세포체에서 합해집니다. 축삭돌기를 따라 전파돼 새로운 신호로 변환된 후 신경 말단을 통해 출력이 되죠. 뉴런과 같은 기능을 하도록 컴퓨터로 변환한 모델이 인공 신경망입니다. 인공 신경망을 이루고 있는 인공 뉴런을 만들어볼까요? 

n개의 입력 $x_1, x_2, x_3, ... x_n$이 들어오고 그 각각의 입력값은 특정 가중치($w_1, w_2, w_3, ... w_n$)를 가질 것입니다. 가중된 입력값들은 어떠한 로짓 형태로 합쳐집니다. 로짓은 상수값(bias)를 포함하기도 합니다. 

($z=\sum_{i=0}^{n}w_n x_i + b$)

로짓은 신경세포체와 같은 함수 $f$를 통해 전달 되어 출력값 $y$을 생성합니다. ($y=f(z)$) 

이를 그림으로 볼까요?

 

 

 

 

 

그렇다면, 파라미터 벡터의 최적화는 어떻게 도출할 수 있을까요??

일반적으로는 최적화(optimization) 기술이 필요합니다.

또한, 단일 뉴런 모델도 선형 퍼셉트론보다는 강력하지만, 복잡한 학습 문제를 해결할 모델도 필요할 겁니다.

 

 

(다음에서 계속)

 

 

 

댓글