본문 바로가기
C.W.K.
Stream
Lesson 01 of 10 · published

수작업 특징의 한계

~22 min · features, representation, history

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

학습된 표현이 등장하기 전

딥러닝 이전에는 머신러닝 작업의 대부분이 특징 공학이었어. 이미지에서는 경계선 탐지기(Sobel, Canny), HOG, SIFT를 썼고, 텍스트에서는 bag-of-words, TF-IDF, 구문 분석 트리를 썼어. 오디오에서는 MFCC를 사용했지. 도메인마다 장인 수준의 전문성이 필요했고, 특징을 설계하는 일 자체가 핵심 업무였어.

효과는 있었지만 한계도 분명했어. 새 도메인에 들어갈 때마다 새로운 전문가가 필요했고, 얼굴 인식용 특징은 X-ray에 통하지 않았어. 영어 뉴스용 특징도 코드나 한국어에는 맞지 않았고. 병목은 알고리즘이 아니라 사람이 데이터를 얼마나 잘 묘사할 수 있느냐였어. 그 과정이 매번 한 달씩 잡아먹었지.

원칙: 수작업 특징에 의존하는 파이프라인을 선택하면 인건비가 계속 들어가. 새 도메인을 시작할 때마다 특징 설계 회의를 처음부터 다시 해야 하거든.

딥러닝이 바꾼 것

딥러닝은 이 관계를 뒤집었어. 사람이 특징을 설계하는 대신, 신경망이 원시 데이터에서 직접 표현을 학습해. 앞쪽 층은 단순한 패턴(edge, 색 덩어리, character n-gram)을 배우고, 뒤쪽 층은 그 패턴을 조합해 눈, 문장, 멜로디처럼 더 풍부한 개념을 만들어. 같은 아키텍처도 데이터만 바꾸면 고양이 인식기에서 CT 스캔 종양 검출기로 바뀔 수 있어.

이식성이 비용을 정당화하는 핵심이야. 문제마다 도메인 전문가를 따로 고용하는 대신, 데이터와 손실 함수, 평가 방식을 제대로 설계할 수 있는 사람이 있으면 돼. 같은 학습 루프에 다른 데이터를 넣으면 비전 시스템, 번역 시스템, 코드 완성 시스템을 만들 수 있어.

이게 퀘스트 전체에 왜 중요한가

텐서, 층, 활성화, 옵티마이저, 정규화, 어텐션은 모두 대규모에서도 표현 학습을 안정적으로 수행하기 위한 도구야. 길을 잃으면 이 레슨으로 돌아와. 딥러닝은 표현 학습이 어려운 부분일 때만 비용을 들일 가치가 있어. 필요한 특징을 오후 한나절에 손으로 만들 수 있다면, 보통은 전통적 머신러닝이 더 나아.

Code

수작업 특징과 학습된 특징 비교(개요)·python
# Classical ML: human writes the features.
import numpy as np
from sklearn.linear_model import LogisticRegression

def hand_crafted_features(image: np.ndarray) -> np.ndarray:
    edges = sobel(image)
    color_hist = histogram(image, bins=16)
    hog = histogram_of_gradients(image)
    return np.concatenate([edges.mean(axis=(0, 1)), color_hist, hog])

X = np.stack([hand_crafted_features(img) for img in dataset])
clf = LogisticRegression().fit(X, y)

# Deep learning: the network discovers the features.
import torch, torch.nn as nn
model = nn.Sequential(
    nn.Conv2d(3, 32, 3, padding=1), nn.ReLU(),
    nn.Conv2d(32, 64, 3, padding=1), nn.ReLU(),
    nn.AdaptiveAvgPool2d(1), nn.Flatten(),
    nn.Linear(64, num_classes),
)
# Train end to end on the raw images, no feature design.

External links

Exercise

본인이 잘 아는 도메인(의료 영상, 리테일 로그, 음악, 위성) 하나를 골라봐. 전통적 모델에는 필요하지만 손으로 설계하고 싶지 않은 특징 3개를 적고, 학습된 표현이 왜 그 특징을 자동으로 찾을 수 있는지 설명해.

Progress

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

댓글 0

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

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