인공지능/Machine & Deep Learning

인공신경망(ANN: Artificial Neural Network)과 퍼셉트론(Perceptrons)

해리누나 2023. 4. 11. 19:45
728x90
반응형

인간은 뇌를 통해 학습을 하니까, 기계에도 뇌와 비슷한 구조의 무언가를 만들어 주면 되지 않을까? 라는 질문을 토대로 만들어지게 된 것이 인공신경망이다.  그렇담, 먼저 우리 인간의 뇌는 어떻게 작동되는 것일까.

 

출처: https://www.hani.co.kr/arti/science/science_general/755976.html

 

주름진 사람의 뇌에는 '뉴런(Neuron)'이라 하는 대략 1000억개의 신경세포가 존재한다.이 뉴런은 가장 작은 정보처리 단위로서 세포체와 수많은 가지들(수상돌기와 축삭들)로 이루어져 있다. 이 가지와 가지를 이어 신호를 주고받는 부위가 '시냅스(Synapse)'다. 시냅스에서는 전압이 일정 이상이 될 시, 신경 전달 물질을 분비하고 이것이 다음 신경세포에 전달되어 전기신호가 전해지는 것이다. 이렇듯, 인간의 뇌는 마치 전기회로와도 같아 인간의 지능이 컴퓨터로 실현되는게 가능하다고 보게 된 것이다. 뉴런은 망을 형성하므로 뉴런의 집합을 신경망(Neural network)라 하며, 인공신경망의 등장 이후에는 이와 구분하기 위해 생물신경망(Biological neural network)이라고도 한다.

 

생물신경망 역할 인공신경망
세포체 간단한 연산 담당 뉴런
수상돌기 다른 뉴런으로부터 신호를 받음 신호 입력
축삭 처리 결과를 다른 뉴런에게 전달함 신호 출력
시냅스 일정 이상의 전압이 될 시, 신경 전달 물질을 분비 가중치

위는 생물학적인 신경망과 인공신경망 사이의 유사점을 나타낸 표다.

 

