- McCulloch Pitts (MCP) 뉴런 (1943)
: 단순화 된 뇌 세포의 첫 번째 개념
: 신경 세포를 바이너리 출력 (0 또는 1의 값)이있는 간단한 논리 게이트로 설명
- Perceptron (1957)
: 퍼셉트론(perceptron)은 인공신경망의 한 종류로써,
1957년에 코넬 항공 연구소(Cornell Aeronautical Lab)의 프랑크 로젠블라트 (Frank Rosenblatt)에 의해 고안되었습니다.
이것은 가장 간단한 형태의 피드포워드(Feedforward) 네트워크 - 선형분류기- 로도 볼 수 있습니다.
퍼셉트론이 동작하는 방식은 다음과 같습니다. 각 노드의 가중치와 입력치를 곱한 것을 모두 합한 값이 활성함수에 의해 판단되는데,
그 값이 임계치(보통 0)보다 크면 뉴런이 활성화되고 결과값으로 1을 출력합니다. 뉴런이 활성화되지 않으면 결과값으로 -1을 출력합니다.
마빈 민스키와 시모어 페퍼트는 저서 "퍼셉트론"에서 단층 퍼셉트론은 XOR 연산이 불가능하지만,
다층 퍼셉트론으로는 XOR 연산이 가능함을 보였습니다.
: Perceptron은 Neural network 의 기본이 되는 알고리즘으로, 마지막에 0이나 1을 내보낼 것인지를 자동으로 학습하는 알고리즘입니다.
- MCP 뉴런 모델 기반
- 최적의 가중치 계수를 자동 학습하여 뉴런의 발화 여부를 결정하는 알고리즘
- 지도 학습 및 분류에 활용 가능
Example 1.
: Perceptron with 2 input features
=> weights (가중치)를 각각의 x에 곱한 후 두 값을 더합니다.
: Representation with bias
=> y 절편과 같이 표현하는 것을 bias 라고 부릅니다.
- Formal definition
- 퍼셉트론 출력의 결정 함수에 의한 이진 분류
- Perceptron 학습 방법
: η(true label - predicted label)
- Gradient descent (경사 하강법)
: 해당 함수의 최소값 위치를 찾기 위해 비용 함수(Cost Function)의 그레디언트 반대 방향으로 정의한 step size를 가지고 조금씩
움직여 가면서 최적의 파라미터를 찾으려는 방법입니다.
여기서 그레디언트는 파라미터에 대해 편미분한 벡터를 의미하며 이 파라미터를 반복적으로 조금씩 움직이는 것이 관건입니다.
- Main idea
• 지역 또는 글로벌 최소 비용에 도달 할 때까지 언덕 아래로 등반
• 반복 할 때마다 그라디언트의 반대 방향으로 한 걸음 씩 이동합니다.
• 단계 크기는 학습률과 기울기에 의해 결정됩니다.
: 비용 함수 J (목표 함수)를 계산 된 결과와 실제 레이블 사이의 제곱 오차의 합으로 정의
=> Gradient 를 이용하여 Loss (Error)가 최소화된 값을 찾아가는 방식이다.
=> 미분 값의 반대 방향으로 learning rate와 gradient 값의 크기 만큼 내려온다.
: Weight update 시 n이 너무 크면 시간 및 업데이트 진행이 너무 오래 걸리는 단점이 발생합니다.
: Learning rate 비교
왼쪽의 경우: Learning rate가 너무 커서 minimum을 찾지 못하고 엉뚱한 방향으로 진행
오른쪽의 경우: Learning rate가 너무 작아 정상 방향으로 진행하나 소요 시간이 너무 오래 걸림
- Large scale learning
: Batch는 전체 training set을 다 사용하여 정함, n이 클 경우 계산량이 너무 많다.
SGD는 training sample을 하나 볼 경우 업데이트 진행
- Batch gradient descent (BGD)
: 배치 경사 하강법이란, 전체 학습 데이터를 하나의 배치로(배치 크기가 n) 묶어 학습시키는 경사 하강법입니다.
전체 데이터에 대한 모델의 오차의 평균을 구한 다음, 이를 이용하여 미분을 통해 경사를 산출, 최적화를 진행합니다.
보통 딥러닝 라이브러리에서 배치를 지정하지 않으면 이 방법을 쓰고 있다고 생각할 수 있습니다.
- Stochastic gradient descent (SGD): 확률적 경사 하강법
: 만약 우리가 모든 데이터 세트를 가지고 모델을 학습 시킨다면 예측의 정확성은 높일 수 있으나, 매우 오랜 시간이 걸릴 것 입니다.
확률적 경사하강법은 랜덤으로 단 한 개의 데이터를 추출하여(배치 크기가 1) 기울기를 얻어 냅니다.
이러한 과정을 반복해서 학습하여 최적점을 찾아내는 것이 확률적 경사하강법입니다.
- Mini-batch gradient descent (MSGD)
: 딥러닝 라이브러리 등에서 SGD를 얘기하면 최근에는 대부분 이 방법을 의미합니다.
SGD와 BGD의 절충안으로, 전체 데이터를 batch_size개씩 나눠 배치로 학습(배치 크기를 사용자가 지정)시키는 것입니다.
예를 들어, 전체 데이터가 1000개인 데이터를 학습시킬 때, batch_size가 100이라면,
전체를 100개씩 총 10 묶음의 배치로 나누어 1 Epoch당 10번 경사하강법을 진행합니다.
SGD는 너무 noiser 하므로 Mini-batch 방식을 많이 사용하고, subset을 사용하는 방법으로, batch size를 조절하는 방식입니다.
- Artificical neuron (인공 뉴런)
: Linear 한 결정 경계를 가집니다.
- Perceptron (AND, OR, XOR 게이트) 표현
: 위의 표는 AND게이트의 진리표이며 이 AND게이트를 퍼셉트론으로 표현할 수 있습니다.
이를 위해서는 w1, w2, θ 의 값을 적절하게 결정해야 합니다.
(w1, w2, θ ) = (0.5, 0.5, 0.7) 일 때, AND 게이트의 조건을 만족합니다.
(w1, w2, θ ) = (0.5, 0.5, 0.2) 일 때, OR 게이트의 조건을 만족합니다.
- XOR의 표현
: 1969년 Marvin Minsky와 Seymour Papert는 '퍼셉트론'이란 논문에서 퍼셉트론의 심각한 약점이 있다는 것을 보였는데,
그 중에서도 가장 결정적인 것은 선형결합인 퍼셉트론이 배타적 논리합인 XOR 분류 문제를 해결할 수 없다는 것 입니다.
이를 계기로 인공 신경망은 암흑기를 맞이하게 되었다. 하지만, 단일 퍼셉트론을 여러개 쌓아 다층 퍼셉트론
(MLP, Multi-Layer Perceptron)을 통해 XOR 분류 문제를 해결할 수 있었습니다.
여러 개의 퍼셉트론을 층으로 쌓아 만든 것을 다층 퍼셉트론이라 하고,
이렇게 하면 단층 퍼셉트론으로는 표현하지 못하는 것을 층을 늘림으로써 구현할 수 있습니다.
즉, AND 게이트, OR 게이트, NAND 게이트를 가진 퍼셉트론 3개를 쌓으면 XOR 게이트를 구현할 수 있습니다.
아주대학교 정보통신대학원 손경아 교수님의 기계학습 및 데이터 마이닝 강의를 바탕으로 작성하였습니다.
학습 목적으로 포스팅 합니다.
'Machine Learning' 카테고리의 다른 글
Convolution Neural Network (0) | 2020.10.14 |
---|---|
Artificial Neural network (0) | 2020.10.01 |
Logistic regression (0) | 2020.09.29 |
Model selection (1) | 2020.09.29 |
Regression (0) | 2020.09.27 |