Daily/Daily

[핸즈온 머신러닝] 1장 한눈에 보는 머신러닝 연습문제 풀이

비빔밥계란찜 2025. 4. 2. 13:21

 

 

Github :: rickiepark/handson-ml3: <핸즈온 머신러닝 3판>의 주피터 노트북 저장소

 

 

  • 혼자하는 머신러닝 Study 
  • 틀린 내용이 있을 수 있습니다.
  • 도움 많이 받은 책이라 맛보기로 블로그에 글 쓴 것

 

 

 

(문제)

더보기

(혼자 스스로 생각한 답변)

(답변 및 보충)

 

 

 

 

 

(1) 머신러닝을 어떻게 정의?

더보기

AI 하위 개념, 기계가 고유한 패턴을 찾아내서 학습하고 사용자가 원하는 결과를 도출해내는 것

  • 머신러닝은 데이터에서 학습하도록 컴퓨터를 프로그래밍하는 과학
  • 머신러닝은 명시적인 프로그래밍 없이 컴퓨터가 학습하는 능력을 갖추게 하는 연구 분야

 

(2) 머신러닝이 도움을 줄 수 있는 문제 유형 네 가지

더보기

분류, 예측, 데이터 분석, ... ?

  • 데이터 마이닝: 대용량의 데이터를 분석하여 숨겨진 패턴을 발견하는 것
  • 즉, 사람에게 insight 를 제공할 수 있다.
  • 명확한 해결책이 없는 문제, 수작업으로 만든 긴 규칙 리스트를 대체해야 하는 경우, 변화하는 환경에 적응하는 시스템을 만드는 경우

 

 

(3) 레이블된 훈련 세트란 무엇?

더보기

답이 정해져있는 학습 데이터

  • 각 sample 에 대해 원하는 정답(label)을 담고 있는 train set

 

 

 

(4) 가장 널리 사용되는 지도 학습 작업 두 가지는 무엇?

더보기

회귀, 분류

 

 

 

(5) 보편적인 비지도 학습 작업 네 가지

더보기

clustering, ...

비지도 학습 (unsupervised learning) 에서는 훈련 데이터에 label 이 없다.

 

  • 군집 (clustering): 각 그룹을 더 작은 그룹으로 세분화할 수 있다.
  • 시각화 (visualization): 레이블이 없는 대규모의 고차원 데이터를 넣으면 도식화가 가능한 2D나 3D 표현을 만들어준다. 이런 알고리즘은 가능한 한 구조를 그대로 유지하려 하므로 데이터가 어떻게 조직되어 있는지 이해할 수 있고 예상하지 못한 패턴을 발견할 수 있다. 
  • 차원 축소 (dimensionality reduction): 너무 많은 정보를 잃지 않으면서 데이터를 간소화하는 방법. 상관관계가 있는 여러 특성을 하나로 합친다. 이를 특성 추출 (feature extraction) 이라고 한다.
  • 연관 규칙 학습 (association rule learning): 대량의 데이터에서 특성간의 흥미로운 관계를 찾는다.

 

 

(6) 사전 정보가 없는 여러 지형에서 로봇을 걸어가게 하려면 어떤 종류의 머신러닝 알고리즘을 사용?

더보기

자기지도 학습..? 

  • 강화학습

강화 학습은 매우 다른 종류의 알고리즘이다. 여기서는 학습하는 시스템을 에이전트 (agent) 라고 부르며 환경 (environment) 을 관찰해서 행동 (action) 을 실행하고 그 결과로 보상 (reward) 또는 벌점 (penalty) 을 받는다. 시간이 지나면서 가장 큰 보상을 얻기 위해 정책 (policy) 이라고 부르는 최상의 전략을 스스로 학습한다. 정책은 주어진 상황에서 에이전트가 어떤 행동을 선택해야 할지 정의한다. 

 

 

(7) 고객을 여러 그룹으로 분할하려면 어떤 알고리즘

더보기
clustering
  • 그룹을 어떻게 정의할지 모른다면 비슷한 고객끼리 군집으로 나누기 위해 군집 알고리즘 (비지도 학습) 을 사용할 수 있다. 어떤 그룹이 있어야 할 지 안다면 분류 알고리즘 (지도 학습) 에 각 그룹에 대한 샘플을 주입한다.

 

 

(8) 스팸 감지의 문제는 지도 학습과 비지도 학습 중 어떤 문제 

더보기

지도 학습 중 분류 문제

 

 

 

(9) 온라인 학습 시스템

더보기

어.. 

하나의 데이터로 경사하강 하기?

  • 온라인 학습에서는 데이터를 순차적으로 한 개씩 또는 미니배치 (mini-batch) 라 부르는 작은 묶음 단위로 주입하여 시스템을 훈련시킨다. 
  • 매 학습 단계가 빠르고 비용이 적게 들어 시스템은 데이터가 도착하는 대로 즉시 학습할 수 있다.

 

 

 

(10) 외부 메모리 학습

더보기

모르겠다

  • out of core learning
  • 컴퓨터의 주메모리에 들어갈 수 없는 대용량의 데이터를 다룰 수 있다. 
  • 외부 메모리 학습 알고리즘은 데이터를 미니배치로 나누고 온라인 학습 기법을 사용해 학습한다. 
  • (근데 보통 오프라인으로 실행된다고 한다.)
  • 점진적 학습 (incremental learning)

 

 

 

(11) 예측을 하기 위해 유사도 측정에 의존하는 학습 알고리즘

