# 인공 신경망이란?
사람의 뇌 속 뉴런의 작용을 모방해 패턴을 구성한 컴퓨팅 시스템의 일종입니다.
사람의 신경세포 뉴런을 보면 크게 수상돌기와 축삭돌기가 있죠. 이전 뉴런에서 전달받은 신경물질을 수상돌기에서 받아 축삭돌기를 통해 다음 뉴런으로 전달하게 됩니다.
파블로프의 개 실험을 예로 볼까요?
파블로프의 개 실험에서 보면 개한테 고기를 보여주면 침을 흘리게 됩니다. 종만 울렸을 때는 침을 흘리는 반응을 하지 않죠. 그 다음 고기를 보여주며 종을 울리게 되면 개는 침을 흘립니다. 이 과정을 반복하면 개는 '종이 울리면 고기를 주는 구나'하고 학습을 하게 되어 종소리만 들어도 침을 흘리게 되죵
이 과정속의 뉴런작용을 보면,
청각신경에 비해 시각신경이 침샘을 분비함에 있어서 강하게 연결되어있는데, 훈련과정 속에서 청각신경의 연결이 강해지게 됩니다. 이렇게 약한 신경의 연결이 강해진다는 것이 학습이라고 할 수 있습니다!
# 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(단층 퍼셉트론)이란 입력층과 결과층으로만 이루어져있으며, 층이 하나이기 때문에 선형 영역에 대해서만 분류가 가능합니다.
대표적인 예로 Logical AND가 있습니다. Logical AND는 둘 다 참일 때 참 값을 갖는 논리게이트입니다. 컴퓨터는 이진법을 사용하고 있기 때문에 여기서 input값을 0또는 1을 입력합니다. 입력값이 둘 다 1일 때만 1을 출력합니다.
weights가 -30, +20, +20이라고 가정 했을 때, x1과 x2에 0또는 1를 입력하면, sigmoid함수를 거쳐 output은 입력값 둘다 1일때 1인 결과값을 가지게됩니다. 이렇게, 학습이란 이러한 weights를 기계가 스스로 찾게 해주는 과정입니다. 결과값들을 도식화 해보면 맨 오른쪽 그래프와 같이 직선 하나로 값을 구분해줄 수 있습니다.
하지만, 모든 경우가 다 직선으로 나눠지지는 않겠죠? 즉, 레이어 하나로는 풀 수 없는 문제가 있다는 것입니다.
# multi layer perceptron (MLP)
multi layer perceptron(다층 퍼셉트론)은 입력층과 출력층 사이에 하나 이상의 은닉층을 추가한 신경망입니다.
그 예시가 바로 Logical XNOR입니다. Logical XNOR은 둘 중에 하나라도 참이면 참이다라는 논리게이트 입니다.
Logical XNOR을 그래프로 나타내면, 맨 왼쪽 그래프와 같이 직선으로는 값을 구분지을 수 없습니다. 이런 경우에 레이어가 더 필요한 것입니다. 그래서, 레이어를 추가하면 풀 수 있게 되는 것입니다! 이렇게 레이어를 여러개를 쌓으면 복잡한 문제를 풀 수 있습니다.
이걸 기하학적으로 보게 되면, 결국 초록색레이어는 입력을 3개를 받아 직선을 그어 영역을 구분해주는데, 직선만으로는 영역을 구분지을 수 없어서 레이어를 추가함으로써 어떠한 역할을 해준다고 볼 수 있습니다.
우리가 종이위에 빨간점과 초록점을 위의 그림과 같이 찍었고 직선으로만 자를 수 있는 칼이 있다고 했을 때, 평평한 종이에서는 아무리 잘라도 확실하게 구분할 수 없겠죠. 이 때 시그모이드와 같은 비선형함수가 공간변형을 일으켜 종이를 구긴다고 할 수 있습니다. 그리고 칼로 딱 자르면 점들을 확실히 구분할 수 있겠죠. 레이어를 많이 쌓는다 라는 것은 종이들 더 많이 구긴다라고 이해하시면 될 것 같습니다!
비선형 activation function을 쓰는 이유가 레이어가 많이 쌓여 있을 때, 복잡한 형태도 만들어 낼 수 있도록 하는 것입니다.
'AI > Deep Learning' 카테고리의 다른 글
activation function (활성화함수) (0) | 2022.10.20 |
---|---|
Gradient Vanishing & Exploding (기울기 소실과 폭주) (0) | 2022.10.18 |
weight (가중치) (0) | 2022.07.14 |
딥러닝을 위한 Data (0) | 2022.07.08 |
딥러닝과 인공지능에 대한 이해 (0) | 2022.07.08 |