Neural Network
Content
- Perceptron
- From Perceptron to Neural Network
1. Perceptron
퍼셉트론(Perceptron)은 신경망의 기원이 되는 알고리즘 이다. 이후 노드(Node), 가중치(Weight), 층(Layer)과 같은 새로운 개념이 도입되었다.
딥러닝을 포함하여 현대 신경망은 퍼셉트론을 병렬 구조와 순차 구조로 결합한 형태이다. 즉, 퍼셉트론은 Neural Network의 중요한 구성 요소이므로 구조와 동작, 학습 알고리즘, 특성을 제대로 이해할 필요가 있다.
1-1 단층 퍼셉트론(Single_Layer Perceptron)
단층 퍼셉트론은 값을 보내는 단계(input)와 값을 받아서 출력하는 단계(output) 이렇게 두 단계로만 이루어져 있다.
- x1, x2 : 입력값 = input
- w(weight) : 가중치라고 불리는데, 각 입력신호(input)가 결과에 영향력(중요도)을 조절하는 매개변수이다.
- b(bias) : 뉴런이 얼마나 쉽게 활성화되는지를 결정하는 매개변수이다.
- 단층 퍼셉트론의 작동 방식은 입력받은 각 신호(input)에 가중치(weight)를 곱한 후, 다음 뉴런에 전달하는 방식이다. 사진에 나와 있듯이 입력값에 가중치를 곱한 값이 특정 입계값을 넘어서면 y에 신호가 흐르는 구조이다.
2. From Perceptron to Neural Network
2-1. Feed Forward Neural Network(FFNN)
: 신호가 한쪽 방향으로만 흐르는 인공신경망의 일종이다. (input -> output)
2-2. Fully Connected Layer(Dense Layer)
2-3. Multi-layer Perceptron(MLP)
- 입력층(Input layer) : 데이터를 입력받는 층
- 은닉층(hidden layer) : 입력층과 출력층 사이에 있는 모든 층
- 출력층(Output layer) : 최종 출력값이 존재하는 층으로 출력층에는 대부분 활성함수(activation function) 가 존재하는데 활성함수는 풀고자 하는 문제에 따라 다른 종류를 사용한다.
2-4. Activation Function
💡 활성화 함수는 항상 비선형 함수를 사용해야 한다!!
2-4.1 Actication Function 종류
Sigmoid 함수
- 출력 값 범위 : 0~1
- 이진 분류 문제를 위해 출력층(Output layer)에서 사용하기도 한다.
- 출력값이 0~1 사이에서 기울기(미분값)가 0에 가깝다.
Hyperbolic tangent(tanh) 함수
- 출력 값 범위 : -1 ~ 1
ReLU 함수
- y = max(0,x)
- 출력 값 범위 : 0~inf
- 입력 값이 음수인 경우 0, 양수인 경우 입력 값 그대로를 반환한다.
- 많은 딥러닝 모델의 은닉층(hidden layer)의 활성화 함수로 자주 사용된다.
Leaky ReLU 함수
- y = max(ax, x), a는 1 이하의 양수
- 출력 값 범위 : -inf ~ inf
- 입력값이 음수일 경우 입력 값에 a를 곱한 값을, 양수일 경우 입력 값을 반환
- 많은 딥러닝 모델의 은닉 층의 활성화 함수로 자주 사용된다.