본문 바로가기
IT 탐구생활

머신러닝, 딥러닝 공부 순서, 무엇부터 시작할까?

by 데이널 2024. 11. 26.

지난 10년이상 데이터 사이언스 분야에서 일하면서 느낀 점은 많은 분들이 시작은 하지만, 중도에 포기하시는 경우가 많다는 것입니다.
 
2023년 한국데이터산업진흥원의 조사에 따르면, 데이터 분석 공부를 시작한 사람 중 78%가 6개월 이내에 중단한다고 합니다. 저도 이 수치를 보고 놀랬는데요.
 
이 글에서는 제가 실제로 겪은 시행착오와 극복 방법을 공유하면서, 여러분이 지속 가능한 방식으로 머신러닝을 마스터할 수 있는 구체적인 방법을 알려드리겠습니다.
 

머신러닝, 딥러닝 공부 순서, 무엇부터 시작할까?
머신러닝, 딥러닝 공부 순서, 무엇부터 시작할까?

 

나는 어떻게 시작했나?

10년 전 나는 데이터 컨설턴트였습니다. 당시 빅데이터가 화두가 되면서 머신러닝에 관심을 갖게 되었지만, 선형대수학과 미적분학 지식이 부족해 시작이 쉽지 않았습니다. 통계학 교재를 펼치면 수식 때문에 머리가 아팠고, 파이썬 코드는 이해할 수 있었지만 그 뒤에 숨은 원리는 알 수 없었습니다.
 
처음에는 Coursera의 Andrew Ng 교수님의 강의로 시작했습니다. 강의는 좋았지만, 실제 프로젝트에 적용하려니 막막했죠. 그래서 저는 전략을 바꿨습니다. "완벽한 이해"가 아닌 "실용적인 구현"에 초점을 맞추기로 한 것입니다.
 
먼저 작은 프로젝트를 시작하고, 필요한 이론을 그때그때 이해하는 방식을 택했습니다. 이 방식은 경험과 이론이 결합하면서 훨씬 이해가 빨리 되더군요. 
 

머신러닝 입문자가 겪는 일반적인 어려움

지난 10년간 30명 이상의 주니어 데이터 사이언티스트를 멘토링하면서 정리한 가장 일반적인 어려움들이 있습니다. 아래 표는 제가 멘토링했던 교육생들이 겪은 주요 어려움을 정리한 것입니다:
 

어려움 유형 비율 주요 원인
수학적 개념 이해 45%
선형대수, 미적분학 기초 부족
코딩 구현 30%
파이썬 프로그래밍 경험 부족
데이터 전처리 15%
실제 데이터의 복잡성 이해 부족
모델 선택 10%
다양한 알고리즘의 특성 이해 부족

 
위의 각 어려움을 극복하기 위한 학습 계획이 필요하다는 것을 알게됐죠. 아래 로드맵은 제가 실제 멘토링에서 사용하는 커리큘럼을 바탕으로 작성되었습니다.
 

효과적인 학습 로드맵

머신러닝 학습에서 가장 중요한 것은 순서입니다. 마치 집을 지을 때 기초공사가 중요하듯, 머신러닝도 탄탄한 기초가 필요합니다. 제가 제안하는 학습 순서는 다음과 같습니다.

1단계 (2-3개월)

처음 시작할 때는 파이썬 기초 부터 시작하는 것이 좋습니다. 우선 기본적인 데이터 분석 라이브러리에 대해 익숙해지면 파이썬으로 실습해 볼 수 있습니다. 

  • NumPy, Pandas 집중 학습
  • 실제 데이터셋으로 데이터 전처리 연습
  • 기초 통계 개념 학습

2단계 (3-4개월)

어느 정도 파이썬 코드가 익숙해 졌으면 머신러닝 기초 개념을 습득해야 합니다. 가장 기본이 되는 데이터 전처리부터 Linear Regression 등 주요 머신러닝 알고리즘을 아래 링크를 통해 하나하나 이해해 보세요. 

  • scikit-learn을 활용한 기본 알고리즘 실습
  • 교차 검증, 모델 평가 방법 학습
  • 실제 캐글 대회 참여

3단계 (4-6개월)

머신러닝 알고리즘을 개념을 이해했다면 이제 딥러닝에 대해 진도를 나가면 됩니다. 이 때는 딥러닝에 관련된 프레임워크와 선형대수 등의 수학 개념으로 심화 학습을 수행합니다. 

  • 딥러닝 기초 (TensorFlow/PyTorch)
  • 수학적 개념 깊이 있게 학습
  • 실전 프로젝트 수행

 

 피처 엔지니어링 
 데이터 전처리

차원 축소

Data Imputation

언더 샘플링(Under Sampling)

오버 샘플링(Over Sampling)

모델 조정 방법(Novelty Detection)
 
통계 분석지도 학습비지도 학습
상관관계(Correlation Analysis)

가설검정(T-test, ANOVA)

정규분포 사용 이유

P-value의 의미

왜도와 첨도

커널함수

카이제곱분포

박스플롯(Boxplox)

박스콕스 vs 여존슨 변환

최대평균 불일치

모수 vs 비모수 모델
선형 회귀(Linear Regression)

로지스틱 회귀(Logistic Regression)

K-NN(Nearest Neighbor)

의사결정나무(Decision Tree)

랜덤 포레스트(Random Forest)

Adaboost

GBM(Gradient Boosting)

XGBoost

LightGBM

CatBoost

나이브 베이즈(Naive Bayes)

서포트 벡터 머신(SVM)
PCA(주성분 분석)

t-SNE

특잇값 분해(SVD)

군집분석

K-means

DBSCAN

엘보우 vs 실루엣 기법



 평가 및 검증 
  과대적합(overfitting)

교차 검증(Cross-Validation)

회귀 모델 성능 평가

분류 모델 성능 평가
 

 

나만의 실천적 학습 방법

제가 발견한 가장 효과적인 학습 방법은 "프로젝트 중심 학습"입니다. 이론 공부만으로는 실제 문제 해결 능력을 키우기 어렵습니다. 제가 생각하는 구체적인 방법은 아래와 같습니다. 

1. 하루 루틴 (2시간)- 30분: 새로운 개념 학습
- 1시간: 코드 구현 연습
- 30분: 전날 배운 내용 복습
2. 주간 프로젝트 진행 (10시간)- 실제 데이터로 문제 해결
- 깃허브에 코드 정리
- 블로그 작성으로 학습 내용 정리
3. 월간 스터디 그룹 활동- 다른 학습자들과 경험 공유
- 프로젝트 결과 발표
- 피드백 수렴과 개선

 

마치며

10년의 여정을 돌아보면, 가장 아쉬운 점은 초기에 너무 완벽주의적이었다는 것입니다. "모든 것을 완벽하게 이해한 후에 실전에 들어가겠다"는 생각이 오히려 발목을 잡았습니다. 지금 시작하시는 분들께 조언드리고 싶은 것은, 작은 것부터 시작하라는 것입니다.
 
이 글이 여러분의 머신러닝 학습 여정에 작은 도움이 되었기를 바랍니다. 질문이나 의견이 있으시다면 댓글로 남겨주세요. 함께 성장하는 즐거움을 나누고 싶습니다.
 

머신러닝(기계 학습) 로드맵