반응형

인공신경망(Artificial Neural Network)

인공신경망: 소프트웨어로 인간 뇌의 뉴런 구조를 본따 만든 구조의 알고리즘을 말하며 퍼셉트론(Perceptron)을 기초로 함

따라서 퍼셉트론을 이해하기 전, 뉴런의 구조를 알아보는 과정이 필요함

 

뉴런의 구조

뉴런의 구조: https://qbi.uq.edu.au/brain/brain-anatomy/axons-cable-transmission-neurons

수상돌기(dendrite): 이웃 뉴런에서 전기 신호를 받는다. → 입력 신호를 받는 역할

시냅스(synapse): 다른 뉴런과 수상돌기(dendrite)의 연결 부위에 있음, 전기신호의 세기를 재조정 → 입력 신호에 가중치(w)를 곱하는 과정

세포체(soma, cell body): 수상돌기(dendrite)로부터 받은 여러 전기신호들을 모두 합침

축삭(axon): 세포체(soma)의 전위가 일정 이상이 되면 이웃 뉴런으로 전기 신호를 보냄

 

퍼셉트론

퍼셉트론: 인공 신경망의 구성 요소로서 다수의 신호를 입력으로 받아 하나의 신호를 출력하는 알고리즘

- 아래 그림을 보면 알 수 있듯이, 퍼셉트론은 실제 인간의 뇌를 구성하는 신경 세포인 뉴런을 모티브로 만들어짐

출처: https://www.slideshare.net/jbhuang/lecture-29-convolutional-neural-networks-computer-vision-spring2015

용어정리

노드(node): 가중치가 적용되어 활성화 되거나 비활성화 되는 각각의 퍼셉트론(Perceptron) 지점

신경망 층(layer): 신경망은 여러 층으로 구성됨  입력층(input layers), 은닉층(hidden layers), 출력층(output layers)

입력층(input layer): 데이터가 입력되는 레이어

출력층(output layer): 결과 데이터가 출력되는 레이어

은닉층(hidden layer): 입력층과 출력층 사이에 숨겨진 레이어

활성화 함수(activation function): 입력 신호의 총합을 출력 신호로 변환하는 함수

 

퍼셉트론 동작 과정

1) 다수의 신호를 입력 받음 → 아래 그림에선 x, y, z를 입력 받음

2) 입력 받은 신호에 가중치 w(weight)를 곱함 → 뉴런의 시냅스(synapse)가 전기신호의 세기를 재조정하는 과정

3) 1)과 2)를 통해 곱해진 값을 모두 더함 → 이 값을 '가중합'이라고 함

4) 가중합이 임계값(θ)보다 클 경우 1을 출력하고, 그렇지 않다면 0을 출력 → 이렇게 0 또는 1을 출력하도록 해주는 함수를 활성화 함수(activation function)라고 함

아래 그림에서 각각의 뉴런 또는 노드(related in tree data structure: https://psleon.tistory.com/15)라고 함

 

단층 퍼셉트론(SLP) vs 다층 퍼셉트론(MLP)

1_1. 단층 퍼셉트론(Single Layer Perceptron:SLP)

입력층(input layer)과 출력층(output layer)으로만 구성된 경우

1_2. 단층 퍼셉트론으로 AND, OR, NAND gate 구현

 

각 gate별 퍼셉트론을 단층 퍼셉트론으로 구현한다면 빨간색 선의 선형판별자를 통해서 구분됨

1_3. 단층 퍼셉트론의 한계점

단층 퍼셉트론은 입력값에 따른 출력값을 구분짓는 직선을 1개밖에 그릴 수 없기 때문에 XOR 게이트는 구현 불가

 

위의 한계점을 극복하기 위해 등장한 것이 '다층 퍼셉트론'

XOR 게이트는 AND, NAND, OR 게이트의 조합으로 만들 수 있기 때문에 은닉층을 추가하여 만들 수 있음!

따라서, 층을 여러겹으로 쌓아가면서 선형 분류만으로 해결이 불가능 했던 문제를 비선형적으로 해결 가능

각 층에서 발생하는 오차는 역전파 알고리즘을 통해 수정해나감

 

2. 다층 퍼셉트론(Multiple layer perceptron)

입력층(input layer)과 출력층(ouput layer) 사이에 1개 이상의 은닉층(hidden layer)이 추가된 경우

은닉층이 2개 이상일 경우, 심층 신경망(Deep Neural Network, DNN)이라고 함