ML/DL 이해: Machine Learning
1. 짧게 보는 AI 발전사
- 1943년
Electronic Brain- 매컬럭과 피츠가 생물 신경세포를 모방한 최초의 형식적 신경망 모델을 발표
- 1957년
Perceptron- 로젠블랏이 컴퓨터가 가중치를 스스로 학습하는 퍼셉트론을 제안
- 1960년
ADALINE- 위드로우와 호프가 가중치와 임계값을 더욱 정교하게 학습하는 모델을 선보임
- 1969년
XOR Problem- 민스키와 페퍼트가 단순 퍼셉트론의 한계(XOR 문제 해결 불가)를 증명
- 이로 인해 연구가 위축되며 제1차 AI 겨울이 찾아옴
- 1986년
Backpropagation- 제프리 힌튼 등이 역전파 알고리즘을 통해 다층 퍼셉트론(MLP)의 학습 문제를 해결
- 1995년
SVM (Support Vector Machine)- 통계적 학습 기반의 모델 등장
- 신경망의 한계를 보완하며 한동안 머신러닝의 주류로 자리 잡음
- 2006년
Deep Neural Network- 제프리 힌튼이 사전학습 기술을 통해 깊은 층의 신경망 학습이 가능함을 증명
- 2012년
AlexNet (CNN)- 이미지 인식 대회(ILSVRC)에서 CNN 기반 모델이 압도적 우승
- GPU를 활용한 딥러닝 학습의 효용성을 입증함
- 2014년
GAN & RNN/LSTM- GAN: 진짜 같은 가짜를 만드는 생성적 적대 신경망 등장
- RNN/LSTM: 시계열 및 자연어 처리에 최적화된 순환 신경망의 전성기
- 2016년
AlphaGo- 구글 딥마인드의 알파고가 이세돌 9단을 꺾으며 강화학습이 주목받음
- 2017년
Transformer- 구글이 어텐션(Attention) 메커니즘을 도입한 트랜스포머 구조 발표
- 2018년~2020년
BERT & GPT-3- 구글의 BERT와 OpenAI의 GPT 시리즈가 등장
- 자연어 처리 성능이 비약적으로 향상됨
- 2022년
ChatGPT & Diffusion- 대화형 AI인 ChatGPT 출시로 생성형 AI 열풍 확산
- 텍스트로 이미지를 생성하는 확산 모델(Stable Diffusion 등) 대중화
- 2024년~2026년(현재)
Multi-modal & Agentic AI- 멀티모달: 텍스트, 이미지, 영상, 오디오를 동시에 이해하고 생성(GPT-4o, Gemini 등)
- AI 에이전트: 단순히 답하는 수준을 넘어, 스스로 도구를 사용하고 복잡한 워크플로우를 완수하는 지능형 에이전트로 진화
2. Machine Learning
2.1 ML 이란?
- 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야
- 컴퓨터 프로그램이 어떤 과업(T) 을 수행할 때,
- 그에 대한 성과(P) 가 경험(E) 을 통해 개선된다면,
- 그 프로그램은 경험으로부터 학습한다고 말할 수 있음
2.2. ML Type
지도 학습 (Supervised Learning)
- 선생님이 정답지를 주고 가르치는 공부
- 문제(
Input)와 정답(Label/Output)이 모두 적힌 문제집을 푸는 것 - 답(
Y)을 찾기위한 학습 - 최적의 정확도를 보이는 모델로 미래 데이터 예측
- Output
- 분류(Classification) → 이산적인 구분
- 회귀(Regression) → 연속적인 예측
준지도 학습 (Semi-Supervised Learning)
- 정답지는 조금만 있고, 나머지는 스스로 유추하는 공부
- 정답이 적힌 문제(
Labeled) 보다 정답지가 없는 문제(UnLabeled)는 엄청 많을 때 사용 Labeled데이터로만 학습한 모델보다 더 좋은 성능의 모델을 만들어낼 가능성 있음Unlabeled데이터를 함께 활용한다는 측면에서 지도 학습과 차이가 있으나, Output은 동일- Output
- 분류(Classification) → 이산적인 구분
- 회귀(Regression) → 연속적인 예측
비지도 학습 (Unsupervised Learning)
- 정답지 없이 스스로 규칙을 찾는 공부
- 문제(
Input) 데이터만 제공 - 답을 알려주지 않은 상태 또는 답을 알지 못하는 상태에서 스스로 학습
- 예상 패턴/클러스터링과 비교하여 Insight 도출
- Output
- 군집화 (Clustering) → 덩어리로 묶기
- 추정 및 차원 축소 (Estimation / Dimension Reduction) → 핵심 특성 파악
3. ML Algorithm RoadMap
3.1. CART
- Classification and Regression Trees
- 단일 나무부터 숲까지, 데이터의 규칙을 찾는 방식
- Decision Tree (의사결정나무)
Decision Rule: 특정 조건(질문)에 따라 데이터를 분기- 트리 형태로 규칙을 구분하여 시각적으로 이해하기 매우 쉬움
- RandomForest (랜덤 포레스트)
Data random subset: 데이터를 무작위로 샘플링하여 여러 묶음을 만듦Making random trees: 각 묶음마다 독립적인 나무를 생성Building random forest: 이 나무들을 모아 집단지성(숲)을 구축
3.2. Boosting
- 약한 모델들을 합쳐서 아주 강력한 모델을 만드는 과정
- XGBoost
가중치 부여: 이전 단계에서 틀린 데이터에 더 큰 가중치를 주어 집중 학습반복 수행: 성능이 더 이상 좋아지지 않을 때까지 순차적으로 나무를 쌓음
- LightGBM
연산 방식 개선: XGBoost의 속도 한계를 극복하기 위해 병렬 처리 도입Leaf-Wise: 수평이 아닌 수직 방향으로 효율적인 분할 수행
3.3 Kernal
- 데이터 사이의 여백을 극대화하여 경계를 나누는 방식
- SVM (Support Vector Machine)
Maximum Margin: 그룹 간의 경계(여백)가 가장 커지도록 결정 경계를 설정Kernel Trick: 직선으로 나눌 수 없는 비선형 데이터는 차원을 높여 '커널'로 구분
4. ML Algorithms
4.1. Decision Tree
- Tree 기반으로 분류/예측하는 분석 방법
- 의사결정규칙을 도표화하여 관심대상이 되는 집단을 몇 개의 소집단으로 분류하거나 예측
- 모델링 내용은 Tree 구조로 한눈에 파악되어 쉽게 이해하고 설명할 수 있음
- 쉽게 말하면 스무고개와 비슷함 → 복잡한 데이터를 보고 계속 질문을 던져서 정답을 찾아감
특이사항
- 불순도를 낮추자
- Decision Tree는 결국 불순도를 낮추는것이 가장 큰 목표임
불순도가 높다빨간 공, 노란 공, 초록 공이 한 바구니에 마구 섞여 있는 상태불순도가 낮다한 바구니에 빨간 공만 예쁘게 모여 있는 상태
- 불순도를 측정 기준
- 아래 둘 다 0에 가까울수록 좋음
Gini Index한 집단에서 임의로 두 개를 뽑았을 때 서로 다른 공이 나올 확률Entropy이 집단이 얼마나 어질러져 있는지 무질서를 체크
장점과 단점
- 장점
- 직관적이고 이해가기 쉬움
- 데이터 전처리 부담 적음
- 범주/연속형 모두 처리 가능하고 표쥰/정규화 필요 X
- 이상치/결측치에 민감
- 분할 기준 특성 기반으로 변수 중요도 쉽게 파악 가능
- 비교적 작은 데이터셋에서도 잘 동작함
- 단점
- 과적합 가능성
- Tree 차수가 깊어질수록 훈련 데이터 과적합 가능성 높음
- 이를 방지하기 위해 차수 제한이나 가지치기 필요
- 복잡한 데이터 특징 반영에 한계가 있어서 모델의 일반화 성능이 낮을 수 있음
- 클래스 불균형 데이터에서 잘못된 분류결과 계산할 가능성 있음
- 과적합 가능성
4.2. RandomForest
- 여러 개의 의사결정 나무를 만들고, 그들의 예측 결과를 종합하여 최종 결론을 내리는 앙상블 학습 방법
- 훈련 데이터의 일부분과 변수의 일부분을 무작위로 선택해 서로 다른 개성을 가진 나무들을 키워냄
- 각 나무가 독립적으로 학습하기 때문에 병렬 처리에 매우 유리함
특이사항
- 학습 방법
random subset데이터 변수를 무작위로 선택하여random trees여러 개의 트리들을 임의적으로 생성하여 각 트리들로부터 얻어질 결과가 평균 이상이 되면feature selection최대의 정보가 반영되도록 정답을 잘 설명할 수 있는 변수를 선택하여random forest생성된 트리들의 성능에 투표하여 모델을 정의함
- Bootstrapping (복원 추출 샘플링)
- 전체 데이터에서 중복을 허용하여 무작위로 샘플 데이터를 뽑아 각 나무에 나눠줌
- 이렇게 뽑힌 데이터를 학습하고, 선택되지 않은 데이터(Out-Of-Bag, OOB)는 나중에 검증용으로 활용함
- Feature Randomness (변수 무작위성)
- 나무의 노드를 분할할 때 모든 변수를 검토하는 게 아니라, 무작위로 선택된 일부 변수들 중에서 최적의 분할을 찾음
- 이 과정 덕분에 나무들 사이의 상관관계가 줄어들어, 숲 전체의 다양성이 확보됨
- Voting (다수결) & Averaging (평균)
- 분류 문제에서는 가장 많은 표를 얻은 클래스를 선택(Majority Voting)하고, 회귀 문제에서는 각 나무가 내놓은 값의 평균을 취함
장점과 단점
- 장점
- 개별 나무는 과적합될 수 있지만, 수많은 나무의 결과를 평균 내기 때문에 모델 전체의 일반화 성능이 매우 안정적임
- Decision Tree 기반이라 데이터 스케일링이 필요 없고, 결측치나 이상치에 대한 저항력이 강함
- 기본 설정값만으로도 훌륭한 성능을 내며, 나무의 개수만 충분히 확보하면 성능이 크게 나빠지지 않음
- 단점
- 나무의 개수가 많아질수록 모델의 크기가 커지고, 예측 속도가 부스팅 모델보다 느려질 수 있음
- 변수가 너무 많고 데이터가 비어있는 형태에서는 SVM이나 딥러닝에 비해 성능이 떨어짐
- 나무 한 그루는 설명하기 쉽지만, 수천 그루가 얽힌 숲 전체의 논리를 한눈에 설명하기는 어려움
4.3. XGBoost
eXtreme Gradient Boosting- 기존 Gradient Boosting 모델에 과적합 방지를 위한 규제를 추가하고 성능을 올린 모델
- 여러 개의 약한 학습기(Weak Learner)를 순차적으로 결합하여 오차를 수정해 나가는 방식
- 수평적인 확장
특이사항
- 균형 잡힌 트리 (Level-wise)
- 트리를 만들 때 층(Level)을 먼저 채우는 방식으로, 좌우 균형을 맞추며 성장함
- 트리의 깊이를 효과적으로 제어하여 과적합에 강한 구조를 가짐
- 특정 Leaf에서 손실이 크게 줄어들더라도 일단 해당 층 전체를 다 만든 후에 다음 층으로 이동
- 병렬 처리 및 최적화
- CPU의 멀티 코어를 활용한 병렬 학습이 가능하여 기존 GBM보다 훨씬 빠름
(Lasso), (Ridge) 규제를 통해 모델이 너무 복잡해지는 것을 스스로 억제함
- 결측치 처리
- 데이터에 빈 값이 있어도 모델 내부에서 알아서 처리 방향을 결정함
장점과 단점
- 장점
- 예측 성능이 매우 뛰어남 (대부분의 정형 데이터에서 높은 정확도)
- 조기 종료 기능으로 불필요한 학습 시간을 단축할 수 있음
- 자체적으로 변수 중요도를 산출하여 어떤 데이터가 영향력이 큰지 확인 가능
- 단점
- LightGBM에 비하면 학습 시간이 여전히 오래 걸리는 편임
- 하이퍼파라미터가 매우 많아 튜닝하는 데 시간이 많이 소요됨
- 모델의 구조가 복잡하여 왜 이런 결과가 나왔는지 설명하기 어려운 블랙박스 특성이 있음
4.4. LightGBM
Light Gradient Boosting Machine- Microsoft에서 개발한 알고리즘으로, XGBoost보다 더 가볍고 빠른 성능을 목표로 만들어짐
- 대용량 데이터 처리에 특화되어 있으며 메모리 사용량이 현저히 적음
- 비대칭적인 트리 모양을 가지지만, 그만큼 오차를 줄이는 속도가 매우 빠름
- 수직적인 확장
특이사항
- 수직적 성장 (Leaf-wise)
- 전체 층을 다 채우지 않고, 손실이 가장 크게 줄어드는 Leaf 노드를 찾아 파고들며 성장함
- 최대 손실 값(Max Delta Loss)을 가지는 노드를 계속 분할하여 예측 오류를 최소화함
- 동일한 분할 횟수라면 Level-wise보다 훨씬 낮은 손실을 기록할 수 있음
- GOSS & EFB 기술
GOSS: 데이터의 일부만 샘플링하여 계산량을 대폭 줄임EFB: 희소한 변수들을 하나로 묶어 처리 속도를 높임
- 카테고리형 변수 지원
- 별도의 원-핫 인코딩 없이도 범주형 데이터를 효율적으로 처리할 수 있음
장점과 단점
- 장점
- XGBoost보다 2~3배 이상 빠르며 메모리도 훨씬 적게 사용함
- 대규모 데이터셋(10,000건 이상)에서 진가를 발휘함
- GPU를 활용한 가속 학습 지원이 매우 잘 되어 있음
- 단점
- 데이터 양이 적을 경우(약 10,000건 이하) 트리가 너무 깊어져 과적합이 발생하기 쉬움
- 트리의 깊이가 깊고 비대칭적이라 시각화했을 때 해석이 더 난해함
max_depth나num_leaves같은 파라미터를 세심하게 조절해야 함
4.5. CatBoost
Categorical Boosting- Yandex에서 개발한 오픈 소스 그래디언트 부스팅 알고리즘
- 범주형 변수가 많은 데이터셋에서 전처리 없이도 독보적인 성능을 발휘함
- 대칭 트리 구조를 사용하여 예측 속도가 매우 빠르고 모델의 일반화 능력이 뛰어남
- 기존 부스팅 모델들의 고질적인 문제인 정보 누수, 과적합 방지를 위해 Ordered 개념 도입
특이사항
- Leaf-Wise + Ordered Boosting
- 학습데이터 내 정답을 다 미리 보는 것이 아니라
- 학습에 사용된 데이터 기반으로 다음 트리를 학습시켜 과적합 방지
- 즉, 같은 train 안에서 지금까지 풀어본 문제만 보고 다음 문제를 풀도록 함
- Ordered Target Encoding
- 범주형 데이터를 수치로 바꿀 때, 현재 행의 정답을 제외한 이전 행들의 평균값만을 사용하여 인코딩함
- 이를 통해 데이터 간의 독립성을 유지하고 모델이 정답을 미리 '외워버리는' 현상을 막음
- Symmetric Trees (대칭 트리)
- 트리를 분할할 때 왼쪽과 오른쪽 노드에 동일한 분할 조건을 적용함
- 이 구조는 모델이 덜 복잡하게 만들어지도록 유도하며, 예측 시 연산 속도를 비약적으로 높여줌
장점과 단점
- 장점
- 기본 설정 값만으로도 XGBoost나 LightGBM보다 뛰어난 성능을 내는 경우가 많음
- 라벨 인코딩을 따로 할 필요가 없어 데이터 전처리 시간이 대폭 단축됨
- 데이터셋에 노이즈가 섞여 있어도 Ordered Boosting 덕분에 모델이 쉽게 흔들리지 않음
- 단점
- 범주형 변수가 많을 경우 인코딩 과정에서 시간이 꽤 걸려 LightGBM보다는 느린 편임
- 모든 변수가 수치형(Numerical)인 데이터에서는 XGBoost에 비해 성능 이점이 크지 않을 수 있음
- 대칭 트리 구조와 정교한 인코딩 방식 때문에 학습 시 메모리 점유율이 높은 편임
4.6. SVM
- 두 클래스를 가장 잘 나누는 **최적의 결정 경계(Decision Boundary)**를 찾는 알고리즘
- 데이터 분류를 넘어 두 데이터 군집 사이의 거리를 최대한 멀게 떨어뜨리도록 학습
- 분류(SVC)와 회귀(SVR) 모두에 사용될 수 있으나, 주로 복잡한 분류 문제에서 강력한 성능을 발휘함
- 선형으로 분리되지 않는 복잡한 데이터셋도 고차원으로 변환하여 깔끔하게 분리할 수 있는 능력을 갖춤
특이사항
- 마진 최대화
마진은 결정 경계와 가장 가까이 있는 데이터 포인트 사이의 거리를 의미함- SVM의 목표는 이 마진을 최대화하는 것임
- 마진이 클수록 새로운 데이터가 들어왔을 때 틀릴 확률이 낮아짐
- 서포트 벡터(Support Vector)
- 결정 경계를 정하는 데 결정적인 역할을 하는, 경계 근처의 데이터 포인트들을 말함
- 이 포인트들만 남기고 나머지 데이터를 다 지워도 결정 경계는 변하지 않을 만큼 핵심적인 데이터!
- 커널 트릭(Kernel Trick)
- 데이터가 직선으로 도저히 안 나눠질 때, 데이터를 아주 높은 차원(
)으로 보내서 평면으로 자를 수 있게 만드는 기술 Linear,Polynomial,RBF(방사 기저 함수)등 다양한 커널을 선택할 수 있음
- 데이터가 직선으로 도저히 안 나눠질 때, 데이터를 아주 높은 차원(
장점과 단점
- 장점
- 마진을 최대화하는 방식이라 데이터가 적어도 과적합에 강함
- 고차원 데이터에 유리하고, 변수가 아주 많은 데이터에서도 성능이 잘 나옴
- 서포트 벡터만 사용하기 때문에 메모리 효율적이며 경계가 깔끔하게 정의됨
- 단점
- 데이터 양이 많아지면(수만 건 이상) 학습 속도가 기하급수적으로 느려짐
- 데이터에 이상치(Outlier)가 많거나 클래스가 많이 겹쳐 있으면 결정 경계를 찾기 어려움
- 커널 트릭을 사용해 고차원으로 가면 모델이 왜 그렇게 분류했는지 직관적으로 이해하기 힘듦
5. Regularization
- 모델이 너무 복잡해져서 생기는 과적합을 방지하는 기술
- 복잡성에 대한 페널티를 추가함으로써 더 간단하고 일반화 가능한 모델을 장려함
5.1 L1/L2 Regularization
- L2 Regularization
- Ridge Regression
- 가중치 제곱합에 대한 패널티 통해 큰 가중치가 생성되지 못하도록
- L1 Regularization
- Lasso Regression
- 가중치 절대값의 합에 대한 패널티를 통해 유도
- 특정 가중치를 0으로 만들어 변수 선택 효과 기대
- 좀 더 쉽게 이해하기
현재 상황- 발표를 위해 30장의 슬라이드를 준비했음
- 30장에 많은 내용은 있지만 무슨 내용을 발표하려 하는지 잘 안보임
- 핵심 안보임/없음은 곧 ➔ 과적합, Overfitting
- 교수님이 발표자료 제출은 5장으로 제한하심
다시 살펴보면- 교수님의 발표자료 5장 제한이 곧 → Regularization, 규칙 부여
- 어떻게 줄일 수 있을까?
- 모든 슬라이드를 조금씩 줄여서 정리 → L2 Regularization
- 필요 없는 슬라이드는 모두 삭제 → L1 Regularization
이것이 곧 L2/L1- L2 → 모든 가중치를 균등하게 조절 (줄이는 방향으로)
- L1 → 일부 가중치를 0으로 조절
5.2. Lasso Regression
- L1 Regularization 기술을 사용하는 회귀 모델
- 비용 함수에 가중치 절대값의 합을 페널티 항으로 추가
- 이 페널티는 중요하지 않은 변수의 계수를 정확히 0으로 만듦
- 결과적으로 중요한 특성만 선택하고 나머지는 무시하는 변수 선택 기능을 수행
5.3. Ridge Regression
- L2 규제 기술을 사용하는 회귀 모델
- 비용 함수에 가중치 제곱의 합을 페널티 항으로 추가합니다.
- 상관관계가 높은 변수들 사이의 계수를 완전히 없애지 않고 크기를 작게 줄임
- 다중공선성 문제를 효과적으로 다룰 수 있고, 가중치를 골고루 작게 만들어 모델 분산을 낮춤
요약하자면
- L2는 "모두 다 데려가되, 힘(가중치)을 좀 빼자!" (안정적)
- L1는 "쓸모없는 놈은 버리고, 에이스만 데려가자!" (명확함)
6. Scaling
- 어떤 데이터는 나이(0-100)이고, 어떤 데이터는 연봉(0-1억)이라면...
- 숫자의 절대적인 크기 차이가 너무 큼!
- 스케일링을 하지 않으면 모델은 숫자가 큰 연봉이 나이보다 훨씬 중요한 정보라고 오해 가능
- 이를 방지하기 위해
Normalizer모든 데이터를 0~1 사이로 맞추거나Standardizer평균 0, 표준편차 1이 되도록 조정
알고리즘별 스케일링 필요 여부 요약
| 계열 | ML Algorithm | 표준화 필요 여부 | 주요 이유 |
|---|---|---|---|
| Tree-Based | DecisionTree | 필요 없음 | 조건에 따른 분기 방식으로 값의 크기나 단위와 무관 |
| randomForest | 필요 없음 | 개별 트리 자체가 스케일 영향 받지 않음, 다양한 트리 조합이 더 중요 | |
| XGBoost | 필요 없음 | 트리 기반 부스팅 방식으로 크기와 단위 영향이 적음 | |
| LGBM | 필요 없음 | Leaf 중심 분할 방식으로 값의 절대적인 크기 영향이 적음 | |
| CatBoost | 필요 없음 | 역시 값의 크기 단위 영향 적음 범주형 처리도 안정적 |
|
| Kernel (거리) | SVM | 필요 | 그룹 간 경계 결정에 계산이 핵심 변수 크기 차이가 크면 특정 변수가 과하게 영향을 미침 |
| Penalty (회귀) | LASSO | 필요 | 가중치 절대값의 합(L1)에 패널티 적용 변수 특성 크기가 다르면 큰 값을 가진 특성에 패널티가 쏠림 |
| Ridge | 필요 | 가중치 제곱합(L2)에 패널티 적용 변수 크기 차이가 크면 작은 값의 특성은 무시될 수 있음 |