다시 이음

딥러닝(1) - 퍼셉트론(Perceptron)과 인공신경망(Artificial Neural Networks) 본문

AI 일별 공부 정리

딥러닝(1) - 퍼셉트론(Perceptron)과 인공신경망(Artificial Neural Networks)

Taeho(Damon) 2021. 10. 18. 23:26

안녕하세요.

 

딥러닝 파트로 찾아왔습니다.

 

오늘은 딥러닝의 기본이 되는 퍼셉트론과 인공신경망에 대해서 알아보도록 하겠습니다.

 

 

퍼셉트론(Perceptron)

 

1. 퍼셉트론이란?

 

우리 신체에 존재하는 뉴런이라는 신경조직을 들어보신 적이 있으신가요?

이러한 뉴런을 본따 만든 퍼셉트론은 신경망의 기본 단위 입니다.

 

이 퍼셉트론이라는 알고리즘은 무려 1950년대에 고안된 것입니다. 흥미롭죠?

 

퍼셉트론은 다수의 신호를 입력으로 받아 하나의 신호를 출력하는 구조를 가지고 있습니다.

 

퍼셉트론의 구조

❄️  논리게이트라는 것을 찾아볼까요? (AND,OR,NAND,XOR GATE)

- 이를 통해 퍼셉트론에 대해서 좀더 알아볼 수 있습니다. (키워드 : 퍼셉트론의 한계)

 

 

 

인공신경망(Artificial Neural Networks)

 

2. 인공 신경망이란?

 

ANN(Artificial Neural Networks), 즉 인공 신경망은 실제 신경계의 특징을 모사하여 만들어진 계산 모델입니다.

 

이 ANN에 기본 구조가 바로 퍼셉트론입니다.

 

 

 

3. 신경망의 기본 형태

1) 노드(Node)

 - 노드란, 신경망을 구성하는 하나의 단위 입니다.

 - 신경망 그림에서는 주로 원 형태로 표시됩니다.

 

2) 가중치 (Weight)

 - 입력값(input)에 필터라고 보면 쉽습니다.

 - 그림에서 화살표로 표시되며 데이터를 이동시키며 얼마만큼의 가중치(=비중)을 줄 것인지 정하는 것입니다.

 

3) 편향(Bias)

 - 편향(bias)은 하나의 뉴런으로 입력된 모든 값을 다 더한 다음에(가중합이라고 합니다) 이 값에 더 해주는 상수입니다.

 - 노드 활성화를 조정해주는 역할을 담당합니다.

 

4) 레이어(층)

  • 입력층(Input)

- 데이터셋이 입력되는 층입니다.

- 데이터셋의 특성에 따라 입력층 노드의 개수가 결정됩니다.

- 활성화 함수가 없습니다.

 

  • 은닉층(Hidden)

- 입력된 신호가 가중치, 편향과 연산되는 층입니다.

- 노드의 개수를 마음대로 설정 가능합니다.

 

  • 출력층(Output)

- 결과물이 나오는 층입니다.

- 풀어야 할 문제의 종류에 따라 아래와 같이 나뉘어 집니다.

 

1) 이진분류(Binary Classification) 

 

- 노드 1개

- 활성화 함수 : 시그모이드(Sigmoid)

 

2) 다중분류(Multi-class Classification)

 

- 노드 : 클래스 개수

- 활성화 함수 : 소프트맥스(Softmax)

 

3) 회귀(Regression)

 

- 노드 : 구하고자 하는 특성 개수

- 활성화 함수 : 필요없음.

 

 

4. 활성화 함수 (Activation Function)

 

 각 노드에서의 연산값이 정해진 임계값(threshold)을 넘을 경우에 다음 노드들이 있는 층으로 신호를 전달하는 역할입니다.

 

여러가지 활성화함수

 

1) 계단 함수 (Step function)

 

 - 계단 함수는 입력 값이 임계값(여기서는 0)을 넘기면 1을 출력하고, 그렇지 않으면 0을 출력하는 함수입니다.

 

 

