인공지능 딥러닝 개론 - 딥러닝이란 무엇인가

인공지능 딥러닝 개론
강의 개요
“딥러닝이 도대체 무엇인지” 한 번에 감을 잡고 싶은 분들을 위한 입문 강의입니다.
수식보다는 그림·비유·인터랙티브 데모로 시작해서,
마지막에는 MNIST 숫자 분류 모델을 직접 따라가며 트레이닝-테스트-예측까지의 흐름을 체험합니다.
%%{init: {'theme':'base','themeVariables':{'primaryColor':'#e3f2fd','primaryBorderColor':'#90caf9','lineColor':'#546e7a','textColor':'#333','mainBkg':'#fafafa','nodeBorder':'#90a4ae','clusterBkg':'#f5f5f5','clusterBorder':'#bdbdbd'}}}%%
flowchart LR
subgraph 알고리즘["알고리즘 (사람이 작성)"]
I1["입력\n2"] --> A1["if/else"] --> O1["출력\n초록색"]
end
subgraph 머신러닝["머신러닝 (기계가 학습)"]
I2["입력\n이미지"] --> A2["w개의\n가중치"] --> O2["출력\nCar"]
end
알고리즘 -- "복잡도 증가" --> 머신러닝
style I1 fill:#bbdefb,stroke:#1976d2,stroke-width:2px,rx:10,ry:10
style A1 fill:#eceff1,stroke:#546e7a,stroke-width:2px,rx:10,ry:10
style O1 fill:#c8e6c9,stroke:#388e3c,stroke-width:2px,rx:10,ry:10
style I2 fill:#bbdefb,stroke:#1976d2,stroke-width:2px,rx:10,ry:10
style A2 fill:#fff9c4,stroke:#f9a825,stroke-width:2px,rx:10,ry:10
style O2 fill:#c8e6c9,stroke:#388e3c,stroke-width:2px,rx:10,ry:10
style 알고리즘 rx:15,ry:15
style 머신러닝 rx:15,ry:15
강의 흐름
%%{init: {'theme':'base','themeVariables':{'primaryColor':'#e3f2fd','primaryBorderColor':'#90caf9','lineColor':'#546e7a','textColor':'#333','mainBkg':'#fafafa','nodeBorder':'#90a4ae','clusterBkg':'#f5f5f5','clusterBorder':'#bdbdbd'}}}%%
flowchart LR
subgraph 전반부["전반부 — 개념"]
direction TB
P1["Part 1\n알고리즘과 함수"]
P2["Part 2\n머신러닝과 딥러닝"]
P3["Part 3\n신경망 구조"]
P1 --> P2 --> P3
end
subgraph 중반부["중반부 — 학습 원리"]
direction TB
P4["Part 4\n트레이닝 비유\n(농구·눈 가리고 걷기)"]
P5["Part 5\n트레이닝·검증\n·테스트·예측"]
P4 --> P5
end
subgraph 후반부["후반부 — 실습 흐름"]
direction TB
P6["Part 6\n딥러닝의 한계"]
P7["Part 7\n모델은 어떻게\n선택되는가"]
P8["Part 8\nMNIST 실습\n(Dense → CNN)"]
P6 --> P7 --> P8
end
전반부 --> 중반부 --> 후반부
style P1 fill:#e3f2fd,stroke:#90caf9,stroke-width:2px,rx:10,ry:10
style P2 fill:#e3f2fd,stroke:#90caf9,stroke-width:2px,rx:10,ry:10
style P3 fill:#e3f2fd,stroke:#90caf9,stroke-width:2px,rx:10,ry:10
style P4 fill:#fff9c4,stroke:#f9a825,stroke-width:2px,rx:10,ry:10
style P5 fill:#fff9c4,stroke:#f9a825,stroke-width:2px,rx:10,ry:10
style P6 fill:#c8e6c9,stroke:#388e3c,stroke-width:2px,rx:10,ry:10
style P7 fill:#c8e6c9,stroke:#388e3c,stroke-width:2px,rx:10,ry:10
style P8 fill:#c8e6c9,stroke:#388e3c,stroke-width:2px,rx:10,ry:10
style 전반부 rx:15,ry:15
style 중반부 rx:15,ry:15
style 후반부 rx:15,ry:15
핵심 질문
이 강의는 다음 질문에 답하는 것을 목표로 합니다.
- 알고리즘과 머신러닝, 딥러닝의 차이는 무엇인가요?
- 28×28 흑백 이미지 한 장을 분류하는 데 왜 무한대에 가까운 경우의 수가 필요한가요?
- “가중치(weight)
w를 학습한다"는 말은 정확히 무슨 뜻인가요? - 활성화 함수는 왜 필요하고, softmax는 어떻게 확률을 만드나요?
- 배치(batch)·스텝(step)·에포크(epoch)는 어떤 관계인가요?
- 트레이닝(training)·검증(validation)·테스트(test)·예측(predict)은 어떻게 다른가요?
- 같은 데이터·같은 모델인데 왜 학습할 때마다 결과가 달라지나요?
- 오버피팅은 무엇이고, 왜 딥러닝은 100%가 안 되나요?
- “Sonnet 4” 같은 모델은 어떤 과정을 거쳐 최종 선택되나요?
학습 목표
- 알고리즘 → 머신러닝 → 딥러닝으로 이어지는 발전 흐름을 직관적으로 이해합니다
- 입력층·은닉층·출력층으로 이루어진 신경망의 기본 구조를 파악합니다
- 가중치(weight), 편향(bias), 활성화 함수(ReLU, Softmax)의 역할을 이해합니다
- 손실 함수(Loss Function), 옵티마이저(Optimizer), 학습률(Learning rate), 에포크(epoch) 개념을 익힙니다
- 데이터 3분할(트레이닝/검증/테스트)과 오버피팅의 개념을 이해합니다
- 모델 구조·데이터셋·트레이닝 조합을 비교해 최종 모델을 선택하는 과정을 이해합니다
- MNIST 예제로 전체 딥러닝 파이프라인(입출력 정의 → 데이터 → 모델 → 트레이닝 → 테스트 → 예측)을 체험합니다
수강 대상 · 선수 지식
| 수강 대상 | 선수 지식 |
|---|---|
| 딥러닝을 처음 시작하는 대학생·개발자 | 프로그래밍 기초 (변수·함수·조건문 정도) |
| AI/ML 용어는 들어봤지만 원리가 궁금한 분 | 행렬과 곱셈에 대한 막연한 이해 (없어도 무방) |
| 비전공자이지만 AI 흐름을 따라가고 싶은 분 | Python을 몰라도 OK (코드는 흐름 위주로 설명) |
시연 환경
| 항목 | 구성 |
|---|---|
| 프레임워크 | TensorFlow / Keras |
| 데이터셋 | MNIST (28×28 손글씨 숫자 70,000장) |
| 코드 실행 | Python 3.11+, Jupyter Notebook |
| 모델 비교 | Dense 단일 모델 vs Conv2D 활용 모델 |
강의 구성
Part 1 — 알고리즘과 함수
- 함수: 입력을 받아 출력을 내보내는 처리 단위 (입력 2 → 함수 → 초록색)
- 알고리즘: 사람이 어떤 문제의 풀이 방법을 고민해 컴퓨터 프로그램으로 만드는 것
- 간단한 if/else 알고리즘 예시 —
input < 4면 green, 그렇지 않으면 blue - 핵심: 사람이 직접 풀이 방법을 만든다 — 입력이 단순할 때 잘 동작합니다
Part 2 — 머신러닝과 딥러닝
- AI ⊃ Machine Learning ⊃ Deep Learning 의 포함 관계
- 머신러닝: 사람이 풀이 방법을 만드는 대신, 기계가 학습해서 컴퓨터 프로그램을 만듭니다
- 왜 필요할까? 입력이 복잡해지고(이미지), 입력에 따라 알고리즘이 계속 변해야 하는 상황 때문입니다
- 28×28 흑백 이미지의 경우의 수: 256^784 ≈ ∞ — 모든 경우에 대응하는 알고리즘은 사실상 불가능합니다
- 핵심: 무한대 변수가 필요한 문제를 유한한
w개의 가중치로 근사해서 풉니다.- 실제 자연 이미지는 그 거대한 공간 안의 극히 일부에만 존재하기 때문에, 유한한 가중치로도 충분히 근사가 가능합니다
Part 3 — 신경망 구조
- 입력층 → 은닉층 → 출력층으로 이어지는 신경망의 기본 구조
- 가중치(weight): 노드 사이의 연결 강도. 편향(bias): 노드 출력을 평행이동시키는 값
- 활성화 함수: 곱하고 더한 결과에 비선형 함수를 통과시켜, 층을 쌓는 의미를 만들어줍니다
- 은닉층: ReLU (음수는 0, 양수는 그대로)
- 출력층: Softmax (여러 출력값을 합이 1이 되는 확률 분포로 변환)
- 활성화 함수가 없으면(선형만 합성하면) 아무리 층을 쌓아도 하나의 선형 변환과 같습니다
- Deep Learning = 은닉층을 여러 층 깊게 쌓은 신경망. 앞쪽 층은 단순한 특징(선·곡선), 뒤쪽 층은 추상적 특징(숫자의 형태 등)을 잡습니다
Part 4 — 트레이닝의 비유
가중치를 학습시키는 과정을 두 가지 비유로 풀어봅니다.
- 하루에 100번 농구공 던지기: 매일 시도하면서 점점 골대에 가까워집니다.
- “얼마나 더 세게"가 미분,
- “한 번에 얼마나 바꿀지"가 학습률(learning rate),
- 바람이 불어서 같은 힘이어도 결과가 달라지는 것이 미니배치 노이즈입니다
- 눈 가리고 걸어가기: 지시자가 수행자에게 방향과 거리를 알려줍니다.
- 거리를 계산하는 것이 Loss Function,
- 방향과 보폭을 결정하는 것이 옵티마이저,
- 보폭 크기가 학습률입니다.
- 지시자의 안내에는 잡음이 섞여 있어서 직선으로 가지 못합니다
- 경사 하강법(Gradient Descent):
- 손실 함수의 기울기 방향과 반대로 가중치를 조금씩 움직여 최저점에 도달합니다.
- 학습률이 너무 작으면 느리고, 너무 크면 발산합니다
Part 5 — 트레이닝 · 검증 · 테스트 · 예측
- 데이터 3분할: 트레이닝(학습용) / 검증(학습 중 모니터링) / 테스트(최종 평가).
- 학습에 쓴 데이터로 평가하면 진짜 실력을 알 수 없습니다
- Softmax: 모델이 내놓은 점수(logit)를 합이 1이 되는 확률 분포로 변환.
- 작은 점수 차이가 지수 함수로 크게 증폭됩니다
- 배치(batch): 가중치를 한 번 업데이트할 때 사용하는 데이터 묶음 (보통 32개)
- 스텝(step): 한 배치를 처리하는 1회 업데이트.
- 60,000개를 batch=32로 → 1 epoch당 1,875 step
- 에포크(epoch): 전체 데이터를 한 번 다 훑은 단위.
- 에포크를 반복할수록 가중치가 정교해집니다
- 테스트: 학습 때 보지 않은 데이터로 모델의 일반화 성능 측정
- 예측(Inference): 학습이 끝난 모델로 새로운 데이터의 답을 추론
Part 6 — 딥러닝은 모든 것을 해결할까?
- 오버피팅: 트레이닝 데이터에 과도하게 맞춰진 나머지, 처음 보는 데이터에서는 성능이 떨어지는 현상.
- 에포크를 늘렸더니 오히려 정확도가 떨어졌다면 오버피팅의 신호입니다
- 트레이닝 데이터에 의한 편향: 학습 데이터의 분포가 곧 모델이 만들 수 있는 결과의 분포입니다.
- PULSE 모델이 오바마 사진을 백인으로 복원한 사례
- 모델 구조에 의한 차이: 같은 문제도 모델 구조에 따라 결과 차이가 큽니다 (Bicubic vs SRCNN 예시)
- 랜덤 초기값에 의한 차이: 같은 모델을 같은 데이터로 학습해도 결과가 매번 달라집니다 — 가중치 초기값이 랜덤이기 때문
- 100%가 안 되는 이유: 데이터 자체의 노이즈, 트레이닝/테스트 분포 차이, 오버피팅 vs 일반화의 trade-off
Part 7 — 모델은 어떻게 선택되는가
- 실제로 “Sonnet 4"처럼 하나의 이름으로 발표되는 모델 뒤에는 수많은 조합 실험이 숨어 있습니다
- 모델 구조 변형: 내부적으로
mark_1,mark_2,mark_3등 구조가 다른 여러 버전을 만듭니다 - 데이터셋 변형: 수집 범위·정제 방식이 다른 데이터셋을 준비합니다
- 반복 트레이닝: 같은 조합이라도 랜덤 초기값 때문에 매번 결과가 다르므로 여러 번 트레이닝합니다
- 테스트·선택: 별도의 테스트 데이터셋으로 평균 점수를 비교해 가장 좋은 조합이 최종 모델로 발표됩니다
- 실제로는 하이퍼파라미터(학습률, 배치 크기, 에포크 수 등)까지 조합하므로 경우의 수는 훨씬 많습니다
Part 8 — MNIST 실습 흐름
전체 딥러닝 과정을 6단계로 구분해 따라갑니다.
%%{init: {'theme':'base','themeVariables':{'primaryColor':'#e3f2fd','primaryBorderColor':'#90caf9','lineColor':'#546e7a','textColor':'#333','mainBkg':'#fafafa','nodeBorder':'#90a4ae','clusterBkg':'#f5f5f5','clusterBorder':'#bdbdbd'}}}%%
flowchart TB
S1["1. 입출력 정의"] --> S2["2. 데이터 세트 준비·처리"]
S2 --> S3["3. 모델 구성·컴파일"]
S3 --> S4["4. 트레이닝 및 검증"]
S4 --> S5["5. 테스트"]
S5 --> S6["6. 예측"]
style S1 fill:#bbdefb,stroke:#1976d2,stroke-width:2px,rx:10,ry:10
style S2 fill:#bbdefb,stroke:#1976d2,stroke-width:2px,rx:10,ry:10
style S3 fill:#fff9c4,stroke:#f9a825,stroke-width:2px,rx:10,ry:10
style S4 fill:#fff9c4,stroke:#f9a825,stroke-width:2px,rx:10,ry:10
style S5 fill:#c8e6c9,stroke:#388e3c,stroke-width:2px,rx:10,ry:10
style S6 fill:#c8e6c9,stroke:#388e3c,stroke-width:2px,rx:10,ry:10
- 입출력 정의: 입력 28×28 이미지 → 출력 10개 클래스 확률. Loss는
SparseCategoricalCrossentropy - 데이터: MNIST 60,000장(트레이닝) + 10,000장(테스트). 정수 라벨 ↔ Sparse, 원-핫 ↔ Categorical 짝을 맞춤
- 모델 예제 1: Input → Flatten → Dense(10, softmax) — 가중치 7,850개, 정확도 ~91%
- 모델 예제 2: Conv2D → MaxPool2D → Conv2D → MaxPool2D → Flatten → Dense — 정확도 향상
- 트레이닝: 입력 정규화(/255.0) → forward → loss → backward → update 반복. validation_split으로 검증
- 테스트: 같은 전처리 적용 후 evaluate. 여러 모델/에포크 조합을 비교
- 예측:
model.predict()→np.argmax()로 가장 높은 확률의 클래스를 답으로 선택
강의 방식
- 형태: 오프라인/온라인 (1시간 30분)
- 수식 최소화: 그림과 비유 위주로 설명, 필요한 계산은 단계별로 풀이
- 인터랙티브 데모:
- 활성화 함수 시각화, 뉴런 계산기, 농구 슛 트레이닝, 눈 가리고 걸어가기,
경사 하강법, Softmax 시각화, 에포크 시각화, 오버피팅 곡선, 트레이닝 시뮬레이터,
모델 선택 과정 시뮬레이터, MNIST 픽셀 탐색기
등 11종의 인터랙티브 데모 제공
- 활성화 함수 시각화, 뉴런 계산기, 농구 슛 트레이닝, 눈 가리고 걸어가기,
- 실습 코드 공유: TensorFlow/Keras 기반 MNIST 예제 코드 제공
- 질의응답: 강의 중 자유 질문 환영, 마지막 10분 별도 Q&A
핵심 메시지 요약
| 파트 | 핵심 메시지 |
|---|---|
| Part 1 | 알고리즘은 사람이 풀이 방법을 직접 작성합니다. 입력이 단순할 때 잘 동작합니다 |
| Part 2 | 입력이 복잡해지면 사람이 모든 경우를 쓸 수 없습니다. 기계가 학습해 가중치 w로 근사합니다 |
| Part 3 | 신경망은 입력층·은닉층·출력층으로 이루어지며, 비선형 활성화 함수가 있어야 층을 깊게 쌓는 의미가 있습니다 |
| Part 4 | 트레이닝은 결과를 보고 가중치를 조금씩 바꾸는 과정입니다. Loss Function이 거리를, 옵티마이저가 방향과 보폭을 결정합니다 |
| Part 5 | 데이터를 트레이닝/검증/테스트로 분리해야 모델의 진짜 실력(일반화)을 알 수 있습니다. 에포크는 전체 데이터를 한 번 훑는 단위입니다 |
| Part 6 | 딥러닝은 만능이 아닙니다. 오버피팅, 데이터 편향, 모델 구조, 초기값에 따라 결과가 크게 달라집니다 |
| Part 7 | 하나의 모델 이름 뒤에는 모델 구조 x 데이터셋 x 트레이닝의 수많은 조합 실험이 숨어 있습니다. 별도의 테스트 데이터로 평균 점수가 가장 높은 조합이 최종 모델로 발표됩니다 |
| Part 8 | Dense만으로도 90%는 가능하지만, Conv를 더하면 더 정교해집니다. 정확도·속도·메모리의 trade-off가 중요합니다 |
문의
강의 일정 및 비용 문의는 이메일로 연락 주세요.