1 장 머신러닝의 풍경

한 줄 요약 : 머신러닝은 명시적인 프로그래밍 없이 데이터를 통해 학습하여 특정 작업의 성능을 향상시키는 과학이자 예술

1. 핵심 요약

머신 러닝은 데이터 패턴을 스스로 학습하며 학습 방식(지도/비지도/강화 학습), 실시간 학습 여부(배치/ 온라인), 예측 방식(사례 기반/ 모델 기반)에 따라 분류됨 주요 성공 요인은 충분하고 고품질의 데이터와 적절한 알고리즘 선택임 학습 과정에서 발생할 수 있는 과대 적합(Overfitting)과 과소 적합(Underfitting)을 관리하는 것이 핵심이며 모델 평가를 위해 훈련/검증/테스트 세트를 분리하여 일반화 성능을 확인해야함

2. 핵심 개념

1) 지도학습(Supervised Learning)

알고리즘에 주입하는 훈련 데이터에 레이블이라는 정답이 포함된 방식

2) 비지도 학습(Unsupervised Learning)

훈련 데이터에 레이블 없이 시스템이 스스로 데이터의 숨겨진 구조나 패턴을 찾는 방식

3) 과대 적합

모델이 훈련 데이터에는 너무 잘 맞지만 새로운 데이터에는 일반화 성능이 떨어지는 현상

4) 모델 기반 학습

데이터 집합에서 모델(ex. 직선)을 만들어 예측을 수행하고 파라미터를 최적화하는 방식

3. 개념 간 관계도

데이터 수집 모델 선택(선형/비선형 등) 훈련(비용 함수 최소화하는 파라미터 탐색) 평가 및 튜닝(검증 세트 활용) 추론(새 데이터 예측 및 일반화)

4. 중요 수식및 정의

1) 선형 모델 예측 수식 (Equation 1-1)

life_satisfaction=θ0​+θ1​×GDP_per_capita

  • 목적 : 1인당 GDP를 통해 국가별 삶의 만족도 수치를 예측하는 선형 관계를 모델링
  • 기호 : θ(모델 파라미터(스칼라)), GDP는 입력 특성, 결과는 예측값
  • 항의 의미 : θ0은 편향(절편), θ1은 가중치(기울기)를 의미, GDP 단위는 USD
  • 결론 : 훈련 데이터의 경향성을 가장 잘 나타내는 직선을 찾아 새로운 GDP 데이터에 대한 만족도를 예측

5. 머신러닝 선택의 이유

기존의 규칙 기반 프로그래밍 방식은 스팸 필터처럼 규칙이 복잡해질 경우 유지보수가 어렵고 성능 떨어짐 하지만 머신러닝은 데이터에서 자동으로 패턴을 감지해 프로그램을 훨씬 짧고 효율적으로 만들수 있음 또한 사람의 직관으로 찾기 힘든 데이터 속 숨겨진 상관관계를 발견하는 데이터 마이닝 효과도 기대 가능

6. 핵심 알고리즘

1) 선형 회귀(Linear Regression)

  • 정의 : 입력 특성들의 선형 조합에 가중치를 부여해 수치형 타겟값을 예측하는 모델
  • 입력/출력/목적함수 : 입력은 특성 벡터, 출력은 예측 수치값 목적은 예측값과 실제 값 사이의 거리(비용 함수)를 최소화 하는 것
  • 학습 절차 : 데이터 플롯 모델 형태 가정(직선) 훈련 데이터에 맞춰 파라미터(θ) 조정
  • 하이퍼파라미터와 영향 : 규제 강도 등 규제가 강해지면 모델이 단순해져 과대적합을 방지하지만 과소적합 위험이 발생
  • 장단점 : 단순하고 해석쉽지만 실제 관계가 선형이 아닐 경우(과소적합) 성능 낮음
  • 비교 : k-최근접 이웃(k-NN) 회귀는 주변 사례를 평균 내어 예측(사례 기반) 선형 회귀는 수학적 공식을 모델링(모델 기반)

7. 알고 가기

1) 데이터 양에 대한 오해

머시러닝은 간단한 문제에도 수천 개의 데이터가 필요

2) 데이터 스누핑 편향

모델을 선택하기 전 테스트 세트를 미리 보면 뇌가 패턴에 적응해 실제보다 성능을 낙관적으로 평가함

3) 부적절한 특성 선택(Garbage In, Garbage out)

학습에 중요하지 않은 특성이 많으면 알고리즘이 유용한 패턴을 찾지 못함

8. 적용 사례

1) 스팸 메일 분류

사용자가 레이블한 과거 메일 데이터를 학습해 새로운 메일이 들어왔을 때 자동으로 스팸 여부 판단

2) 부동산 가격 예측

평수, 위치 등 수치 특성을 바탕으로 집값이라는 연속적인 값을 도출할 때 유리(회귀 작업)

📝 1장 마무리 퀴즈

Q1) 훈련 데이터에는 잘 작동하나 새로운 데이터에 일반화되지 않는 현상은?

과대적합

Q2) 데이터에 대한 가정이 없다면 어떤 모델이 더 나을지 알 수 없다는 정리는?

공짜 점심 없음 정리(No Free Lunch)

Q3) 하이퍼파라미터 튜닝 시 여러 후보 모델을 비교하기 위해 사용하는 데이터 세트는?

검증 세트


2장 머신러닝 프로젝트 처음부터 끝까지

1. 한 줄 요약

부동산 데이터를 활용해 문제 정의부터 데이터 정제, 모델 선택, 하이퍼파라미터 튜닝 및 최종 평가에 이르는 머신러닝 프로젝트의 전 과정을 실무 파이프라인 관점에서 습득하자

2. 핵심 요약

  1. 실제 비즈니스 목적을 확인해 문제의 성격(지도 학습, 회귀)을 규정하고 성능 지표(RMSE)를 선정한다
  2. 데이터 스누핑 편향을 방지하기 위해 계층적 샘플링으로 테스트 세트를 미리 분리하며 데이터 탐색과 시각화를 통해 통찰을 얻는다
  3. 누락된 데이터 처리 및 특성 스케일링을 위한 전처리 파이프라인을 구축하고 교차 검증과 그리드 탐색을 통해 최적의 모델을 선정해 일반화 성능을 확보한다

3. 핵심 개념

1) 데이터 파이프라인

데이터 처리 컴포넌트들이 연속되어 있으며 각 컴포넌트가 독립적으로 운영되는 구조

2) 계층적 샘플링

전체 인구의 특성을 잘 반영할 수 있도록 중요 특성(ex. 소득)의 계층별 비율에 맞춰 샘플을 추출하는 방식

3) 데이터 스누핑 편향

모델 선택 전 테스트 세트를 미리 들여다봄으로써 실제보다 성능이 종게 평가되는 현상

4) 교차 검증

훈련 세트를 여러 Fold로 나누어 모델의 성능을 반복 측정함으로써 더 정확한 일반화 오차를 추정하는 기법

4. 관계도

비즈니스 목적 확인 성능지표(RMSE) 선정 테스트 세트 분리 탐색적 데이터 분석(EDA) 데이터 정제 및 변환 파이프라인 모델 훈련 및 앙상블 최적화 및 최종 평가

5. 중요 수식 및 정의

1) 평균 제곱근 오차(RMSE)

  • 목적 : 회귀 모델의 예측 오차를 측정하는 대표적인 성능 지표
  • 수식 : $$ RMSE(X, h) = \sqrt{\frac{1}{m}\sum_{i=1}^{m}\left(h!\left(x^{(i)}\right) - y^{(i)}\right)^2}
- 기호 차원 : m은 샘플 수(스칼라), `x^i`는 i번째 샘플의 특성 벡터, `y^i`는 실제 레이블, h는 예측 함수 - 항의 의미 : 예측값과 실제값 차이의 제곱 평균에 루트를 씌운 것으로 오차가 커질수록 값이 가파르게 증가 - 결론 : 모델이 예측한 값들이 실제 가격과 얼마나 떨어져 있는지를 유클리드 거리(L2 노름)개념으로 보여줌 - 의미 : 이 값이 커지면 모델의 예측력이 나쁘다는 것을 의미하며 특히 큰 오차(이상치)에 민감하게 반응 ### 2) 평균 절대 오차(MAE) - 목적 : 이상치가 많은 데이터셋에서 오차를 더 견고하게 측정하고자 할 때 사용 - 수식 : $$ MAE(X, h) = \frac{1}{m}\sum_{i=1}^{m}\left|h\!\left(x^{(i)}\right) - y^{(i)}\right|
  • 의미 : 맨해튼 거리(L1 노름)에 해당하며, RMSE보다 이상치의 영향을 덜 받음

6. 선택 사유

1) 회귀

다운스트림 시스템에서 구체적인 가격 수치가 필요하다고 확인했으므로 분류가 아닌 회귀 문제를 선택

2) 계층적 샘플링 선택

소득이 주택 가격 예측의 결정적 요인인 경우 무작위 추출시 소수 계층(고소득층 등)이 누락되어 샘플링 편향이 발생 가능하기 때문

7. 알고리즘및 모델

1) 랜덤 포레스트

  • 정의 : 무작위로 선택된 특성 서브셋을 사용하는 여러 결정 트리를 훈련하고 예측을 평균내는 앙상블 모델
  • 입력/출력/목적함수 : 전처리된 주택 특성 입력 / 예상 가격 출력 / 예측 오차 최소화
  • 학습 절차 : 데이터 샘플링 → 개별 결정 트리 훈련 → 다수 트리 예측값 집계(평균)
  • 하이퍼파라미터 : 트리의 개수(n_estimators), 최대 특성 수(max_features) 등
  • 장단점 : 매우 강력하고 복잡한 패턴을 잘 찾지만(장점), 여전히 훈련 세트에 과대적합되는 경향이 있음(단점)
  • 문서 예제 재현 : 단순 선형 회귀 오차(50,182로 성능이 크게 향상
  • 비교 : 결정 트리보다 과대적합이 적으며 성능이 뛰어나지만, 선형 회귀보다는 모델이 복잡하고 느림

8. 알고가기

1) 테스트 세트 미리 보기

데이터 스누핑’으로 이어져 모델이 실제로는 나쁜데도 좋게 보이는 환상을 만듬

2) 상관관계의 오해

피어슨 상관계수(r)는 선형적인 관계만 측정하므로, 비선형적인 관계는 계수가 0이라도 중요한 연관성이 있을 수 있음

3) 결정 트리의 오차 0

훈련 데이터에서 오차가 0이 나오는 것은 완벽한 것이 아니라 ‘과대적합’된 상태일 확률이 높음

9. 적용 사례

1) 부동산 가치 예측 시스템

주택의 위치, 방 개수, 주민 소득 등의 수치 데이터를 기반으로 신규 매물의 적정 가격을 산출할 때 유리

2) 이상 거래 탐지

주택 가격 모델에서 예측치보다 터무니없이 높거나 낮은 가격으로 거래된 구역을 찾아내어 조사가 필요한 대상을 선별할 때 활용 가능

