AI 모델을 공부하거나 프로젝트에 적용하다 보면,
가장 자주 듣게 되는 두 단어: 머신러닝(Machine Learning) 과 딥러닝(Deep Learning).
둘 다 ‘데이터로부터 학습한다’는 공통점을 갖고 있지만, 그 방식은 꽤 다릅니다.
최근 저는 오렌지와 토마토 사진을 분류하는 프로젝트를 진행하면서,
머신러닝 기반 모델(KNN, SVM) 과 딥러닝 모델의 차이를 몸소 체감하게 됐습니다.
그 과정을 정리해 봅니다.
🔍 머신러닝 모델은 ‘사람이 만든 특징(feature)’에 기대는 방식
머신러닝 모델, 예를 들어 KNN이나 SVM은 스스로 이미지를 이해하진 못합니다.
대신, 사람이 만들어준 숫자 정보(= 피처 또는 특징)를 받아 그것을 바탕으로 분류합니다.
예시:
오렌지와 토마토 이미지를 HSV 색공간으로 변환한 뒤,
과일의 평균 색상값(BGR)을 구해서 아래와 같은 피처 벡터로 정리합니다.
pythonCopyEdit[120, 80, 200] # 토마토
[220, 180, 50] # 오렌지
이렇게 추출한 색상 벡터들을 SVM 모델에 넣고 학습시키면,
모델은 “이 정도 붉으면 토마토”, “이 정도 주황이면 오렌지”라고 판단하게 됩니다.
머신러닝의 특징:
- 사람이 직접 피처를 정의해야 함 (예: 색상, 면적, 경계의 둥근 정도 등)
- 피처가 좋으면 적은 데이터로도 성능이 좋고 빠름
- 하지만 색이 비슷한 과일(예: 사과 vs 토마토)은 잘 구분하지 못함
🧠 딥러닝 모델은 ‘특징 추출’부터 스스로 학습하는 방식
딥러닝은 이미지를 일일이 쪼개서 색상 벡터로 바꾸지 않습니다.
그냥 raw 이미지 그대로를 모델에 넣습니다.
그리고 모델이 스스로 판단합니다:
“아, 전체적으로 붉고 테두리가 둥글고, 배경은 회색이고… 토마토 같네.”
CNN(합성곱 신경망) 같은 딥러닝 모델은
초기 레이어에서 색상, 경계, 질감 등을 자동으로 감지하고,
깊은 레이어에서는 형태와 의미를 파악하는 방식입니다.
딥러닝의 특징:
- 피처를 사람이 만들지 않아도 됨 (end-to-end 학습)
- 복잡한 데이터 구조도 다룰 수 있음 (예: 얼굴, 손글씨, 자연 이미지)
- 학습 시간은 길고 데이터도 많이 필요하지만, 성능은 매우 강력함
📊 실제 비교 요약
항목 | 머신러닝 (ML) | 딥러닝 (DL) |
---|---|---|
특징(feature) 추출 | 사람이 직접 정의 | 모델이 스스로 학습 |
입력 | 수치화된 벡터 | 이미지, 음성 등 원본 데이터 |
학습 방식 | 비교적 간단한 수학 모델 | 다층 신경망 (Neural Network) |
데이터 요구량 | 적은 편 | 매우 많음 |
예시 모델 | KNN, SVM, Decision Tree 등 | CNN, ResNet, YOLO, ViT 등 |
실행 속도 | 빠름 | 느림 (GPU 필요) |
설명 가능성 | 비교적 쉬움 | 내부 구조 해석 어려움 |
✅ 결론: 선택은 목적과 자원에 따라
상황 | 추천 방식 |
---|---|
빠르게 실험하고 싶을 때 | 머신러닝 |
이미지의 차이가 색상, 면적, 간단한 특징일 때 | 머신러닝 |
복잡한 패턴을 다루거나 범용 모델을 원할 때 | 딥러닝 |
데이터가 충분하고 시간이 허용될 때 | 딥러닝 |
💡 덧붙임: 저는 이렇게 했습니다
이번 오렌지-토마토 프로젝트에서는
- HSV 마스크 + 평균 색상 기반 피처 → KNN/SVM
- 합성 이미지 제작 → 탐지 실험
을 통해 머신러닝 기반 분류기를 만들었고,
정확도는 **색상 차이가 명확한 경우 거의 100%**에 가까웠습니다.
하지만 “색이 비슷한 과일은 어떻게 할까?”라는 질문에서
딥러닝의 필요성을 다시금 느꼈습니다.
🙋🏻♂️ 마무리
머신러닝은 사람의 판단과 지식을 모델에 반영하는 방식이고,
딥러닝은 판단조차 모델에게 맡기는 방식입니다.
각자의 장단점을 이해하고 목적에 맞게 선택하는 게 중요합니다.