1장 - 머신러닝이란 무엇인가
1장. 머신러닝이란 무엇인가
CS229는 스탠퍼드에서 오랜 세월 동안 이어져 온 강좌다. 이 강좌를 통해 여러 세대의 스탠퍼드 학생들이 머신러닝 전문가가 되었고, 여러분이 오늘 사용하는 수많은 제품과 서비스, 스타트업을 만들어냈다. — Andrew Ng
1.1 왜 머신러닝인가
"AI는 새로운 전기다."
약 100년 전 전기의 등장이 모든 주요 산업을 변혁했듯이, 머신러닝과 AI, 딥러닝은 세상을 바꿀 것이다. 머신러닝 기술에 대한 수요는 폭발적으로 증가하고 있으며, 산업계와 학계를 가리지 않고 적용 기회가 넘쳐난다.
- 학계: 영문학과 교수들이 역사를 더 잘 이해하기 위해 학습 알고리즘을 적용하고 있다.
- 법률: 변호사들이 법률 문서를 처리하기 위해 머신러닝을 활용한다.
- 산업계: 제조, 헬스케어, 물류 등 전통적으로 테크 기업이 아닌 회사들도 머신러닝을 적용하려 하고 있다.
20년 전 인터넷에 뛰어든 사람들이 훌륭한 커리어를 쌓았듯이, 지금이야말로 머신러닝에 뛰어들기 좋은 시점이다. 물류 회사에 가서 머신러닝을 적용할 흥미로운 방법을 찾을 수 있는 기회가 매우 높다. 아마 그 회사에는 아직 이 일을 하는 사람이 아무도 없을 것이다.
1.2 강좌 개요
CS229는 10주 동안 다섯 가지 주요 영역을 다룬다.
순서 |
주제 |
설명 |
|---|---|---|
1 |
지도 학습 |
입력 X와 레이블 Y가 주어졌을 때 X→Y 매핑을 학습 |
2 |
머신러닝 전략 (학습 이론) |
효과적인 ML 시스템 구축을 위한 체계적 엔지니어링 원칙 |
3 |
딥러닝 |
신경망의 기초와 훈련 방법 |
4 |
비지도 학습 |
레이블 없이 데이터에서 구조를 발견 |
5 |
강화 학습 |
보상 신호를 통해 최적 행동을 학습 |
선수 과목
- 기본 컴퓨터 과학: Big-O 표기법, 큐, 스택, 이진 트리
- 확률과 통계: 확률 변수, 기댓값, 분산
- 선형대수: 행렬, 벡터, 행렬 곱셈 (고유벡터를 알면 더 좋다)
- 프로그래밍: Python / NumPy (이전까지는 MATLAB/Octave를 사용했으나 이번 해부터 Python으로 전환)
관련 강좌 비교
강좌 |
특징 |
|---|---|
CS229 |
가장 수학적. 넓은 범위의 ML 알고리즘 |
CS229a |
더 실용적/응용적. 수학 비중 낮음. Coursera 영상 기반 플립드 클래스룸 |
CS230 |
딥러닝에 집중. 실용적. 좁지만 깊은 범위 |
세 강좌는 내용 중복이 많지 않으므로, 모두 수강하면 서로 다른 것을 배울 수 있다.
1.3 지도 학습 (Supervised Learning)
지도 학습의 핵심 아이디어는 간단하다. 훈련 과정에서 입력 X와 레이블 Y를 동시에 제공하고, 학습 알고리즘이 새로운 X가 주어졌을 때 적절한 Y를 예측하는 매핑을 찾도록 하는 것이다.
회귀 문제 (Regression)
주택 가격 예측을 예로 들자.
- X축: 주택 면적 (제곱피트)
- Y축: 주택 가격
데이터셋이 주어지면, 직선(선형 회귀)이나 이차 함수(다항 회귀)를 피팅하여 새 주택의 가격을 예측할 수 있다. Y값이 연속적이므로 이를 회귀 문제라고 부른다.
분류 문제 (Classification)
유방암 종양 진단을 예로 들자.
- X축: 종양 크기
- Y축: 악성(1) 또는 양성(0)
Y가 이산적인 값을 취하므로 이를 분류 문제라고 부른다. 출력이 2개가 아니라 K개의 이산값이어도 (예: 5가지 종류의 암) 분류 문제다.
다차원 특성 (Multi-dimensional Features)
실제 응용에서는 입력 X가 하나의 숫자가 아니라 다차원 벡터인 경우가 대부분이다. 유방암 진단의 경우 종양 크기뿐 아니라 세포 덩어리 두께, 세포 크기의 균일성, 세포 모양의 균일성, 접착력 등 다양한 특성을 함께 사용한다.
서포트 벡터 머신과 커널
특히 흥미로운 알고리즘으로 **서포트 벡터 머신(SVM)**이 있다. SVM은 1개, 10개, 100만 개가 아닌 무한 차원의 입력 특성을 다룰 수 있다. 컴퓨터 메모리에 무한 개의 숫자를 저장할 수 없는데 어떻게 가능한가? **커널(Kernel)**이라는 기법이 이를 가능하게 한다.
자율주행 데모
지도 학습의 고전적 예시로 카네기 멜론 대학의 자율주행 시스템 ALVINN이 있다.
- 훈련 단계: 사람이 운전하는 동안 초당 10회 전방 카메라 이미지(X)와 사람의 조향 방향(Y)을 기록한다.
- 학습: 역전파(Backpropagation) 알고리즘으로 신경망을 훈련한다. 처음에는 출력이 흐릿한 흰색 얼룩이지만, 학습이 진행되면서 사람의 조향 방향을 정확히 모방하게 된다.
- 실행: 버튼을 누르면 핸들에서 손을 떼고, 신경망이 카메라 이미지를 입력받아 실시간으로 조향 방향을 결정한다.
1.4 머신러닝 전략과 학습 이론
가장 숙련된 머신러닝 실무자들은 매우 전략적이다. ML 프로젝트에서는 수많은 결정을 내려야 한다.
- 데이터를 더 수집할 것인가?
- 다른 학습 알고리즘을 시도할 것인가?
- 더 빠른 GPU를 빌려서 더 오래 훈련할 것인가?
- 어떤 종류의 데이터를 수집할 것인가?
- 신경망 vs 회귀 vs 다른 아키텍처 중 무엇을 선택할 것인가?
최고의 테크 기업에서도 팀이 6개월 동안 매달린 접근법이 처음부터 작동할 리 없었던 경우를 종종 본다.
이는 코드 최적화에 비유할 수 있다. 경험이 부족한 엔지니어는 무작정 코드를 어셈블리로 바꾸려 하지만, 숙련된 엔지니어는 프로파일러를 돌려 병목 지점을 먼저 파악한다. 머신러닝도 마찬가지다. 블랙 매직이나 부족의 지식에 의존하는 대신, 체계적인 엔지니어링 프로세스로 발전시켜야 한다.
Andrew Ng는 이 원칙을 정리한 책 Machine Learning Yearning을 무료로 배포하고 있다.
1.5 비지도 학습 (Unsupervised Learning)
비지도 학습에서는 레이블 Y 없이 입력 X만 주어지며, 데이터에서 흥미로운 구조를 스스로 찾아야 한다.
클러스터링 (Clustering)
가장 대표적인 비지도 학습 알고리즘으로, K-평균 클러스터링이 있다. 활용 사례:
- 뉴스 그룹화: 구글 뉴스는 매일 수만 개의 뉴스 기사를 크롤링하여 같은 주제의 기사를 묶어준다.
- 유전자 분석: 유전자 마이크로어레이 데이터에서 개인을 특성별로 분류한다.
- 컴퓨팅 클러스터 관리: 워크플로우 간 관련성을 파악하여 컴퓨팅 자원을 효율적으로 배치한다.
- 소셜 네트워크 분석: LinkedIn이나 Facebook에서 친구 그룹과 커뮤니티를 발견한다.
- 시장 세분화: 고객 데이터베이스를 분석하여 유형별로 고객을 분류하고, 각 세그먼트에 맞춘 마케팅을 수행한다.
- 천문학: 은하를 유형별로 분류한다.
클러스터링 외의 비지도 학습
비지도 학습은 클러스터링에 국한되지 않는다.
- 칵테일 파티 문제: 여러 마이크로 녹음된 겹치는 음성을 분리하는 문제. **독립 성분 분석(ICA, Independent Component Analysis)**으로 해결한다.
- 텍스트에서 유추 학습: 인터넷의 레이블 없는 텍스트 데이터만으로 "남자:여자 = 왕:여왕", "도쿄:일본 = 워싱턴 DC:미국" 같은 유추 관계를 학습할 수 있다.
현재 머신러닝이 창출하는 경제적 가치의 대부분은 지도 학습에서 나오지만, 비지도 학습도 중요한 활용 사례가 있으며 최첨단 연구의 최전선이기도 하다.
1.6 강화 학습 (Reinforcement Learning)
강화 학습은 개 훈련에 비유할 수 있다.
개가 하고 싶은 대로 하게 두고, 잘하면 "착한 개!", 못하면 "나쁜 개!"라고 한다. 시간이 지나면 개는 "착한 개" 행동을 더 많이, "나쁜 개" 행동을 더 적게 하게 된다.
헬리콥터 비행도 마찬가지다. 최적의 비행법을 아무도 모르므로, 헬리콥터가 원하는 대로 날게 하고 잘 날면 "착한 헬리콥터!", 추락하면 "나쁜 헬리콥터!"라는 **보상 신호(reward signal)**를 준다. 강화 학습 알고리즘이 시간이 지남에 따라 보상을 최대화하는 제어 방법을 스스로 알아낸다.
주요 응용 사례
- 게임 플레이: Atari 게임, 바둑(AlphaGo)
- 로봇 공학: 다관절 로봇이 장애물을 넘는 법을 스스로 학습
- 물류 시스템 최적화
핵심 정리
개념 |
핵심 |
|---|---|
머신러닝 |
명시적 프로그래밍 없이 경험에서 학습하는 능력 |
지도 학습 |
X와 Y가 함께 주어지며, X→Y 매핑을 학습 |
회귀 |
Y가 연속값 (예: 주택 가격) |
분류 |
Y가 이산값 (예: 악성/양성) |
비지도 학습 |
Y 없이 X만으로 데이터의 구조를 발견 |
강화 학습 |
보상 신호를 통해 최적 행동을 학습 |
SVM/커널 |
무한 차원 특성 공간에서도 작동하는 분류 알고리즘 |
다음 장: 2장 - 선형 회귀와 경사 하강법