23.03.27

정동겸·2023년 3월 27일
0

퍼셉트론, 멀티 레이어 퍼셉트론, xor

퍼셉트론

퍼셉트론(Perceptron)은 프랑크 로젠블라트(Frank Rosenblatt)가 1957년에 제안한 초기 형태의 인공 신경망으로 뉴런을 기반으로 한 분류기다.

퍼셉트론은 입력값(Input)과 가중치(Weight)를 곱한 값을 합하여, 임계치(Threshold)와 비교하여 1 또는 0을 출력한다. 이를 이용하여 입력값을 분류하는데 사용된다.

퍼셉트론 XOR 문제

퍼셉트론은 AND, OR, NAND와 같은 선형 분리 문제는 해결할 수 있지만, XOR과 같은 비선형 분리 문제는 해결할 수 없다. 이는 입력값을 결정 경계(decision boundary)로 분리할 수 없기 없기 때문이다.

다중 퍼셉트론

다중 퍼셉트론(Multi-Layer Perceptron, MLP)은 인공신경망의 한 종류로서, 여러 개의 은닉층(hidden layer)을 가진 신경망 구조를 의미한다.
MLP는 입력층(input layer), 은닉층(hidden layer), 출력층(output layer)으로 구성되어 있으며, 각 층은 여러 개의 뉴런(neuron)으로 구성되어 있다.

각 뉴런은 입력값을 받아 가중치를 곱한 후 활성화 함수(Activation Function)를 통과시켜 출력값을 계산한다. 입력층의 뉴런들은 외부에서 입력되는 신호를 받고, 출력층의 뉴런들은 최종 출력값을 계산한다. 은닉층은 입력값을 비선형 함수로 변환하여 다음 층으로 전달하는 역할을 한다.

MLP는 입력값과 출력값 사이에 복잡한 비선형 관계가 있는 문제를 해결할 수 있다. 예를 들어, 이미지 분류 문제나 음성 인식 문제 등은 입력값과 출력값 사이에 복잡한 비선형 관계가 존재하므로 MLP를 이용하여 해결할 수 있다.

backpropagation 동작원리 쓰는 이유
활성화 함수
시그모이드 함수 안쓰이는 이유
렐루 쓰는 이유

역전파(backpropagation)

역전파는 인공 신경망에서 가중치와 편향 값을 최적화하는데 사용되는 알고리즘으로 인공 신경망의 학습 과정 중에서 오차를 최소화하기 위한 기울기(gradient)를 구하는 방법이다.

간단히 말하면, 역전파는 출력 값과 실제 값의 차이(오차)를 이용하여 가중치와 편향 값을 업데이트하는 과정이다.

이를 위해서는 먼저 입력 데이터를 인공 신경망에 주입하고, 출력 값을 계산한다. 그리고 이 출력 값과 실제 값을 비교하여 오차를 계산한다. 그 다음, 이 오차를 입력 층까지 역으로 전파하면서 각 노드의 가중치와 편향 값에 대한 기울기를 계산한다. 이렇게 계산된 기울기를 이용하여 가중치와 편향 값을 업데이트하면서 오차를 최소화하는 방향으로 인공 신경망이 학습을 진행한다.

인공 신경망의 핵심 알고리즘 중 하나이며, 딥러닝 분야에서 매우 중요한 역할을 한다. 이 알고리즘을 통해 인공 신경망이 데이터를 학습하고, 복잡한 패턴을 인식하고, 예측을 수행할 수 있다.

활성화 함수

활성화 함수(Activation function)는 인공 신경망에서 입력 신호의 총합을 출력 신호로 변환하는 함수로 입력 값에 대해 비선형적인 변화를 일으키는 역할을 합니다. 활성화 함수는 인공 신경망의 비선형성을 확보하고, 복잡한 패턴을 모델링할 수 있도록 한다.

대표적인 활성화 함수로는 다음과 같은 것들이 있다.

시그모이드(Sigmoid) 함수: 입력 값을 0과 1 사이의 값으로 변환하는 함수로, 이진 분류 문제에 많이 사용된다.

ReLU(Rectified Linear Unit) 함수: 입력 값이 0 이상인 경우에는 입력 값을 그대로 출력하고, 0 이하인 경우에는 0을 출력하는 함수로, 다중 클래스 분류 문제에 많이 사용된다.

Tanh(Hyperbolic tangent) 함수: 시그모이드 함수와 유사하지만, 출력 범위가 -1부터 1까지로 변환된다.

Softmax 함수: 입력 값을 0과 1 사이의 값으로 변환하면서 모든 출력 값의 합이 1이 되도록 만드는 함수로, 다중 클래스 분류 문제에서 출력층에 주로 사용된다.

시그모이드 함수의 문제점

시그모이드 함수는 역전파 알고리즘에서 기울기 소실(Gradient Vanishing) 문제를 발생시키는 원인 중 하나다.

시그모이드 함수는 입력 값이 매우 크거나 작은 경우, 함수 값의 기울기가 0에 가까워져서 역전파 알고리즘에서 기울기 값이 거의 전달되지 않는 문제가 발생할 수 있다. 이러한 경우에는 인공 신경망의 학습이 제대로 이루어지지 않고, 학습이 멈추거나 느려지는 현상이 발생할 수 있다.

ReLU를 활용하자

ReLU 함수와 같은 비선형 함수를 사용하여 기울기 소실 문제를 해결할 수 있다. ReLU 함수는 입력 값이 0 이상인 경우에는 그 값을 그대로 출력하고, 0 이하인 경우에는 0을 출력하여 기울기 소실 문제를 해결할 수 있다.

최근에는 ReLU 함수를 사용하는 것이 일반적이며, 성능과 학습 속도 면에서 시그모이드 함수보다 우수한 결과를 보인다. 하지만, 입력 값이 음수인 경우에는 ReLU 함수가 0을 출력하기 때문에, 입력 값이 음수인 경우에는 Leaky ReLU나 ELU와 같은 함수를 사용하는 것이 더 나은 결과를 얻을 수 있다.

0개의 댓글