📝 마무리 퀴즈

Q1) 훈련 데이터의 오차는 낮으나 검증 데이터 오차가 높을 때 발생하는 현상은?

과대적합

Q2) RMSE와 MAE 중 이상치(Outlier)의 영향력을 더 크게 반영하는 지표는?

RMSE (L2​ 노름은 오차를 제곱하기 때문)

Q3) 특성 조합(Attribute Combination)을 하는 주된 이유는?

개별 특성보다 결합된 특성(예: 가구당 방 개수)이 목표값과 더 높은 상관관계를 가질수 있기 때문


3장 분류(Classification)

1. 한 줄 정리

분류는 인스턴스가 어느 범주에 속할지 예측하는 작업으로 데이터 편향에 따른 성능 왜곡을 막기 위해 정밀도, 재현율 등 다각적인 펴가 지표 활용에 필수적

2. 핵심 요약

MNIST 숫자 데이터 셋을 통해 이진 분류와 다중 분류의 개념을 익힌다 특히 불균형한 데이터셋에서 정확도(Accuracy)가 주는 오해를 파악하고 혼동 행렬(Confusion Matrix)을 기반으로 정밀도와 재현율의 트레이드오프 관계를 이해한다. ROC 곡선과 AUC를 통한 모델 비교 방법을 습득하며, 마지막으로 다중 레이블 및 다중 출력 분류로 개념을 확장한다.

3. 핵심 개념

1) 이진 분류기(Binary Classifier)

두 개의 클래스를 구분(ex. 5와 5아님)하는 분류 방식

2) 혼동 행렬(Confusion Matrix)

클래스 A의 샘플이 클래스 B로 분류된 횟수를 표로 정리한 것 모델의 오류 패턴을 분석하는 기본 도구

3) 정밀도(Precision)와 재현율(Recall)

정밀도 : 양성 예측의 정확도 재현율 : 모델이 실제 양성 샘플을 얼마나 잘 감지했는지의 비율

4)ROC 곡선

여러 임곗값에서 거짓 양성 비율(FPR)에 대한 진짜 양성 비율(TPR, 재현율)을 플롯한 곡선

4. 관계도

데이터 로드(MNIST) 이진 분류기 훈련(SGD) 성능 지표 선택(정밀도/재현율) 임계값 조정(트레이드 오프) 다중 분류 확장 오류 분석

5. 중요 수식 및 정의

1) 정밀도(Precision)

  • 목적 : 양성으로 예측한 것들 중 실제 양성이 얼마나 되는지 측정
  • 기호 : - TP(진짜 양성), FP(거짓 양성) 결과값은 0 ~ 1 사이의 스칼라
  • 항의 의미 : $$ Precision = \frac{TP}{TP + FP}
- 결론 : 값이 클수록 모델이 양성이라고 예측했을 때 실제로 맞을 확률이 높음을 보장 - 실무 : 이 값이 낮으면 스팸이 아닌데 스팸으로 분류하는 오답이 많음을 의미 ### 2) 재현율(Recall) - 목적 : 전체 양성 샘플 중 모델이 얼마나 많이 찾아 냈는지 측정 - 기호/차원 : TP, FP (거짓 음성) 결과값은 0~1 사이의 스칼라 - 항의 의미 : $$ Recall = \frac{TP}{TP + FN}
  • 결론 : 모델이 실제 대상을 놓치지 않고 잘 잡아내는 능력을 보장
  • 실무 : 이 값이 낮으면 실제 암 환자를 놓치는 경우가 많다는 의미 위험한 상황을 감지하지 못함

3) $$

F_1\ \text{점수}

- 목적 : 정밀도와 재현율을 하나의 숫자로 요약해 비교하기 위함 - 수식 : $$ \frac{2 \times Precision \times Recall}{Precision + Recall}
  • 실무 : 두 지표가 모두 높아야 높은 점수가 나옴 한쪽이 너무 낮으면 전체 점수가 급격히 떨어짐

6. 선택 사유

정확도만으로 모델을 평가하지 않는 이유는 불균형한 데이터셋(Skewed Dataset)때문 ex. MNIST 데이터에서 숫자 5는 전체의 약 10% 뿐임 무조건 5가 아니라라고 예측하는건 멍청한 분류 90%의 정확도 얻음 이를 방지하기 위해 정밀도와 재현율 같은 더 세밀한 지표를 선택

7. 알고리즘

1) 확률적 경사 하강법 분류기(SGDClassifier)

  • 정의 : 훈련 샘플을 하나씩 독립적으로 처리해 매우 큰 데이터셋을 효율적으로 다루는 선형 분류기
  • 입력및 출력, 목적함수 : 이미지 픽셀데이터 입력, 클래스 레이블 출력, 손실 함수 최소화
  • 학습 절차 : 각 샘플에 대해 겨정 함수 점수를 계산하고 임곗값과 비교해 클래스 할당
  • 하이퍼파라미터 : random_state(결과 재현성 보장)
  • 장단점 : 매우 빠르고 온라인 학습에 적합(장점), 단 선형 모델이라 복잡한 패턴 학습에 한계있음(단점)
  • 해당 문서 예제 : 숫자 5 감지 시 decision_function( ) 점수가 0보다 크면 5로 분류
  • 다른 방법과 비교 : 무작위 포레스트와 비교 시 ROC 곡선 아래 면적(AUC)에서 무작위 포레스트가 더 뛰어난 성능을 보임

8. 예시

1) 정밀도/재현율 계산

  • 모델이 5개 이미지를 양성으로 예측했는데 실제로는 4개만 5면 정밀도는 80%
  • 데이터셋에 실제 5가 총 6개 있는데 모델이 4개만 찾았다 재현율 67%

9. 알고가기

1) 정확도의 함정

불균형 데이터셋에서는 정확도가 높아도 실제로는 성능이 끔찍할 수 있음

2) 정밀도/재현율 트레이드 오프

정밀도를 높이려고 임곗값을 올리면 재현율은 반드시 떨어지게 되어있음

3) ROC vs PR 곡선 선택

양성 클래스가 드물 때는 ROC 곡선보다 정밀도-재현율(PR) 곡선을 보는 것이 모델 성능 파악에 훨씬 유리

10. 적용 예제

  • 아이들에게 안전한 영상 분류 재현율이 조금 낮더라도(일부 좋은 영상을 놓지더라도) 정밀도가 극도로 높아야(나쁜 영상 일제 없게)함
  • 상점 도둑 감지 시스템 정밀도가 조금 낮아(경보 가끔 잘 못 울려) 보안 요원이 고생해도, 재현율이 99%이상이어야(도둑 거의 다 잡아야)함

📝 마무리 퀴즈

Q1) 양성 예측의 정확도를 의미하는 지표는?

정밀도

Q2) 정밀도를 높이기 위해 결정 임곗값을 올리면 재현율은 어떻게 되는가?

줄어든다

Q3) 완벽한 분류기의 ROC AUC 값은 얼마인가?

1.0(순수 무작위 분류기는 0.5)


4장 모델 훈련

1. 요약

모델이 훈련 데이터에 가장 잘 부합하도록 파라미터를 최적화하는 수학적 원리와 다양한 경사 하강법 알고리즘 그리고 과대적합 방지를 위한 규제 기법을 학습

2. 핵심 요약

  • 선형 회귀 모델을 해결하기 위한 해석적 해법(정규 방정식)과 반복적 최적화(경사 하강법)의 차이를 이해
  • 경사 하강법의 세 가지 변형인 배치, 확률적(SGD),미니 배치 방식의 특징과 장단점 비교
  • 릿지, 라쏘, 엘라스틱 넷과 같은 규제 기법을 통해 모델의 복잡도를 제어하고 과대적합을 방지
  • 분류 작업을 위한 로지스틱 회귀와 다중 클래스 확장을 위한 소프트맥스 회귀의 작동 원리를 파악

3. 핵심 개념

1) 경사 하강법(Gradient Descent)

비용 함수를 최소화하기 위해 파라미터를 그래디언트의 반대 방향으로 반복적으로 조정하는 범용 최적화 알고리즘

2) 편향/분산 트레이드오프(Bias / Variance TradeOff)

모델의 복잡도 증가에 따라 편향은 감소하고 분산은 증가하는 상충 관계 의미

3) 규제(Regularization)

모델 파리미터에 제한을 가해 모델을 단순하게 만들고 과대적합을 줄이는 기법

4) 로지스틱 회귀

선형 회귀 결과에 시그모이드 함수를 적용해 특정 클래스에 속할 확률을 추정하는 이진 분류 모델

4. 관계도

비용 함수 정의(MSE 등) 최적화 수행(정규 방정식 또는 경사 하강법) 모델 평가(학습 곡선 분석) 규제 적용(릿지, 라쏘 등) 최종 파라미터 도출

5. 중요 수식 및 정의

1) 선형 회귀 모델 예측(Equation 4-2)

  • 목적 : 특성값의 가중치 합과 편향을 더해 결괏값을 예측
  • 기호 : . 는 파라미터 벡터 , 는 특성 벡터
  • 항의 의미 : 은 편향 ~ 은 특성 가중치, 은 항상 1로 가정
  • 결론 : 주어진 파라미터 하에서 입력 데이터에 대한 선형 예측값 산출
  • 실무 : 가중치() 값이 클수록 해당 특성이 예측에 미치는 영향이 큼을 의미

2) 정규 방정식(Equation 4-4)

  • 목적 : 비용 함수를 최소화하는 파라미터 를 직접 계산해 한 번에 해를 구함
  • 기호 : . 는 특성 행렬 .
  • 결론 : 선형 회귀 문제에서 전역 최솟값을 제공
  • 실무 : 특성 수(n)가 많아지면 행렬 역전산 비용이 급격히( )증가해 사용하기 어려움

6. 선택 이유

  • 경사 하강법 : 특성 수(n)나 샘플 수(m)가 너무 많아 정규 방정식으로 해를 구하기 어려운 대규모 데이터셋에서도 효율적으로 파라미터를 찾을 수 있기 때문
  • 비용 함수로 MSE 사용 : 선형 회귀의 MSE는 볼록 함수이므로 경사 하강법을 통해 항상 전역 최솟값 근처로 수렴할 수 있다는 수학적 이점 존재

7. 알고리즘

1) 확률적 경사 하강법(Stochastic Gradient Descent, SGD)

  • 정의 : 매 단계에서 딱 하나의 샘플을 무작위로 선택해 그래디언트를 계산하고 파리미터를 업데이트하는 방식
  • 입력/출력/목적함수 : 훈련데이터/ 최적화된/ MSE 최소화
  • 학습 절차 : 무작위 샘플 선택 그래디언트 계산 파라미터 수정 모든 샘플에 대해 반복
  • 하이퍼파라미터와 영향 : 학습률 스케줄 즉 너무 빨리 줄이면 로컬 미니마에 갇히고 너무 늦으면 최솟값 주변을 오래 맴돔
  • 장단점 : 매우 빠르고 대규모 데이터 처리 가능하지만 경로가 불규칙해 최솟값에 정확히 안착하기 어려움

