# 1 딥러닝의 시작과 Perceptron
1) Image Classification
- Image Classification is a core task in Computer Vision
→ 조금 더 챌린징한 분류 문제를 풀기 위해 라지 모델 등장
- 이미지의 경우 각각의 적합한 클래스로 분류하는 mapping func.이 너무 복잡함
2) Deep Learning for Image Classification
- 2012 : 딥러닝의 실질적 시작
- IMAGENET : 데이터셋으로, 규모가 매우 크면서 각각의 class가 달려있는 데이터셋 → 알렉스넷에 활용되어 좋은 성능을 냄
- 사람보다 낮은 이미지 분류 error rate을 기록하기 시작
3) Perceptron : 딥뉴럴네트워크의 시작
- Frank Rosenblatt에 의해 1954년에 발명
- Inspired by Neurobiology(신경생물학)
- 즉, 위 그림에서 윗부분과 같이 인간의 뉴런을 모방하여 추상화시킨것이 위 그림의 아랫부분에 나와있는, 딥러닝에서 말하는 perceptron이다.
- Perceptron : 프랑크 로젠블라트(Frank Rosenblatt)가 1957년에 제안한 초기 형태의 인공 신경망으로 다수의 입력으로부터 하나의 결과를 내보내는 알고리즘(단층 퍼셉트론) (https://wikidocs.net/24958)
- 퍼셉트론(Perceptron)은 인공 신경망(Aritificial Neural Network, ANN)의 구성 요소(unit)로서 다수의 값을 입력받아 하나의 값으로 출력하는 알고리즘입니다. (단층 퍼셉트론) Perceptron은 perception과 neuron의 합성어이며 인공 뉴런이라고도 부릅니다. 즉, 퍼셉트론은 생물학적인 신경계(Neual Network)의 기본 단위인 신경세포(=뉴런)의 동작 과정을 통계학적으로 모델링한 알고리즘입니다.(https://heytech.tistory.com/332)
- 하단 그림에서 w0x0, w1x1, w2x2를 받아 bias term인 b를 반영하여 output으로 내보내는 일련의 과정이 perceptron에서 일어나는 일이고, 이는 로지스틱회귀와 비슷
3-1) Single Layer Perceptron
- 위처럼 layer가 한 개인 perceptron을 'Single Layer Perceptron'이라고 한다.
(AND GATE)
- input variable x1과 x2에 대해 둘 다 1일때만 y값을 다른 값으로(1) 출력하는 And gate 문제를 Single Layer Perceptron으로 풀 수 있다.
(OR GATE)
- AND GATE와 마찬가지로 Single Layer Perceptron으로 OR GATE 문제를 풀 수 있다.
(XOR GATE)
- 그러나, XOR GATE 문제는 Single Layer Perceptron으로는 어떻게 나눠도 풀 수 없었으며, 이 때 perceptron과 AI에 대한 회의감이 생겼음
3-2) Multi Layer Perceptron
- Single Layer를 두 개 이상 구성한 Multi-Layer Perceptron으로 XOR GATE을 풀 수 있게됨
# 2 Neural Network and Activation Function
1) Neural Network Presentation
(Notation)
- 1-hidden-layer neural network 또는 2-layer neural network
(Linear Regression/Logistic Regression과 Multi Layer Neural Network)
- Linear Regression 또는 Logistic Regression과 2-Layer Neural Network를 비교해본다.
- 좌측 그림에서는 Logistic Regression에 대한 예시가 나와있는데, x1~x3을 기반으로 w1~w3값이 산출되어 Mapping Function이 도출된다. 이는 물론 Linear Regression에서도 마찬가지이다.
- 위와 마찬가지로 우측 그림에서도 x1~x3까지의 input variable들을 기반으로 parameter들이 산출되는데, 이에따라 h1~h4까지의 값이 각각 도출되며, 이 하나하나의 hidden node들을 single layer perceptron으로 볼 수 있고, 이게 잘 조합되어 neural network가 구성된다.
→ h1~h4까지의 값들이 각각 또 다시 또다른 layer의 parameter와 계산되어 최종적인 mapping function이 도출된다.
(Neural Network 관련 Notation)
- Neural Network is a very broad term ; these are more accurately called "Fully-Connected Networks(FC)" or sometimes "Multi-Layer Perceptron(MLP)"
2) Activation Function
- Answer : We end up with a linear regression again!
(Activation Function 종류)
(참고) Learning rate, Activation Function, Regularization, Regularization Rate, Problem Type을 UI상에서 조정해가며 Neural Network 구성해보는 사이트
http://playground.tensorflow.org/
Tensorflow — Neural Network Playground
Tinker with a real neural network right here in your browser.
playground.tensorflow.org
# 3 Update the Parameters
1) Gradient Descent for Neural Networks
위와 같은 neural network의 L(w)를 구하기 위해서는, 여느때와 마찬가지로 아래와 같은 식을 풀면 될 것이다.
또한 이는 결국 아래와 같이 parameter update를 16번 반복하면 풀리기는 할 것이다.
그러나 이러한 원초적인 방식은 아래와 같은 문제점을 야기한다.
이에, 우리는 아래에서 상술할 chain rule을 활용한 parameter update를 시행할 것이다.
2) Computation Graph and Backpropagation : A Simple Example
우선 간단한 computation graph 예시를 들어보자.
위와 같은 graph에서 궁극적으로 우리가 알고 싶은 것은 partial f / partial x, partial f / partial y, partial f / partial z 값이다.
우선, 위처럼 주어진 x,y,z값을 각각의 q와 f 연산을 적용시켜 최종 output 값 -12를 도출하는 과정을 'Forward Propagation'이라고 한다. (output 계산)
그리고 나서, 위처럼 최종 연산인 f로부터 처음 단계까지 차례로 chain rule을 적용하여 partial f / partial x, partial f / partial y, partial f / partial z 값을 구하는 과정을 'Back Propagation'이라고 한다. 이 값들을 기반으로 우리는 gradient descent for neural network를 할 것이고, 이는 곧 parameter를 update한다는 뜻이다.
3) Computation Graph and Backpropagation
- 위의 그림에서 wi와 같은 parameter들을 update해야하며, 이는 chain rule을 통해 금방 풀 수 있음
- (ChatGPT) 위 그림의 수식 L(W;xn,yn) : 세미콜론 기준으로 W는 파라미터, xn 및 yn은 input 값을 의미
특히, 아래 그림과 같이 예를들어 h1으로 L을 미분한 값은 h21, h22, h23에 대한 편미분 및 chain rule 적용 식들을 모두 더한 값이다.
(분홍색 하이라이트 참조)
(Notation)
- Upstream gradient : 노드의 output에 대한 Loss Function의 gradient(이미 계산).
- Local gradient : 해당 노드내에서만 계산되는 gradient.
- Downstream gradient : 노드의 input에 있는 변수에 대한 Loss Function의 gradient.
# Reference
- Deep Learning by I.Goodfellow et al.
- Dive into Deep Learning by A.Zhang et al.
- Korea Univ. AAI107, 'Machine Learning' Lecture
'기계학습 > ML,DL Backgroud 이론 - [대학원] 전공 수업' 카테고리의 다른 글
[기계학습 11~12] 5. Convolutional Neural Networks (CNNs) - 작성 중 (1) | 2024.06.08 |
---|---|
[기계학습 8~10] 4. Neural Network and Backpropagation (2) - 작성 중 (0) | 2024.06.07 |
[기계학습 4] Classification(Logistic Regression) - 작성중 (0) | 2024.04.13 |
[기계학습 3] Optimization, Multivariate Linear Regression(다변량 선형 회귀) (2) | 2024.04.13 |
[기계학습 1~2] AI/ML/DL 및 Linear Regression 개요, Cost Function (0) | 2024.03.16 |