< 10주차 머신러닝 기초 05 >
선형 의미
파라미터들이 어떠한 실수와 가중 합(곱셈&덧셈)으로 표현된 것을 선형 결합이라고 함
x는 독립변수
w는 파라미터, 찾아야하는 값
=> 파라미터들이 선형 결합을 이루고, 이것으로 종속 변수의 값을 표현할 수 있을 때 이것을 선형 모델이라고 함
y=ax+b
* 선형과 비선형을 구분하는 큰 기준은 종속 변수가 파라미터에 대해 선형적인지 비선형적인지에 따라 다름
즉, 위의 모델은 x1 입장에서는 2차항까지 있으므로 비선형이고, x1^2을 새로운 변수로 생각하면 선형 모델로 볼 수 있음
즉, 관점에 따라 다름!
선형 모델의 가정
: 서로 다른 독립변수는 서로 상관성이 없어야 함
-> 만약 두 독립변수 사이에 높은 상관관계가 있다면, 다중공산성이라는 문제를 일으키게됨
=> 정확도와 신뢰성에 저하가 일어남 + 해석력에 복잡성 증가
선형 회귀
: 데이터 특징에 대한 선형 결합으로 회귀 문제를 풀겠다는 의미
비용함수
: 목표값과 예측값 사이의 계산을 통해 비용 함수를 정의
-> 회귀 문제에서는 두 값 모두 실수의 범위를 가지므로 두 값 사이의 양적 차이(잔차)의 제곱 평균으로
평균제곱오차(MSE)를 비용 함수로 정의
-> 이 비용 함수를 최소화하는 파라미터를 찾는 작업을 최소제곱법(OLS) 이라고 함
최적화 방법론
: 최적화 해를 찾는 과정
선형 회귀를 위한 최적화 방법은 정규 방정식과 경사 하강법이 존재
정규 방정식
: 파라미터 값을 직접 계산. 도함수가 0이 되는 지점
-> 비용함수의 도함수(기울기)를 구하고 이것이 0이 되는 파라미터를 구해야 함. 이러한 식이 정규방정식
데이터의 개수(n)에 대해서는 독립적. 피처의 개수(p)에 대해 시간 복잡도 O(p^3)
=> n >> p 인 경우 유용
경사 하강법
: 비용 함수가 작아지는 방향을 찾아 점진적으로 파라미터 조정해가는 방법
- 임의의 초기 파라미터 값을 기준으로 비용 함수의 기울기(Gradient)를 계산하여
기울기가 줄어드는 방향으로 파라미터 수정&이동
=> 기울기가 0에 가까워질 때까지 반복! => 학습률(learning rate, lr)가 중요!
-> 모든 학습 데이터에 대해 기울기 계산을 진행해야하므로,
학습 데이터가 많은 경우 시간 소요가 큼
==> 확률적 경사 하강법(Stochastic Gradient Decent, SGD)
: 전체 데이터 중 임의로 일부 데이터를 샘플링하여 그것을 대상으로 경사 하강법 진행
-> 데이터가 많거나 feature가 많은 경우 용이
정규 방정식 vs 경사 하강법
정규 방정식 : 명시적으로 해를 제공 -> 피처가 적고, 데이터가 크지 않을 때 good
경사 하강법 : 피처와 데이터 수에 영향이 적음. 변수 튜닝이 매우 중요함
두 방법 모두 같은 해를 제공하지만,
선형 모델의 큰 가정인 독립 변수 간의 강한 상관 관계가 있다면,
다중공선성(multicollinearity) 문제가 발생함
다중공선성(multicollinearity)
: 입력 데이터가 갖고 있는 특징값들 사이에 상관 관계가 존재할 때 발생하는 문제 상황
-> 모델이 작은 데이터 변화에도 민감하게 반응
=> 정규방정식으로 해를 구할 때 치명적인 문제 발생(특이행렬이 존재할 때)
=> 이를 해결하기 위한 SVD-OLS라는 회피 방법 존재
: 정규 방정식으로 풀 수 없는 해를 다른 방식으로 구하는 방법
SVD-OLS
: 학습 데이터를 모아둔 행렬 X에 SVD를 적용해 특이값 분해로 해를 구하는 방법 (정확한 해는 아님)
시간복잡도 - O(n*p^2) => 입력 데이터와 사용하는 특성의 수 모두에 영향을 받음
=> 소요 시간이 늘어남
- 단순 OLS : 𝑂(𝑝^3)
- SVD-OLS : 𝑂(𝑛*𝑝^2)
규제(Regulation)를 사용하는 선형 모델
과적합이 발생하면 파라미터가 매우 커지게 됨
-> 파라미터가 너무 커지지 않도록 규제(regulation)를 가해 과적합 문제를 회피할 수 있음
라쏘 회귀 (Lasso regression)
: 머신러닝 모델의 파라미터의 절댓값(L1 norm)의 합 항을 추가하여 규제
-> L1 규제는 일부 파라미터의 값을 완전히 0으로 만들 수 있음 => 불필요한 특성 무시 가능
릿지 회귀 (Ridge regression)
: 제곱합(L2 norm) 항을 추가하여 규제
-> L2 규제는 파라미터 값을 적당히 작게 만듦 => 0에 가깝지만 0이 되지 않음 => 모든 특성 사용
선형분류
로지스틱 회귀 (Logistic Regression)
: 이진 분류 문제를 해결하기 위한 기본 알고리즘 중 하나로,
입력 데이터가 후보 클래스 중 각각의 클래스일 확률을 예측하는 모델
즉, 확률을 직접적으로 예측(확률 추정)하는 방식으로 문제 해결
즉, 분류 문제를 풀지만, 회귀방식으로 문제를 접근! (각각 클래스에 대한 확률 예측)
비용 함수로 로그 손실(log loss) 값 사용
-> 목적 데이터의 클래스가 양성일 경우와 음성일 경우로 나누어 하나의 데이터에 대한 비용함수 고려
'STUDY > DevCourse' 카테고리의 다른 글
[데브코스][데이터 분석] Classification 모델 만들기 (0) | 2024.04.30 |
---|---|
[데브코스][데이터 분석] 데이터 EDA와 머신러닝 소개 (0) | 2024.04.29 |
[데브코스][데이터 분석] 지도학습 알아보기 (0) | 2024.04.23 |
[데브코스][데이터 분석] 머신러닝 기초와 수학적 배경 (0) | 2024.04.23 |
[데브코스][데이터 분석] 회귀분석과 데이터 모델링 (2) (0) | 2024.04.05 |