8. 예시

  • 로지스틱 회귀 예측 꽃잎 너비가 1.7cm인 붓꽃에 대해 모델이 lris-Virginica일 확률은 0.5(50%) 이상으로 계산하면 해당 클래스로 분류하고 1.5cm로 낮으면 아리라 분류

9. 알고가기

1) 특성 스케일링 무시

특성 간 스케일 차이가 크면 비용 함수가 길쭉한 타원 모양이 되어 수렴 속도가 매우 느려짐

2) 훈련 오차만 맹신

훈련 세트 오차가 0에 가깝더라도 학습 곡선상 검증 오차와 차이가 크면 과대적합된 상태

3) 로컬 미니마 공포

선형 회귀의 MSE 비용 함수는 볼록 함수이므로 로컬 미니마가 존재하지 않으며 항상 전역 최솟값으로 향함

10. 적용 예제

  • 대규모 부동산 가격 예측 수백만 개의 거래 데이터가 있는 경우 메모리 한계로 인해 정규 방적식 대신 SGD나 미니배치 GD를 사용
  • 희소 특성 선택이 필요한 경우 수많은 특성 중 유의미한 것만 골라내고 싶을때 라쏘 규제를 적용해 불필요한 가중치를 0으로 만듬

📝 마무리 퀴즈

Q1) 릿지 회귀와 라쏘 회귀의 가장 큰 차이점은?

라쏘 회귀는 가중치 벡터의 노름을 사용해 중요하지 않은 특성의 가중치를 완전히 0으로 만드는 특성 선택 기능 존재

Q2) 경사 하강법에서 학습률이 너무 작으면 어떤 문제가 발생하는가?

최솟값에 도달하기까지 너무 많은 시간 소요

Q3) 모델이 훈련 데이터에는 잘 맞지만 새로운 데이터에 일반화되지 않는 원인은?

높은 분산으로 인한 과대적합


5 장 서포트 벡터 머신

1. 요약

서포트 벡터 머신(SVM)은 선형이나 비선형 분류, 회귀뿐만 아니라 이상치 탐지까지 가능한 매우 강력하고 다재다능한 머신러닝 모델임

2. 핵심 요약

  • SVM은 두 클래스 사이의 가장 넓은 도로를 찾는 라지 마진 분류를 목표로 하며 도로 경계에 위치한 서포트 벡터에 의해 결정 경계가 형성
  • 선형적으로 분리되지 않는 데이터는 다항 특성 추가나 커널 트릭을 사용해 실제 특성을 계산하지 않고도 고차원 공간에서 해결할 수 있음
  • C 하이퍼파라미터를 통해 마진의 폭과 마진 위반 사이의 균형을 조절하며 회귀 작업에서는 마진 안에 가능한 많은 샘플이 들어가도록 학습

3. 핵심 개념

1) 라진 마진 분류

클래스 간의 결정 경계를 정할 때 가장 가까운 샘플과의 거리를 최대화해 도로를 넓게 만드는 방식 p. 156

2) 서포트 벡터

결정 경계(도로)의 가장자리에 위치해 도로를 지탱하는 훈련 샘플 p. 156

3) 커널 트릭

실제로 특성을 추가하지 않으면서 마치 고차원 공간으로 데이터를 변환한 것과 같은 결과를 얻는 수학적 기법 p. 160

4) 한지 손실

형태의 함수로 모델이 올바른 클래스에서 멀어질수록 손실이 선형적으로 증가해 SVM 최적화에 사용 p. 174

4. 관계도

입력 데이터 특성 스케일링 선형/비선형 판단 (비선형 시) 커널 트릭 적용 하이퍼파라미터 튜닝 최적 마진(도로) 결정

5. 중요 수식 및 정의

1) 선형 SVM 분류기 예측

  • 목적 : 새로운 데이터 샘플이 어떤 클래스에 속하는지 결정
  • 수식 :
  • 기호 차원 : w는 가중치 벡터, b는 편향(스칼라), x는 입력 특성 벡터
  • 항의 의미 : 는 결정 함수
  • 결론이 보장하는 것 : 결정 함수의 부호에 따른 이진 분류 결과를 보장
  • 실무 : 값이 0보다 크면 양성 클래스로 판단하며 도로 중심에서 멀어질수록 확신도가 높음

2) 가우시안 RBF 커널

  • 목적 : 샘플 간의 유사도를 측정해 비선형 관계를 모델링
  • 수식 :
  • 항의 의미 : 는 종 모양의 너비를 조절
  • 결론이 보장하는 것 : 무한 차원의 공간으로 매핑한 것과 같은 효과 (Mercer의 정리)
  • 실무 해석 : 가 커지면 종 모양이 좁아져 각 샘플의 영향 범위가 작아지고 결정 경계가 불규칙해짐 과대적합 위험

6. 선택 사유

단순히 데이터를 나누는 선을 찾는 것보다 결정 경계와 샘플 사이의 거리를 최대화하는 라지마진 방식이 새로운 샘플에 대해 더 우수한 일반화 성능을 보이기 때문

7. 알고리즘

1) LinearSVC

  • 정의 : 선형 SVM 분류를 위해 최적화된 고속 알고리즘 구현체
  • 입력/출력/목적함수 : 스케일링된 데이터 입력/ 클래스 레이블 출력 / 힌지 손실 최적화
  • 학습 절차 : liblinear 라이브러리를 사용해 선형 최적화 문제를 해결
  • 하이퍼파라미터: C, 값이 작을수록 마진이 넓어지지만 위반 사례를 더 많이 허용함
  • 장단점: 훈련 샘플 수(m)와 특성 수(n)에 대해 대략 으로 선형적으로 증가하여 빠르지만 커널 트릭을 지원하지 않음
  • 비교: SVC(kernel=“linear”)보다 훨씬 빠르지만 대규모 데이터셋에서는 SGDClassifier가 유리할 수 있음

8. 예시

  • 가우시안 RBF 변환 : 예: 인 샘플에 랜드마크 , 에 대해 일때
    • 신규 특성
    • 신규 특성
    • 결과적으로 1차원 데이터가 2차원 공간의 (0.74, 0.30)으로 변환되어 선형 분리가 가능

9. 알고가기

1) 특성 스케일링 무시

SVM은 샘플 간 거리를 측정함 스케일링을 하지 않으면 작은 수치 범위를 가진 특성이 무시되는 결과를 초래

2) 하드 마진의 이상치 민감섬

데이터에 이상치가 하나만 섞여도 하드 마진은 해를 찾지 못하거나 일반화 서능이 매우 낮은 모델을 만듦

3) 커널화된 모델의 대규모 데이터 취약성

SVC 클래스(커널 지원)는 훈련 샘플 수가 십만 개를 넘어가면 속도가 매우 느려짐

10. 적용 시나리오

  • 복잡하지만 중소 규모인 데이터셋 분류 가우시안 RBF커널을 사용해 고차원의 비선형 결정 경계를 찾아야 할 때 매우 강력
  • 텍스트나 DNA 데이터 분류 특정 데이터 구조에 특화된 문자열 커널 등을 사용해 전문적인 분류 작업을 수행할 때 유리

📝 마무리 퀴즈

Q1) SVM에서 마진을 결정하며 도로 경계에 걸쳐 있는 샘플들의 명칭은?

서포트 벡터 (Support Vectors).

Q2) C 하이퍼파라미터를 줄이면 마진의 폭은 어떻게 변하는가?

더 넓어진다 (규제가 강해짐).

Q3) 비선형 문제를 해결하기 위해 실제 특성을 계산하지 않고 수학적 연산만으로 차원을 높인 효과를 내는 기법은?

커널 트릭 (Kernel Trick).


6장 결정 트리

1. 요약

결정 트리는 분류와 회귀, 다출력 작업이 모두 가능한 다재다능한 알고리즘으로, 랜덤 포레스트의 기본 구성 요소

2. 핵심 요약

  • 결정 트리는 데이터를 예측하기 위한 일련의 질문(노드)을 계층적으로 쌓아 올린 구조임
  • 데이터 전처리(특성 스케일링 등)가 거의 필요 없는 모델의 결정 과정을 쉽게 이해할 수 있는 화이트 박스 모델
  • Scikit-Learn은 CART 알고리즘을 사용하여 불순도를 최소화하는 방향으로 이진 트리를 생성함
  • 훈련 데이터에 민감하여 과대적합(Overfitting)되기 쉽고, 데이터의 회전이나 작은 변화에도 취약한 불안정성을 가짐

3. 핵심 개념

1)지니 불순도 (Gini Impurity)

한 노드의 모든 샘플이 같은 클래스에 속하면 0이 되며, 노드가 얼마나 섞여 있는지를 측정하는 지표

2) 엔트로피 (Entropy)

정보 이론에서 유래한 개념으로, 지니 불순도와 유사하게 데이터셋의 무질서도를 측정하며 값이 0일 때 가장 순수

3)CART 알고리즘

탐욕적(Greedy) 방식으로 현재 단계에서 최적의 분할을 찾아 이진 트리를 성장시키는 알고리즘

4) 비매개변수 모델 (Nonparametric Model)

모델의 파라미터 수가 훈련 전 결정되지 않아 데이터에 유연하게 맞출 수 있지만, 규제가 없으면 과대적합 위험이 큼

4. 관계도

루트 노드(최초 분할) 중간 노드(추가 질문) 리프 노드(최종 클래스 또는 수치 예측) 적용: 분류 또는 회귀

5. 중요 수식 및 정의

1) 지니 불순도 (Gi)

  • 목적 특정 노드 내의 클래스 혼합도를 측정하여 분할 품질을 평가
  • 기호 : - : (스칼라), (해당 노드 내 클래스 샘플의 비율).
  • 항의 의미 : 1에서 각 클래스 비율의 제곱 합을 뺀 값
  • 결론이 보장하는 것 : 모든 샘플이 한 클래스라면 0을 출력하여 노드의 순수성을 확인해 줌
  • 실무 해석 : 이 값이 커질수록 여러 클래스가 섞여 있어 예측의 불확실성이 높음을 의미

2) 수식 2: 분류를 위한 CART 비용 함수

  • 목적 : 최적의 특성 k와 임곗값 tk​를 찾아 데이터를 두 개의 부분 집합으로 나눔
  • 기호 : (비용 값), (샘플 수), (지니 불순도).
  • 항의 의미 : 왼쪽/오른쪽 자식 노드의 불순도를 샘플 수에 따라 가중 평균한 값
  • 결론이 보장하는 것 : 현재 단계에서 가중치 합 불순도가 가장 낮은 분할을 보장
  • 실무 : 알고리즘이 지금 당장 가장 깨끗하게 데이터를 나눌 수 있는 기준을 선택

6. 선택 사유

  • 화이트 박스(White Box) 선택 : 신경망 같은 블랙 박스 모델과 달리, 결정 트리는 예측 과정을 사람이 직접 따라갈 수 있어 해석 가능성이 매우 높기 때문
  • 스케일링 생략 : 특성들이 서로 수직인 결정 경계를 가지기 때문에, 데이터의 스케일에 상관없이 분할 기준을 정할 수 있어 전처리 수고를 덜어줌