더보기

clustering..

  • 어떻게 일반화 (generalization) 되는가에 따라 머신러닝 시스템을 분류할 수 있다.
  • 사례 기반 학습 / 모델 기반 학습
  • 사례 기반 학습: 시스템이 훈련 샘플을 기억함으로써 학습한다. 그리고 유사도 측정을 사용해 새로운 데이터와 학습한 샘플 (또는 학습한 샘플 중 일부) 을 비교하는 식으로 일반화한다.  

 

 

 

(12) 모델 파라미터와 학습 알고리즘의 하이퍼파라미터 사이에는 어떤 차이

더보기

모델은 오차를 줄이기 위해서 파라미터를 계속 조정하는데 (sample 에 따라서) 하이퍼파라미터는 학습 알고리즘 자체의 파라미터

  • 학습하는 동안 적용할 규제의 양은 하이퍼파라미터가 결정한다.
  • 하이퍼파라미터는 학습 알고리즘으로부터 영향을 받지 않으며, 훈련 전에 지정되고 훈련하는 동안에는 상수로 남아 있는다. 

 

 

 

(13) 모델 기반 알고리즘이 찾는 것은 무엇인가? 성공을 위해 이 알고리즘이 사용하는 가장 일반적인 전략은? 예측은 어떻게 만드는가? 

더보기

모델 파라미터의 최적값을 계속해서 찾는다. 새로운 sample 이 들어와도 모델이 잘 예측하려면 오차가 발생했을 때 가중치를 잘 업데이트 시켜줘야한다. 

  • 샘플로부터 일반화시키는 방법은 사례 기반 학습 말고 모델 기반 학습이 있는데, 샘플들의 모델을 만들어 예측에 사용하는 것이다. 
  • 새로운 샘플에 잘 일반화되기 위한 모델 파라미터의 최적값을 찾는다.
  • 일반적으로 훈련 데이터에서 시스템의 예측이 얼마나 나쁜지 측정하고 모델에 규제가 있다면 모델 복잡도에 대한 페널티를 더한 비용 함수를 최소화함으로써 시스템을 훈련시킨다.
  • 예측을 만들려면 학습 알고리즘이 찾은 파라미터를 사용하는 모델의 예측 함수에 새로운 샘플의 특성을 주입한다.

 

 

 

(14) 머신러닝의 주요 도전 과제?

더보기

과적합, 일반화 

  • 부족한 데이터, 낮은 데이터 품질, 대표성 없는 데이터, 무의미한 특성, 훈련 데이터에 과소적합된 과도하게 간단한 모델, 훈련 데이터에 과대적합된 과도하게 복잡한 모델 등

 

 

(15) 모델이 훈련 데이터에서의 성능은 좋지만 새로운 샘플에서의 일반화 성능이 나쁘다면 어떤 문제가 있는 건가요? 해결책 세 가지는 무엇인가?

더보기

학습 데이터가 부족하다, 학습 데이터 quality 문제

 

학습 데이터를 늘린다. 전처리 방법 점검, 데이터불균형이 문제면 oversampling 같은 기법 활용

  • 훈련 데이터에 과대적합되었을 가능성이 높다.
  • 더 많은 데이터 수집, 모델 단순화, 훈련 데이터 잡음 줄이기

 

 

 

(16) 테스트 세트가 무엇이고 왜 사용해야 하나?

더보기

모델이 학습이 잘 되었는지 test 해보기, 일반화 성능 평가

  • 실전에 배치되기 전에 모델이 새로운 샘플에 대해 만들 일반화 오차를 추정하기 위해 사용

 

(17) 검증 세트의 목적은 무엇인가?

더보기

모델 비교할 때 사용, 가장 좋은 모델 고를 때

  • 가장 좋은 모델을 고르고 하이퍼파라미터를 튜닝한다.

 

 

 

(18) 훈련-개발 세트가 무엇인가? 언제 필요하고 어떻게 사용해야 하나?

더보기

..? 개발 ..세트..?

  • 훈련-개발 세트는 (모델을 실전에 투입했을 때 사용될 데이터와 최대한 가까워야 하는) 검증, 테스트 세트에 사용되는 데이터와 훈련 세트 사이에 데이터 불일치 위험이 있을 때 사용
  • 훈련 세트의 일부에서 모델을 훈련하고 훈련-개발 세트와 검증 세트에서 평가한다.
  • 모델이 훈련 세트에서는 잘 작동하지만 훈련-개발 세트에서 나쁜 성능을 낸다면 아마도 훈련 세트에 과대적합되었을 가능성이 높다.
  • 훈련 세트와 훈련-개발 세트 양쪽에서 모두 잘 작동하지만 검증 세트에서 성능이 나쁘다면 훈련 데이터와 검증 및 테스트 데이터 사이에 불일치가 있을 가능성이 높다. 검증 및 테스트 데이터에 더 가깝게 되도록 훈련 데이터를 개선해야 한다.

 

 

 

(19) 테스트 세트를 사용해 하이퍼파라미터를 튜닝하면 어떤 문제가 생기나?

더보기

과적합

  • 과대적합될 위험이 있고 일반화 오차를 낙관적으로 측정

 

 

 

 

 

 

'Daily > Daily' 카테고리의 다른 글

AI Co-Scientist Challenge Korea  (1) 2026.01.19
[논문 읽는 법] How to read paper  (0) 2025.12.08
[빅데이터분석기사] 필기 및 실기 후기  (6) 2025.07.25