2) 시그모이드 함수 (Sigmoid function)

 

 - 계단 함수가 미분이 불가능하여 경사 하강법 과 같은 학습 방법을 이용하지 못하기 때문에 그 해결을 위해 사용되는 함수입니다.

 - 모든 지점에서 미분 가능하며, 미분값도 0이 아닙니다.

 

 

3) Tanh 함수 (Hyperbolic Tangent Function)

 

 - tanh 함수는 함수의 중심점을 0으로 옮겨 sigmoid가 갖고 있던 최적화 과정에서 느려지는 문제를 해결했습니다.

 - 하지만, 미분함수에 대해 일정 값 이상에서 미분 값이 소실되는 Vanishing Gradient Problem은 여전히 남아있습니다.

 

 

4) ReLU 함수(Rectified Linear Unit, 경사함수)

 

 -Sigmoid와 tanh가 갖는 Gradient Vanishing 문제를 해결하기 위한 함수입니다.

- Gradient Vanishing : 미분함수에 대해 일정 값 이상에서 미분 값이 소실되는 현상

 - sigmoid, tanh 함수보다 학습이 빠르고, 연산 비용이 적고, 구현이 매우 간단하다는 특징이 있습니다.

 - 하지만, 0보다 작으면 0이 되는 특성때문에 0보다 작은 값들에서 뉴런이 죽을 수 있는 단점을 야기합니다.

 

 

5) Leaky ReLU

 

 - ReLU가 갖는 Dying ReLU(뉴런이 죽는 현상) 을 해결하기 위해 나온 함수입니다.

 

 

6) ELU (Exponential Linear Unit)

 

 -ReLU의 모든 장점을 포함하며 Dying ReLU 문제를 해결 했습니다.

 -출력 값이 거의 zero-centered에 가까우며, 일반적인 ReLU와 다르게 exp 함수를 계산하는 비용이 발생합니다.

 

 

 

5. 신경망의 구현

 

 신경망의 진행 방향에 따라 순전파(Feed Forward)와 역전파(Backpropagation)으로 나뉩니다.

 

그러나 오늘은 순전파에 대해서만 간략하게 볼게요.

 

순전파(Forward Propagation)는 딥러닝 인공지능 알고리즘에서 입력 데이터를 주고 여러 층의 신경망을 따라 쭉 신호를 전파하면서 최종 출력을 만들어 가는 과정을 말합니다.

 

즉, 가중치와 편향의 연산을 반복하며 입력값을 받아 출력값으로 반환하는 과정 입니다.

 

신경망은 노드가 가중치로 연결되어 입력 신호와 연산한 뒤에 출력값으로 내보내는 함수라고도 할 수 있습니다.
가중치를 지속하여 수정하면서 적절한 가중치를 찾는 과정을 학습(Training, Learning)이라고 합니다.

 

 

6. 표현 학습(Representation Learning)

 

 머신러닝과 딥러닝의 차이입니다.

 

머신러닝에서 우리가 Feature Engineering을 통해 특성 중요도를 확인하여 성능을 높이려고 노력했는데요.

 

딥러닝에서는 그런 과정없이 신경망은 데이터에서 필요한 특성을 알아서 조합합니다.

 

좀더 알아보자면, 기계적인 학습은 지식에 대한 습득이고 인공지능의 학습은 표현을 학습하는 것과 같다고 보는 것입니다.

 

❄️  추가적으로 표현 학습이 궁금하시다면 검색을 통해서 찾아보는 것이 좋습니다.

 

 

 

 

 

이렇게 딥러닝을 들어가기에 앞서 기본적인 부분을 살펴 보았습니다.

 

좀더 자세한 설명은 https://www.youtube.com/watch?v=aircAruvnKk 3Blue1Brown 유튭에서 해당 설명을 들으시면 좋을 것 같습니다.