7. 알고리즘

1) CART (Classification And Regression Tree) 알고리즘

  • 정의 : 최적의 분할을 재귀적으로 수행하여 이진 트리를 만드는 탐욕적 학습 알고리즘
  • 입력/출력/목적함수 : 훈련 데이터 / 이진 결정 트리 / 불순도 가중 평균 최소화
  • 학습 절차 : 특성 k와 임곗값 tk​ 탐색 데이터 분할 최대 깊이 도달 혹은 불순도 감소 불가 시까지 반복
  • 하이퍼파라미터 : max_depth (성장 제한), min_samples_split (분할을 위한 최소 샘플 수)
  • 장단점 : 예측 속도가 매우 빠름() / 훈련 데이터의 작은 변화에도 트리가 완전히 바뀔 수 있음
  • 비교 : ID3와 같은 다른 알고리즘은 둘 이상의 자식을 가질 수 있으나, CART는 오직 이진 트리만 생성함

8. 예시

  • 붓꽃 분류 예제 : 꽃잎 길이 5cm, 너비 1.5cm인 꽃이 들어왔을 때
    • 루트 노드: 길이 ≤ 2.45cm? 아니요 (오른쪽으로 이동)
    • 중간 노드: 너비 ≤ 1.75cm? 예 (왼쪽으로 이동)
    • 최종 리프: Versicolor (확률 49/54 ≈ 90.7%)로 예측

9. 알고가기

1) 스케일링이 필요 없으니 모든 전처리에 강하다?

스케일링에는 강하지만 데이터의 회전(Rotation)에는 매우 민감하여 축에 수직인 경계만 만듦

2) 항상 최적의 트리를 찾아준다?

CART는 탐욕적 알고리즘이므로 현재의 최적만 찾을 뿐, 전체적으로 가장 좋은 트리를 찾는 것은 NP-완전(NP-Complete) 문제

3) 오차가 0이면 완벽한 모델이다?

규제 없이 훈련된 트리가 오차 0을 보인다면 이는 100% 과대적합된 상태임

10. 적용 시나리오

  • 설명이 필요한 의료 진단 환자에게 왜 이 진단이 내려졌는지 각 단계별(혈압, 혈당 등) 근거를 명확히 제시해야 할 때 유리
  • 대규모 데이터의 빠른 예측 훈련은 다소 걸려도 서비스 시점에서 아주 빠르게 결과를 내놓아야 할 때 (O(log2​(m))의 예측 속도) 효과적

📝마무리 퀴즈

Q1) 균형 잡힌 m개의 샘플을 가진 트리를 탐색할 때의 예측 시간 복잡도는?

O(log2​(m))

Q2) 결정 트리의 과대적합을 방지하기 위해 줄여야 하는 하이퍼파라미터는?

max_depth (혹은 max_*로 시작하는 파라미터들)

Q3) 결정 트리가 훈련 데이터의 작은 변화에도 결과가 크게 바뀌는 성질을 무엇이라 하는가?

불안정성 (Instability)


7장 앙상블 학습과 랜덤 포레스트

1. 요약

앙상블 학습은 여러 예측기(분류기나 회귀 모델)의 예측을 결합함으로써 개별 예측기보다 더 나은 성능을 얻는 기법

2. 핵심 요약

앙상블 학습은 대중의 지혜를 머신러닝에 적용한 것 무작위로 선택된 다수의 예측기를 결합하여 강한 학습기를 만듦 훈련 세트에서 중복을 허용하여 샘플링하는 배깅(Bagging)은 모델의 분산을 줄이는 데 매우 효과적 랜덤 포레스트는 이러한 배깅 기법을 결정 트리에 적용한 대표적인 사례 부스팅(Boosting)과 스태킹(Stacking)과 같은 고급 기법을 통해 성능을 더욱 극대화 가능

3. 핵심 개념

1) 앙상블(Ensemble)

일련의 예측기들을 모은 그룹을 의미 이를 통해 더 강력한 모델을 구축

2) 배깅(Bagging)

훈련 세트에서 중복을 허용하여 무작위로 샘플링하는 방식(Bootstrap Aggregating)

3) OOB(Out-of-Bag) 평가

배깅에서 샘플링되지 않은 나머지 약 37%의 데이터를 검증 세트처럼 활용하는 평가 기법

4)부스팅(Boosting)

앞선 모델의 오차를 보완하기 위해 여러 예측기를 순차적으로 결합하는 방법

5) 스태킹(Stacking)

여러 예측기의 예측 결과 자체를 입력 데이터로 삼아 최종 예측을 수행하는 ‘블렌더’ 모델을 학습시키는 기법

4. 관계도

개별 모델들(다양한 알고리즘/데이터 샘플) 예측 결과 집계(다수결/평균) 앙상블 모델 (분산 감소) 높은 일반화 성능 확보

5. 중요 수식 및 정의

1) 아다부스트 예측기 가중치 (αj​)

  • 목적 : 앙상블 내에서 각 개별 예측기가 가지는 영향력을 결정
  • 수식 :
  • 항의 의미 : 는 학습률, 번째 예측기의 가중치 적용 에러율입니다.
  • 결론 : 정확도가 높은 예측기일수록 가중치(αj​)가 커지며, 무작위 예측(에러율 0.5)인 경우 가중치는 0에 가까워짐
  • 실무 : 이 값이 커질수록 해당 모델은 앙상블의 최종 결정에서 더 큰 목소리를 냄

2) 배깅의 앙상블 예측 (ypred​)

  • 목적 : 여러 개의 개별 예측기 결과로부터 최종 결론 도출
  • 직관 : 분류에서는 최빈값(다수결), 회귀에서는 평균을 사용
  • 결론 : 개별 예측기는 편향이 높을 수 있으나, 집계를 통해 분산이 줄어들어 전체 오차는 낮아짐

6. 선택 사유

  • 다양성 확보 : 각 예측기가 서로 독립적이고 오차의 상관관계가 낮을 때 앙상블 성능이 극대화되기 때문 이를 위해 서로 다른 알고리즘을 쓰거나, 데이터 샘플을 무작위로 섞어서 학습시키는 전략을 취함

7장 알고리즘

1) 랜덤 포레스트 (Random Forest)

  • 정의 : 결정 트리의 앙상블로, 배깅과 특성 무작위 선택을 통해 학습하는 강력한 모델
  • 입력/출력/목적 : 데이터 입력 / 다수결 혹은 평균 출력 / 일반화 오차 최소화
  • 학습 절차 : 훈련 세트 중복 추출 각 노드 분할 시 무작위 특성 후보 중 최적 분할 선택 트리 성장 반복 결과 집계
  • 하이퍼파라미터 : n_estimators(트리 개수), max_samples(샘플링 크기) 등
  • 장단점 : 성능이 매우 뛰어나고 특성 중요도를 쉽게 파악할 수 있지만, 순차적 방식(부스팅)보다 일부 복잡한 패턴 학습은 느릴 수 있음
  • 비교 : 일반 배깅 분류기보다 더 무작위성을 부여하여 분산을 낮추고 더 훌륭한 모델을 만듦

8장 예시

  • 동전 던지기 비유 앞면이 나올 확률이 51%인 편향된 동전을 1000번 던지면 앞면이 다수가 될 확률은 약 75%로 상승함 10000번 던지면 이 확률은 97% 이상이 됨 이처럼 성능이 낮은 약한 학습기도 많이 모으면 강한 학습기가 됨

9장 알고가기

1) 병렬성 오해

아다부스트나 그래디언트 부스팅은 이전 모델의 결과를 바탕으로 다음 모델을 훈련하므로 병렬화가 불가능하여 배깅보다 훈련 속도가 느림

2) 상관관계의 덫

모든 분류기가 동일한 데이터로 훈련되면 유사한 오차를 범하게 되어 앙상블의 이점이 사라짐

3) 소프트 투표의 전제

모든 분류기가 predict_proba() 메서드를 지원하여 확률을 추정할 수 있어야만 소프트 투표를 사용할 수 있음

10장 적용 시나리오

  • 복잡한 정형 데이터 분석 랜덤 포레스트를 사용하여 수많은 특성 중 어떤 것이 예측에 가장 중요한지 순위를 매기고 싶을 때 유리
  • 우승을 노리는 경연 대회 여러 우수한 모델을 결합하여 성능을 한계까지 끌어올리고자 할 때 스태킹(Stacking)을 적용

📝 마무리 퀴즈

Q1) 배깅에서 한 번도 샘플링되지 않아 검증용으로 쓸 수 있는 데이터를 무엇이라 하는가?

OOB(Out-of-Bag) 샘플

Q2) 아다부스트와 그래디언트 부스팅의 근본적인 차이점은?

아다부스트는 샘플의 가중치를 조정하고, 그래디언트 부스팅은 이전 모델의 잔차(Residual error)를 학습한다

Q3) 특성 무작위성까지 극대화하여 속도가 매우 빠른 랜덤 포레스트 변종은?

엑스트라 트리 (Extra-Trees)


8장 차원 축소(Dimensionality Reduction)

1. 요약

차원 축소는 데이터의 정보 손실을 최소화하면서 특성(차원) 수를 줄여 훈련 속도를 높이고 복잡한 고차원 데이터를 시각화하는 기술

2장 핵심 요약

많은 특성을 가진 고차원 데이터는 공간이 희소해져 모델이 과대적합되기 쉬운 차원의 저주 문제를 유발함 이를 해결하기 위해 데이터가 놓인 하위 공간에 투영(Projection)하거나 꼬인 구조를 펼치는 매니폴드 학습(Manifold Learning)을 수행함 대표적인 PCA는 분산을 최대화하는 축을 찾아 데이터를 변환하며 커널 PCA나 LLE는 비선형적인 구조를 효과적으로 다룸 차원 축소는 시스템을 복잡하게 만들 수 있으므로 항상 원본 데이터로 먼저 시도한 후 훈련이 너무 느릴 때 고려해야함

3. 핵심 개념

1) 차원의 저주 (The Curse of Dimensionality)

고차원 공간에서 데이터 포인트 사이의 거리가 매우 멀어져 훈련 세트가 희소해지고 과대적합 위험이 극도로 커지는 현상

2) 투영 (Projection)

모든 훈련 인스턴스가 실제로는 훨씬 낮은 차원의 하위 공간 내에(또는 근처에) 놓여 있다는 전제하에 고차원 데이터를 저차원 공간으로 수직 투영하는 방식

3) 매니폴드 학습 (Manifold Learning)

고차원 공간에 꼬여 있는 저차원 매니폴드(예: 스위스 롤)를 모델링하여 데이터의 본질적인 구조를 유지하며 차원을 축소하는 기법

4) 주성분 (Principal Components)

데이터의 분산을 가장 잘 보존하며 서로 직교하는 축들의 집합

4. 관계도

