2022. 4. 27. 16:16ㆍAI/Codestates
퍼셉트론 ( 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 )
- 일반적으로는 활성화 함수를 지정해주지 않으며 출력층의 노드 수는 출력값의 특성 수와 동일하게 설정함
'AI > Codestates' 카테고리의 다른 글
[Deep Learning] 더 나은 신경망 학습을 위한 방법들 (0) | 2022.04.29 |
---|---|
[Deep Learning] Training Neural Network (0) | 2022.04.28 |
[Day 66] Section3 Review (0) | 2022.04.27 |
[Day 60 ~ Day 65] Section 3 Project (0) | 2022.04.26 |
[Day 59] Sprint Review (0) | 2022.04.15 |