기록 블로그

프로그래머스 데브코스-데이터 엔지니어/TIL(Today I Learned)

07/17 71일차 머신러닝 기초

usiohc 2023. 7. 17. 17:26

머신러닝 기초 개념


주요 메모 사항


머신러닝이란?

Machine Learning (기계학습)

- 경험을 통해 자동으로 개선하는 컴퓨터 알고리즘 연구

 

학습데이터

ㄴ 입력벡터들: x1 ,…,xN (xi는 i번째 행에 해당)

ㄴ 목표값들: t1 ,…,tN

 

머신러닝 알고리즘의 결과는 목표값을 예측하는 함수 y(x)

ㄴ y(x1 ) ~ t1

ㄴ y(x2 ) ~ t2

 

- array x가 숫자 이미지를 어두운 정도를 int로 표현

- 숫자 0을 인지 하기 위한 목표 t는 0이 됨

 

핵심개념들

- 학습단계 (training/learning phase): 함수 y(x)를 학습데이터에 기반해 결정하는 단계

 

- 테스트 데이터셋: 모델을 평가하기 위해서 사용하는 별도의 데이터

 

- 일반화 (generalization): 모델에서 학습에 사용된 데이터가 아닌 이전에 접하지 못한 새로운 데이터에 대해 올바른 예측을 수행하는 역량

 

- 지도학습 (supervised learning): 목표값(타겟, 레이블)이 주어진 경우

ㄴ 분류 (classification): 목표값이 이산적인 경우, 위의 숫자들은 0~9까지의 범위를 가짐 -> 분류

ㄴ 회귀 (regression): 목표값이 연속적인 경우, 배달 시스템의 예상 배달 시간

 

- 비지도학습 (unsupervised learning): 목표값(타겟, 레이블)이 없는 경우

ㄴ 군집 (clustering)

 


핵심 개념과 기초, 모델링 순서

데이터

머신러닝에서 가장 중요한 요소는 데이터. 모델이 학습하고 예측하는 데 사용할 데이터가 필요. 이러한 데이터는 입력과 그에 대응하는 출력(라벨 또는 타깃)으로 구성되며, 모델은 이 데이터를 기반으로 학습하여 입력과 출력 사이의 관계를 학습.

 

특징(Features)

데이터의 입력 부분을 특징이라고 함. 특징은 모델이 학습하는 데 사용되는 개별적인 입력 변수들을 의미. 예를 들어, 스팸 메일을 분류하는 머신러닝 모델에서 이메일의 제목, 본문, 보낸 사람 등이 특징이 될 수 있음.

 

라벨(Labels) 또는 타깃(Target)

데이터의 출력 부분을 라벨 또는 타깃이라고 함. 이는 모델이 학습해야 할 정답을 나타내며, 모델이 예측하고자 하는 값임. 스팸 메일 분류 예시에서 라벨은 해당 이메일이 스팸인지 아닌지를 나타내는 정보.

 

모델(Model)

머신러닝 모델은 입력 데이터로부터 출력 데이터(라벨) 사이의 관계를 학습하는 수학적 알고리즘. 모델은 특징과 라벨 간의 복잡한 관계를 파악하고, 새로운 입력에 대해 예측을 수행할 수 있음.

 

학습(Learning)

학습은 모델이 데이터를 사용하여 내부 파라미터를 조정하고 입력과 출력 사이의 관계를 파악하는 과정. 모델은 학습 데이터를 통해 오류를 최소화하도록 자동으로 최적화. 이러한 최적화 과정을 훈련 또는 학습이라고 함.

 

손실 함수(Loss Function)

손실 함수는 모델이 예측한 값과 실제 라벨 간의 차이를 측정하는 함수. 모델이 학습할 때, 손실 함수를 최소화하기 위해 모델의 파라미터를 조정. 일반적으로 평균 제곱 오차(Mean Squared Error) 또는 교차 엔트로피(Cross-Entropy) 등이 손실 함수로 사용.

 

