경사 하강법
1) 인공신경망, 경사하강법을 이용한 선형회귀 모델 구현 실습
https://github.com/J-o-y-y/ms_ai_school/blob/main/20230626_%EC%9D%B8%EA%B3%B5%EC%8B%A0%EA%B2%BD%EB%A7%9D_%EA%B2%BD%EC%82%AC%ED%95%98%EA%B0%95%EB%B2%95%EC%9D%84_%EC%9D%B4%EC%9A%A9%ED%95%9C_%EC%84%A0%ED%98%95%ED%9A%8C%EA%B7%80_%EB%AA%A8%EB%8D%B8_%EA%B5%AC%ED%98%84_%EC%8B%A4%EC%8A%B5.ipynb
2) 다중 선형 실습, 경사 하강법을 이용한 다중 선형 회귀 구현
https://github.com/J-o-y-y/ms_ai_school/blob/main/20230626_%EB%8B%A4%EC%A4%91_%EC%84%A0%ED%98%95_%EC%8B%A4%EC%8A%B5_%EA%B2%BD%EC%82%AC_%ED%95%98%EA%B0%95%EB%B2%95%EC%9D%84_%EC%9D%B4%EC%9A%A9%ED%95%9C_%EB%8B%A4%EC%A4%91_%EC%84%A0%ED%98%95_%ED%9A%8C%EA%B7%80_%EA%B5%AC%ED%98%84.ipynb
에포크 (Epoch) | 설명 |
---|---|
에포크란? | 전체 데이터셋을 한 번 모델에 입력하여 순전파와 역전파를 거치는 과정을 말함 |
에포크 개수 결정 | 학습 과정에서 데이터셋을 몇 번 반복해서 사용할지를 결정하는 하이퍼파라미터 |
에포크의 역할 | 모델이 최적의 파라미터에 도달하기 위해 데이터셋을 여러 번 통과하며 경사 하강 단계를 거침 |
에포크 수 선택 | 학습 데이터셋의 크기에 비례하여 선택하며, 작은 데이터셋의 경우 몇 번의 에포크로도 수렴할 수 있지만 큰 데이터셋은 더 필요 |
과적합 (Overfitting) 주의 | 에포크 수를 너무 높게 설정하면 모델이 학습 데이터에만 지나치게 적합하여 새로운 데이터에 대한 일반화 성능이 저하될 수 있음 |
모델의 학습 곡선 및 검증 세트 성능 변화 확인 | 에포크 수를 조정할 때 학습 곡선을 확인하고 검증 세트의 성능 변화를 관찰하여 적절한 시점을 판단하는 것이 좋음 |
에포크 수 선택은 데이터셋의 크기와 모델의 특성에 따라 다를 수 있으며, 과적합을 피하기 위해 모니터링과 조정이 필요. 학습 곡선과 검증 세트의 성능 변화를 확인하여 적절한 에포크 수를 선택하는 것이 모델의 효율적인 학습에 도움.
3) 선형 회귀 모델의 실제 활용 사례
4) 선형 회귀 모델의 학습에서 다양한 옵티마이저를 적용
optimizers | 설명 |
---|---|
SGD (Stochastic Gradient Descent) | 확률적 경사 하강법으로 모든 학습 데이터에 대해 단일 스텝으로 업데이트를 수행하며, 계산 속도가 빠르고 메모리 사용량이 적습니다. |
Momentum | 모멘텀을 추가한 SGD로, 이전 업데이트의 관성을 사용하여 이동 방향을 조정하며, 지역 최소값을 피해가기 쉽고 빠른 수렴이 가능합니다. |
Adagrad | 학습률을 적응적으로 조정하는 옵티마이저로, 희소 특성이 많은 데이터셋에 적합하며, 개별 학습률 조정과 자동 스케일 조정이 장점입니다. |
RMSprop | Adagrad의 개선 버전으로, 더 큰 학습 속도와 적응적인 학습 속도를 제공하며, 빠른 수렴과 좋은 방향 찾기가 가능합니다. |
Adam | RMSprop과 Momentum을 결합한 옵티마이저로, 자동 학습률 조정과 희소 그래디언트 처리, 빠른 수렴과 적응적인 학습 속도가 특징입니다. |
옵티마이저 | 설명 | 특징 | 사용 사례 | 예시 | 장점 | 단점 |
---|---|---|---|---|---|---|
SGD | 확률적 경사 하강법 | 빠른 계산 속도, 메모리 사용량이 적음 | 선형 회귀, 로지스틱 회귀 등 단순한 모델 | SGD(learning_rate=0.01) | 계산 및 메모리 효율성, 과적합에 대한 저항력 | 수렴 속도가 느릴 수 있음, 균일하지 않은 학습 속도 |
Momentum | 모멘텀 추가된 SGD | 지역 최소값을 피해가기 쉬움, 적절한 학습률로 빠른 수렴 | 딥러닝의 일반적인 학습 | SGD(learning_rate=0.01, momentum=0.9) | 수렴 속도 향상, 지역 최소값에서 빠져나올 수 있음 | 고차원 문제에서 매개변수 튜닝 필요할 수 있음 |
Adagrad | 적응적 학습률 조정 | 희소 특성이 많은 데이터셋에 적합, 학습률 튜닝 필요 없음 | 자연어 처리, 추천 시스템 등 | Adagrad(learning_rate=0.01) | 각 매개변수의 개별 학습률 조정, 자동 스케일 조정 | 학습 속도 감소, 학습률이 너무 작을 수 있음 |
RMSprop | Adagrad의 개선 버전 | 더 큰 학습 속도, 지역 최소값을 피해가기 쉬움, 적응적 학습 속도 | 딥러닝 모델의 일반적인 학습 | RMSprop(learning_rate=0.001) | 빠른 수렴, 좋은 방향 찾기 | 학습률 감쇠율 튜닝, 부분적인 파라미터 업데이트 |
Adam | RMSprop과 Momentum의 결합 | 자동 학습률 조정, 희소 그래디언트 처리, 업데이트 방향 보정 | 딥러닝 모델의 일반적인 학습 | Adam(learning_rate=0.001) | 빠른 수렴, 적응적 학습 속도 | 메모리 사용량 큼, 무작위성에 민감성 |
옵티마이저의 선택은 문제와 데이터에 따라 다를 수 있으며, 실험과 튜닝을 통해 최적의 결과 확인.
5) 선형 분류 - 로지스틱 회귀 (Logistic Regression)
https://github.com/J-o-y-y/ms_ai_school/blob/main/20230626_%EC%84%A0%ED%98%95_%EB%B6%84%EB%A5%98_%EB%A1%9C%EC%A7%80%EC%8A%A4%ED%8B%B1_%ED%9A%8C%EA%B7%80_(Logistic_Regression)ipynb.ipynb