미누에요
[Deep Learning] 딥러닝과 인공신경망(Neural Network), 퍼셉트론(Perceptron) 본문
딥러닝(Deep Learning)
딥러닝이라고 하면 마냥 어렵게만 느껴지겠지만 머신러닝과 크게 다를 게 없다.
단지 "인공신경망"이라는 것을 기반으로 했다는 것이 큰 차이점이다.
앞서 말했듯이, 딥러닝은 인공신경망에 기반한 학습 방식이다.
인공 신경망(Neural Network)
과학기술에는 사람이나 동식물을 보고 영감을 받아 만든 제품이 많다.
그 중 인공신경망은 사람의 뇌 안에있는 뉴런 구조를 보고 구상하게 되었다.
예전에 과학 교과서에서 이런 그림을 본 적이 있을 것이다.
이 뉴런은 두뇌에서 가장 작은 정보처리 단위로써 사용된다.
이를 보고, 뉴런과 같은 작은 단위를 만들고, 이것을 여러 개 층층히 쌓아 신경망을 사람처럼 구성하면 어떨까 ? 라는 의견에서 나오게 된 것이 딥러닝의 핵심인 인공 신경망이다.
위 사진은 인공신경망을 설명할 때 자주 나오는 사진의 구조이다.
인공 신경망이 여러 개의 층(layer)으로 구성되어있고, 뉴런과 같은 역할을 하는 하나의 동그라미를 퍼셉트론(perceptron)이라 한다.
이러한 인공신경망의 특징은 아래와 같다.
- 모델 스스로 데이터의 특성을 학습한다.
- 지도학습, 비지도학습 모두 가능
- ex) 얼굴인식, 번역, 알파고
퍼셉트론(Perceptron)
퍼센트론은 위에서 언급했듯이 뉴런을 그대로 보고 만든 하나의 요소이다.
Input을 받아 특정 연산을 수행한 후 Output으로 전달하게 되고, 전달된 Output은 또다른 퍼셉트론이 받게 된다.
퍼셉트론은 위 사진과 같은 구조를 지닌다.
- 입력값(input) : x1, x2, ... , xn
- 가중치값(weight) : w1, w2, ... , wn
- 바이어스(bias) : B or w0
- 활성화함수(activation Function)
- 출력값(ouput) : y
여기서 바이어스(bias)는 마지막에 더해주는 값으로, 결과를 미세하게 조정하는 데 사용된다.
만약 입력값이 x1,x2이고 가중치가 각각 w1,w2이며 바이어스가 B라면 출력값 y는 아래와 같이 나타난다.
여기서 activation은 여러 가지 종류가 존재하며, 상황에 맞게 사용하면 된다.
딥러닝을 활용해서 분류 문제를 수행하는 경우에 우리는 출력값, 즉 결과값을 0 또는 1로 받아야한다.
이런 경우에 우리는 활성화함수(activation)으로 Step Function을 사용할 수 있다.
Step Function은 우리가 아래 식을 이용해 계산한 결과가 0보다 작으면 0을 출력하고, 0보다 크거나 같은 경우에는 1을 출력한다.
즉, activation 함수를 거치면 결과값이 0 또는 1로 나누어진다는 뜻이다.
이진 분류 문제를 풀어야하는 경우에는 이러한 활성화함수가 잘 활용될 수 있다.
+) 활성화함수 종류
풀어야하는 문제 상황에 맞게 활성화함수를 택하면 좋다.