C.W.K.
Stream
Lesson 01 of 08 · published

Deep Learning 이 Classical ML 이길 때

~16 min · choice, tradeoffs, classical-ml

Level 0Curious
0 XP0/73 lessons0/11 achievements
0/120 XP to next level120 XP to go0% complete

한 단락의 결정

Deep learning 이 비용값 할 때: input 이 high-dimensional 하고 raw (pixel, waveform, text), 사람이 손으로 design 안 할 패턴에 예측 신호가 묻혀, label 된 data 많거나 도메인의 강한 pretrained backbone 있음. 하나라도 없으면 classical ML (gradient boosting, linear model, SVM) 이 보통 더 나은 engineering 선택.

물어볼 5 질문

  1. Data 가 강한 feature 있는 tabular? → Gradient boosting 이김.
  2. Input 이 raw 하고 high-dimensional? → Deep learning escalation justified.
  3. 관련 pretrained backbone 있어? → Transfer learning + small head, 거의 항상.
  4. Interpretability 또는 strict latency 요구가 binding? → Linear/tree model, 또는 distilled small network.
  5. 가장 단순한 baseline 점수가? → Capacity reach 전에 floor 설정.
팁: Junior engineer 가 default 로 deep learning escalate. Senior engineer 가 classical method plateau 하고 requirement 까지 gap 이 의미 있을 때 escalate. Seniority 가 patience 에 있어.

2026 년 정직한 계층

  • Tabular — XGBoost / LightGBM / CatBoost. 자주 neural network 이김, 항상 첫 시도.
  • Vision — Pretrained CNN/ViT + frozen backbone 또는 LoRA. 매우 큰 dataset 또는 special domain 에만 from scratch train.
  • Text — Pretrained transformer + LoRA / full fine-tune. High-volume retrieval 면 sentence-transformer + classifier.
  • Time series — Engineered feature 의 gradient boosting, 또는 transformer-based forecaster (TimesFM, Chronos) 가 많은 series 한 번에.
  • RL — Domain-specific, control 에 PPO + small network, general agent 에 transformer policy.
원칙: 올바른 model class 고르기가 그 class 안 올바른 hyperparameter 고르기보다 중요. 이 결정 맞으면 나머지 project 가 절반 비용에 돌아.

Code

A decision tree, in one screen·python
def pick_model_class(task):
    # Step 1: data shape
    if task.data == "tabular" and task.feature_count < 1000:
        return "gradient_boosting"  # XGBoost / LightGBM / CatBoost

    # Step 2: pretrained options
    if task.modality in {"vision", "text", "audio"}:
        if task.label_count < 10_000:
            return "frozen_pretrained_backbone + small_head"
        if task.label_count < 1_000_000:
            return "lora_or_partial_finetune"
        return "full_finetune_or_pretrain"

    # Step 3: latency / interpretability
    if task.latency_p99_ms < 10 or task.interpretability_required:
        return "linear_or_tree_model"

    return "deep_learning_with_baseline_check"  # always with a baseline

External links

Exercise

본인이 작업한 problem 3 개 마다, 어떤 model class 에 reach 할지 (이 quest 후) 와 왜인지 적어. 1 년 전에 골랐을 거랑 비교. Deep learning 이 잘못된 escalation 이었던 case 가 retrospect 에 있는지 봐.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.