BESS(Back-End Study Space)
Perceptron, Deep Learning, Gradient Descent 본문
#1. Perceptron(1958, Frank Rosenblatt)
생물학적 뉴런을 모방하여 인공신경망(Artificial Neural Network)의 기본 단위
※ Activation function : 가중치들의 합으로 만들어진 신호가 이 함수를 만족해야 다음 perceptron으로 전달되도록 한다.
#2. Artificial Neural Network (ANN)
- Artificial Neural Network : Perceptron을 여러 개 연결한 것
- Artificial Neural Network의 학습 : 우리가 원하는 목표를 달성하기 위한 weight값들을 찾아내는 과정
#3. Deep Learning
Single-Layer Perceptron | Multi-Layer Perceptron(MLP) |
- input layer은 layer 개수 따질 때 고려하지 않음 | - hidden layer가 한 개 이상 존재할 때 Multi-Layer |
Deep Learning ?
☞ Deep Neural Network을 이용한 Machine Learning 방법
- Deep Neural Network : Hidden Layer 수가 2개 이상인 network
#4. Gradient Descent
> 1. Weight 초기화
원하는 weight를 어떻게? → 그 전에 아무것도 모르는 상태에서 weight의 초기값은 어떻게? → 모르겠다 일단 Random한 값으로 시작하자!
☞ Random Initialization
- weight가 두 종류 있다고 가정했을 때, 둘 중에 어떤 것이 더 예측을 잘하는 지 평가가 필요함
▼
> 2. Loss Function(Cost Function)
- Neural Network이 얼마나 못하는 지에 대한 척도가 필요함 (Neural Network의 출력과 실제 정답의 차이)
- 예 ) 2가지 광고료 조합에 대하여 Neural Network이 예측한 (남,녀)에게의 판매량 : (100, 80) / 실제 판매량 : (105. 78) 일 때,
L = (105-100)^2 + (78-80)^2 = 29
(+, - 로 인해 상쇄되는 효과를 없애기 위해 제곱을 하여 양수로 바뀌게 해 주는 방식이 가장 많이 쓰임)
- Loss 계산법 : 내가 가진 모든 training data에 대하여 Neural Network의 출력과 실제 정답(label)을 비교하여 각각의 Loss를 계산하고 이를 모두 더해서 전체 Loss를 계산한다
- Loss Function 값이 줄어들도록 weight 값들을 조절하는 것이 필요 → weight을 어떻게 바꿔야 Loss Function 값이 줄어들까? → 미분!
★ Gradient (미분) ★
'w0에서의 접선의 기울기'의 의미
: 예를 들어 w0에서의 미분값이 -2라면, w를 w0에서 왼쪽(-방향)으로 아주 조금 움직이면 그 2배만큼 L값이 증가한다는 뜻
Loss를 w로 미분하고, 미분값이 가리키는 방향의 반대방향으로 아주 조금씩 w를 바꿔나가면 Loss를 감소시킬 수 있다
> 3. Gradient Descent
Loss Function의 미분(Gradient)를 이용하여 weight를 update하는 방법
'데이터 분석 입문 > 딥러닝' 카테고리의 다른 글
TensorFlow와 PyTorch (0) | 2020.12.07 |
---|---|
Generative Adversarial Network (0) | 2020.12.07 |
Recurrent Neural Network(RNN) (0) | 2020.12.06 |
Convolutional Neural Network(CNN) (0) | 2020.12.06 |
Mini-Batch, Back Propagation, Overfitting (0) | 2020.12.05 |