ML

[Machine Learning][1] 머신러닝

선경이 2025. 3. 3. 18:51

1.1 머신러닝이란?

머신러닝이란 데이터에서 학습하도록 컴퓨터를 프로그래밍하는 것이다.

 

- training set : 시스템을 학습하는데 사용하는 샘플

- training instance : 각각의 훈련 데이터

- model : 머신러닝에서 학습하고 예측을 만드는 부분 

1.2 머신러닝을 사용하는 이유

전통적인 프로그래밍 기법을 사용할 땐, 문제가 복잡하기 때문에 보수하기 힘들다는 점이 있다.

반면 머신러닝 기법은 다음과 같은 특징이 있다.

 

1. 코드를 간단하게 만들고 전통적인 방법보다 더 잘 수행함.

2. 가장 뛰어난 머신러닝 기법으로 해결 방법을 찾음.

3. 새로운 데이터로 재학습 할 수 있음.

4. 복잡한 문제와 대용량의 데이터에서 의미를 찾음.

 

- data mining : 대용량의 데이터를 분석하여 패턴을 발견하는 것

 

1.3 머신러닝의 종류

1.  훈련 지도 방식 (지도, 비지도, 강화 학습, 준지도 학습, 자기지도학습)

2. 실시간으로 점진적인 학습을 진행하는지 (온라인 학습, 배치 학습)

3. 기존에 알고 있는 데이터와 새 데이터를 비교하는지 데이터에서 패턴을 발견하여 예측 모델을 만드는지 (사례 기반 학습, 모델 기반 학습)

 

→ 서로 원하는 대로 연결해서 사용할 수 있음.

 

1. 훈련 지도 방식,

- supervised learning : 훈련 데이터에 lable (정답)이 포함된다.

                     => classification, regression

- unsupervised learning : 훈련 데이터에 lable이 포함 되지 않는다.
                                       => clustering, visualization, dimensionality reduction, outlier detection, association rule learning

- semi-supervised learning : 훈련 데이터에 lable이 일부만 있다.

- self-supervised learning : 레이블이 없는 데이터에서 레이블을 생성하면서 학습한다.

- reinforcement learning : 실수와 보상을 통해 학습을 하여 목표를 찾아가는 알고리즘

 

2. 배치학습과 온라인학습

- 배치 학습 : 점진적으로 학습이 어렵기 때문에 데이터를 모두 사용하여 훈련시킴.
                   => 시간과 자원을 많이 소비하므로 오프라인 학습을 진행함.
       * 오프라인 학습 : 다음 시스템에 훈련을 적용하면 더 이상의 학습 없이 실행되는 것
                                   모델 부패의 단점이 있음              

      * 온라인 학습 (점진적 학습) : 데이터를 미니배치로 작은 묶음 단위로 입력해 시스템을 훈련시킨다. 

 

3. 사례 기반 학습과 모델 기반 학습

- 사례 기반 학습 : 시스템이 훈련 샘플을 기억해서 학습을 진행하고 유사도를 특정해 새로운 데이터와 학습한 샘플을 비교한다.

- 모델 기반 학습 :  샘플들의 모델을 만들어서 예측에 사용하는 것이다.
                            => ex) 모델의 종류  : 선형회귀

 

1.4 머신러닝 도전 과제

1. 부족한 훈련 데이터

간단한 문제에서도 머신러닝은 많은 데이터가 필요하다. 복잡한 문제라면 더 많은 데이터가 필요할지도 모른다.

 

2. 대표성 없는 훈련 데이터

일반화를 하려면 데이터가 일반화하고 싶은 새로운 사례를 잘 대표해야 한다.
샘플이 작으면 샘플링 잡음이 생기고, 매우 큰 샘플은 샘플링 편향이 발생할 수도 있다.

 

3. 낮은 품질의 데이터

훈련 데이터가 오류, 이상치, 잡음이 많다면 훈련에 어려움이 있다.

그래서 데이터 정제에 많은 시간을 투자해야 한다.

 

4. 관련 없는 특성

관련 있는 특성이 충분해야 시스템을 학습하기에 좋다.

훈련에 사용할 좋은 특성들을 찾으려면 특성 공학을 진행한다,

=> 특성 공학 : 특성 선택, 특성 추출, 데이터 수집

 

5. 과대적합

모델이 훈련 데이터에서 너무 잘 맞지만 일반성이 떨어지는 것을 과대적합이라고 한다.

 

* 과대적합 해결법
- 모델에 제약을 가해서 단순화 시키기

- 데이터 양 늘리기

- 데이터의 잡음 줄이기

 

6. 과소적합

모델이 너무 단순해서 데이터의 구조를 학습하지 못할 때 일어난다.

 

* 과소적합 해결법

- 모델 파라미터가 더 많고 강력한 모델 선택

- 특성 공학

- 모델의 제약 줄이기

 

1.5 테스트와 검증

훈련 데이터를 훈련 세트와 테스트 세트 두 개로 나누고 훈련 세트로 모델을 훈련하고 테스트 세트로 모델을 테스트한다.

샘플에 대한 오차 비율 (일반화 오차)와 테스트 세트에서 모델을 평가하고 이 오차에 대한 추정값으로 모델이 잘 작동하는지 확인한다.

 

홀드아웃 검증 : 훈련 세트의 일부를 떼어내 여러 모델을 평가하고 가장 좋은 모델을 선택한다. 이 때 새로운 홀드아웃 세트를 검증 세트라고 부른다.

교차 검증 : 작은 검증 세트를 여러 개를 사용해 반복적으로 학습을 수행한다.

훈련-개발 세트 : 훈련 데이터의 일부를 떼어내 다른 세트를 만드는 것
                           => 훈련-개발 세트에서 작동하지 않으면 과대적합

                                 검증 세트에서 작동하지 않으면 데이터 불일치