선형회귀 모델을 훈련시키는 2가지 방법
- 닫힌 형태의 방정식 : 훈련 세트에 가장 잘 맞는 모델 파라미터를 직접 계산한다.
- 경사 하강법 : 반복적인 최적화 방식을 사용해 모델 파라미터를 조금씩 바꾸면서 비용 함수를 훈련 세트에 대해 최소화시킨다.
4.1 선형 회귀
선형 모델은 입력 특성의 가중치 합과 편향(절편)이라는 상수를 더해 예측을 만든다.
모델을 훈련시킨다는 것 = 모델이 훈련 세트에 가장 잘 맞도록 모델 파라미터를 설정하는 것
- 먼저 모델이 훈련 데이터에 얼마나 잘 들어맞는지 측정하기
- 선형 회귀 모델을 훈련시키기 위해 RMSE(평균 제곱근 오차를 최소화하는 세타 찾기
📌 좋은 성능 지표 = 최종 비즈니스 목표에 가장 근접한 것 , 좋은 훈련 손실 = 최적화 쉽고 지표와 밀접한 상관관계 O
4.1.1 정규 방정식
정규 방정식 : 비용 함수를 최소화하는 세타 값을 찾기 우이한 해석적인 방법, 결과를 바로 얻을 수 있는 수학 공식
사이킷런의 선형 회귀
📌 특성의 가중치와 편향을 분리해 저장
유사 역행렬 : 특잇값 분해라 부르는 표준 행렬 분해 기법을 사용해 계산됨.
4.2 경사 하강법
경사 하강법 : 여러 종류의 문제에서 최적의 해법을 찾을 수 있는 일반적인 최적화 알고리즘
- 세타를 임의의 값으로 시작(랜덤 초기화)
- 파라미터 벡터 세타에 대해 비용 함수의 현재 그레디언트를 계산
- 한 번에 조금씩 비용함수(그레디언트)가 감소되는 방향으로 진행
- 알고리즘이 최솟값에 수렴 (그레디언트가 0)이 될 때까지 진행
📌 경사하강법의 아이디어 : 비용함수를 최소화하기 위해 반복해서 파라미터를 조정해 가는 것
📌 경사하강법에서 중요한 파라미터는 스텝의 크기로, 학습률 하이퍼파라미터로 결정
📌 학습 스텝 크기는 비용 함수의 기울기에 비례, 비용이 최솟값에 가까워질수록 스텝 크기가 점진적으로 줄음
if 학습률이 너무 작으면
알고리즘이 수렵하기 위해 반복을 많이 진행해야 함.
if 학습률이 너무 크면
골짜기 가로질러 반대편으로 건너뛰게 되어 이전보다 더 높은 곳으로 가게 될 수도?
📌 경사 하강법을 사용할 때는 반드시 모든 특성의 스케일을 같게 만들어야 한다!! 그렇지 않으면 수렴하는데 오래 걸린다.
파라미터 공간에서 찾는다 = 모델 훈련이 비용 함수를 최소화하는 모델 파라미터의 조합을 찾는 일
4.2.1 배치 경사 하강법
경사하강법 구하려면 각 모델 파라미터 세타에 대해 비용 함수의 그레디언트를 계산해야 함.
편도함수 : 다시 말해 세타가 조금 변경될 때 비용 함수가 얼마나 바뀌는지 계산
배치 경사 하강법 : 매 스텝에서 훈련 데이터 전체를 사용
그레디언트 벡터가 구해지면 반대 방향인 아래로 가기 위해 그레디언트 벡터에 학습률 에타를 곱해 빼줌
📌 에포크 : 훈련 세트를 한 번 반복하는 것
적절한 학습률 찾기
그리드 서치 사용해야 함. 그리드 서치에서 수렴하는 데 너무 오래 걸리는 모델이 제외되도록 반복 횟수를 제한해야 함.
적절한 반복 횟수 정하기
반복 횟수를 아주 크게 지정하고 그레디언트 벡터가 아주 작아지면(벡터의 노름이 허용오차보다 작아지면) 경사 하강법이 최솟값에 도달한 것이므로 알고리즘을 중지하는 것
4.2.2 확률적 경사 하강법
확률적 경사 하강법 : 매 스텝에서 한 개의 샘플을 랜덤으로 선택하고 그 하나의 샘플에 대한 그레디언트 계산
장점
- 매 반복에서 다뤄야 할 데이터가 매우 적기 때문에 알고리즘이 훨씬 빠름.
- 매우 큰 훈련 세트도 훈련시킬 수 있음.
단점
- 배치 경사 하강법보다 훨씬 불안정함.
- 비용함수가 위아래로 요동치며 평균적으로 감소함.
- 시간이 지나면 최솟값에 매우 근접하긴 하나 최적치는 아님
무작위성은 지역 최솟값 탈출에 좋지만 전역 최솟값에 다다르지는 못하게 함. 이를 해결하기 위해
📌 학습률을 점진적으로 감소시킨다. ( 담금질 기법 알고리즘과 유사
📌 학습 스케줄: 매 반복에서 학습률을 결정하는 함수
알고리즘이 에포크마다 모든 샘플을 사용하게 하려면 훈련 세트를 섞은 후 차례대로 하나씩 선택하고 다음 에포크에서 다시 섞는 방법을 사용할 수 있음. but 이 방식은 더 복잡하고 일반적으로 결과가 더 향상되지는 않음..
📌
확률적 경사 하강법을 사용할 때 훈련 샘플이 독립 동일 분포를 만족해야 평균적으로 파라미터가 전역 최적점을 향해 진행한다고 보장할 수 있다. 이렇게 만드는 방법 = 훈련하는 동안 샘플을 섞는 것
4.2.3 미니배치 경사 하강법
미니배치 경사 하강법 : 미니배치라 부르는 임의의 작은 샘플 세트에 대해 그레디언트 계산해 알고리즘 진행하는 것
장점
- 행렬 연산에 최적화된 하드웨어를 사용해서 성능을 향상시킬 수 있다
4.3 다항 회귀
주어진 비선형 데이터를 학습하는 데 선형 모델 , 다항회귀를 사용할 수 있다.
다항 회귀 : 각 특성의 거듭제곱을 새로운 특성으로 추가하고, 이 확장된 특성을 포함한 데이터 셋에 선형 모델을 훈련시키는 것
4.4 학습 곡선
얼마나 복잡한 모델을 사용할까? 어떻게 모델이 과소/과대 적합인지 알수있을까??
💡 두 가지 방법이 존재!
- 교차 검증을 사용한다. 훈련 데이터에서 성능이 좋지만 교차 검증 점수가 나쁘면 과대적합, 양쪽 모두 좋지 않으면 과소적합이다.
- 학습 곡선을 확인한다. 훈련하는 동안 훈련 세트와 검증 세트에서 일정한 간격으로 모델을 평가하고 그 결과를 그래프로 그리면 됨.
학습 곡선 : 모델의 훈련 오차와 검증 오차를 훈련 반복 횟수의 함수로 나타낸 그래프
과소적합 모델의 학습곡선이다.
그래프의 훈련 오차를 보면 처음에는 모델이 완벽하게 작동한다.. 하지만 훈련 세트에 샘플이 추가됨 잡음이 있기에 완벽한 학습이 불가해지고, 곡선이 어느 정도 평편해질 때까지 오차가 계속 상승한다. 이 위치에선 샘플이 더 추가돼도 평균 오차가 크게 나아지거나 나빠지지 않음.
그래프의 검증 오차를 보면 모델이 적은 수의 훈련 샘플로 훈련될 때는 제대로 일반화될 수 없어서 검증 오차가 초기에 매우 큼. 훈련 샘플이 추가됨에 따라 검증 오차가 천천히 감소함. 하지만 선형 회귀의 직선은 데이터를 제대로 모델링할 수 없으므로 오차가 완만하게 감소하면서 훈련 세트의 그래프와 가까워진다.
❗모델이 훈련 데이터에 과소적합 되어 있다면 훈련 샘플을 더 추가해도 소용이 없다. 더 복잡한 모델을 사용하거나 더 나은 특성을 선택해야 한다.
과대적합 모델의 학습곡선이다.
이 학습 곡선은 이전 그래프보다 훈련 데이터의 오차가 훨씬 낮다. 또한 두 곡선 사이에 공간이 있다. 이는 검증 데이터에서보다 훈련 데이터에서 모델이 훨씬 더 나은 성능을 보인다는 의미이다. 이는 과대 적합 모델의 특징으로 더 큰 훈련 세트를 사용하면 두 곡선이 점점 가까워진다.
❗과대적합 모델을 개선하는 한 가지 방법은 검증 오차가 훈련 오차에 근접할 때까지 더 많은 훈련 데이터를 추가하는 것이다.
편향/분산 트레이드오프
모델의 복잡도가 커지면 분산이 늘고 편향이 준다. 반대로 복잡도가 줄면 편향이 커지고 분산이 작아진다.
모델의 일반화 오차는 세 가지 다른 종류의 오차의 합으로 표현될 수 있다.
편향 : 일반화 오차 중에서 편향은 잘못된 가정으로 인한 것
분산 : 훈련 데이터에 있는 작은 변동에 모델이 과도하게 민감하기 때문에 나타남.
줄일 수 없는 오차 : 데이터 자체에 있는 잡음 때문에 발생한다.
4.5 규제가 있는 선형 모델
과대적합을 줄이는 좋은 방법은 모델을 규제(제한)하는 것이다.
다항 회귀 모델에서는 다항식의 차수를 줄이는 것으로, 선형 회귀 모델에서는 모델의 가중치를 제한하는 것으로 규제한다. 이번에는 릿지 회귀, 라쏘 회귀, 엘라스틱넷 회귀를 살펴볼 것이다.
4.5.1 릿지 회귀
릿지 회귀는 규제가 추가된 선형 회귀 버전이다. 이는 학습 알고리즘을 데이터에 맞추는 것뿐만 아니라 모델의 가중치가 가능한 한 작게 유지되도록 한다. 규제항은 훈련하는 동안에만 비용 함수에 추가된다. 모델의 훈련이 끝나면 모델의 성능을 규제가 없는 MSE로 평가한다.
하이퍼파라미터α는 모델을 얼마나 많이 규제할지 조절함. α = 0 이면 릿지 회귀는 선형 회귀와 같아지고, α가 아주 크면 모든 가중치가 거의 0에 가까워지고 결국 데이터의 평균을 지나는 수평선이 된다.
편향
θ₀은 규제되지 않는다.
릿지 회귀를 계산하기 위해 정규 방정식을 사용할 수도 있고 경사 하강법을 사용할 수도 있다.
4.5.2 라쏘 회귀
라쏘 회귀는 선형 회귀의 또 다른 규제된 버전이다. 릿지 회귀처럼 비용 함수에 규제항을 더하지만 l₂ 노름 대신 가중치 벡터의 l₁ 노름을 사용한다.
라쏘 회귀의 중요한 특징은 덜 중요한 특성의 가중치를 제거하려고 한다는 점이다. 즉 가중치가 0이 된다.
다시 말해 라쏘 회귀는 자동으로 특성 선택을 수행하고 희소 모델을 만든다.(0이 아닌 특성의 가중치가 적음.)
라쏘의 비용함수는 θ₀=0 일대 서브그레이디언트 벡터 g를 사용하면 경사 하강법을 적용 가능하다.
아래 식은 경사하강법을 위해 라쏘 비용 함수에 사용할 수 있는 서브그레이디언트 벡터 공식이다.
4.5.3. 엘라스틱넷
엘라스틱넷 회귀는 릿지 회귀와 라쏘 회귀를 절충한 모델이다. 규제항은 릿지와 회귀의 규제항을 단순히 더한 것이다.
혼합 정도는 혼합 비율 r을 사용해 조절한다. r = 0 이면 엘라스틱넷은 릿지 회귀와 같고, r = 1 이면 라쏘 회귀와 같음.
보통 릿지가 기본이 되지만 몇 가지 특성만 유용하다고 생각되면 라쏘나 엘라스틱넷 회귀를 사용한다.
특성 수가 훈련 샘플 수보다 많거나 특성 몇 개가 강하게 연관되어 있을 때는 보통 라쏘가 문제를 일으키므로 엘라스틱넷이 좋다.
4.5.4 조기 종료
조기 종료 : 검증 오차가 최솟값에 도달하면 바로 훈련을 중지시키는 것.
경사 하강법 같은 반복적인 학습 알고리즘을 규제하는 색다른 방식이다.
훈련 세트의 검증 오차가 감소하던 중 멈추었다가 다시 상승하는 지점은 과대적합의 시작을 의미한다.
이때 즉시 훈련을 멈추는 것이 조기종료이다.
📌 확률적 경사 하강법이나 미니배치 경사 하강법은 곡선이 매끄럽지 않아 최솟값에 도달했는지 확인이 어렸다. 이 때는 검증 오차가 일정 시간 동안 최솟값보다 클 때 학습을 멈추고 검증 오차가 최소였을 때의 모델 파라미터로 되돌린다.
4.6 로지스틱 회귀
4.6.1 확률 추정
로지스틱 회귀의 작동 방식 : 로지스틱 회귀 모델은 입력 특성의 가중치 합을 계산하고 편항을 더한다. 대신 선형 회귀처럼 바로 결과를 출력하지 않고 결괏값의 로지스틱을 출력한다.
로지스틱은 0과 1 사이의 값을 출력하는 시그모이드 함수이다.
꽃잎의 너비 기반 분류기
양쪽의 확률이 똑같이 50%가 되는 지점에서 결정 경계가 만들어진다.
4.6.4 소프트맥스 회귀
소프트맥스 회귀(다항 로지스틱 회귀) : 여러 개의 이직 분류기를 훈련시켜 연결하지 않고 직접 다중 클래스를 지원하도록 일반화
소프트맥스 함수를 적용하여 각 클래스의 확률을 추정한다.
로지스틱 회귀 분류기와 마찬가지로 소프트맥스 회귀 분류기는 추정 확률이 가장 높은 클래스를 선택한다.
📌 argmax 연산은 함수를 최대화하는 변수의 값을 반환한다.
소프트맥스 훈련 방법 : 모델이 타깃 클래스에 대해서 높은 확률을 추정하도록 만드는 것이 목적으로 크로스 엔트로피 비용 함수를 최소화하는 것은 타깃 클래스에 대해 낮은 확률을 예측하는 모델을 억제하므로 이 목적에 부합한다.
크로스 엔트로피는 추정된 클래스의 확률이 타깃 클래스에 얼마나 잘 맞는지 측정하는 용도로 종종 사용된다.
💡딥다이브
1 . 릿지 회귀와 라쏘 회귀
릿지 회귀와 라쏘 회귀는 선형 회귀의 규제된 버전입니다. 릿지 회귀와 라쏘 회귀 모두 비용 함수에 규제항을 더하지만, 라쏘 회귀의 경우 L2 노름 대신 가중치 벡터의 L1 노름을 사용합니다.
그렇다면
- 어떤 경우에 릿지 회귀가 유리하며 어떤 경우에 라쏘 회귀가 유리한가?
- 릿지회귀 - 모든 특성이 중요한 경우, 특성의 중요도를 모두 유지 하면서 모델을 안정적으로 만들고 싶을때
- 라쏘회귀 - 특성 선택이 중요한 경우, 불필요한 특성을 배제하고 모델을 간결하게 만들고 싶을 때
- 데이터의 크기와 차원이 커질 경우 둘의 성능과 효율성은 어떻게 변화할까?
- 릿지회귀 - 모든 특성을 활용하여 모델의 일반화 성능을 향상 시킬 수 있다. 그러나 모든 특성을 고려해야 하므로 비용이 더 높아질 수 있고, 훈련시간이 증가한다.
- 라쏘회귀 - 고차원 데이터에서 불필요한 특성을 쳐내기 때문에 모델을 간결하게 만들 수 있으나 데이터가 많기 때문에 유용한 정보도 제거할 위험이 있다. 하지만 특성 선택 과정을 거치기에 계산 속도가 릿지 회귀보다 상대적으로 빠를 것이다.
- 엘라스틱넷은 둘의 어떠한 장점과 특징을 각각 가져가는가?
- 라쏘회귀와 릿지 회귀를 결합하여 두 방법의 장점을 동시에 활용 가능하다.
- 라쏘처럼 불필요한 특성을 제거하면서, 릿지처럼 모든 특성을 활용하려는 경향이 있다.
- 엘라스틱 넷은 상관관계가 높은 특성들을 그룹으로 선택하여 유용한 정보를 더 많이 유지(라쏘는 하나만 선택함.)
- 특성 선택과 과적합 방지를 동시에 수행하므로 복잡한 데이터 구조에 유리하다.
2. 미니배치 경사 하강법의 배치크기
미니배치 경사 하강법은 각 스텝에서 전체 훈련 세트나 하나의 샘플을 기반으로 그레이디언트를 계산하는 것이 아니라 미니배치라 부르는 임의의 작은 샘플 세트에 대해 그레이디언트를 계산합니다. 이때 미니배치 경사 하강법의 배치 크기를 설정하는 것은 아주 중요한 문제입니다.
그렇다면
- 배치 크기가 모델 학습에 미치는 영향은 무엇일까?
- 작은 배치는 진동하며 수렴하는 경향이 있고, 큰 배치는 더 부드럽게 수렴한다.
- 배치 크기가 크면 그레이디언트 추정이 안정적이고 정확도가 높아진다. 작은 배치 크기는 변동성이 커져 더 불안정하게 학습 할 수 있다.
- 작은 배치는 다양한 데이터 샘플을 자주 참조(학습)하므로 더 좋은 일반화 성능 보일 수 있고 큰 배치는 특정 방향으로 과적합 될 수도 있다.
- 어떤 경우에 큰 배치가 유리하고 어떤 경우에 작은 배치가 유리한가?
- 큰 배치가 유리한 경우 : 데이터가 작거나 균일할 경우, 충분한 메모리가 있을 경우(대규모 데이터 처리 가능하기 때문에)
- 작은 배치가 유리한 경우 : 가용 메모리가 적을 경우, 데이터가 복잡하고 다양한 경우
- 여러 배치 크기를 일일이 실험해보는 것 없이 효율적으로 최적화된 배치 크기를 찾는 방법은 없을까?
- 데이터의 특성(데이터가 작은가? 균일한가?)와 현재 시스템의 메모리 상태를 미리 체크하고 2의 거듭제곱 값에서 배치 크기를 선택한다면 효율적을 배치 크기를 찾을 수 있지 않을까?
- 2의 거듭제곱 수에서 선택하는 이유는 참고링크 참조..
3. 소프트맥스와 손실 함수
회귀 모델은 모델 별로 다양한 손실 함수가 사용됩니다. 소프트맥스 회귀의 경우 크로스 엔트로피 손실 함수를 사용하여 학습을 진행하는데요, 크로스 엔트로피는 추정된 클래스의 확률이 타깃 클래스에 얼마나 잘 맞는지 측정하는 용도로 종종 사용됩니다.
그렇다면
- 손실 함수에는 어떤 것들이 있을까?
회귀문제
- MSE(Mean Squared Error) : 예측한 값과 실제 값 사이의 평균 제곱 오차를 정의, 공식이 매우 간단, 차가 커질수록 제곱 연산으로 인해서 값이 더욱 뚜렷해짐.
- RMSE(Root Mean Squared Error) : MSE에 루트를 씌운 RMSE 은 값의 왜곡을 줄여줌.
이진 분류 문제
- Binary Cross-Entropy: 로지스틱 회귀에서 주로 사용. 실제 클래스와 예측 확률 분포 간의 차이를 계산
다중 클래스 분류 문제
- Categorical Cross-Entropy: 실제 클래스와 예측 확률 분포 간의 차이를 계산
- 크로스 엔트로피 손실 함수의 직관적인 해석은?
- 실제 데이터의 확률 분포와, 학습된 모델이 계산한 확률 분포의 차이를 구하는데 사용 = 실제 값과 예측값의 차이 (dissimilarity) 를 계산하는데 사용
- 왜 소프트맥스와 크로스 엔트로피를 결합하는 것이 최적화에 유리한가?
- 소프트맥스 함수는 모델 출력값을 확률 분포로 변환하고 크로스 엔트로피는 확률 분포 간의 차이를 계산한다. 그렇기에 손실 함수의 그레디언트가 안정적으로 계산된다.
'대학교 게임 개발 포트폴리오 > 머신러닝' 카테고리의 다른 글
머신러닝 4주차 - 앙상블 학습과 랜덤 포레스트 (0) | 2025.02.10 |
---|---|
머신러닝 3주차 - 서포트 벡터 머신 , 결정트리 (0) | 2025.02.04 |
머신러닝 1주차 - 분류 (0) | 2025.01.21 |