고차원 데이터 인지 차원의 저주 직면 차원 축소 전략 선택 (투영 vs 매니폴드 학습) 알고리즘 실행 (PCA, LLE 등) 저차원 데이터 도출 적용: 훈련 속도 향상 / 데이터 시각화

5. 중요 수식및 정의

1) 주성분 행렬

  • 목적 : 데이터의 분산을 최대로 보존하는 단위 벡터들을 찾기 위함임
  • 기호 : , 은 특성 수입니다.
  • 항의 의미 : c1​,c2​ 등은 각각 첫 번째, 두 번째 주성분을 나타내는 단위 벡터임
  • 유도: 특이값 분해(SVD)를 통해 행렬 로 분해하여 얻음
  • 결론이 보장하는 것 : 각 주성분은 서로 직교하며 데이터의 분산 크기 순서대로 정렬됨
  • 실무 : 하위 d개의 주성분을 선택해 데이터를 투영하면 정보 손실을 최소화하면서 차원을 줄일 수 있음

2) 저차원 투영

  • 목적 : 고차원 행렬 차원 공간 로 변환함
  • 수식 :
  • 기호 : , , 결과
  • 결론이 보장하는 것 : 상위 d개의 주성분을 사용한 최적의 선형 투영 결과를 제공
  • 실무 : 이 행렬 곱셈을 통해 수만 개의 특성을 수십 개로 압축하여 훈련 효율을 극대화

6. 선택 사유

  • 분산 최대화 선택 : 투영된 데이터의 분산이 클수록 원본 데이터의 정보를 더 많이 보존하고 있을 가능성이 높기 때문
  • 데이터 시각화 : 인간은 3차원까지만 시각화할 수 있으므로 고차원 데이터를 2D/3D로 압축하여 데이터의 패턴(클러스터 등)을 직관적으로 이해하기 위함임

7. 알고리즘

1)PCA (주성분 분석)

  • 정의 : 데이터의 분산을 최대화하는 축을 주성분으로 하여 데이터를 투영하는 선형 차원 축소 기법
  • 입력/출력/목적함수 : 고차원 데이터 / d차원 압축 데이터 / 재구성 오차 최소화(혹은 분산 최대화)
  • 학습 절차 : 데이터 원점 중심 맞추기 SVD로 주성분 추출 상위 d개 성분 선택 투영 수행
  • 하이퍼파라미터 : n_components (차원 수 혹은 보존할 분산 비율)
  • 장단점 : 빠르고 효율적이지만 비선형 구조(매니폴드)에서는 데이터가 겹치는 등 성능이 낮아짐
  • 예제 재현 : MNIST 특성을 784개에서 154개로 줄여도 분산의 95%를 보존할 수 있음
  • 다른 방법과 비교 : 점진적 PCA(IPCA)는 온라인 학습이나 메모리 부족 시 유리하며, 커널 PCA는 비선형 축소에 유리

2) LLE (지역 선형 임베딩)

  • 정의 : 각 샘플과 그 이웃 간의 관계를 측정하고 이를 저차원에서도 최대한 보존하는 비선형 차원 축소 기법
  • 학습 절차 : k개의 최근접 이웃 식별 이웃들의 선형 조합으로 가중치 W 학습 저차원 매핑
  • 장단점 : 복잡하게 꼬인 매니폴드를 펼치는 데 매우 강력하나, 대규모 데이터셋에는 속도가 느림()

8. 예시

  • MNIST 압축 784개 픽셀 특성을 가진 이미지를 95% 분산을 유지하도록 PCA 처리하면 약 154개 특성만 남음 데이터 크기는 20% 미만으로 줄어들지만 숫자를 식별하는 정보는 거의 유지됨

9. 알고가기

1) 차원 축소는 항상 성능을 높인다?

정보를 잃게 되므로 성능은 대개 약간 나빠짐 주된 목적은 훈련 속도 향상이지 정확도 개선이 아님

2. 비선형 매니폴드에서의 투영 오류

스위스 롤 데이터를 단순 투영하면 데이터의 층이 겹쳐져 정보를 상실하므로 매니폴드 학습(LLE 등)을 써야함

3. 데이터 센터링(Centering) 무시

직접 PCA를 구현할 때 평균을 빼서 원점에 맞추지 않으면 올바른 주성분을 찾을 수 없음 (Scikit-Learn은 자동 처리)

10. 적용 시나리오

  • 대규모 이미지 인식 서비스 고해상도 이미지 데이터의 훈련 시간을 단축하기 위해 PCA로 특성을 압축하여 분류기에 투입함
  • 클러스터링 통찰 분석 수백 개의 특징을 가진 고객 데이터를 t-SNE로 2차원 축소하여 시각화함으로써 새로운 잠재 고객 군집을 발견함

📝 마무리 퀴즈

Q1) PCA가 데이터를 투영할 축을 선택하는 주요 기준은 무엇인가?

분산 최대화 (혹은 평균 제곱 거리 최소화)

Q2) 데이터셋이 너무 커서 메모리에 한 번에 담을 수 없을 때 유용한 PCA 방식은?

점진적 PCA (Incremental PCA/IPCA)

Q3) 차원을 축소했을 때 원본 데이터와 재구성 데이터 사이의 거리를 무엇이라 하는가?

재구성 오차 (Reconstruction Error)


9장 비지도 학습 기법

1. 요약

레이블이 없는 데이터에서 구조를 찾아내는 군집(Clustering), 이상치 탐지(Anomaly Detection), 밀도 추정(Density Estimation) 기법을 학습함

2. 핵심 요약

  • 대부분의 실제 데이터는 레이블이 없으며 비지도 학습은 이를 활용해 데이터 분석, 전처리, 준지도 학습 등을 수행함
  • 군집화의 대표격인 K-평균은 센트로이드 기반의 빠른 알고리즘이며 DBSCAN은 밀도 기반으로 복잡한 모양의 클러스터를 찾음
  • 가우시안 혼합 모델(GMM)은 데이터를 확률적으로 모델링하여 군집화와 정교한 이상치 탐지를 가능케함
  • 최적의 모델 선택을 위해 실루엣 점수나 BIC/AIC 지표를 활용함

3. 핵심 개념

1) 군집 (Clustering)

유사한 인스턴스를 하나의 클러스터로 모으는 작업

2)센트로이드 (Centroid)

클러스터의 중심점을 의미하며 K-평균 알고리즘에서 각 인스턴스의 소속을 결정하는 기준이됨

3) 실루엣 계수 (Silhouette Coefficient)

인스턴스가 자신의 클러스터에 얼마나 잘 맞고 다른 클러스터와는 얼마나 떨어져 있는지 측정하는 지표(-1~1 사이)임

4) 가우시안 혼합 모델 (GMM)

데이터가 여러 개의 가우시안 분포(정규 분포)가 혼합된 프로세스에서 생성되었다고 가정하는 모델임

4. 관계도

데이터 로드 군집화(K-Means/DBSCAN)로 구조 파악 밀도 추정(GMM) 수행 이상치 탐지로 데이터 정제 적용: 전처리/준지도 학습

5. 중요 수식및 정의

1) 실루엣 계수

  • 목적 : 개별 인스턴스가 클러스터링된 품질을 평가함
  • 수식 :
  • 항의 의미 : a는 내부 클러스터 평균 거리, b는 가장 가까운 외부 클러스터까지의 평균 거리
  • 결론 보장 : 1에 가까우면 완벽한 군집, 0은 경계선, -1은 잘못된 군집을 의미
  • 실무 : 이 값이 낮아지면 인스턴스가 다른 그룹과 겹쳐 있어 분류가 모호하다는 증거임

2) 베이즈 정보 기준 (BIC)

  • 목적 : 모델의 성능과 복잡도(파라미터 수) 사이의 균형을 맞추어 최적의 클러스터 개수를 선정함
  • 수식 :
  • 기호 : m은 샘플 수, p는 모델이 학습한 파라미터 수, L은 가능도 함수의 최댓값
  • 결론 보장 : 파라미터가 늘어날 때 페널티를 주어 과대적합을 방지함
  • 실무 : BIC 값이 가장 낮은 모델이 통계적으로 가장 적절한 클러스터 개수를 가졌다고 판단함

6. 선택 사유

  • 비지도 학습 선택 동기 : 수천 수만 개의 데이터를 일일이 사람이 레이블링하는 것은 비용이 너무 많이 들기 때문에 알고리즘이 스스로 데이터의 숨겨진 패턴(ex. 구매 패턴이 비슷한 고객군)을 찾아내게 하여 효율을 극대화하기 위함임

7. 알고리즘

1) K-평균 (K-Means)

  • 정의 : k개의 중심점을 반복적으로 업데이트하여 평균 제곱 거리를 최소화하는 군집 알고리즘
  • 입력/출력/목적함수 : 데이터 X, 클러스터 수 k / 클러스터 레이블 / 관성(Inertia) 최소화
  • 학습 절차 : 랜덤 센트로이드 설정 샘플 레이블 할당 센트로이드 평균값으로 업데이트 수렴 시까지 반복
  • 하이퍼파라미터 : n_clusters (가장 중요)
  • 장단점 : 매우 빠르고 직관적이지만(장점), 클러스터의 크기나 밀도가 다르면 잘 작동하지 않음(단점)
  • 비교 : Mini-batch K-Means는 훨씬 빠르지만 관성 성능은 약간 떨어짐

2) DBSCAN

  • 정의 : 일정 거리(eps) 내에 최소 샘플 수(min_samples)가 모여 있는 밀집 지역을 클러스터로 연결하는 알고리즘
  • 특징 : 클러스터 개수를 미리 정할 필요가 없으며 이상치 탐지 기능을 기본으로 제공함
  • 언제 망하는가 : 클러스터 간의 밀도가 크게 다를 경우 모든 클러스터를 제대로 잡기 어려움

8. 예시

  • K-Means 전처리 숫자 이미지(Digits) 데이터셋에서 로지스틱 회귀만 썼을 때 정확도는 96.7%였으나 K-Means로 이미지를 50개의 클러스터 거리 데이터로 변환 후 학습하자 정확도가 98.2%로 향상됨

9. 알고가기

1) 관성(Inertia) 맹신

k가 늘어날수록 관성은 무조건 줄어들므로 최솟값을 찾는 것이 아니라 감소폭이 꺾이는 팔꿈치 지점을 찾아야 함

2) 스케일링 무시

K-평균은 거리를 측정하므로 특성 스케일링을 하지 않으면 클러스터가 찌그러져 성능이 매우 나빠짐

3) DBSCAN의 예측 능력

DBSCAN은 predict() 메서드가 없어 새로운 샘플을 분류하려면 KNN 같은 분류기를 별도로 학습시켜야 함

10. 적용 시나리오

  • 고객 세그먼테이션 쇼핑몰 이용 고객을 구매 금액과 빈도에 따라 군집화하여 VIP, 잠재 고객 등 그룹별 맞춤 마케팅 수행
  • 제조 공정 이상 탐지 GMM을 이용해 정상 제품 데이터의 밀도를 학습한 후 밀도가 극도로 낮은 샘플이 들어오면 불량품으로 자동 분류

