[Deep Learning] Artificial Neural Network

2022. 4. 27. 16:16AI/Codestates

728x90
반응형

퍼셉트론 ( Perceptron ) 이란?

- 레고처럼 유사하게 생긴 기본 블록을 계속 쌓아가면서 전체적인 형태를 만드는 형식

- 신경망을 이루는 가장 기본 단위

- 다수의 신호를 입력으로 받아 하나의 신호를 출력하는 구조

- 퍼셉트론은 크게 가중치 - 편향 연산 ( = 가중합 ), 활성화 함수 크게 두 부분으로 나눌 수 있음

▶ 가중치 ( Weight ) - 편향 ( Bias ) 연산

- 입력된 신호는 각각의 가중치와 곱해지고 그 결과를 더해주게 되는데, 이러한 가중합 ( Weighted Sum )이 퍼셉트론의 첫 번째 단계

▶ 활성화 함수 ( Activation Function )

- 활성화 함수는 계산된 가중합을 얼마 만큼의 신호로 출력할지를 결정

■ 계단 함수 ( Step Function )

- 가장 간단한 활성화 함수인 계단 함수는 입력값이 임계값을 넘기면 1을, 그렇지 않으면 0을 출력하는 함수

■ 시그모이드 함수 ( Sigmoid Function )

- 계단 함수는 임계값 지점에서 미분이 불가능하고, 나머지 지점에서는 미분값이 0이 나오므로 학습이 제대로 이루어지지 않음

- 시그모이드 함수는 이런 단점을 해결하기 위해 사용된 함수

- 계단 함수처럼 임계값 ( 0 ) 보다 작은 부분은 0에 가까워지고, 큰 부분은 1에 가까워짐

- 하지만 조금 더 부드럽게 연결되어 있기 때문에 모든 지점에서 미분 가능하며, 미분값도 0이 아님

■ ReLU 함수 ( ReLU Function )

- ReLU 함수는 신경망 발전에 큰 영향을 미친 활성화 함수

- 시그모이드 함수를 중복하여 사용하게 되면 기울기 소실 ( Vanishing Gradient ) 문제가 발생하게 됨

- 기울기 소실 문제를 해결하기 위해 등장한 함수

- ReLU 함수는 양의 값이 입력되면 그 값을 그대로 출력하고 음의 값이 입력되면 0을 반환함

■ 소프트맥스 함수 ( Softmax Function )

- 소프트맥스 함수는 다중 분류 문제에 적용할 수 있도록 시그모이드 함수를 일반화한 활성화 함수

- 가중합 값을 소프트맥스 함수에 통과시키면 모든 클래스의 값이 합이 1이 되는 확률값으로 변환됨

논리 게이트와 퍼셉트론 관계

▶ AND GATE

- 입력 신호가 모두 1 일때 1을 출력

▶ NAND GATE

- AND GATE의 결과의 반대를 출력

▶ OR GATE

- 입력 신호 중 하나만 1이라도 1을 출력

▶ XOR GATE

- 입력 신호가 다를 경우 1을 출력

▶ 퍼셉트론의 한계

인공 신경망이란?

- 딥러닝은 인공 신경망의 층을 깊게 ( Deep ) 쌓은 것을 가리킴

- ANN ( Artificial Neural Networks ), 즉 인공 신경망은 실제 신경계를 모사하여 만들어진 계산 모델 줄여서 뉴럴넷 ( Neural - Net ) 이라고 부르기도 함

▶ 다층으로 쌓는 이유는?

- 1개의 층으로는 해결할 수 없던 문제도 이렇게 2개 이상의 층으로 구성하면 풀 수 있음

- 퍼셉트론을 여러 개의 층으로 쌓아 구축한 신경망을 다층 퍼셉트론 신경망 ( Multi - Layer Perceptron, MLP ) 라고 함

▶ 신경망 층

■ 입력층 ( Input Layer )

- 입력층은 데이터셋이 입력되는 층

- 입력되는 데이터셋의 특성에 따라 입력층 노드의 수가 결정됨

- 입력층은 어떤 계산도 수행하지 않고 그냥 값들을 전달하기만 하는 특징을 가짐

- 신경망의 층수 ( 깊이, Depth ) 를 셀 때 입력층은 포함하지 않음

■ 은닉층 ( Hidden Layers )

- 은닉층은 입력층으로 부터 입력된 신호가 가중치, 편향과 연산되는 층

- 일반적으로 입력층과 출력층 사이에 있는 층을 은닉층이라고 부름

- 은닉층에서 일어나는 계산의 결과를 사용자가 볼 수 없기 때문에 '은닉층' 이라는 이름이 붙었음

- 은닉층은 데이터셋의 특성 수와 상관 없이 노드 수를 구성할 수 있음

- 일반적으로 딥러닝이라고 하면 2개 이상의 은닉층을 가진 신경망

■ 출력층 ( Output Layer )

- 출력층은 가장 마지막에 위치한 층이며 은닉충 연산을 마친 값이 출력되는 층

- 이진 분류 ( Binary Classification )

  • 활성화 함수로는 시그모이드 ( Sigmoid ) 함수를 사용하며 출력층의 노드 수는 1로 설정함
  • 출력되는 값이 0과 1 사이의 확률값이 되도록 함

- 다중 분류 ( Multi - Class Classification )

  • 활성화 함수로는 소프트맥스 ( Softmax ) 함수를 사용하며 출력층의 노드 수는 레이블의 클래스 수와 동일하게 설정함

- 회귀 ( Regression )

  • 일반적으로는 활성화 함수를 지정해주지 않으며 출력층의 노드 수는 출력값의 특성 수와 동일하게 설정함

 

728x90
반응형