1장 - 딥러닝 입문
1장. 딥러닝 입문
CS230은 플립드 클래스룸(flipped classroom) 형식으로 운영된다. 온라인 영상을 미리 시청하고, 교실에서는 더 깊은 토론에 시간을 쓴다. 때로는 기숙사 방에서 한 일이 몇 년 뒤 돌아보면 엄청난 영향을 미칠 수도 있다. — Andrew Ng
1.1 딥러닝은 왜 지금 성공하는가
딥러닝이 지난 10~15년간 AI를 지배한 이유는 단순하다. 데이터를 많이 흡수할수록 성능이 계속 올라가는 유일한 알고리즘 계열이기 때문이다.
전통적 머신러닝 알고리즘(로지스틱 회귀, 결정 트리 등)은 데이터가 일정량을 넘으면 성능이 정체(plateau)된다. 음성 인식을 예로 들면, 수만 시간의 음성 데이터를 줘도 이전 세대 알고리즘의 정확도는 더 이상 오르지 않았다.
반면 신경망은 크기에 따라 양상이 달라진다.
모델 크기 |
데이터 증가 시 성능 |
|---|---|
작은 신경망 |
조금 더 좋아진다 |
중간 신경망 |
꾸준히 좋아진다 |
매우 큰 신경망 |
계속 좋아진다 |
핵심 레시피는 간단하다. 매우 큰 신경망을 구축하고, 거기에 대량의 데이터를 밀어넣으면 탁월한 성능이 나온다.
스케일링 법칙 (Scaling Laws)
BU에서 나온 연구 논문은 신경망을 스케일업할 때 성능 향상이 예측 가능하다는 것을 보여주었다. GPU와 데이터를 얼마나 투입하면 성능이 얼마나 오를지 예측할 수 있다는 의미다. 이후 OpenAI가 스케일링 법칙에 대한 매우 영향력 있는 논문을 발표했고, 이 예측 가능성이 대규모 데이터센터 투자와 거대 AI 모델 구축을 촉발했다.
GPU 프로그래밍의 기원
재미있는 사실 하나. Andrew Ng의 첫 GPU 머신은 스탠퍼드 학부생이 기숙사 방에서 만들었다. 그 학생의 이름은 Ian Goodfellow다. 당시에는 논란이 있었던 CUDA 프로그래밍으로 신경망을 훈련하는 초기 기반을 스탠퍼드에서 마련했고, 이것이 딥러닝 스케일업의 출발점이 되었다.
1.2 딥러닝의 위치: CS 기초 위의 계층 구조
컴퓨터 과학에서는 모든 것이 이전 아이디어 위에 쌓인다. 딥러닝의 위치를 계층으로 정리하면 다음과 같다.
CS 기초 (컴퓨터 과학 기본)
└─ 머신러닝 (데이터에서 학습하는 알고리즘)
└─ 딥러닝 (신경망을 이용한 학습)
└─ 생성형 AI (트랜스포머 기반 텍스트/이미지/오디오 생성)
- 딥러닝(Deep Learning)과 신경망(Neural Networks)은 오늘날 사실상 같은 의미로 쓰인다. 신경망이라는 용어가 수십 년간 존재했지만, 약 15년 전 "딥러닝"이라는 브랜드가 훨씬 매력적이었기 때문에 이 이름이 자리잡았다. 누가 "정말 깊은 학습"을 원하지 않겠는가.
- 생성형 AI(Generative AI)는 주로 트랜스포머(Transformer) 신경망이라는 특정 유형의 딥러닝 위에 구축되었다.
1.3 딥러닝이 필요한 실무 상황
LLM을 프롬프팅하는 것만으로는 해결되지 않는 문제가 많다. Andrew Ng는 다음과 같은 상황에서 딥러닝 계층으로 직접 내려가야 한다고 설명한다.
데이터 유형 |
생성형 AI (프롬프팅) |
딥러닝 직접 사용 |
|---|---|---|
텍스트 |
매우 효과적 |
프롬프트 한계 도달 시 |
오디오 |
제한적 |
자주 필요 |
이미지/영상 |
발전 중 |
자주 필요 |
구조화 데이터 (대형 테이블) |
제한적 |
자주 필요 |
프롬프팅의 한계와 비용 문제
프롬프팅만으로도 멀리 갈 수 있지만, 두 가지 벽에 부딪힌다.
- 성능 한계: 한 달 동안 프롬프트를 조정해도 정확도가 더 이상 올라가지 않는 시점이 온다.
- 비용 폭발: 프로토타입 단계에서는 월 \(20~\)100 수준이지만, 사용자가 급증하면 AI 비용이 천문학적으로 뛰어오른다. 이때 딥러닝으로 더 작은 모델을 파인튜닝(fine-tuning)하는 기술이 비용 곡선을 꺾어주는 핵심 역량이 된다.
1.4 CS230 강좌 구조
CS230 온라인 교재는 다섯 개 모듈로 구성된다.
모듈 |
내용 |
|---|---|
1 |
신경망과 딥러닝 기초: 순수 Python으로 신경망을 밑바닥부터 구현 |
2 |
하이퍼파라미터 튜닝과 개선: 학습률, 네트워크 크기 등 하이퍼파라미터 최적화 실전 기술 |
3 |
ML 프로젝트 전략: 체계적 개발 프로세스와 오류 분석 |
4 |
*합성곱 신경망 (CNN)*: 컴퓨터 비전 응용 |
5 |
시퀀스 모델: 시계열, 텍스트, 트랜스포머 네트워크 |
관련 강좌 비교
강좌 |
특징 |
|---|---|
CS129 |
가장 쉬운 입문. 핵심 ML 개념을 천천히 다룸 |
*CS229* |
수학적, 이론적, 고강도. 행렬/벡터 미적분, 다양한 ML 알고리즘 |
CS230 |
실용적. 딥러닝 하나에 집중. 수학 비중 낮음 |
세 강좌는 내용 중복이 거의 없으므로 동시에 수강해도 된다. CS230에서는 증명을 거의 하지 않으며, "진리와 아름다움"보다는 작동하는 소프트웨어를 만드는 것에 집중한다.
1.5 AI 시대의 실무 역량
AI 코딩 어시스턴트의 시대
Andrew Ng는 수동 코딩으로 돌아가고 싶지 않다고 단언한다. AI 어시스턴트 코딩이 가장 큰 차이를 만드는 영역은 빠르고 거친 프로토타입(quick and dirty prototype) 구축이다. 다만 프로덕션 등급 소프트웨어에서는 신중하게 사용해야 한다.
프로토타이핑 속도가 비약적으로 빨라졌기 때문에, 이제는 20가지를 시도하고 1~2가지가 성공하면 되는 접근이 가능하다. 증명의 비용이 낮을 때, 실패 비율은 문제가 되지 않는다.
"코딩을 배울 필요 없다"는 조언에 대하여
코딩이 쉬워질수록 더 많은 사람이 코딩을 해야 한다. 역사가 이를 증명한다.
- 펀치카드 → 키보드/터미널: 코딩이 쉬워짐 → 더 많은 사람이 코딩
- 어셈블리 → 고수준 언어: 코딩이 쉬워짐 → 더 많은 사람이 코딩
- COBOL 탄생 시에도 "프로그래머가 불필요해진다"는 주장이 있었지만, 정반대 결과가 나왔다
4단계 생산성 서열
순위 |
프로필 |
|---|---|
1 (최하) |
경험 없음 + AI 모름 |
2 |
10년 경험 + AI 모름 |
3 |
신입 + AI 역량 보유 |
4 (최상) |
풍부한 경험 + AI 역량 보유 |
AI 역량과 경험 두 축 모두 중요하지만, 둘 중 하나만 선택해야 한다면 AI 역량이 더 중요하다. CS 기초를 깊이 이해하는 사람은 AI 도구에게 "컴퓨터의 언어"로 정확히 무엇을 원하는지 말할 수 있기 때문에, 프롬프트만 치는 사람과 성능 차이가 크다.
생성형 AI 실무자에게 필요한 도구 세트
면접에서 Ng이 확인하는 기술 목록이다.
- RAG (Retrieval Augmented Generation)
- 벡터 데이터베이스 (Vector Database)
- 평가와 오류 분석 (Evals & Error Analysis)
- 가드레일 (Guardrails) 구축
- 지식 그래프와 LLM 연동
- 멀티모달 (Multimodal) 처리
- 모델 파인튜닝 (Fine-tuning)
- 에이전트 워크플로 (Agentic Workflows)
핵심 정리
개념 |
핵심 |
|---|---|
딥러닝이 성공하는 이유 |
대규모 신경망이 대량의 데이터를 흡수하여 성능이 계속 향상됨 |
스케일링 법칙 |
GPU와 데이터 투입에 따른 성능 향상이 예측 가능 |
CS 계층 구조 |
CS 기초 → 머신러닝 → 딥러닝 → 생성형 AI |
딥러닝이 직접 필요한 경우 |
오디오, 영상, 구조화 데이터, 비용 최적화 |
프로토타이핑 속도 |
빠른 반복이 가장 중요한 실무 원칙 |
AI 시대 핵심 역량 |
CS 기초 + AI 도구 활용 + 딥러닝 기본기 |
다음 장: 2장 - 지도, 자기지도, 약지도 학습