최적화(Optimization)

최적화는 모델의 손실 함수를 최소화하기 위해 모델의 파라미터를 조정하는 과정. 이를 통해 모델이 더 나은 예측을 할 수 있도록 개선. 대표적인 최적화 알고리즘으로는 확률적 경사 하강법(SGD)이나 Adam 등이 있음.

 

평가(Evaluation)

학습된 머신러닝 모델의 성능을 평가하는 단계. 평가를 위해 모델은 이전에 학습하지 않은 테스트 데이터를 사용하여 예측을 수행하고, 예측 값과 실제 라벨 간의 차이를 평가.

 

일반화(Generalization)

머신러닝 모델은 학습 데이터를 기반으로 예측을 수행하며, 모델이 이전에 보지 못한 새로운 데이터에 대해 얼마나 잘 예측하는지를 일반화 능력으로 평가. 좋은 모델은 학습 데이터뿐만 아니라 새로운 데이터에 대해서도 좋은 성능을 보여줌.

 


 

1. 문제 정의 및 데이터 수집

머신러닝 모델링을 시작하기 전에 해결하고자 하는 문제를 명확히 정의. 그리고 해당 문제를 해결하기 위해 필요한 데이터를 수집. 이 데이터는 학습 데이터와 테스트 데이터로 나눠져야 함.

 

2. 데이터 전처리

수집한 데이터는 현실적으로 불완전하거나 오류가 있을 수 있음. 이를 정제하고, 누락된 값이나 이상치를 처리하고, 필요한 형식으로 변환. 또한, 데이터를 모델에 적용 가능한 형태로 변환하는 작업을 진행.

 

3. 특징(Feature) 선택 및 추출

모델에 사용할 특징들을 선택하고 추출. 이 단계에서는 입력 데이터로부터 학습에 필요한 중요한 특징들을 선택하거나 새로운 특징들을 추출하는 작업을 수행.

 

4. 모델 선택

해결하고자 하는 문제에 맞는 적절한 머신러닝 모델을 선택. 데이터의 특성과 문제의 복잡성에 따라 선형 회귀, 의사결정 트리, 서포트 벡터 머신, 신경망 등 다양한 모델 중에서 적합한 모델을 선택.

 

5. 학습(Learning)

선택한 모델을 학습 데이터에 적용하여 모델의 파라미터를 조정하는 단계. 모델은 입력 데이터와 출력 데이터 사이의 관계를 학습하고 최적의 파라미터를 찾아내야 함.

 

6. 모델 평가

학습된 모델의 성능을 평가. 이를 위해 테스트 데이터를 사용하여 모델이 새로운 데이터에 얼마나 잘 예측하는지를 평가.

 

7. 하이퍼파라미터 튜닝

모델에는 학습을 통해 최적화되는 파라미터뿐만 아니라, 모델의 성능에 영향을 주는 하이퍼파라미터들이 존재. 이들을 조정하여 모델의 성능을 개선하는 과정을 하이퍼파라미터 튜닝이라고 함.

 

8. 모델 배포

최종적으로 학습된 모델을 실전 환경에서 사용할 수 있도록 배포. 이 단계에서는 모델의 성능과 안정성을 확인하고, 새로운 데이터에 대한 예측을 수행.

 

9. 모니터링과 유지보수

모델이 배포된 이후에도 모델의 성능을 모니터링하고 필요한 경우 유지보수를 수행. 데이터의 변화나 환경의 변화에 따라 모델을 업데이트하여 최적의 성능을 유지하는 것이 중요.

 

 


공부하며 어려웠던 내용

강의가 갑자기 너무 딥하게 들어가는 느낌이 강했음. 수학이나 통계 지식을 요구하는 수준으로 설명이 진행되어서 변수선택, 모델, 하이퍼파라미터 튜닝, 학습 등에서 자주 사용되는 알고리즘을 알고 있다는 정도로 넘어가야할 것 같음