📝 마무리 퀴즈

Q1) K-Means에서 각 샘플과 가장 가까운 센트로이드 사이의 거리 제곱 합을 무엇이라 하는가?

관성 (Inertia)

Q2) 실루엣 계수가 0에 가깝다면 무엇을 의미하는가?

샘플이 클러스터의 경계선 근처에 위치함

Q3) GMM에서 클러스터의 모양을 결정하는 핵심 파라미터는?

공분산 행렬 (Σ)


10장 케라스를 사용한 인공 신경망 소개

1. 요약

인공 신경망(ANN)은 뇌의 구조에서 영감을 얻은 강력하고 확장 가능한 머신러닝 모델임 케라스(Keras) API를 통해 이를 효율적으로 구축하고 훈련하는 방법을 학습함

2. 핵심 요약

  • 생물학적 뉴런의 원리를 차용한 퍼셉트론에서 시작해 다층 퍼셉트론(MLP)과 역전파 알고리즘으로 발전한 ANN의 역사를 다룸
  • 케라스의 Sequential, Functional, Subclassing API를 사용하여 분류 및 회귀용 신경망을 설계하는 실무적 기법을 익힘
  • 모델의 성능을 모니터링하기 위한 콜백(Callbacks)과 시각화 도구인 텐서보드(TensorBoard) 활용법을 배움
  • 은닉층의 수, 뉴런 수, 학습률 등 하이퍼파라미터 튜닝을 통해 모델을 최적화하는 가이드라인을 제시함

3. 핵심 개념

1) 역전파 (Backpropagation)

신경망의 오차를 출력층에서 입력층 방향으로 전파하여 모든 가중치를 효율적으로 업데이트하는 알고리즘임

2) 활성화 함수 (Activation Function)

뉴런의 가중 합에 비선형성을 부여하여 모델이 복잡한 패턴을 학습할 수 있게 함(예: ReLU, Softmax)

3) Sequential API

순차적으로 층을 쌓는 가장 단순하고 일반적인 케라스 모델 구축 방식임

4) 하이퍼파라미터 튜닝

신경망의 구조(층수, 뉴런 수)와 훈련 파라미터(학습률, 배치 크기)를 조정하여 일반화 성능을 극대화하는 과정

4. 관계도

입력 데이터 입력층 은닉층 (활성화 함수 적용) 출력층 손실 함수 측정 역전파 (그래디언트 계산) 최적화 도구(가중치 수정) 반복 적용 최종 예측 모델

5. 중요 수식 및 정의

1) 완전 연결 층의 출력

  • 목적 : 층에 속한 모든 뉴런의 출력을 행렬 연산으로 한 번에 계산함
  • 수식 :
  • 기호 : X (입력 행렬, [샘플 수, 특성 수]), W (가중치 행렬), b (편향 벡터), ϕ (활성화 함수)
  • 항의 의미 : 입력값과 가중치를 곱하고 편향을 더한 뒤 비선형 활성화 함수를 통과시킴
  • 결론 보장 : 선형 결합의 한계를 극복하고 복잡한 함수 근사를 가능하게 함
  • 실무 : 가중치(W)가 커질수록 해당 입력 특성이 결과에 주는 영향력이 커짐

2) 소프트맥스 함수

  • 목적 : 다중 클래스 분류에서 각 클래스에 속할 확률을 계산함
  • 수식 :
  • 실무 : 출력값들을 0~1 사이로 정규화하며 모든 클래스의 확률 합을 1로 만듦

6. 선택 사유

  • ReLU 활성화 함수 선택 : 기존 시그모이드(Sigmoid) 함수는 입력값이 커지면 기울기가 0에 가까워져 학습이 멈추는 현상이 발생했으나, ReLU는 양수 구간에서 기울기가 일정하여 심층 신경망 학습을 가능하게 했기 때문임

7. 알고리즘

1) 다층 퍼셉트론 (MLP)

  • 정의 : 입력층, 하나 이상의 은닉층, 출력층으로 구성된 피드포워드 인공 신경망
  • 입력/출력/목적함수 : 수치형 데이터 입력 / 클래스 확률 혹은 수치 예측값 출력 / Cross-entropy 또는 MSE 최소화
  • 학습 절차 : 정방향 패스(예측) 오차 측정 역방향 패스(그래디언트 계산) 가중치 업데이트(경사 하강법)
  • 하이퍼파라미터 : 층의 개수(깊이), 뉴런 수(너비)
  • 장단점 : 복잡한 데이터 학습에 유리하지만 데이터가 많아야 하고 튜닝이 어려움
  • 문서 예제 : Fashion MNIST 이미지 분류 시 784개 입력을 받아 은닉층(300, 100 뉴런)을 거쳐 10개 클래스 확률 출력

8. 예시

  • Fashion MNIST 예측 :
    1. 28x28 픽셀 이미지를 784개 입력으로 변환
    2. 첫 번째 은닉층 가중치 매트릭스 크기는 784 x 300이며, 여기에 300개의 편향이 더해져 총 235,500개의 파라미터가 훈련됨

9. 알고가기

1) 가중치를 0으로 초기화

모든 가중치를 0으로 초기화하면 모든 뉴런이 동일하게 동작하여 역전파가 의미가 없어짐(랜덤 초기화 필수)

2) 비선형 활성화 함수 누락

은닉층 사이에 비선형 함수가 없으면 아무리 층을 깊게 쌓아도 단일 선형 모델과 수학적으로 동일해짐

3) 검증 세트 없이 훈련

훈련 오차만 보고 성능이 좋다고 판단하면 과대적합(Overfitting)을 놓치게 됨(학습 곡선 분석 필수)

10. 적용 시나리오

  • 이미지 분류: 수만 장의 상품 사진을 학습하여 자동으로 카테고리(티셔츠, 가방 등)를 분류할 때 유리함
  • 주택 가격 예측 : 면적, 위치 등 다수의 특성을 조합하여 연속적인 가격 수치를 도출해야 하는 회귀 작업에 사용함

📝 마무리 퀴즈

Q1) 신경망 훈련 시 오차 기울기를 출력에서 입력 방향으로 계산하는 알고리즘은?

역전파 (Backpropagation)

Q2) 다중 클래스 분류의 마지막 층에서 확률의 합이 1이 되도록 만드는 함수는?

소프트맥스 (Softmax)

Q3) 모델 구조가 정적이어서 저장과 공유가 쉽지만 유연성이 낮은 케라스 API는?

Sequential API (또는 Functional API 포함)


11장 심층 신경망 훈련하기

1. 한 줄 요약

심층 신경망 훈련 시 발생하는 그래디언트 소실/폭주, 느린 속도, 과대적합 문제를 해결하기 위해 초기화 기법, 정규화, 고속 최적화 도구 및 규제 전략을 활용함

2. 핵심 요약

심층 신경망은 층이 깊어질수록 그래디언트가 불안정해지는 문제를 겪으므로 He 초기화ELU/SELU 같은 활성화 함수를 통해 이를 완화함 배치 정규화는 층의 입력을 표준화하여 학습 속도를 높이고 안정성을 제공하며 전이 학습은 이미 훈련된 모델의 층을 재사용하여 적은 데이터로도 높은 성능을 내게 도움 Adam과 같은 고속 최적화 도구와 드롭아웃 규제는 훈련 시간을 단축하고 과대적합을 방지하는 핵심 요소임

3. 핵심 개념

1) He 초기화

ReLU 및 그 변종 활성화 함수에 최적화된 가중치 초기화 기법으로 분산을 ​으로 설정함

2) 배치 정규화(Batch Normalization)

훈련 중 각 층의 출력을 제로 센터링하고 정규화하여 그래디언트 소실 문제를 해결

3) 전이 학습(Transfer Learning)

유사한 작업의 프리트레인된 하위 층을 재사용하여 학습 데이터 요구량과 시간을 줄이는 방식

4) Adam 최적화

모멘텀 최적화와 RMSProp의 아이디어를 결합하여 적응적 학습률을 사용하는 효율적인 최적화 알고리즘임

5) 드롭아웃(Dropout)

매 훈련 스텝마다 뉴런을 무작위로 비활성화하여 신경망이 특정 뉴런에 의존하지 않게 만드는 강력한 규제 기법임

4. 관계도

불안정한 그래디언트 인지 적절한 초기화/활성화 함수 선택 배치 정규화 적용 전이 학습 여부 검토 고속 최적화 도구(Adam 등) 선택 드롭아웃으로 과대적합 방지 최종 모델 완성

5. 중요 수식 및 정의

1) He 초기화 분산

  • 목적 : ReLU 활성화 함수 사용 시 신호의 분산을 일정하게 유지하여 소실/폭주 방지
  • 수식 :
  • 기호 : ​은 층의 입력 뉴런 수(스칼라)
  • 결론 보장 : 심층 신경망의 하위 층까지 그래디언트가 효과적으로 전달되도록 보장
  • 실무 : 가중치가 너무 작아져 신호가 사라지는 것을 막아 훈련을 가능하게 함

2) ELU 활성화 함수

  • 목적 : ReLU의 장점을 살리면서 ‘죽은 ReLU’ 문제를 해결하고 평균 출력을 0에 가깝게 만듦
  • 수식 :
  • 항의 의미 : α는 z가 큰 음수일 때 수렴할 값을 결정(보통 1)
  • 결론 보장 : 모든 지점에서 도함수가 정의되어 Gradient Descent 속도 향상
  • 실무 : ReLU보다 훈련이 빠르고 성능이 좋으나 실행 시 연산 비용이 약간 더 높음

6. 선택 사유

  • 배치 정규화 선택 : 가중치 초기화가 아무리 좋아도 훈련 중 파라미터가 변하면 하위 층의 작은 변화가 상위 층에서 증폭되는 ‘내부 공변량 변화’ 문제가 발생하기 때문에 이를 강제로 표준화하여 학습의 안정성을 확보하고자 했음
  • 전이 학습 선택 : 인간이 새로운 것을 배울 때 백지 상태에서 시작하지 않고 기존 지식을 활용하듯 신경망도 하위 층에서 이미 학습한 일반적인 특징(선, 곡선 등)을 재사용하는 것이 효율적이기 때문

7. 알고리즘

1) Adam 최적화 (Adaptive Moment Estimation)

  • 정의 : 지난 그래디언트의 지수 평균(모멘텀)과 제곱 평균(RMSProp)을 모두 추적하여 학습률을 조정하는 알고리즘
  • 입력/출력 : 손실 함수의 그래디언트 / 업데이트된 가중치
  • 학습 절차 :
    1. 모멘텀 추정치 업데이트
    2. 스케일 추정치 업데이트
    3. 편향 보정 수행
    4. 가중치 업데이트
  • 하이퍼파라미터 : (모멘텀 감쇠, 기본 0.9), (스케일 감쇠, 기본 0.999), (학습률, 기본 0.001)
  • 장단점 : 튜닝이 거의 필요 없을 정도로 잘 작동함(장점) 일부 데이터셋에서 일반화 성능이 NAG보다 떨어질 수 있음(단점)
  • 예제 : Keras에서 optimizer="adam"으로 간단히 호출 가능

