[ML] 첨 ML -2

·2023년 7월 1일
0

첨 ML

목록 보기
2/2

Day 2

지도학습 (Supervised Learning)

Regression

1. 선형회귀

Linear Regression
널리 사용되는 대표적인 회귀 알고리즘
선형 회귀는 종속변수 y와 하나 이상의 독립변수 x와의 선형 상관관계를 모델링하는 기법이다.

독립변수 x가 1개 = 단순 선형 회귀
x가 2개 이상 = 다중 선형 회귀

ML의 가장 큰 목적은 실제 데이터 바탕으로 모델 생성해
만약 다른 입력 값을 넣었을 때 발생할 아웃풋을 예측하는 것

가장 직관적이고 간단한 모델은 선
하지만 데이터들을 놓고 선을 긋는것은 완전 정확하지 않고
실제 데이터와 약간의 차이 발생한다. 일종의 오차라고 하는데
선형회귀에서 발생하는 오차, 손실 (Loss)이라고 한다.

손실이 +3, -1 이렇게 될 수 있지만 엄밀히 말하자면
선과 실제 데이터 사이에 얼마나 오차가 있는지 구하려면
양수, 음수 관계 없이 동일하게 반영되도록 모든 손실에 제곱을 해주는게 좋다

이런 방식으로 손실을 구하는 걸 평균 제곱 오차(mean squared error, MSE) 라고 한다.
손실 구할 때 가장 널리 쓰이는 방식

MSE 말고도 그냥 절대값으로만 바로 평균을 구하는 MAE, MSE,MAE를 절충한 후버손실 등.. 여러가지 방법이 있다.

손실을 최소화 하기 위한 방법은
경사하강법(Gradient Descent) 이 있다.

ML에서 사용하는 모형 매우 복잡하기 때문에
선형 회귀 분석에서도 최적의 기울기와 절편을 구할 수 있는 마땅한 방법이 없다.

Loss를 함수로 나타내면 아래로 불룩한 형태의 함수 모양을 가진다.

그래서 일단 파라미터를 임의로 정한 다음 조금씩 변화시켜가며 손실을 점점 줄여가는 방법으로 최적의 파라미터를 찾아간다.
이 방법이 경사하강법이다.

선형 회귀 분석을 수행하며 기울기와 절편을 계속 변경해가며 최적의 값 찾고 언제까지 해야 할지 정한다.
계속 파라미터를 조정하다보면 어느정도 최적의 값으로 수렴하게 된다.

만약 100번을 반복하고 30이라는 값에서 더이상 올라가지 않는다면
30에 수렴하는 걸 알 수 있다.

그리고 학습률이라는 걸 정해줄 필요가 있다.
학습률은 너무 크면 파라미터를 듬성듬성 조정하고 최적의 값을 찾지 못한다. 그렇다고 너무 작게 설정하면 최적의 값으로 수렴할 때 까지 시간이 오래 걸린다.

모델을 학습시킬 때는 최적의 학습률 찾는게 중요하다.
효율적으로 파라미터를 조정하고, 최적의 값을 찾아 수렴할 수 있도록!

1) 단순 선형 회귀

y=Wx+by = Wx + b

ML에는 독립변수 x에 곱해지는 W 값을 가중치(weight)
상수항에 해당하는 b를 편향(bias) 라고 부른다.

따라서 단순 선형 회귀 모델 훈련하는 것은 적절한 W와 b값 찾는 것
그래프의 형태는 직선으로 나타난다.

2) 다중 선형 회귀

y=W1x1+W2x2+...+WnXn+by = W1x1 + W2x2 + ... + WnXn + b

여러 독립변수에 의해 영향을 받을 경우이다.
만약 2개의 독립변수면 그래프는 평면으로 나타날 것이다.

2. Ridge

Ridge 회귀분석은 선형회귀분석의 과대적합 문제를 해소하기 위해
L2 규제를 적용하는 방식을 사용

과대적합이란?
ML 모델 학슴할 때 학습 데이터셋에 지나치게 최적화 해 발생하는 문제
모델을 지나치게 복잡하게 학습해 학습 데이터셋에서는 모델 성능 높게 나타나지만 정작 새로운 데이터 주어졌을 때
정확한 예측/분류 수행 못한다.

과대적합(overfitting) 해결하는 방법

  1. Feature(특성) 갯수 줄이기
  • 주요 특징 직접 선택, 나머지는 버린다.
  • Model selection algorithm 사용
  1. 정규화 수행

계수 자체가 크면 페널티를 주는 수식을 추가 한 것이 Ridge 회귀이다.
Ridge 회귀 이해하려면 정규화를 알아야한다.

https://www.youtube.com/watch?v=pJCcGK5omhE

지도학습
Regression(회귀)
Linear(선형), Ridge(릿지), Lasso(라쏘) 회귀등이 대표적

Classification (분류)
kNN(최근접이웃), Naive Bayes(나이브베이즈), SVM(Support Vector Machine)이 대표적이다
Decision Tree(결정트리)
Random forest(랜덤포레스트)

출처
https://rebro.kr/184
https://hleecaster.com/ml-linear-regression-concept/
https://rk1993.tistory.com/entry/Ridge-regression%EC%99%80-Lasso-regression-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0

0개의 댓글