갓 태어난 아이는 개와 고양이를 구분할 줄 모른다. 하지만 살아가면서 다양한 사물, 생물들을 보고, 또 들으며 언어에 대한 개념이 생기고 무의식적인 학습을 통해 사물을 구분하고 분류하게 된다. 이는 뇌의 뉴런을 통한 학습체계 덕분에 가능한 사람의 능력이다. 또한 과학자들의 연구에 따르면, 뉴런은 입력을 받았을 시, 즉시 반응 하는 것이 아니라 이러한 입력들이 누적이 되어 특정 수준(threshold | 임계치)에 도달된 경우에만 출력을 한다고 한다. 이렇게 뉴런은 미세한 잡음 신호는 전달하지 않고 의미있는 신호만 전달하게 된다. (https://www.youtube.com/watch?v=C2sqt9pG6K0 를 보면 이해가 잘 될 것이다)

 

 

인공신경망

 

출처: https://itwiki.kr/w/%ec%9d%b8%ea%b3%b5_%ec%8b%a0%ea%b2%bd%eb%a7%9d

 

인공신경망(Artificial Neural Network)은 이러한 사람 또는 동물 두뇌의 신경망을 기반으로 모델링되었다. Artificial Neural Network (ANN)는 딥 러닝의 핵심기술로써, 신경 세포인 뉴런을 추상화한 인공 뉴런으로 구성된 네트워크다.

 

 

 

일단 퍼셉트론에 대해 알고 가자.

퍼셉트론 (Perceptrons)

 

출처:https://ysbsb.github.io/machine_learning/2021/02/07/Perceptron.html

 

퍼셉트론은 학습이 가능한 초창기 신경망 모델이다. 딥러닝을 포함한 현대에 신경망은 이런 퍼셉트론을 병렬구조와 순차구조로 결합한 형태다. 따라서, 퍼셉트론은 현대 신경망의 중요한 구성 요소이니 특성을 알아보자.

 

퍼셉트론의 구조는 위의 그림과 같이 단순한 구조를 가지고 있다. 입력층, 출력층 이렇게 2개의 층으로 이루어져 있다. 층을 구성하고 있는 노드는 원으로 표시하며, 입력층에 있는 입력 노드 하나는 특징 벡터의 특징 하나에 해당된다. d개의 특징이 있을 시 총 d개의 노드를 가지게되지만, 맨 위에 x0으로 표기된 하나의 노드(바이어스라 불린다. )가 있어 총 d+1개의 입력 노드를 가진다. 출력층의 경우, 하나며 y로 표기한다. 입력 노드는 모두 출력 노드와 에지로 연결되어 있으며, 이 에지는 w로 표기된 가중치를 가진다. (가중치가 높다는 건 그만큼 중요한 신호가 들어왔다는 것이다)

 

 

동작방식도 어렵지 않다. 입력층에 특징 벡터가 들어 오면, 서로 연결된 특징값과 가중치를 곱한 결과를 모두 더한다. 이 더한 값이 s며 해당값을 계단함수인 활성함수에 넣는다. 활성함수의 출력이 퍼셉트론의 최종 출력이 되는데, 계단함수의 그래프를 보면 알겠지만,  s의 값이 0이상일 경우 1, 그렇지 않을 시  -1로 분류한다.  이런식으로 분류하는 것을 선형분류기 라고 한다.

 
 
퍼셉트론의 동작
 
 
퍼셉트론의 동작을 이해하기 위해 간단한 예시를 보자. 아레는  OR 논리 게이트를 분류 문제로 간주하여 만든 데이터다. 간단하게 x1 은 -1, x2,x3,x4는 1인 분류 문제로 생각하면 된다.
 
 
 
각각의 샘플을 하나씩 입력해보자

 

해당 퍼셉트론은 샘플 4개의 값을 모두 맞추었으니 이 훈련집합을 100%의 성능으로 분류한다고 얘기할 수 있다.

 

 

 위는 퍼셉트론의 동작을 기하학적으로 설명란 그림이다. 2차원의 특징 공간을 회색의 직선의 방정식에 따라 + 와 - 영역으로 나뉜다. 영역의 점들이 + 또는 - 이렇게 두개로 나뉘니, 이진 분류기로 작용한다.

 

 

2차원의 특징 공간에서의 직선의 방식은 위와 같은 형태를 가지고 있으며 위의 예제에서의 가중치를 대입하면 x1 + x2 - 0.5 = 0 이 됨을 알 수 있다.  보통 d차원의 공간에서 w1 ~wd 는 초평면의 방향, w0는 절편을 나타낸다. w0은 바이어스라 부르며 특징이 모두 0인 신호가 들어올 시, 퍼셉트론이 출력할 기본값으로, 퍼셉트론이 0으로부터 벗어난 정도를 나타낸다.

 

 

퍼셉트론의 한계

 

 

퍼셉트론은 위의 OR이나 AND 문제같은 선형분리가 가능한 상황밖에 처리하지 못한다.  XOR 문제 같은 경우 검은 점과 흰점을 직선 하나로 분리하는게 불가능해지는데, 이 때 샘플 하나는 무조건 틀리게 분류하게 되므로 퍼셉트론은 75%의 정확률만을 가지게 된다. 당시, 1969 년 Marvin Minsky와 Seymour Papert가 [Perceptrons: an introduction to computational geometry]라는 책을 통해 퍼셉트론의 이런 한계를 지적하였고, 이 책으로 인해 인공신경망 연구는 관심에서 멀어지게 된다.

 

1974년 위에보스(Werbos)는 그의 박사학위 논문에서 오류 역전파 알고리즘을 제안하였고, 1986년도에 이 알고리즘을 포함한 여러 결과들을 적은 책, [Parallel Distributed Processing: Explorations in the Microstructure of Cognition]을 출간한다. 이는 신경망의 연구가 부활하는 계기가 되었으며, 이 책의 핵심아이디어가 바로 다층 퍼셉트론이다. 다충 퍼셉트론은 여러개의 퍼셉트론을 결합한 다충 구조를 가지고 있어, 선형분리가 불가능한 상황을 해결하였다.

( https://ang-love-chang.tistory.com/26 를 참고하면 이해하기 쉽다)

 

 

 
 
 
 
 
 
 
 
 
 
 
 

 

참고

책: Maschine Learning 기계학습 | 한빛아카데미 | 오일석

https://sdc-james.gitbook.io/onebook/1.1.-artificial-intelligence/1.7.-ann

https://velog.io/@jhlsuper/%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5-%EC%9D%B8%EA%B3%B5-%EC%8B%A0%EA%B2%BD%EB%A7%9D

https://ysbsb.github.io/machine_learning/2021/02/07/Perceptron.html

728x90
반응형