과거 : 사람이 직접 알고리즘을 코딩하거나 패턴을 만들어 결과를 얻음.
AI/머신러닝 : 데이터와 결과를 기반으로 스스로 패턴 학습하고 이를 이용해서 예측
"직선을 그려 예측한다."
y = wx
출처:https://ko.wikipedia.org/wiki/%EC%84%A0%ED%98%95_%ED%9A%8C%EA%B7%80
y = wx에서 w(가중치)의 값을 정하는 것이 가장 중요하다. w 값에 따라 다양한 예측값이 나오게 되고, 모델의 정확도에 있어 굉장히 중요하다.
w(가중치)가 최적인지 어떻게 알 수 있을까?
✅ Loss Function ( Cost Function )
Loss Function = (실제값 - 예측값)^2 / N
출처:https://vitalflux.com/mean-square-error-r-squared-which-one-to-use/
예측값과 실제 값의 차이를 error, cost, Residual Error 등으로 표기한다.
🔥 MSE(Mean Squared Error)
이러한 에러들의 차이를 Squared(제곱) 하고 N으로 나눈 값들을 평균제곱오차라고 한다
Loss Function을 어떻게 최적화 할 수 있을까?
✅ Gradient Descent Algorithm
W - ⍺(학습률)W'
출처: https://vitalflux.com/gradient-descent-explained-simply-with-examples/
우리는 최적의 W(가중치)를 구하는 것이 목표이기에 Loss Function(손실함수)의 값이 0에 가까워야 한다.
🔥 Gradient Descent Algorithm
W := W - ⍺(학습률)W'
🚨 ⍺(학습률)의 크기를 너무 크게 설정하게 된다면 Cost가 가장 낮아지는 순간을 넘어가 다시 Cost가 증가하는 값들을 갖게 되기에, 너무 크지 않는 학습률을 설정하여 진행하여야 한다.
지도학습 (Supervised Learning)
비지도학습 (Un-Supervised Learning)
지도학습 (Supervised Learning)
vs 비지도학습 (Un-Supervised Learning)
지도학습의 예시 출처:https://blogs.nvidia.com/blog/2018/08/02/supervised-unsupervised-learning/
비지도학습 예시
출처:https://blogs.nvidia.com/blog/2018/08/02/supervised-unsupervised-learning/
우리가 사용하는 데이터는 이산적인(Discrete) 값을 갖는 데이터이거나 연속적인(Continuous) 값을 갖는 데이터 입니다. 어떤 데이터가 이산적인 값을 갖는다고 하는 것은 값이 연속적으로 분포하지 않는다는 것이고, 그 외의 경우는 연속적인 값을 갖는다.
분류모델 (Classification)
예측모델 (Regression, 회귀모델)
출처: https://vitalflux.com/overfitting-underfitting-concepts-interview-questions/
Overfitting은 학습 데이터에 대해 과하게 학습된 상황이다. 따라서, 학습 데이터 이외의 Test data와 같은 다른 데이터에 대해선 모델이 잘 작동하지 못한다. 학습 데이터가 부족하거나, 데이터의 특성에 비해 모델이 복잡한 경우 발생한다. 또한, Training의 loss는 계속 떨어지고, Test의 loss는 감소하다가 다시 증가한다.
Underfitting은 이미 있는 Train set도 학습을 하지 못한 상태를 의미한다. Overfitting과 반대되는 상태이다.
⭐️ Test Accuracy가 증가하다가 감소하면 학습 데이터가 부족한 경우로 볼 수 있다.
⭐️ Train Accuracy가 100%에 가깝지만 Test Accuracy가 상당히 낮은 경우가 있다. 학습 데이터가 편향되어 있지 않은지를 확인해야한다.
🔥 Overfitting 발생
✅ Overfitting 해결법
🔥 Underfitting 발생