시작하며
오늘은 머신러닝과 딥러닝에 대해 공부했다. 지난 교육 과정에서 처음 들었을 때는 모든 게 생소한 내용이라 너무 어려웠는데, 오늘은 그래도 한 번씩은 들어본 내용들이라 이해하기 수월했던 것 같다.
Ragularization
- 손실 함수에 가중치의 합을 더하는 것
- Norm : 가중치 측정 방법
- L1 : Lasso Ragularization
- 가중치의 절대값 합에 비례하는 패널티를 손실함수에 추가
- 일부 가중치를 0으로 만듦
- 모델의 일부 특성을 사실상 제거하며, Feature Selection에 유용
- L2 : Ridge Ragularization
- 가중치의 제곱 합에 비례하는 패널티를 손실함수에 추가
- 가중치 값이 전체적으로 너무 커지지 않도록 제한
Deep Learning
여러 layer의 신경망을 사용하여 학습하는 방법
Biological Neuron
- Dendrite(수상돌기) : 전기신호 입력 층
- Axon(축삭돌기) : 신호 전달 통로
- Synapse(시냅스) : 뉴런 간 연결 지점
Perceptron
뉴런을 따라 만든 인공신경망의 최소 단위
입력값(x)에 가중치(w)를 곱하고 편향(b)를 더한 뒤,
활성화 함수 필터를 통과시켜 최종 신호를 만들어내는 수학적 모델
Linear Function of Perceptron
y=i=1∑nwixi+b
- Activation Function에 전달하기 전에 Raw Score를 생성하는 과정
- Weight(가중치) : 데이터의 중요도
- Bias(편향) : 데이터의 민감도
- wixi+b = y=ax+b
- 1차 함수 : Linear Function
- 가중합 + 편향
- Linear Combination(선형결합)
- Hyperplane(초평면) : n-1 차원에 존재
Activation Function(활성 함수)
- Linear Function의 점수를 보고 다음 Percentron으로 보낼지 말지 결정하는 함수
- 데이터를 얼마나 전달할지 결정
- 비선형성 부여
- 결과를 결정하는데 기여(출력층, 분류 시)
- Activation Function의 종류
- Step Function, Sigmoid, ReLU, Softmax
Step Function
- 1 또는 0(Binary Step Function)
- 계단형 그래프
Sigmoid
- 0과 1사이의 부드러운 확률 표현
- S 모양 그래프
- 이진분류 시 사용
ReLU(Rectified Linear Unit)
- 종합점수가 마이너스면 0, 플러스면 점수 그대로
- 0이하는 0, 0초과 시 기울기가 1인 직선
GeLU(Gaussian Error Linear Unit)
- GPT, BERT 모델에서 사용
- 입력값(x)가 얼마나 큰지에 따라 통과시킬 확률 결정
Softmax
- 출력층에서 사용되는 활성함수(다중분류)
- 확률화
- 모든 출력값을 0과 1사이로 압축
- 모든 출력값의 합이 1이 되게 만듦
History of Deep Learning
Single Layer Perceptron(SLP, 단층 퍼셉트론)
- 1958년 Frank Rosenblatt이 구현
- 인간의 뉴런을 성공적으로 모방
- AND, OR와 같은 기본적인 논리연산은 잘함
- 1969년 Marvin L. Minsky에 의해 단층 퍼셉트론은 XOR 연산을 못함이 증명됨
Multi Layer Perceptron(MLP, 다층 퍼셉트론)
- 여러 층의 퍼셉트론을 순차적으로 쌓아 올린 인공신경망
- Input Layer(입력층)
- Hidden Layer(은닉층)
- Output Layer(출력층)
- 복잡한 비선형 문제 해결 가능
- 1974년 Backpropagation(역전파) 알고리즘 논문 등장
- 1986년 Geoffrey Hinton이 Backpropagation으로 MLP 학습 증명
- 1990년대 Vanishing Gradient(기울기 소실) 문제로 한계를 느낌
- 데이터 부족 문제
Deep Neural Network
- 2000년대 정보화 시대가 되면서 데이터 폭증
- 2010년 Geoffrey Hinton이 학습에 ReLU 사용하여 논문 발표
- 2012년 GPU의 재발견
- 컴퓨터 클러스터 기술의 발전
- 2017년 Google DeepMind 팀 Attention Is All You Need 논문 발표
- GPT(Generative Pre-trained Transformer)
- BERT(Pre-training of Deep Bidirectional Transformers for Language Understanding)
Deep Learning Training Principles
딥러닝 훈련 원리
- Forward Propagation(순전파)
- Loss Calculation(손실 계산)
- Backpropagation(역전파)
- Weight Update(가중치 업데이트)
Forward Propagation(순전파)
- 입력 데이터가 가중치와 활성 함수를 거쳐 은닉층을 통과하고 출력층에서 예측결과(Prediction)를 생성
Loss Calculation(손실 계산)
- 생성된 예측결과와 실제 정답을 비교해서 Loss Function(손실함수)을 통해 Error를 계산
- Error(오차) : 정답 데이터와 예측 데이터 사이의 차이(정답 - 예측) y−y^
손실함수(Loss Function) : Error(차이)를 계산하는 방법
- MAE (Mean Absolute Error : 평균 절대 오차)
- MSE (Mean Squared Error : 평균 제곱 오차)
Gradient Descent(경사하강법)
- 오차를 줄이면서 모델이 더 나은 예측을 할 수 있도록 최적화하는 과정
Backpropagation(역전파)
- 계산된 오차를 줄이기 위해, 오차를 신경망 역방향으로 이동하며, 각 층의 가중치에 대한 오차 기울기를 계산
- Chain Rule에 의거해서 각 가중치에 대한 미분
- Chain Rule : 합성함수의 미분을 계산하는 수학적 규칙
Weight Update(가중치 업데이트)
- 역전파 단계에서 계산된 기울기를 이용해서 경사하강법으로 가중치 조정
Confusion Matrix
분류 모델의 예측 성능을 평가하기 위해,
실제 값과 모델의 예측 값을 비교하여 표 형태로 시각화한 행렬
- T(True) : 실제 정답
- F(False) : 실제 오답
- P(Positive) : 인공지능이 정답이라고 답변
- N(Negative) : 인공지능이 오답이라고 답변
| 실제 정답 | 실제 오답 |
|---|
| 예측 정답 | True Positive(TP) | False Positive(FP) |
| 예측 오답 | False Negative(FN) | True Negative(TN) |
- Accuracy(정확도) : (TP+TN) / 전체
- Recall(재현율, 민감도) : TP / TP+FN
- Precision(정밀도) : TP / TP+FP
- F1-Score = 2 x (Precision x Recall) / (Precision + Recall)
Recall과 Precision는 trade-off 관계
마치며
Confusion Matrix와 같은 생소한 내용도 있었지만, 대부분 이미 알고 있었거나 들어봤던 내용들이라 편했던 것 같다. 그런데 영어 용어로 이해하려다 보니 머릿속에서 매칭이 잘 안 된 부분은 적응이 조금 더 필요한 것 같다.