8. 예시

  • 전이 학습 사례 : 8개 클래스(샌들, 셔츠 제외)로 훈련된 모델 A를 사용해 단 200개의 데이터만 있는 샌들/셔츠 분류 작업 B를 수행한 결과, 정확도가 **97.2%**에서 **99.25%**로 상승함

9. 알고가기

1) 모든 층을 한꺼번에 동결 해제

전이 학습 시 새로운 출력층을 먼저 훈련하지 않고 모든 층의 동결을 풀면 무작위 초기화된 출력층의 큰 오차가 재사용된 층의 유용한 가중치를 파괴함

2) SELU 사용 시 데이터 표준화 누락

SELU는 입력이 평균 0, 표준편차 1일 때만 자기 정규화(Self-normalization) 효과가 발생함

3) 드롭아웃을 테스트 시에도 켬

드롭아웃은 오직 훈련 중에만 사용해야 함 테스트 시에는 모든 뉴런을 사용하되 가중치에 (1-p)를 곱해 보정해야 합니다(Keras가 자동 처리)

10. 적용 시나리오

  • 소규모 데이터셋의 이미지 분류 : 유사한 대규모 데이터셋(ImageNet 등)에서 훈련된 모델의 하부 층을 가져와 전이 학습을 적용하면 매우 유리
  • 매우 깊은 신경망(DNN) 훈련 : 그래디언트 소실을 막기 위해 배치 정규화와 ELU 활성화 함수를 결합하여 안정적이고 빠른 학습을 구현함

📝 마무리 퀴즈

Q1) ReLU 계열 함수 사용 시 추천되는 가중치 초기화 기법은?

He 초기화

Q2) 과거 그래디언트의 지수 감쇠 평균을 사용하여 가속도를 내는 최적화 방식은?

모멘텀 최적화 (Momentum Optimization)

Q3) 훈련을 멈추지 않고도 테스트 시점의 불확실성을 측정할 수 있는 드롭아웃 활용 기법은?

MC 드롭아웃 (Monte-Carlo Dropout)


12장 텐서플로를 사용한 사용자 정의 모델과 훈련

1. 요약

텐서플로의 저수준 Python API를 활용하여 표준적인 기능을 넘어선 사용자 정의 손실 함수, 층, 모델을 구축하고 역전파와 훈련 과정을 세밀하게 제어하는 방법을 학습함

2. 핵심 요약

텐서플로는 넘파이와 유사한 텐서 연산을 지원하면서도 GPU 가속과 자동 미분(Autodiff) 기능을 제공하는 강력한 라이브러리임 사용자는 Keras의 표준 클래스를 상속받아 복잡한 수식의 손실 함수나 층을 직접 정의할 수 있으며 tf.GradientTape를 통해 수동으로 훈련 루프를 설계할 수 있음 또한 @tf.function 데코레이터를 사용하여 파이썬 코드를 최적화된 연산 그래프로 변환함으로써 실행 속도를 극대화할 수 있음

3. 핵심 개념

1) 텐서(Tensors)

넘파이의 ndarray와 유사하지만 GPU 가속이 가능한 다차원 배열

2) 사용자 정의 구성 요소(Custom Components)

Keras의 기본 제공 기능 외에 특정 문제 해결을 위해 직접 정의한 손실 함수, 지표, 층, 모델 등을 의미함

3) 자동 미분(Autodiff)

tf.GradientTape 컨텍스트를 사용하여 복잡한 함수의 그래디언트를 효율적이고 정확하게 계산하는 기술임

4) 오토그래프와 트레이싱(Autograph & Tracing)

파이썬의 제어문(if, for 등)을 분석하여 텐서플로 그래프 연산으로 변환하고 최적화하는 과정임

4. 관계도

텐서 연산 기초 사용자 정의 손실/층 정의 자동 미분으로 그래디언트 계산 사용자 정의 훈련 루프 구축 TF 함수로 성능 최적화

5. 중요 수식 및 정의

1) 후버 손실(Huber Loss) 함수

  • 목적 : 이상치(Outlier)에 너무 민감하지 않으면서도 작은 오차에서는 정밀하게 수렴하는 손실 계산
  • 수식 : 오차()가 임계값()보다 작으면 , 크면 .
  • 항의 의미 : δ(델타)는 이상치로 판단할 기준점
  • 결론이 보장하는 것 : MSE의 장점(중심부 수렴)과 MAE의 장점(외곽 이상치 저항력)을 모두 제공
  • 실무 : 임계값이 커질수록 모델은 이상치에 더 민감하게 반응하여 일반화 성능이 변할 수 있음

2) 사용자 정의 층의 출력

  • 수식 :
  • 기호/차원 : X (입력 행렬, (샘플, 특성)), W (가중치), b (편향), ϕ (활성화 함수)
  • 실무 : 가중치 W의 값들이 커질수록 모델의 복잡도가 증가하며, 규제가 필요한 시점을 파악하는 척도가 됨

6. 선택 사유

  • 사용자 정의 루프 선택 이유 : fit() 메서드는 단일 옵티마이저만 사용 가능하지만, “Wide & Deep” 아키텍처처럼 각 경로마다 다른 옵티마이저를 적용해야 하는 특수한 상황을 해결하기 위해 선택함
  • TF 함수 사용 동기 : 파이썬의 느린 실행 속도를 극복하고 텐서플로가 연산 그래프를 분석하여 독립적인 연산을 병렬로 실행하거나 사용하지 않는 노드를 제거(pruning)하여 효율을 높이기 위함임

7. 알고리즘

1) 사용자 정의 훈련 루프 (Custom Training Loop)

  • 정의 : Keras의 fit() 메서드 대신 훈련 과정을 직접 코딩하여 세밀하게 제어하는 루프
  • 입력/출력 : 훈련 데이터 배치 / 업데이트된 모델 파라미터
  • 학습 절차 : 미니배치 샘플링 GradientTape 내에서 예측 및 손실 계산 변수별 그래디언트 추출 옵티마이저로 가중치 업데이트 (선택 시) 가중치 제한 적용
  • 하이퍼파라미터와 영향 : 에포크 수, 배치 크기 등. 직접 관리하므로 더 세밀한 튜닝 가능
  • 장단점 : 완전한 통제가 가능하지만 코드 유지보수가 어렵고 에러 발생 확률이 높음

8. 예시

  • 자동 미분 예시 : 함수에서 지점의 그래디언트
    • 에 대한 미분 :
    • 에 대한 미분 :
    • 텐서플로 GradientTape는 이를 정확히 [36.0, 10.0]으로 출력함

9. 알고가기

1) 자동 타입 변환 오해

텐서플로는 float32float64를 더할 때 자동으로 변환하지 않고 에러를 발생시킴 반드시 tf.cast()를 써야함

2) TF 함수 내 외부 라이브러리 사용

@tf.function 내부에서 numpyprint()를 사용하면 그래프에 포함되지 않고 추적(tracing) 단계에서만 한 번 실행되는 실수를 자주함

3) 변수 생성 위치

TF 함수 내부에서 매번 새로운 tf.Variable을 생성하면 에러가 발생하므로 첫 호출 시에만 생성하거나 외부에서 정의해야함

10. 적용 시나리오

  • 최신 논문 아키텍처 구현 : Keras에 아직 구현되지 않은 특수한 형태의 손실 함수나 규제 층을 직접 만들어야 할 때 유리함
  • 복잡한 훈련 전략 : 모델의 하단부와 상단부에 서로 다른 학습률이나 최적화 알고리즘을 적용해야 하는 다중 옵티마이저 과제에 사용

📝 마무리 퀴즈

Q1) 텐서플로에서 가중치와 같이 훈련 중 수정 가능한 데이터를 담는 객체는?

tf.Variable

Q2) GradientTape는 기본적으로 한 번 호출 후 지워진다. 여러 번 미분을 호출하려면 어떤 옵션을 써야 하는가?

persistent=True

Q3) 파이썬의 for, if 구문을 텐서플로 그래프로 변환해주는 기술의 이름은?

오토그래프(Autograph)


13장 텐서플로로 데이터 적재와 전처리하기

1. 요약

메모리에 담기 어려운 대규모 데이터를 효율적으로 적재하고 신경망 훈련에 적합한 형태로 변환하는 고성능 데이터 파이프라인(Data API) 구축 기법을 학습함

2. 핵심 요약

텐서플로의 Data API는 tf.data.Dataset을 중심으로 데이터 변환 과정을 체이닝하여 멀티스레딩 및 프리페칭(prefetching)을 지원함 대규모 데이터는 이진 포맷인 TFRecord로 저장하여 읽기 속도를 최적화하며 Features API를 통해 범주형 데이터를 원-핫 인코딩이나 임베딩으로 변환함 또한 TF Transform을 활용하여 훈련과 배포 단계 간의 전처리 로직 불일치를 방지할 수 있음

3. 핵심 개념

1) 데이터셋(tf.data.Dataset)

Data API의 핵심 객체로, 데이터 아이템의 시퀀스를 나타내며 지연 계산(lazy evaluation) 방식으로 데이터를 처리함

2) TFRecord

직렬화된 프로토콜 버퍼(Example 등)를 담는 텐서플로 전용 이진 레코드 포맷으로 대용량 데이터 읽기 성능이 뛰어남

3) 프리페칭(Prefetching)

모델이 현재 배치를 훈련하는 동안 CPU가 미리 다음 배치를 준비하도록 병렬화하여 GPU 활용도를 높이는 기법임

4) 임베딩(Embedding)

대규모 범주형 데이터를 의미론적 유사성이 반영된 저차원 밀집 벡터로 변환하는 기술임

4. 관계도

파일 경로 데이터셋(list_files) 데이터 읽기(interleave) 셔플링(shuffle) 전처리 적용(map) 배치 생성(batch) 성능 최적화(prefetch) 모델 학습 및 추론

5. 중요 수식 및 정의

1) 셔플링 버퍼(Shuffling Buffer) 동작 로직

  • 수식 : dataset.shuffle(buffer_size=N)
  • 직관 :
    • 목적 : 데이터 입력 순서에 따른 편향을 제거하여 모델의 일반화 성능을 높임
    • 기호/차원 : N은 버퍼에 담길 샘플 수입니다. 데이터셋 전체 크기(m)보다 충분히 커야 효과적임
    • 유도 : 원본에서 N개를 뽑아 버퍼를 채움 요청 시 버퍼에서 하나를 무작위 추출 빈자리를 새 데이터로 보충하는 과정을 반복
    • 결론 : 버퍼 크기가 클수록 무작위성이 강화되지만 메모리 사용량도 함께 증가함
    • 실무 : 버퍼 크기가 전체 데이터셋보다 너무 작으면 데이터가 국소적으로만 섞여 샘플링 편향이 발생할 수 있음
  • 예시 : [0, 1, ..., 9] 데이터에서 buffer_size=5로 설정 시 처음 5개(0~4) 중 하나가 랜덤하게 첫 배치의 요소로 선택됨
  • 흔한 실수 : dataset.shuffle() 메서드는 원본을 수정하지 않음 결과를 변수에 다시 할당하지 않으면 셔플링이 적용되지 않음

