# 인공 신경망이란?

사람의 뇌 속 뉴런의 작용을 모방해 패턴을 구성한 컴퓨팅 시스템의 일종입니다.

사람의 신경체계 (뉴런)

사람의 신경세포 뉴런을 보면 크게 수상돌기와 축삭돌기가 있죠. 이전 뉴런에서 전달받은 신경물질을 수상돌기에서 받아 축삭돌기를 통해 다음 뉴런으로 전달하게 됩니다.

파블로프의 개 실험을 예로 볼까요?

파블로프의 개 실험

파블로프의 개 실험에서 보면 개한테 고기를 보여주면 침을 흘리게 됩니다. 종만 울렸을 때는 침을 흘리는 반응을 하지 않죠. 그 다음 고기를 보여주며 종을 울리게 되면 개는 침을 흘립니다. 이 과정을 반복하면 개는 '종이 울리면 고기를 주는 구나'하고 학습을 하게 되어 종소리만 들어도 침을 흘리게 되죵

이 과정속의 뉴런작용을 보면,

파블로프의 개 뉴런작용

청각신경에 비해 시각신경이 침샘을 분비함에 있어서 강하게 연결되어있는데, 훈련과정 속에서 청각신경의 연결이 강해지게 됩니다. 이렇게 약한 신경의 연결이 강해진다는 것이 학습이라고 할 수 있습니다!

 

# perceptron이란?

사람 신경체계에서 신경세포 기본 단위가 뉴런이라하면, 인공신경망에서의 기본단위는 perceptron이라고 합니다! 

perceptron

perceptron은 입력값을 다 합쳐서 조건(activation function)에 맞게 결과를 내보내줍니다. 여기서 적절한 weights를 찾는 것이 ML/DL에서 이루고자하는 목표가 됩니다. weights가 학습할 대상이 된다는 거죠.

이러한 과정을 식으로 나타내면,  y = f(wx +b) 이 됩니다. w벡터와 x벡터의 내적과 bias를 더해 활성화함수(activation function)에 통과 시킨것이 output이 됩니다. 이 output이 다음 perceptron의 input으로 들어가게 되죠!

(weight는 출력값에 대한 입력값의 영향력을 조절하는 변수, bias는 얼마나 쉽게 활성화되는지 조절하는 함수라고 합니다)

 

# single layer perceptron

single layer perceptron

single layer perceptron(단층 퍼셉트론)이란 입력층과 결과층으로만 이루어져있으며, 층이 하나이기 때문에 선형 영역에 대해서만 분류가 가능합니다.

대표적인 예로 Logical AND가 있습니다. Logical AND는 둘 다 참일 때 참 값을 갖는 논리게이트입니다. 컴퓨터는 이진법을 사용하고 있기 때문에 여기서 input값을 0또는 1을 입력합니다. 입력값이 둘 다 1일 때만 1을 출력합니다.

Logical AND

weights가 -30, +20, +20이라고 가정 했을 때, x1과 x2에 0또는 1를 입력하면, sigmoid함수를 거쳐 output은 입력값 둘다 1일때 1인 결과값을 가지게됩니다. 이렇게, 학습이란 이러한 weights를 기계가 스스로 찾게 해주는 과정입니다. 결과값들을 도식화 해보면 맨 오른쪽 그래프와 같이 직선 하나로 값을 구분해줄 수 있습니다.

하지만, 모든 경우가 다 직선으로 나눠지지는 않겠죠? 즉, 레이어 하나로는 풀 수 없는 문제가 있다는 것입니다. 

 

# multi layer perceptron (MLP)

multi layer perceptron

multi layer perceptron(다층 퍼셉트론)은 입력층과 출력층 사이에 하나 이상의 은닉층을 추가한 신경망입니다.

그 예시가 바로 Logical XNOR입니다. Logical XNOR은 둘 중에 하나라도 참이면 참이다라는 논리게이트 입니다.

Logical XNOR

Logical XNOR을 그래프로 나타내면, 맨 왼쪽 그래프와 같이 직선으로는 값을 구분지을 수 없습니다. 이런 경우에 레이어가 더 필요한 것입니다. 그래서, 레이어를 추가하면 풀 수 있게 되는 것입니다! 이렇게 레이어를 여러개를 쌓으면 복잡한 문제를 풀 수 있습니다.

이걸 기하학적으로 보게 되면, 결국 초록색레이어는 입력을 3개를 받아 직선을 그어 영역을 구분해주는데, 직선만으로는 영역을 구분지을 수 없어서 레이어를 추가함으로써 어떠한 역할을 해준다고 볼 수 있습니다.

우리가 종이위에 빨간점과 초록점을 위의 그림과 같이 찍었고 직선으로만 자를 수 있는 칼이 있다고 했을 때, 평평한 종이에서는 아무리 잘라도 확실하게 구분할 수 없겠죠. 이 때  시그모이드와 같은 비선형함수가 공간변형을 일으켜 종이를 구긴다고 할 수 있습니다. 그리고 칼로 딱 자르면 점들을 확실히 구분할 수 있겠죠. 레이어를 많이 쌓는다 라는 것은 종이들 더 많이 구긴다라고 이해하시면 될 것 같습니다!

비선형 activation function을 쓰는 이유가 레이어가 많이 쌓여 있을 때, 복잡한 형태도 만들어 낼 수 있도록 하는 것입니다.

 

 

 

 

 

+ Recent posts