2) 임베딩 층(Embedding Layer) 파라미터

  • 수식 : Total Parameters = Vocabulary Size × Embedding Dimension
  • 직관 :
    • 목적 : 수만 개의 범주를 희소한 원-핫 벡터 대신 조밀한 수치 벡터로 표현하여 학습 효율을 높임
    • 기호 : Vocabulary Size는 고유 카테고리 수, Embedding Dimension은 학습할 벡터의 차원 수
    • 결론 : 학습을 통해 의미가 비슷한 범주(ex. 사과와 배)는 임베딩 공간에서 가깝게 배치됨
    • 실무 : 카테고리가 50개 이상일 때 원-핫 인코딩보다 유리함 차원이 너무 낮으면 정보가 손실되고 너무 높으면 과대적합됨
  • 예시 : 5만 개의 단어를 300차원으로 임베딩하면 50000×300=15000000개의 학습 가능한 가중치가 생성됨
  • 흔한 실수 : 카테고리 수가 10개 미만인 경우에는 임베딩보다 단순 원-핫 인코딩이 더 나은 성능을 보이는 경우가 많음

6. 선택 사유

  • TFRecord 선택 : CSV는 텍스트 기반이라 읽기/파싱 속도가 느리고 이미지 등 복잡한 구조를 담기 어렵기 때문에 기계가 가장 빠르게 처리할 수 있는 이진 직렬화 포맷을 표준으로 채택
  • Prefetching 선택 : GPU가 연산을 마칠 때마다 다음 데이터를 로드하느라 노는 시간(Idle time)을 없애기 위해 훈련과 데이터 준비를 병렬화함

7. 알고리즘

1) CSV 데이터 로더 (csv_reader_dataset)

  • 정의 : 여러 CSV 파일로부터 병렬로 데이터를 읽어 셔플링, 전처리, 배치를 수행하는 파이프라인 함수
  • 입력/출력 : 파일 경로 리스트 / 전처리된 배치 데이터(X, y)
  • 학습 절차 : list_files로 목록 생성 interleave로 파일별 병렬 읽기 shuffle map으로 preprocess 함수 적용 batch prefetch
  • 하이퍼파라미터 : cycle_length(동시 읽기 파일 수), num_parallel_calls(멀티스레딩)
  • 장단점 : 메모리를 절약하며 대용량 처리가 가능하지만 CSV 파싱에 따른 CPU 오버헤드가 발생함
  • 문서 예제 : 캘리포니아 주택 데이터를 20개의 CSV로 나누어 병렬 적재 시 성능 향상을 보임
  • 다른 방법 비교 : from_tensor_slices는 전체 데이터가 메모리에 올라가야 하므로 대규모 데이터에는 부적합함

8. 예시

  • 배치 변환 예제 : X = [0, 1, ..., 9] 텐서에 repeat(3).batch(7)를 적용하면 배치는 , , , , (남은 것) 순으로 출력됨

9. 알고가기

1) 데이터셋 메서드의 부수 효과

dataset.map() 등은 원본을 바꾸지 않고 새 데이터셋을 반환함 이를 변수에 할당하지 않는 실수를 자주 합니다

2) 셔플링 버퍼 크기 부족

데이터셋이 수백만 개인데 버퍼를 100으로 설정하면 사실상 데이터가 거의 섞이지 않아 모델 성능이 저하됨

3) 훈련/서빙 왜곡(Training/Serving Skew)

훈련 시에만 복잡한 전처리를 적용하고 서비스 시에 동일하게 구현하지 못하면 모델 성능이 급락함 이를 위해 TF Transform 활용이 권장됨

10. 적용 시나리오

  • 대규모 이미지 분류 : 수백만 장의 고해상도 이미지를 TFRecord로 저장하고 interleaveprefetch를 사용하여 GPU 활용도를 100% 가깝게 유지
  • 사용자 추천 엔진 : 수십만 명의 사용자 ID를 embedding_column으로 처리하여 비슷한 취향의 사용자들을 공간상 가깝게 배치하도록 유도함

📝 마무리 퀴즈

Q1) 훈련 알고리즘이 한 배치를 처리하는 동안 다음 배치를 미리 준비하는 메서드는?

prefetch()

Q2) TFRecord 파일에 저장하기 위해 데이터를 이진 형태로 직렬화하는 표준 프로토콜 버퍼는?

tf.train.Example

Q3) 카테고리 수가 너무 많을 때 사용하는 저차원 밀집 벡터 방식은?

임베딩(Embedding)


14장 합성곱 신경망을 사용한 컴퓨터 비전

1. 요약

합성곱 신경망(CNN)은 시각 피질의 구조에서 영감을 얻어 부분적인 수용장과 가중치 공유를 통해 이미지의 공간적 계층 구조를 효율적으로 학습하는 모델임

2. 핵심 요약

CNN은 합성곱 층(Convolutional layer)을 통해 국부적인 특징을 추출하고 풀링 층(Pooling layer)으로 데이터를 축소하여 이동 불변성을 확보함 층을 깊게 쌓을수록 저수준 특징에서 고수준 특징(모양, 물체 등)으로 조립해 나감 현대적 구조인 ResNet은 잔차 학습(Residual learning)을 통해 100층 이상의 깊은 망을 훈련하며 YOLO 등은 실시간 객체 탐지를 가능하게함

3. 핵심 개념

1) 합성곱 층 (Convolutional Layer)

입력의 일부분(수용장)에만 연결되어 필터를 적용함으로써 공간적 패턴을 찾아내는 핵심 계층임

2) 풀링 층 (Pooling Layer)

입력 데이터를 요약(Subsampling)하여 계산량을 줄이고 모델이 미세한 변화에 둔감하게(불변성) 만드는 층임

3) 잔차 유닛 (Residual Unit)

입력값을 출력값에 더해주는 건너뛰기 연결(Skip connection)을 통해 그래디언트 소실 문제를 해결하고 층을 깊게 쌓게 도움

4) 객체 탐지 (Object Detection)

이미지 내 여러 물체의 클래스를 분류함과 동시에 그 위치를 경계 상자(Bounding box)로 예측하는 작업임

4. 관계도

입력 이미지 합성곱 층(특징 추출) 풀링 층(차원 축소) 심층 구조(ResNet/Inception 등) 전역 평균 풀링(특징 요약) 밀집 층(최종 분류/회귀)

5. 중요 수식 및 정의

1) 합성곱 층의 뉴런 출력 계산

  • 수식 :
  • 목적 : 특정 필터를 이미지의 국부 영역에 적용하여 특징 맵(Feature map)의 활성화 값을 계산
  • 기호 : 는 출력 행/열, 는 현재 특징 맵 인덱스, 는 필터 높이/너비, 는 입력 값
  • 항의 의미 : 입력값()에 가중치()를 곱하고 편향()을 더함 는 스트라이드()를 고려한 입력 위치
  • 직관 : 손전등(필터)으로 이미지를 훑으며 특정 모양(선, 곡선 등)이 있는지 점수를 매기는 과정임 즉 점수가 높으면 해당 특징이 존재함을 의미
  • 예시 : 3x3 필터가 이미지의 왼쪽 상단을 훑을 때 필터 모양과 이미지 모양이 일치할수록 큰 양수 값을 출력
  • 흔한 실수 : 스트라이드와 패딩 설정을 잘못하면 출력 크기가 예상보다 작아져 이미지 가장자리의 정보를 잃을 수 있음
  • 결론 보장 : 가중치 공유를 통해 파라미터 수를 획기적으로 줄이면서도 이미지 어디서든 같은 특징을 찾을 수 있게 보장함
  • 실무 : 필터(k)의 수가 많아질수록 더 다양한 특징을 포착하지만 메모리 사용량도 비례해서 늘어남

6. 선택 사유

  • 가중치 공유 (Weight Sharing) : 이미지의 한 곳에서 배운 특징(ex. 수평선)을 다른 곳에서도 그대로 사용할 수 있으므로 일반적인 밀집 층보다 파라미터가 훨씬 적고 일반화 성능이 뛰어남
  • 최상단 밀집 층 대신 전역 평균 풀링 : 파라미터 수를 대폭 줄여 과대적합을 방지하고 추론 속도를 높이기 위해 현대 구조(GoogLeNet, ResNet 등)에서 채택됨

7. 알고리즘

1) ResNet (Residual Network)

  • 정의 : 건너뛰기 연결을 사용하여 깊은 층에서도 학습이 가능하게 만든 신경망 구조
  • 입력/출력 : 이미지 데이터 / 분류 결과
  • 학습 절차 : 잔차 유닛을 쌓아 초기 학습 시 정체 함수(Identity function)를 모델링하게 하여 훈련 속도를 높임
  • 하이퍼파라미터 : 유닛 반복 횟수, 필터 수
  • 장단점 : 100층 이상의 매우 깊은 망을 구성 가능(장점) / 모델 크기가 커질 수 있음(단점)
  • 비교 : 일반 CNN은 층이 깊어지면 그래디언트 소실로 학습이 안 되지만 ResNet은 이를 극복함

8. 예시

  • 특징 맵 크기 계산 : 입력 224x224, 필터 3x3, 스트라이드 2, SAME 패딩인 경우 : 출력 크기 = 224/2=112(올림 적용)

9. 알고가기

1) 큰 필터가 항상 좋다?

너무 큰 필터(ex. 5x5)보다는 3x3 필터를 여러 개 쌓는 것이 파라미터는 줄이면서 비선형성은 높여 더 효과적임

2) 풀링 층은 무조건 필수다?

풀링은 정보를 손실시키므로 최근 일부 모델은 스트라이드가 있는 합성곱 층으로 풀링을 대체하기도함

3) 분류와 세그멘테이션은 같다?

분류는 이미지 전체의 불변성을 원하지만 세그멘테이션은 각 픽셀의 위치 변화에 민감한 등변성(Equivariance)을 필요로함

10. 적용 시나리오

  • 공정 결함 자동 탐지 : 부품 사진을 CNN으로 학습하여 정상 제품과 불량품을 초고속으로 분류할 때 유리
  • 자율주행 차량의 도로 상황 인지 : YOLO나 SSD를 사용하여 보행자, 차량, 표지판을 실시간으로 탐지하고 위치를 파악함

📝 마무리 퀴즈

Q1) CNN에서 이미지 크기를 줄이면서 계산 부하를 감소시키는 층의 이름은?

풀링 층 (Pooling layer)

Q2) 층이 깊어져도 그래디언트가 잘 전달되도록 입력을 출력에 더해주는 연결 방식은?

건너뛰기 연결 (또는 지름길 연결, Skip connection)

Q3) 카테고리 분류가 아닌 픽셀 단위로 객체를 구분해내는 기술은?

의미론적 분할 (Semantic Segmentation)