경영자를 위한 AI 딥러닝
2026년 9월 23일 · 4주차 · Chapter 4

텐서와 케라스, 그리고 비지도 학습

AI는 도구가 아니라 행위자라는 이야기와 "미션이 해자다"라는 사례로 문을 열었어요. 본론에서는 신경망이 쓰는 말인 텐서를 배우고, 케라스 몇 줄로 퍼셉트론(선형 회귀)과 다층 퍼셉트론(옷 사진 분류)을 직접 만들었어요. 마지막으로 정답 없이 패턴을 찾는 비지도 학습을 배웠어요.

보충 표시는 교수님 자료와 필기에 없는데 이해를 위해 더한 내용이에요.

① 오늘의 이야기AI는 행위자 · 해자② 텐서숫자를 담는 상자③ 퍼셉트론선형 회귀 · 에포크④ Keras MLP옷 사진 10종 분류⑤ 비지도 학습군집 · PCA · 이상 탐지②~④ 신경망을 텐서로 쓰고, Keras 몇 줄로 학습시키기
오늘 수업 한눈에 보기

용어 사전

이 노트에 나오는 줄임말이에요. 처음 보면 이 표로 돌아와서 확인하세요.

용어뜻
MLP
Multi 여러 + Layer 층 + Perceptron 퍼셉트론
퍼셉트론을 여러 층으로 쌓은 신경망
MSE
Mean 평균 + Squared 제곱한 + Error 오차
틀린 정도를 제곱해서 평균 낸 점수
SGD
Stochastic 무작위로 고른 + Gradient 기울기 + Descent 내려가기
데이터를 조금씩 보며 오차를 줄이는 기본 학습법
Adam
Adaptive 알아서 조절하는 + Moment 추세 + estimation 추정
걸음 크기를 알아서 바꾸며 학습하는 인기 방법
ReLU
Rectified 음수를 잘라 낸 + Linear 직선 + Unit 단위
0보다 작으면 0, 크면 그대로 내보내는 함수
MNIST
Modified 고친 + NIST 미국 국립표준기술연구소
손글씨 숫자 사진 모음 (Fashion-MNIST는 옷 사진판)
API
Application 응용 프로그램 + Programming 프로그래밍 + Interface 연결 창구
프로그램끼리 일을 부탁하는 약속된 창구
GPU
Graphics 그래픽 + Processing 처리 + Unit 장치
작은 계산 수천 개를 동시에 하는 칩
TPU
Tensor 텐서 + Processing 처리 + Unit 장치
구글이 만든 텐서 계산 전용 칩
K-means
K개 + means 평균
데이터를 K개 무리로 나누는 방법 (K-평균)
PCA
Principal 주된 + Component 성분 + Analysis 분석
많은 특징을 중요한 몇 개 축으로 줄이는 방법

1부. 오늘의 이야기: AI 시대의 언더독과 해자

1-1. AI는 도구가 아니라 행위자예요

이 장에서 배울 것
수업을 연 질문 "AI의 마이너리그?"와, AI를 바라보는 관점이 왜 달라져야 하는지 배워요.

수업은 역사학자 유발 하라리(Yuval Noah Harari)의 관점으로 시작했어요. 슬라이드의 핵심 문장은 "AI is an Agent, Not a Tool(AI는 도구가 아니라 행위자다)"예요.

망치나 계산기 같은 도구는 사람이 시키는 대로만 움직여요. 그런데 AI는 스스로 정보를 처리하고 스스로 결정할 수 있어요. 그래서 "쓰는 물건"이 아니라 "함께 일하는 주체"로 봐야 한다는 거예요.

도구 (망치·계산기)사람이 정한 대로만 움직여요결정은 늘 사람이 해요행위자 (AI)스스로 정보를 처리해요스스로 결정을 내릴 수 있어요
도구는 사람이 결정하고, 행위자는 스스로 결정할 수 있어요

하라리는 2024년에 낸 책 『넥서스(Nexus)』와 여러 인터뷰에서 "AI는 도구가 아니라 행위자"라는 말을 되풀이했어요.

슬라이드에는 몇 가지 경고도 함께 있었어요.

  • 사람들은 남이 AI를 개발하는 것을 잘 믿지 않아요.
  • AI로 생기는 경제적 이득의 약 70%를 중국과 북미가 가져갈 가능성이 커요.
  • AI 개발을 사려 깊게 이끌지 못하면, 우리가 만든 시스템에 휘둘릴 수 있어요.

"70%"는 회계·컨설팅 회사 PwC가 2017년 보고서에서 내놓은 2030년 전망이에요. AI 덕분에 2030년 세계 경제(GDP)가 약 14%(15.7조 달러) 커지고, 그중 70% 가까이가 중국과 북미에 몰린다고 봤어요.

그래서 제목이 "AI의 마이너리그?"예요. 두 지역이 메이저리그라면, 한국 같은 나머지 나라는 마이너리그에 머무르게 될까 하는 질문이에요.

핵심 정리
  • AI는 스스로 처리하고 결정하는 행위자로 봐야 해요.
  • AI 경제 이득의 약 70%가 중국·북미에 몰릴 수 있다는 전망이 있어요.
  • "나머지는 마이너리그에 머물까?"가 오늘의 출발 질문이에요.

1-2. 언더독 시나리오

이 장에서 배울 것
작은 쪽이 큰 쪽을 이기는 "언더독" 이야기를 AI 시대에 대입해 봐요.

슬라이드의 질문은 "Underdog Scenario of AI?(AI의 언더독 시나리오는?)"예요. 언더독은 질 것이라고 여겨지던 약자예요. 언더독이 이기면 사람들은 더 크게 열광해요.

수업에서는 유튜브 영상 「샘 리처드 교수가 분석한 리센느 폭발적 역주행의 이유」를 함께 봤어요. 역주행은 나온 지 한참 지난 노래가 뒤늦게 다시 인기 순위에 오르는 거예요. 슬라이드도 이 그룹을 "언더독"이라고 불러요. 뒤늦게 크게 주목받은 약자의 이야기로 "큰 쪽만 이기는 건 아니다"라는 화두를 꺼낸 거예요. ▶ youtu.be/ZUJGS617-IE

샘 리처드(Sam Richards)는 미국 펜실베이니아 주립대학교의 사회학 교수예요. 리센느(RESCENE)는 2024년에 데뷔한 K팝 걸그룹이에요.

필기에는 "I understand what you need(당신에게 필요한 걸 알아요)"라는 말이 남아 있어요. 언더독이 이기는 길로 "상대가 정말 필요한 것을 정확히 알아주는 것"을 꼽은 것으로 보여요. 이 말이 어느 장면에서 나왔는지는 확인이 필요해요.

핵심 정리
  • 언더독 = 질 것이라 여겨지던 약자예요.
  • AI 시대에도 작은 팀이 이길 길이 있을까가 질문이에요.
  • 열쇠로 "상대가 필요한 것을 알아주기"가 언급됐어요.

1-3. 미션이 해자예요: VIZCOM

이 장에서 배울 것
"해자"가 무엇인지, 왜 기술보다 미션이 오래가는 해자인지 배워요.

다음 영상은 「EP 101. "미션이 해자다" 800억 투자받은 AI 디자인 스타트업, VIZCOM의 성장 비밀」이에요. 슬라이드에는 비즈컴(VIZCOM) 창업자 조던 테일러(Jordan Taylor)가 나와요. ▶ youtu.be/3nHLrMOalkY

비유
해자(moat)는 옛날 성 둘레에 판 물길이에요. 적이 쉽게 성에 다가오지 못하게 막아 줘요. 사업에서 해자는 경쟁자가 쉽게 따라오지 못하게 막는 장벽이에요.

"Mission is the Moat!(미션이 해자다)"는 이런 뜻이에요. AI 기술은 금방 따라잡혀요. 하지만 "누구의 어떤 문제를 끝까지 풀겠다"는 분명한 미션은 쉽게 베낄 수 없어요. 그래서 미션이 가장 오래가는 해자가 돼요.

비즈컴은 산업 디자이너가 손으로 그린 스케치를 AI가 사실적인 제품 이미지와 3D로 바꿔 주는 서비스예요. 2025년 10월 시리즈 B 투자로 2,700만 달러를 받았고(라디컬 벤처스 주도), 디자이너 70만 명 이상이 쓴다고 밝혔어요. 영상 제목의 "800억"이 누적 투자를 원화로 바꾼 것인지는 확인이 필요해요.

필기에는 "개인 결제 앱 필요"라는 짧은 메모도 있어요. 앞뒤 맥락이 없어 무엇을 가리키는지는 확인이 필요해요.

핵심 정리
  • 해자 = 경쟁자가 따라오지 못하게 막는 장벽이에요.
  • 기술은 따라잡혀도 분명한 미션은 베끼기 어려워요.
  • 비즈컴은 디자이너를 위한 AI 도구로 성장한 사례예요.
실무 관점
우리 팀이 AI 서비스를 만든다면 "이 기술을 쓴다"보다 "누구의 어떤 문제를 끝까지 푼다"를 먼저 한 문장으로 적어 보세요. 그 문장이 경쟁사가 가장 베끼기 어려운 자산이에요.

2부. 텐서: 신경망이 쓰는 말

2-1. 텐서란 무엇일까요

이 장에서 배울 것
스칼라·벡터·행렬·텐서가 무엇이고 어떻게 이어지는지 배워요.

교수님은 텐서를 물리 이야기로 꺼내셨어요. "내가 움직이는 속도와 상대방이 움직이는 속도가 어떤 관계일 때, 나는 상대의 움직임을 어떻게 보게 될까?" 이런 상대성이론의 문제를 풀 때 쓰는 수학 도구가 텐서예요.

오늘 수업의 핵심은 "우리가 아는 신경망은 텐서로 되어 있다"예요. 필기처럼 벡터는 시작점·끝·방향이 있는 화살표이고, 수평·수직 방향으로 나누어(성분으로 분해해) 숫자의 짝으로 적을 수 있어요.

개념 카드

텐서 Tensor

💡개념
숫자들을 여러 방향으로 가지런히 담은 상자예요.

숫자 하나는 스칼라예요. 질량, 온도, 길이처럼 크기만 있는 양이에요. 텐서로 치면 랭크 0이에요.

숫자를 한 줄로 늘어놓으면 벡터예요. 속도나 가속도처럼 크기와 방향이 함께 있는 양이에요. (x₁, x₂)처럼 숫자의 짝으로 적고, 랭크 1이에요.

줄을 여러 개 겹치면 표 모양의 행렬(랭크 2)이 되고, 표를 또 쌓으면 3차원 이상의 텐서가 돼요. "랭크"는 숫자를 몇 방향으로 늘어놓았는지예요. 원래 텐서는 물리학 말이에요. 상대성이론의 메트릭 텐서, 물체 속 힘을 나타내는 응력 텐서가 대표적이에요.

👀그림으로 먼저 보기
25스칼라랭크 0340벡터랭크 1행렬랭크 23차원 텐서랭크 3
왼쪽부터 랭크 0, 1, 2, 3. 숫자를 늘어놓는 방향이 하나씩 늘어나요
❓이게 없으면?
Q사진, 문장, 신경망의 가중치를 컴퓨터가 어떻게 한꺼번에 계산할까요?A모두 텐서라는 같은 모양에 담아야 같은 규칙(덧셈, 곱셈)으로 한 번에 계산할 수 있어요.
⚙️어떻게 작동할까
1
숫자 하나를 놓으면 스칼라예요.
→
2
숫자를 한 줄로 놓으면 벡터예요.
→
3
줄을 겹쳐 표나 상자로 만들면 행렬·텐서예요.
🥚쉬운 비유: 달걀 담기
비유텐서
달걀 한 알↔스칼라 (랭크 0)
달걀 한 줄↔벡터 (랭크 1)
달걀 한 판↔행렬 (랭크 2)
달걀 판을 쌓은 상자↔3차원 텐서 (랭크 3)
🔢숫자 예시
온도 25도
랭크 0
숫자 하나
속도 (3, 4)
랭크 1
방향 2개짜리 벡터. 빠르기는 5
흑백 사진 28×28
랭크 2
숫자 784개가 든 표
⚠️헷갈리기 쉬운 점
벡터
텐서의 한 종류예요. 숫자를 한 방향(한 줄)으로만 늘어놓아요.
텐서
스칼라·벡터·행렬·그 이상을 모두 아우르는 이름이에요.
핵심 정리
  • 스칼라(0) → 벡터(1) → 행렬(2) → 텐서(3 이상)로 방향이 늘어나요.
  • 랭크 = 숫자를 늘어놓은 방향의 수예요.
  • 신경망과 데이터는 모두 텐서로 표현해요.

2-2. 데이터도 텐서예요

이 장에서 배울 것
사진과 문장 같은 데이터를 텐서로 담는 방법을 배워요.

슬라이드의 제목은 "Data as a Tensor"예요. 컴퓨터 비전(사진 다루기)과 자연어 처리(글 다루기)에서 데이터는 모두 텐서로 들어가요.

데이터어떻게 담나요랭크
흑백 사진 1장세로 × 가로 칸마다 밝기 숫자 하나2
컬러 사진 1장세로 × 가로 × 색 3개(빨강·초록·파랑)3
컬러 사진 여러 장사진 장수 × 세로 × 가로 × 색4
문장 여러 개문장 수 × 단어 수 × 단어를 나타내는 숫자 줄3
핵심 정리
  • 사진은 칸마다 숫자가 든 표(또는 상자)예요.
  • 여러 장을 묶으면 랭크가 하나 더 늘어나요.
  • 모양만 맞으면 같은 계산 규칙을 쓸 수 있어요.

2-3. 신경망도 텐서예요: 가중치와 행렬 곱셈

이 장에서 배울 것
신경망의 가중치를 텐서로 쓰는 법과, 계산이 행렬 곱셈이 되는 이유를 배워요.

필기의 "인풋, 히든 노드 곱하기 웨이트"가 이 부분이에요. 신경망은 입력값, 가중치, 각 층의 출력값이 모두 텐서예요. 슬라이드는 이것을 이렇게 적어요.

기호뜻
x = (x₁, …, xₙ)입력 벡터 (데이터 한 개)
X = (x⁽¹⁾, …, x⁽ᵐ⁾)데이터 m개를 묶은 입력
wji[l]l번째 층에서 i번 입력이 j번 뉴런으로 가는 가중치
z[l]l번째 층 뉴런들에 들어가는 값
zj = Σ wji xi + bj

말로 풀면: 입력마다 가중치를 곱해 모두 더하고, 편향을 더한 값이 뉴런 j에 들어가요.

개념 카드

파라미터 Parameter

💡개념
신경망이 학습하면서 스스로 고쳐 나가는 숫자들이에요.

필기에 "파라미터 = 웨이트"라고 적혀 있어요. 맞아요. 연결선마다 붙은 가중치(weight)가 파라미터예요. 정확히는 뉴런마다 붙는 편향(bias)도 함께 세요.

그래서 파라미터 수는 "연결선 수 + 뉴런 수"로 셀 수 있어요. 층을 넓고 깊게 쌓을수록 파라미터가 빠르게 늘어나요.

요즘 큰 AI 모델은 파라미터가 수십억(billion)~수천억 개예요. 파라미터가 많을수록 더 복잡한 것을 배울 수 있지만, 계산과 저장에 돈이 더 들어요.

👀그림으로 먼저 보기
입력 3은닉 4출력 2분홍 선 하나 = 가중치 하나3×4 + 4×2 = 20개+ 편향 6개= 파라미터 26개
입력 3 → 은닉 4 → 출력 2인 작은 신경망. 선마다 가중치가 하나씩 있어요
❓이게 없으면?
Q신경망은 무엇을 "배우는" 걸까요?A파라미터를 배워요. 처음엔 아무 숫자로 시작해서, 오차가 줄어드는 쪽으로 이 숫자들을 조금씩 고쳐요.
⚙️어떻게 작동할까
1
층과 층 사이의 연결선 수를 세요.
→
2
뉴런마다 하나씩인 편향 수를 더해요.
→
3
합이 그 신경망의 파라미터 수예요.
🧂쉬운 비유: 요리 레시피의 양념 양
비유신경망
레시피에 적힌 양념 칸↔파라미터 자리
맛을 보며 소금·간장 양을 조절↔학습 = 파라미터 고치기
칸이 많은 복잡한 레시피↔파라미터가 많은 큰 모델
🔢숫자 예시
입력 3 → 은닉 4
12개
연결선 3×4
은닉 4 → 출력 2
8개
연결선 4×2
편향
6개
은닉 4 + 출력 2
합계
26개
이 작은 신경망의 파라미터
⚠️헷갈리기 쉬운 점
파라미터
기계가 데이터로 배우는 숫자예요. 가중치와 편향이에요.
하이퍼파라미터
사람이 미리 정하는 설정이에요. 층 수, 뉴런 수, 에포크 수 같은 거예요.

슬라이드는 행렬끼리 더하기, 숫자 곱하기, 전치(가로·세로 뒤집기)도 보여 줬어요. 예를 들어 2×4 행렬에 2를 곱하면 칸마다 2배가 되고, 3×2 행렬을 전치하면 2×3 행렬이 돼요. 그중 가장 중요한 건 행렬 곱셈이에요.

개념 카드

행렬 곱셈 Matrix Multiplication

💡개념
앞 행렬의 가로줄과 뒤 행렬의 세로줄을 짝지어 곱하고 더하는 계산이에요.

신경망 한 층의 계산은 "입력 × 가중치를 모두 더하기"예요. 식으로는 zj = Σ wjixi + bj예요. 뉴런마다 이걸 따로 하면 너무 느려요.

그래서 입력을 벡터로, 가중치를 행렬로 묶어 행렬 곱셈 한 번으로 모든 뉴런을 계산해요. 데이터 여러 개도 행렬 X로 묶어 Z = wX처럼 한꺼번에 계산해요.

행렬 곱셈은 벡터의 내적(같은 자리끼리 곱해서 더하기)을 여러 번 한 거예요. 이런 계산을 동시에 아주 많이 해 주는 칩이 GPU와 TPU예요.

👀그림으로 먼저 보기
A =1234B =5678AB =19224350A의 1행 (1, 2) × B의 1열 (5, 7) → 1×5 + 2×7 = 19
분홍 가로줄 × 파랑 세로줄 = 보라 칸 하나
❓이게 없으면?
Q뉴런이 수천 개인데 하나씩 계산하면 어떻게 될까요?A너무 오래 걸려요. 행렬 곱셈으로 묶으면 한 번에 계산되고, GPU가 이 계산을 동시에 처리해요.
⚙️어떻게 작동할까
1
A의 1행 (1, 2)을 꺼내요.
→
2
B의 1열 (5, 7)을 꺼내요.
→
3
같은 자리끼리 곱해 더해요: 1×5 + 2×7 = 19. 이게 결과의 1행 1열이에요.
🧾쉬운 비유: 장보기 영수증
비유행렬 곱셈
품목별 수량 (사과 1, 배 2)↔A의 가로줄
품목별 가격 (5천, 7천 원)↔B의 세로줄
수량×가격을 모두 더한 총액 1만 9천 원↔결과 칸 하나 (19)
🔢숫자 예시
1행 × 1열
19
1×5 + 2×7
1행 × 2열
22
1×6 + 2×8
2행 × 1열
43
3×5 + 4×7
2행 × 2열
50
3×6 + 4×8
⚠️헷갈리기 쉬운 점
행렬 곱셈
가로줄과 세로줄을 짝지어 곱하고 더해요. 순서를 바꾸면(BA) 답이 달라져요.
칸끼리 곱셈
같은 자리 칸끼리만 곱해요. 1×5=5, 2×6=12처럼 나와 결과가 전혀 달라요.
핵심 정리
  • 신경망 계산 = 입력 × 가중치의 합 + 편향이에요.
  • 이 계산을 묶으면 행렬 곱셈 한 번이 돼요.
  • 파라미터 = 가중치 + 편향, 학습으로 고치는 숫자예요.

2-4. 텐서플로와 케라스

이 장에서 배울 것
텐서 계산 엔진 TensorFlow와, 그 위에서 쉽게 쓰는 Keras의 관계를 배워요.
TensorFlow (텐서플로)Keras (케라스)
한 줄 뜻텐서를 계산하는 엔진텐서플로를 쉽게 쓰게 해 주는 창구(API)
하는 일텐서 계산, 기울기 자동 계산, CPU·GPU·TPU에서 실행, 여러 컴퓨터로 나눠 계산, 다른 환경(C++, 자바스크립트, TFLite)으로 내보내기층(layer)을 블록처럼 쌓아 모델 만들기, compile·fit·predict 몇 줄로 학습과 예측
비유
텐서플로는 자동차 엔진이고, 케라스는 운전대와 페달이에요. 엔진 구조를 몰라도 운전대와 페달만 알면 차를 몰 수 있어요.

슬라이드 요약도 같아요. 신경망과 데이터는 텐서로 나타내고, 계산은 행렬 곱셈으로 하며, 행렬 곱셈은 벡터 내적의 확장이고, 텐서플로가 이 계산을 효율적으로 해 줘요.

핵심 정리
  • 텐서플로 = 텐서 계산 엔진이에요.
  • 케라스 = 그 위에서 쉽게 쓰는 표준 창구예요.
  • 기울기 계산과 GPU 사용은 엔진이 알아서 해 줘요.
실무 관점
AI 도입 검토서에 "파라미터 70억 개 모델" 같은 말이 나오면 "모델의 크기 = 계산·저장 비용"으로 읽으세요. 크다고 늘 좋은 건 아니에요. 우리 문제에 맞는 크기인지, 운영 비용은 얼마인지를 같이 물어보세요.

3부. 퍼셉트론으로 선형 회귀 하기

3-1. 선형 회귀: 직선 찾기

이 장에서 배울 것
선형 회귀가 무엇인지, 퍼셉트론이 왜 선형 회귀를 할 수 있는지 배워요.

슬라이드는 텐서플로와 케라스로 해 볼 세 가지를 소개했어요. 선형 회귀, 손글씨 숫자 인식, 이미지 인식이에요. 첫 번째가 선형 회귀예요.

개념 카드

선형 회귀 Linear Regression

💡개념
점들을 가장 잘 지나가는 직선 하나를 찾는 것이에요.

슬라이드의 예는 아파트 크기와 판매 가격이에요. 크기가 커지면 가격이 오르는 관계를 직선 식으로 적으면, 새 아파트의 가격을 짐작할 수 있어요.

직선은 기울기와 y절편 두 숫자로 정해져요. 필기처럼 선형 회귀에서 가중치에 해당하는 건 이 2개뿐이에요.

퍼셉트론에서 출력 함수를 f(x) = x로 두면 출력은 wx + b예요. 바로 직선 식이에요. 그래서 퍼셉트론 하나로 선형 회귀를 할 수 있어요. w가 기울기, b가 y절편이에요.

👀그림으로 먼저 보기
xyy = 2x − 1점 6개 (x, y)
분홍 점 6개를 지나는 파란 직선 y = 2x − 1
❓이게 없으면?
Q아파트 크기만 알 때 가격을 어떻게 짐작할까요?A지난 거래들로 크기와 가격의 관계를 직선으로 찾아 두면, 새 크기를 넣어 가격을 바로 계산할 수 있어요.
⚙️어떻게 작동할까
1
데이터 점들을 그래프에 찍어요.
→
2
아무 직선으로 시작해 점과의 오차를 재요.
→
3
오차가 줄어드는 쪽으로 기울기와 절편을 고쳐요.
📏쉬운 비유: 자로 줄 긋기
비유선형 회귀
흩어진 점 사이로 자를 대 보기↔직선 후보 정하기
자를 기울이고 올렸다 내렸다↔기울기 w, 절편 b 바꾸기
점들과 가장 가까운 자리에서 멈춤↔오차가 가장 작은 직선
🔢숫자 예시
x = [−1, 0, 1, 2, 3, 4]
y = [−3, −1, 1, 3, 5, 7]
수업 예제 데이터
찾은 직선
y = 2x − 1
기울기 2, 절편 −1
x = 10을 넣으면
19
2×10 − 1
⚠️헷갈리기 쉬운 점
선형 회귀
숫자를 맞혀요. 예: 가격, 매출.
분류
정해진 종류 중 하나를 골라요. 예: 숫자 0~9, 옷 종류.
핵심 정리
  • 선형 회귀 = 점들을 가장 잘 지나는 직선 찾기예요.
  • 직선은 기울기와 절편, 가중치 2개로 정해져요.
  • 출력 함수가 f(x) = x인 퍼셉트론이 곧 선형 회귀예요.

3-2. 비용 함수와 경사 하강법

이 장에서 배울 것
"얼마나 틀렸나"를 재는 비용 함수와, 그 값을 줄여 가는 경사 하강법을 배워요.
개념 카드

평균제곱오차 MSE · Mean Squared Error

💡개념
예측이 정답에서 얼마나 틀렸는지를 제곱해 평균 낸 점수예요.

학습하려면 "얼마나 틀렸는지"를 숫자 하나로 알아야 해요. 이 숫자를 내는 함수를 비용 함수(또는 손실 함수)라고 해요.

평균제곱오차는 점마다 (예측 − 정답)을 제곱해서 모두 더하고, 점의 개수로 나눠요. 제곱을 하면 음수가 사라지고, 크게 틀린 것에 더 큰 벌점이 붙어요.

목표는 이 값이 가장 작아지는 가중치를 찾는 거예요. 필기의 "민스퀘어 에러 미니마이즈"가 이 말이에요.

👀그림으로 먼저 보기
예측선 y = x실제 점분홍 막대 = 오차 (예측 − 실제). 제곱해서 평균 내면 MSE
회색 점선(예측 y = x)과 분홍 점(정답) 사이의 막대가 오차예요
❓이게 없으면?
Q어떤 직선이 "더 잘 맞는지" 어떻게 비교할까요?A눈으로는 애매해요. 평균제곱오차라는 점수 하나로 바꾸면 작은 쪽이 더 잘 맞는 직선이라고 바로 알 수 있어요.
⚙️어떻게 작동할까
1
점마다 예측 − 정답 (오차)을 구해요.
→
2
오차를 제곱해요.
→
3
모두 더해서 점 개수로 나눠요.
🎯쉬운 비유: 과녁 맞히기 점수
비유오차
화살이 과녁 중심에서 떨어진 거리↔오차
멀리 빗나갈수록 벌점이 훨씬 큼↔제곱
여러 발의 평균 벌점↔평균제곱오차
🔢숫자 예시
예측선 y = x일 때 오차
2, 1, 0, −1, −2, −3
정답에서 뺀 값
제곱의 합
19
4+1+0+1+4+9
평균제곱오차
약 3.17
19 ÷ 6
정답 직선 y = 2x − 1
0
모든 점을 정확히 지나요
⚠️헷갈리기 쉬운 점
평균제곱오차 (MSE)
숫자를 맞히는 문제(회귀)에 써요.
교차 엔트로피
종류를 고르는 문제(분류)에 써요. 4부에서 나와요.

오차를 줄이는 방법은 2주차에 배운 경사 하강법이에요. 오차 그래프에서 내리막 방향으로 조금씩 가중치를 옮겨요.

wt+1 = wt − η ∇wE

말로 풀면: 새 가중치 = 지금 가중치 − (걸음 크기 η × 오차가 커지는 방향). 오차가 커지는 방향의 반대로 걸어요.

핵심 정리
  • 비용 함수는 틀린 정도를 숫자 하나로 바꿔요.
  • 평균제곱오차는 오차를 제곱해 평균 내요.
  • 경사 하강법으로 그 값이 작아지게 가중치를 고쳐요.

3-3. 케라스로 퍼셉트론 만들기

이 장에서 배울 것
구글 튜토리얼 코드로 퍼셉트론 하나가 y = 2x − 1을 스스로 찾는 과정을 봐요.

필기의 "케라스로 퍼셉트론… 추정 가능?"의 답은 네예요. 코드 몇 줄이면 돼요.

model = keras.Sequential([keras.layers.Dense(units=1, input_shape=[1])])
model.compile(optimizer='sgd', loss='mean_squared_error')

xs = np.array([-1.0, 0.0, 1.0, 2.0, 3.0, 4.0], dtype=float)
ys = np.array([-3.0, -1.0, 1.0, 3.0, 5.0, 7.0], dtype=float)

model.fit(xs, ys, epochs=500)
print(model.predict([10.0]))
줄쉬운 말
Sequential([Dense(units=1, …)])뉴런 1개짜리 층 하나 = 퍼셉트론 하나
compile(optimizer='sgd', loss='mean_squared_error')경사 하강법(SGD)으로, 평균제곱오차를 줄이며 배워라
xs, ys공부할 점 6개
fit(xs, ys, epochs=500)점 6개를 500번 반복해 공부해라
predict([10.0])x = 10이면 y는? → 19에 아주 가까운 값

정확히 19가 아니라 18.98처럼 나오는 게 보통이에요. 점이 6개뿐이라 "거의 확실히 19"라고 배운 거예요.

개념 카드

에포크 Epoch

💡개념
학습 데이터 전체를 한 번 다 보는 것이 1 에포크예요.

필기의 질문 "에포크? 는 뭐지"의 답이에요. 신경망은 데이터를 한 번 보고 끝내지 않아요. 같은 데이터를 여러 번 되풀이해 보면서 가중치를 조금씩 고쳐요.

코드의 epochs=500은 "점 6개를 500바퀴 돌며 공부하라"는 뜻이에요. 바퀴를 돌수록 오차가 줄어 y = 2x − 1에 가까워져요.

데이터가 많으면 한 번에 다 보지 않고 작은 묶음(미니 배치)으로 나눠 봐요. 케라스의 fit()은 이렇게 미니 배치 경사 하강법으로 학습해요. 묶음을 하나 볼 때마다 가중치를 한 번 고쳐요.

👀그림으로 먼저 보기
학습 데이터전체 (점 6개)1번째에포크2번째에포크…500번째에포크한 바퀴 볼 때마다 가중치를 조금씩 고쳐요
데이터 전체를 한 바퀴 볼 때마다 에포크가 하나씩 늘어요
❓이게 없으면?
Q데이터를 딱 한 번만 보면 어떻게 될까요?A가중치를 몇 번밖에 못 고쳐서 아직 많이 틀려요. 여러 에포크를 돌아야 오차가 충분히 줄어요.
⚙️어떻게 작동할까
1
데이터 전체를 처음부터 끝까지 봐요.
→
2
보면서 오차를 줄이도록 가중치를 고쳐요.
→
3
이 한 바퀴를 정한 횟수(epochs)만큼 되풀이해요.
📚쉬운 비유: 문제집 여러 번 풀기
비유학습
문제집 한 권을 끝까지 풀기↔1 에포크
틀린 문제를 보고 풀이법 고치기↔가중치 업데이트
문제집을 5번 반복↔epochs=5
🔢숫자 예시
수업 예제
500 에포크
점 6개를 500번 반복
Fashion-MNIST 예제
5 에포크
옷 사진 전체를 5번
사진 6만 장 ÷ 묶음 32장
1,875번
1 에포크 동안 가중치를 고치는 횟수
⚠️헷갈리기 쉬운 점
에포크
데이터 전체를 한 바퀴 보는 단위예요.
배치(묶음)
한 번에 보는 데이터 조각이에요. 묶음 하나마다 가중치를 한 번 고쳐요.
핵심 정리
  • Dense(units=1) 층 하나가 퍼셉트론 하나예요.
  • compile로 학습 방법과 오차 기준을 정해요.
  • fit으로 에포크 수만큼 반복해 배워요.

3-4. 손글씨 숫자 인식: 퍼셉트론의 한계

이 장에서 배울 것
퍼셉트론으로 손글씨 숫자를 맞혀 보고, 왜 더 큰 신경망이 필요한지 봐요.

두 번째 실습은 MNIST 손글씨 숫자(0~9) 사진이에요. 퍼셉트론처럼 직선(평면)으로 나누는 분류기도 정확도가 약 92%나 나와요.

하지만 슬라이드의 결론은 "실제로 쓰려면 성능이 더 좋아야 한다"예요. 100장 중 8장을 틀리면 은행 수표나 우편번호에는 쓰기 어려워요. 그래서 층을 쌓은 다층 퍼셉트론(MLP) 버전으로 넘어가요.

핵심 정리
  • 퍼셉트론 하나로도 숫자 인식 정확도 약 92%예요.
  • 실무에는 부족해서 층을 더 쌓아요.
  • 다음 부의 주인공이 다층 퍼셉트론이에요.
실무 관점
엑셀 그래프의 "추세선 추가"가 바로 선형 회귀예요. 매출과 광고비처럼 관계가 직선에 가까운 문제는 거대한 AI보다 선형 회귀가 더 싸고 설명하기도 쉬워요. 먼저 단순한 방법으로 기준 성능을 잡고, 부족할 때 큰 모델로 넘어가세요.

4부. 케라스로 다층 퍼셉트론 만들기

4-1. 실습 데이터: 패션 MNIST

이 장에서 배울 것
오늘 실습에 쓴 옷 사진 데이터가 어떻게 생겼는지 봐요.

필기의 "옷 관련된 거"가 Fashion-MNIST(패션 MNIST)예요. 독일 온라인 패션 회사 잘란도(Zalando)가 공개했어요.

항목내용
사진 수70,000장 (흑백)
종류10가지 옷·신발·가방
크기28 × 28칸 (낮은 해상도)
예9번 = 앵클부츠

10가지 종류는 0 티셔츠, 1 바지, 2 풀오버, 3 드레스, 4 코트, 5 샌들, 6 셔츠, 7 운동화, 8 가방, 9 앵클부츠예요. 보통 6만 장으로 학습하고 1만 장으로 시험해요.

코드는 fashion_mnist.load_data() 한 줄로 학습용 사진·정답과 시험용 사진·정답을 한꺼번에 불러와요.

핵심 정리
  • 패션 MNIST = 옷 사진 7만 장, 10종류예요.
  • 사진 한 장은 28×28 숫자 표예요.
  • load_data() 한 줄로 불러와요.

4-2. 모델 쌓기: 시퀀셜·덴스·활성화 함수

이 장에서 배울 것
층을 블록처럼 쌓는 방법과, 층 안에서 쓰는 활성화 함수를 배워요.

케라스의 기본 생각은 이래요. 층(layer)이 딥러닝의 블록이고, 모델은 층을 이어 붙인 그래프예요. 가장 단순한 모델이 Sequential(시퀀셜)이에요.

model = keras.Sequential([
    keras.layers.Flatten(input_shape=(28, 28)),
    keras.layers.Dense(128, activation=tf.nn.relu),
    keras.layers.Dense(10, activation=tf.nn.softmax)
])
질문 상자

Q. 시퀀셜? 왜 시퀀셜이에요?

A. "Sequential"은 "순서대로"라는 뜻이에요. 층을 위에서 아래로 한 줄로 쌓고, 입력 하나가 차례로 지나가 출력 하나가 나오는 모델이에요. 가장 단순해서 처음 배울 때 써요. 슬라이드의 트랜스포머처럼 갈래가 나뉘는 복잡한 모델은 다른 방식으로 만들어요.

이 모델은 은닉층이 하나인 2층 퍼셉트론, 가장 단순한 다층 퍼셉트론이에요. 입력 784칸 → 은닉 뉴런 128개(16개나 256개로 바꿔도 돼요) → 출력 10종류예요.

개념 카드

덴스 층 Dense Layer

💡개념
앞 층의 모든 값과 빠짐없이 연결된 층이에요.

"Dense"는 "빽빽한"이라는 뜻이에요. 앞 층의 값 하나하나가 이 층의 뉴런 모두와 선으로 이어져 있어서 그렇게 불러요.

사진을 넣기 전에 Flatten 층이 28×28 표를 784칸짜리 한 줄로 펴 줘요. 그다음 Dense(128)가 784개 값을 받아 뉴런 128개로 계산해요. 이게 은닉층이에요.

필기의 "덴스 레이어가 히든레이어"는 이 모델에선 맞아요. 다만 마지막 Dense(10)도 덴스 층이에요. 덴스는 연결 방식의 이름이고, 은닉·출력은 위치의 이름이에요.

👀그림으로 먼저 보기
28×28 사진784칸 한 줄(Flatten)Dense 128 · ReLUDense 10 · 소프트맥스옷 10종류 확률
28×28 사진을 한 줄로 펴서(Flatten) 128개, 다시 10개 뉴런으로 이어요
❓이게 없으면?
Q사진의 784개 숫자를 어떻게 한꺼번에 보고 판단할까요?A덴스 층이 784개 값을 모두 받아, 각 뉴런이 "가중치를 곱해 더한 값"을 만들어요. 그 값들이 옷 종류를 가르는 단서가 돼요.
⚙️어떻게 작동할까
1
Flatten이 사진을 784칸 한 줄로 펴요.
→
2
Dense(128)가 784개 값을 모두 받아 계산해요.
→
3
Dense(10)이 옷 10종류 각각의 점수를 내요.
🗣️쉬운 비유: 회의실 전원 참석 회의
비유덴스 층
모든 팀원이 모든 담당자에게 의견을 전달↔모든 입력이 모든 뉴런과 연결
담당자마다 의견마다 다른 무게를 둠↔연결마다 다른 가중치
담당자 128명이 각자 정리↔뉴런 128개의 출력
🔢숫자 예시
784 → 128
100,480개
784×128 가중치 + 128 편향
128 → 10
1,290개
128×10 가중치 + 10 편향
모델 전체
101,770개
이만큼의 숫자를 학습해요
⚠️헷갈리기 쉬운 점
덴스 층
연결 방식의 이름이에요. 모든 값이 빠짐없이 연결돼요.
은닉층
위치의 이름이에요. 입력과 출력 사이에 있는 층이에요.
개념 카드

ReLU 활성화 함수 Rectified Linear Unit

💡개념
0보다 작으면 0으로, 크면 그대로 내보내는 함수예요.

뉴런은 "입력 × 가중치의 합"을 그대로 내보내지 않고 활성화 함수를 한 번 거쳐요. 이걸 거쳐야 신경망이 직선이 아닌 복잡한 관계를 배울 수 있어요.

ReLU는 가장 많이 쓰는 활성화 함수예요. 식은 f(x) = max(x, 0)이에요. 코드로 쓰면 "x가 0보다 크면 x, 아니면 0"이에요. 계산이 아주 단순해서 빨라요.

슬라이드에는 다른 활성화 함수도 있어요. S자 모양의 시그모이드 1/(1+e−x), −1과 1 사이로 누르는 tanh, 음수를 조금 남기는 리키 ReLU max(x, 0.1x)예요.

👀그림으로 먼저 보기
ReLU: max(x, 0)시그모이드: S자 곡선음수는 0, 양수는 그대로0과 1 사이로 눌러 담기
ReLU는 꺾인 직선, 시그모이드는 S자 곡선이에요
❓이게 없으면?
Q활성화 함수 없이 층만 쌓으면 어떻게 될까요?A직선 계산을 여러 번 해도 결국 직선 하나와 같아요. 층을 쌓은 효과가 사라져요. 활성화 함수가 "꺾임"을 넣어 줘요.
⚙️어떻게 작동할까
1
뉴런이 입력 × 가중치의 합을 구해요.
→
2
그 값이 0 이하면 0을 내보내요.
→
3
0보다 크면 그 값을 그대로 내보내요.
🚰쉬운 비유: 수도꼭지의 역류 방지 밸브
비유ReLU
물이 앞으로 흐르면 그대로 통과↔양수는 그대로
물이 거꾸로 흐르려 하면 막음↔음수는 0
밸브 덕분에 흐름에 방향이 생김↔신경망에 꺾임이 생김
🔢숫자 예시
입력 3.2
3.2
양수라 그대로
입력 −1.5
0
음수라 0으로
입력 0
0
0은 0
⚠️헷갈리기 쉬운 점
ReLU
은닉층에 주로 써요. 꺾인 직선이에요.
소프트맥스
출력층에 써요. 점수를 확률로 바꿔요.
개념 카드

소프트맥스 Softmax

💡개념
출력 점수들을 모두 더하면 1이 되는 확률로 바꾸는 함수예요.

마지막 Dense(10) 층은 옷 10종류마다 점수를 하나씩 내요. 점수는 아무 숫자라서 그대로는 "몇 % 확신하는지" 알 수 없어요.

소프트맥스는 점수마다 e점수를 계산해 전체 합으로 나눠요. 그러면 모두 0과 1 사이가 되고 합은 1이 돼요. 점수가 큰 것은 확률이 훨씬 더 커져요.

필기의 "10개의 유닛은 10개로 클래시파이 해 준다"가 이거예요. 출력 뉴런 10개가 옷 10종류의 확률을 하나씩 맡아요. 가장 높은 확률의 종류가 예측 답이에요.

👀그림으로 먼저 보기
1.30.025.10.902.20.050.70.011.10.02점수 z확률 (모두 더하면 1)소프트맥스
점수 5.1이 확률 0.90으로 바뀌어 가장 유력한 답이 돼요
❓이게 없으면?
Q점수 1.3, 5.1, 2.2만 보고 "얼마나 확신하는지" 알 수 있을까요?A어렵죠. 소프트맥스로 확률로 바꾸면 "두 번째일 확률 90%"처럼 바로 읽을 수 있어요.
⚙️어떻게 작동할까
1
점수마다 e점수를 계산해요.
→
2
그 값들을 모두 더해요.
→
3
각 값을 합으로 나누면 확률이에요.
🗳️쉬운 비유: 반장 선거 득표율
비유소프트맥스
후보별 득표수↔출력 점수
득표수를 전체 표로 나눈 득표율↔확률 (합이 1)
득표율 1등이 반장↔확률 1등이 예측 답
🔢숫자 예시
점수 5.1
0.90
가장 유력한 답
점수 2.2
0.05
점수 1.3 / 1.1 / 0.7
0.02 / 0.02 / 0.01
모두 더하면 1
⚠️헷갈리기 쉬운 점
소프트맥스
여러 종류 중 하나를 고를 때 써요. 합이 1이에요.
시그모이드
"예/아니오" 하나의 확률을 낼 때 주로 써요.
핵심 정리
  • Sequential = 층을 순서대로 한 줄로 쌓은 모델이에요.
  • Flatten → Dense(128, ReLU) → Dense(10, 소프트맥스) 구조예요.
  • 은닉층엔 ReLU, 출력층엔 소프트맥스를 써요.

4-3. 학습 설정: 옵티마이저와 손실 함수

이 장에서 배울 것
compile()에서 정하는 두 가지, 옵티마이저와 손실 함수를 배워요.
model.compile(optimizer=tf.train.AdamOptimizer(),
              loss='sparse_categorical_crossentropy')
질문 상자

Q. 백프로파게이션으로 학습을 한다는 게 무슨 뜻이에요?

A. 역전파(백프로파게이션)는 출력의 오차를 거꾸로 거슬러 올라가며 "각 가중치를 어느 쪽으로 바꾸면 오차가 줄어드는지"를 계산하는 방법이에요. 그 계산 결과를 받아 실제로 가중치를 고치는 게 옵티마이저예요. 둘이 짝이 되어 학습이 돼요. 필기에 있는 3Blue1Brown 한국어 채널 영상이 이 과정을 그림으로 잘 보여 줘요. ▶ youtu.be/HKqdFQfXVhw▶ youtu.be/tIeHLnjs5U8

개념 카드

옵티마이저 Optimizer

💡개념
기울기를 보고 가중치를 얼마나, 어떻게 고칠지 정하는 방법이에요.

역전파는 "가중치를 어느 쪽으로 바꾸면 오차가 줄어드는지"(기울기)를 알려 줘요. 실제로 가중치를 얼마만큼 옮길지는 옵티마이저가 정해요. 슬라이드 제목도 "역전파를 위한 옵티마이저 알고리즘"이에요.

가장 기본은 SGD(확률적 경사 하강법)예요. 기울기에 걸음 크기를 곱한 만큼 움직여요. RMSprop, Adagrad처럼 걸음 크기를 상황에 맞춰 바꾸는 방법도 있어요.

이번 실습에서는 Adam을 썼어요(필기: "아담을 쓴다"). Adam은 지나온 움직임의 추세와 기울기의 크기를 함께 보고 걸음을 알아서 조절해서, 따로 손대지 않아도 잘 작동하는 편이에요.

👀그림으로 먼저 보기
오차가 가장 작은 곳역전파: "어느 쪽이 내리막?"옵티마이저: "얼마나 걸을까?"SGD · RMSprop · Adam · Adagrad오차
역전파가 방향을 알려 주면, 옵티마이저가 걸음을 정해 내려가요
❓이게 없으면?
Q기울기만 알면 가중치를 바로 고칠 수 있을까요?A얼마나 움직일지가 남아요. 너무 크면 골짜기를 지나쳐 버리고, 너무 작으면 한참 걸려요. 옵티마이저가 이 걸음을 정해요.
⚙️어떻게 작동할까
1
역전파로 각 가중치의 기울기를 구해요.
→
2
옵티마이저가 걸음 크기를 정해요.
→
3
가중치 = 가중치 − 걸음 크기 × 기울기로 고쳐요.
⛰️쉬운 비유: 안개 낀 산에서 내려오기
비유학습
발밑 경사를 느끼기↔역전파로 기울기 구하기
보폭을 정하는 등산 요령↔옵티마이저
경사가 완만해지면 보폭을 줄이는 노련한 등산객↔Adam
🔢숫자 예시
지금 가중치
0.5
기울기 2, 걸음 크기 0.1
− 0.2
0.1 × 2
새 가중치
0.3
0.5 − 0.2
⚠️헷갈리기 쉬운 점
역전파
각 가중치의 기울기(어느 쪽이 내리막인지)를 계산해요.
옵티마이저
그 기울기로 가중치를 실제로 얼마나 고칠지 정해요.

손실 함수도 고를 수 있어요. 슬라이드 목록은 MeanSquaredError(평균제곱오차), CategoricalCrossentropy, SparseCategoricalCrossentropy, BinaryCrossentropy, KLDivergence, CosineSimilarity 등이에요. 손실 함수는 가중치를 고칠 때 쓰는 피드백 함수예요.

개념 카드

교차 엔트로피 Cross Entropy

💡개념
정답에 얼마나 높은 확률을 줬는지로 매기는 벌점이에요.

분류 문제의 출력은 확률이에요. 이때 쓰는 손실 함수가 교차 엔트로피예요. 식은 L = −Σ yj log f(zj)예요.

정답 칸의 y만 1이고 나머지는 0이라서, 결국 "−log(정답에 준 확률)"만 남아요. 정답에 0.9를 주면 벌점이 작고, 0.05를 주면 벌점이 커요.

실습 코드는 sparse_categorical_crossentropy를 써요. "sparse"는 정답을 [0,…,0,1] 같은 줄 대신 숫자 하나(예: 9 = 앵클부츠)로 준다는 뜻이에요. 계산하는 벌점은 같아요.

👀그림으로 먼저 보기
정답(앵클부츠)에 준 확률이…확률 0.90손실 0.11확률 0.50손실 0.69확률 0.05손실 3.00막대 길이 = 손실(벌점). 정답 확률이 낮을수록 길어져요
정답에 준 확률이 낮을수록 벌점이 빠르게 커져요
❓이게 없으면?
Q확률로 답하는 모델을 평균제곱오차로 채점하면 안 될까요?A할 수는 있지만 학습이 더뎌요. 교차 엔트로피는 정답을 자신 있게 틀릴수록 벌점을 크게 줘서 더 빨리 고쳐요.
⚙️어떻게 작동할까
1
모델이 10종류의 확률을 내요.
→
2
정답 칸의 확률만 골라요.
→
3
−log(그 확률)이 벌점이에요.
🌧️쉬운 비유: 일기예보 채점
비유교차 엔트로피
비가 왔는데 "비 올 확률 90%"↔벌점 작음
비가 왔는데 "비 올 확률 5%"↔벌점 큼
예보 실력이 늘수록 평균 벌점이 줄어듦↔학습이 잘됨
🔢숫자 예시
정답에 준 확률 0.90
0.11
−ln 0.90
정답에 준 확률 0.50
0.69
−ln 0.50
정답에 준 확률 0.05
3.00
−ln 0.05
⚠️헷갈리기 쉬운 점
categorical
정답을 [0,0,…,1] 같은 한 줄로 줘요.
sparse_categorical
정답을 숫자 하나(예: 9)로 줘요. 벌점 계산은 같아요.
핵심 정리
  • compile()에서 옵티마이저와 손실 함수를 정해요.
  • 역전파가 기울기를, 옵티마이저가 걸음을 맡아요.
  • 분류에는 교차 엔트로피 손실을 써요.

4-4. 학습·평가·예측

이 장에서 배울 것
fit, evaluate, predict 세 줄로 학습부터 예측까지 하는 흐름을 봐요.
model.fit(train_images, train_labels, epochs=5)

test_loss, test_acc = model.evaluate(test_images, test_labels)

predictions = model.predict(my_images)
데이터load_data()모델 쌓기Sequential설정compile()학습fit()평가evaluate()예측predict()필기: "모델 정해 주고, 학습시키고, 추론하고, 결과를 뽑는다"
데이터 → 모델 쌓기 → 설정 → 학습 → 평가 → 예측
코드쉬운 말
fit(…, epochs=5)학습용 사진으로 5바퀴 공부해라
evaluate(test_images, test_labels)처음 보는 시험용 사진으로 점수(정확도)를 매겨라
predict(my_images)새 사진이 어떤 옷인지 10종류 확률로 답해라

예측 결과는 10칸짜리 확률이에요. 예를 들어 9번 칸이 가장 크면 "앵클부츠"라고 답한 거예요. 필기의 "테스트해 보니? 프리딕션?"이 이 단계예요.

슬라이드 요약처럼, 케라스는 텐서플로 위에서 딥러닝을 하는 표준 창구예요. 층은 가중치와 계산을 담고, 층을 모아 모델을 만들고, compile로 옵티마이저·손실·평가 기준을 고르고, fit으로 미니 배치 경사 하강법 학습을 하고, predict로 새 입력을 예측해요.

핵심 정리
  • fit = 학습, evaluate = 시험, predict = 실제 예측이에요.
  • 안쪽 코드는 어마어마하게 복잡하지만 몇 줄로 쓸 수 있어요.
  • 시험은 꼭 학습에 안 쓴 데이터로 해요.
실무 관점
필기처럼 "그 안의 코드는 어마어마하게 복잡한데, 우리가 쓰는 건 몇 줄"이에요. 경영자가 정할 것은 코드가 아니라 ① 어떤 데이터로 ② 무엇을 맞힐지 ③ 어떤 기준(정확도 몇 %)이면 쓸 만한지예요. 이 세 가지를 먼저 정해 개발팀에 주세요.

5부. 비지도 학습: 라벨 없이 패턴 찾기

5-1. 라벨이 있을 때와 없을 때

이 장에서 배울 것
지도 학습과 비지도 학습의 차이와, 비지도 학습이 쓰이는 곳을 배워요.

필기의 첫 예는 이커머스예요. 미식축구를 좋아하는 사람들은 슈퍼볼을 보면서 맥주를 사는 것처럼, 취향에 따라 함께 움직이는 패턴이 있어요. 쿠팡이나 아마존의 "너와 비슷한 사람들은 이것도 샀어요" 추천이 이런 패턴을 쓴 거예요.

개념 카드

비지도 학습 Unsupervised Learning

💡개념
정답(라벨) 없이 데이터 속 무리와 패턴을 찾는 학습이에요.

지금까지는 "이 사진은 앵클부츠"처럼 정답이 붙은 데이터로 배웠어요. 이게 지도 학습이에요. 정답을 라벨(label)이라고 해요.

비지도 학습은 라벨이 없어요. 대신 "누구와 누구가 비슷하고 무엇이 공통점인지"를 보고 스스로 구조를 찾아요. 필기처럼 한쪽은 라벨이 있고, 한쪽은 없어요.

쓰임새는 크게 세 가지예요. 비슷한 것끼리 묶는 군집화, 특징을 줄여 단순하게 보는 차원 축소, 평소와 다른 것을 찾는 이상 탐지예요.

👀그림으로 먼저 보기
지도 학습: 정답 색(라벨)이 있어요비지도 학습: 색 없이 무리를 찾아요
같은 점들이에요. 왼쪽은 정답 색이 있고, 오른쪽은 색 없이 무리를 찾아요
❓이게 없으면?
Q고객 수백만 명에게 일일이 "어떤 유형인지" 정답을 붙일 수 있을까요?A불가능해요. 비지도 학습은 정답 없이도 비슷한 고객끼리 묶어 줘서, 사람이 그 무리에 이름만 붙이면 돼요.
⚙️어떻게 작동할까
1
라벨 없는 데이터를 모아요.
→
2
비슷한 정도를 재서 패턴을 찾아요.
→
3
사람이 그 패턴을 보고 의미를 붙여요.
🏫쉬운 비유: 전학 첫날 반 친구 파악하기
비유비지도 학습
친구들 이름표에 성격이 적혀 있지 않음↔라벨 없음
같이 노는 무리를 지켜봄↔패턴 찾기
"운동 좋아하는 무리"라고 이름 붙임↔사람이 해석
🔢숫자 예시
지도 학습 질문
"떠날까?"
이 고객이 떠날지 맞히기
비지도 학습 질문
"누구랑 비슷?"
비슷하게 행동하는 고객 찾기
⚠️헷갈리기 쉬운 점
지도 학습
정답이 있는 데이터로 배워요. 예측·분류를 해요.
비지도 학습
정답 없이 구조를 찾아요. 묶기·줄이기·이상 찾기를 해요.
질문 상자

Q. 공부에도 쓸 수 있어요? "이 문제도 틀렸어?"

A. 네. 나와 비슷하게 푼 학생들이 많이 틀린 문제를 찾아 "이 문제도 확인해 보세요"라고 추천할 수 있어요. 쇼핑 추천과 같은 원리예요.

핵심 정리
  • 라벨 = 정답이에요. 비지도 학습에는 없어요.
  • 비슷한 사람끼리 묶어 개인 맞춤 추천을 해요.
  • 군집화·차원 축소·이상 탐지가 세 가지 쓰임새예요.

5-2. 무엇이 "비슷한" 걸까요: 피처

이 장에서 배울 것
비슷함의 기준인 피처와, 피처 고르기가 왜 중요한지 배워요.
개념 카드

피처 Feature

💡개념
무엇을 비교할지 정하는 대상의 특징이에요.

필기처럼 물체의 특징을 피처라고 해요. 과일이라면 색, 크기, 무게가 피처예요. 고객이라면 방문 횟수, 지출액, 사는 물건 종류가 피처예요.

같은 대상이라도 어떤 피처로 비교하느냐에 따라 무리가 달라져요. 색으로 묶으면 빨강·노랑, 크기로 묶으면 큰 것·작은 것이 돼요.

사람의 특징은 셀 수 없이 많아요(필기: "인피니트 디멘전"). 그중 몇 개의 중요한 피처를 고르는 게 핵심이에요. 단위와 크기 맞추기(스케일링)도 결과를 바꿔요.

👀그림으로 먼저 보기
같은 과일 6개색으로 묶으면크기로 묶으면무엇을 비교할지(피처)에따라 무리가 달라져요단위·크기 맞추기(스케일링)도결과를 바꿔요
색으로 묶을지 크기로 묶을지에 따라 무리가 달라져요
❓이게 없으면?
Q"비슷하다"는 무엇을 기준으로 정할까요?A피처를 정해야 기준이 생겨요. 피처를 잘못 고르면 쓸모없는 무리가 나와요.
⚙️어떻게 작동할까
1
비교할 피처를 골라요.
→
2
피처마다 단위·크기를 맞춰요(스케일링).
→
3
피처 값이 가까운 것끼리 "비슷하다"고 봐요.
👕쉬운 비유: 옷장 정리
비유피처
색깔별로 정리↔피처 = 색
계절별로 정리↔피처 = 계절
정리 기준에 따라 칸이 달라짐↔피처에 따라 무리가 달라짐
🔢숫자 예시
키 170cm와 175cm
차이 5
cm로 재면
키 1.70m와 1.75m
차이 0.05
m로 재면. 같은 차이도 작게 보여요
그래서
스케일링
피처 단위를 맞춰야 공정하게 비교해요
⚠️헷갈리기 쉬운 점
피처
비교의 기준이 되는 특징이에요. 사람이 고르거나 모델이 찾아요.
라벨
맞혀야 할 정답이에요. 비지도 학습에는 없어요.
핵심 정리
  • 피처 = 비교할 특징이에요.
  • 피처를 바꾸면 무리가 바뀌어요.
  • 단위·크기 맞추기도 결과를 바꿔요.

5-3. 군집화: 비슷한 것끼리 묶기

이 장에서 배울 것
가장 대표적인 군집화 방법인 K-평균이 세 단계로 어떻게 작동하는지 배워요.

필기처럼 "클러스터링을 해서 비슷한 종류를 찾는 것"은 상업적으로 아주 유용해요. 고객 무리마다 알맞은 프로모션을 줄 수 있으니까요.

개념 카드

K-평균 군집화 K-means Clustering

💡개념
데이터를 K개의 무리로 나누는 가장 대표적인 방법이에요.

군집화는 비슷한 것끼리 같은 무리에 넣는 거예요. 무리의 기준은 우리가 고른 피처예요.

K-평균은 무리 수 K를 먼저 정해요. 그리고 "가까운 중심에 배정 → 중심을 무리의 평균으로 옮기기"를 되풀이해요. 중심이 더 움직이지 않으면 끝나요.

슬라이드의 말처럼 무리에 쓸모 있는 이름을 붙이는 건 사람이에요. 기계는 "1번 무리"라고만 알려 줘요.

👀그림으로 먼저 보기
한 달 방문 횟수1회 지출 ($)"가끔 와서 많이 사는 손님""자주 와서 조금씩 사는 손님"✕ = 무리의 중심(평균)
한 달 방문 횟수와 1회 지출로 손님을 두 무리(K=2)로 나눈 예
❓이게 없으면?
Q"가끔 와서 많이 사는 손님"을 어떻게 골라낼까요?A피처 두 개(방문 횟수, 지출)로 K-평균을 돌리면 그런 손님들이 한 무리로 모여요. 그 무리에 맞는 프로모션을 줄 수 있어요.
⚙️어떻게 작동할까
1
무리 수 K를 정하고 중심을 아무 데나 놓아요.
→
2
점마다 가장 가까운 중심의 무리에 넣어요.
→
3
중심을 무리의 평균 위치로 옮기고 2~3을 되풀이해요.
🏃쉬운 비유: 운동회 줄 서기
비유K-평균
반장 3명이 아무 데나 섬↔중심 K=3개
학생들이 가장 가까운 반장 쪽에 섬↔가까운 중심에 배정
반장이 자기 줄 가운데로 옮김↔중심을 평균으로 이동
🔢숫자 예시
분홍 무리 4명 방문 횟수
평균 1.75회
(1 + 2 + 1.5 + 2.5) ÷ 4
분홍 무리 지출
평균 80달러
(70 + 85 + 90 + 75) ÷ 4
파랑 무리 중심
(8회, 22.5달러)
자주 와서 조금씩
⚠️헷갈리기 쉬운 점
K-평균
K를 사람이 정해요. K를 바꾸면 무리도 달라져요.
분류(지도 학습)
정해진 정답 종류가 있고 그걸 맞혀요.
핵심 정리
  • 군집화 = 비슷한 것끼리 같은 무리에 넣기예요.
  • K-평균: 중심 놓기 → 가까운 중심 배정 → 중심 옮기기 반복이에요.
  • 무리에 이름을 붙이는 건 사람이에요.

5-4. 차원 축소: 더 단순하게 보기

이 장에서 배울 것
많은 피처를 몇 개의 축으로 줄이는 차원 축소와 PCA를 배워요.

필기처럼 "축을 찾아내는 게 중요한데 어렵다"가 차원 축소의 핵심이에요. 가장 쉬운 방법이 PCA예요.

개념 카드

주성분 분석 PCA · Principal Component Analysis

💡개념
많은 피처를 정보를 최대한 지키며 몇 개의 축으로 줄이는 방법이에요.

차원 축소는 데이터를 더 적은 피처로 단순하게 보는 거예요. 필기처럼 "세상은 무지무지 복잡한데, 몇 개의 중요한 신호만 보고 예측하고 싶은" 거예요.

PCA는 그중 가장 쉬운 방법이에요. 피처들을 섞어 새 축(주성분)을 만들어요. 첫째 축은 데이터가 가장 넓게 퍼진 방향, 둘째 축은 그다음으로 넓게 퍼진 방향이에요.

필기의 예처럼 재무제표에는 숫자가 수백 개라 회사가 좋은지 한눈에 안 보여요. 중요한 몇 개 축으로 줄이면 "이 데이터가 가진 가장 중요한 것"을 짧게 설명할 수 있어요.

👀그림으로 먼저 보기
방문 빈도지출둘러본 시간본 상품 수장바구니 크기주성분 1주성분 2주성분 1주성분 2피처 5개
피처 5개를 주성분 2개로 줄여 평면 위에 점으로 찍어요
❓이게 없으면?
Q피처가 100개면 그래프로 그릴 수 있을까요?A사람은 2~3차원까지만 볼 수 있어요. PCA로 2개 축으로 줄이면 한 장의 그림으로 보고 무리도 찾을 수 있어요.
⚙️어떻게 작동할까
1
피처들의 값을 모아요(단위를 맞춰서).
→
2
데이터가 가장 넓게 퍼진 방향을 첫째 축으로 잡아요.
→
3
그와 겹치지 않는 다음 방향을 둘째 축으로 잡아요.
🗿쉬운 비유: 조각상 그림자 사진
비유PCA
3차원 조각상↔피처가 많은 데이터
모양이 가장 잘 드러나는 방향에서 빛 비추기↔주성분 고르기
벽에 비친 2차원 그림자↔줄어든 데이터
🔢숫자 예시
원래 피처
5개
방문 빈도·지출·둘러본 시간·본 상품 수·장바구니 크기
줄인 축
2개
주성분 1, 주성분 2
남기려는 것
퍼짐(변화)
최대한 많이
⚠️헷갈리기 쉬운 점
PCA (차원 축소)
피처 수를 줄여요. 데이터 개수는 그대로예요.
군집화
데이터를 무리로 나눠요. 피처 수는 그대로예요.
핵심 정리
  • 차원 축소 = 더 적은 피처로 단순하게 보기예요.
  • PCA는 가장 넓게 퍼진 방향부터 새 축을 만들어요.
  • 복잡한 재무제표도 몇 개 축으로 요약할 수 있어요.

5-5. 이상 탐지: 평소와 다른 것 찾기

이 장에서 배울 것
평소 패턴에서 벗어난 사례를 찾는 이상 탐지를 배워요.
개념 카드

이상 탐지 Anomaly Detection

💡개념
평소 패턴과 크게 다른 사례를 찾아내는 방법이에요.

필기처럼 "평소 데이터는 대부분 이런데, 왜 이런 경우가 있지?" 하고 알려 줘야 할 때가 있어요. 공장 센서, 카드 결제, 서버 기록 같은 곳이에요.

이상 탐지는 평소 모습을 먼저 배우고, 거기서 멀리 떨어진 것을 표시해요. 라벨이 없어도 할 수 있어서 비지도 학습에 들어가요.

중요한 건 찾은 것이 곧 "문제"는 아니라는 점이에요. 슬라이드 말대로 이상한 사례는 조사할 후보예요. 드물지만 정상인 일, 측정 오류, 진짜 변화일 수 있어요.

👀그림으로 먼저 보기
이상한 점!센서 A센서 B평소 데이터드물지만 정상인 일?측정이 잘못됐나?진짜로 뭔가 바뀌었나?
평소 점들(파랑)에서 멀리 떨어진 점(분홍)을 표시해요
❓이게 없으면?
Q수백만 건의 결제를 사람이 다 볼 수 있을까요?A못 봐요. 이상 탐지가 "평소와 다른 몇 건"만 골라 주면, 사람은 그것만 확인하면 돼요.
⚙️어떻게 작동할까
1
평소 데이터로 보통의 모습을 배워요.
→
2
새 데이터가 보통에서 얼마나 먼지 재요.
→
3
많이 먼 것을 조사 후보로 알려요.
🔍쉬운 비유: 단골 가게 사장님의 눈
비유이상 탐지
늘 오던 손님이 늘 사던 걸 삼↔평소 패턴
처음 보는 사람이 현금 다발로 대량 구매↔이상한 사례
"무슨 일이지?" 하고 살펴봄↔조사 후보로 표시
🔢숫자 예시
평소 점
22개
한쪽에 몰려 있어요
튀는 점
1개
조사 후보
가능한 설명
3가지
드문 정상 · 측정 오류 · 진짜 변화
⚠️헷갈리기 쉬운 점
이상 탐지
평소와 다른 것을 찾아요. 정답이 없어도 돼요.
불량 분류(지도 학습)
불량 사진 정답이 많이 있을 때 "불량/정상"을 맞혀요.
핵심 정리
  • 이상 탐지 = 평소와 크게 다른 사례 찾기예요.
  • 찾은 것은 "문제"가 아니라 "조사할 후보"예요.
  • 라벨 없이도 할 수 있어요.

5-6. 패턴은 사람이 해석해야 해요

이 장에서 배울 것
비지도 학습 결과를 믿기 전에 꼭 던져야 할 세 가지 질문을 배워요.

같은 데이터도 설정을 바꾸면 다르게 보여요. 슬라이드는 K=2와 K=3으로 같은 데이터를 묶었더니 무리가 달라지는 모습을 보여 줬어요. 그래서 필기처럼 세 가지를 물어야 해요.

피처무엇을 비교했나?안정성설정을 바꿔도 남나?유용성진짜 질문에 도움 되나?
피처 · 안정성 · 유용성
질문뜻필기 표현
피처무엇을 기준으로 비교했나요?"어떤 피처를 가지고 비교를 할거냐?"
안정성K나 설정을 바꿔도 그 패턴이 계속 나오나요?"다른 축에서 봐도 계속 유지가 되냐?"
유용성우리가 진짜 알고 싶은 질문에 도움이 되나요?"경영 현상을 해석할 때 유용하게 쓰일 수 있느냐?"
방법하는 일이런 질문에
군집화비슷한 사례를 묶어요"어떤 고객 유형이 있을까?"
차원 축소표현을 단순하게 해요"수많은 지표 중 핵심 축은?"
이상 탐지드문 사례를 찾아요"평소와 다른 거래는?"
핵심 정리
  • 패턴에 의미를 주는 건 사람의 판단이에요.
  • 피처·안정성·유용성 세 가지를 꼭 확인해요.
  • 질문에 맞는 방법(묶기·줄이기·찾기)을 골라요.
실무 관점
고객 세분화 결과를 받으면 세 가지를 물어보세요. ① 어떤 데이터(피처)로 묶었나요? ② 무리 수를 바꿔도 비슷한 무리가 나오나요? ③ 이 무리별로 다른 프로모션을 하면 매출이 달라질까요? 세 질문에 답이 있어야 실제 마케팅에 쓸 수 있어요.

수업 영상 모음

필기와 강의 슬라이드에 나온 유튜브 링크예요. 제목을 누르면 열려요.

▶
샘 리처드 Sam Richards · 1부 오늘의 이야기 · 슬라이드 3쪽
https://www.youtube.com/watch?v=ZUJGS617-IE
▶
AI Frontier Korea (노정석) · 1부 VIZCOM · 슬라이드 5쪽
https://www.youtube.com/watch?v=3nHLrMOalkY
▶
3Blue1Brown 한국어 · 옵티마이저 · 필기
https://www.youtube.com/watch?v=HKqdFQfXVhw
▶
3Blue1Brown 한국어 · 옵티마이저 · 필기
https://www.youtube.com/@3Blue1BrownKR
▶
3Blue1Brown · 역전파·옵티마이저 · 슬라이드 61쪽
https://www.youtube.com/watch?v=tIeHLnjs5U8
▶
Aurélien Géron · 교차 엔트로피 · 슬라이드 57쪽
https://www.youtube.com/watch?v=ErfnhcEV1O8
▶
Udacity · 교차 엔트로피 · 슬라이드 57쪽
https://www.youtube.com/watch?v=tRsSi_sqXjI

오늘 수업 전체 요약

부한 줄 요약
1부 오늘의 이야기AI는 스스로 결정하는 행위자이고, AI 시대 작은 팀의 무기는 쉽게 베낄 수 없는 미션(해자)이에요.
2부 텐서데이터와 신경망은 모두 텐서로 담고, 신경망 계산은 행렬 곱셈이며, 텐서플로·케라스가 이를 대신해 줘요.
3부 퍼셉트론과 선형 회귀퍼셉트론 하나로 직선 y = 2x − 1을 찾고, 평균제곱오차를 에포크마다 줄여 가며 배워요.
4부 케라스 MLPFlatten → Dense(128, ReLU) → Dense(10, 소프트맥스)를 Adam과 교차 엔트로피로 학습해 옷 사진 10종을 분류해요.
5부 비지도 학습라벨 없이 군집화·차원 축소(PCA)·이상 탐지로 패턴을 찾고, 그 의미는 사람이 피처·안정성·유용성으로 판단해요.

용어 색인

한글영어한 줄 뜻나온 장
행위자Agent스스로 정보를 처리하고 결정하는 주체1-1
언더독Underdog질 것이라 여겨지던 약자1-2
해자Moat경쟁자가 따라오지 못하게 막는 장벽1-3
스칼라Scalar크기만 있는 숫자 하나 (랭크 0)2-1
벡터Vector크기와 방향이 있는 숫자의 줄 (랭크 1)2-1
텐서Tensor숫자를 여러 방향으로 담은 상자2-1
파라미터Parameter학습으로 고치는 숫자 (가중치·편향)2-3
편향Bias뉴런마다 더하는 숫자2-3
행렬 곱셈Matrix Multiplication가로줄 × 세로줄을 곱해 더하기2-3
텐서플로TensorFlow텐서 계산 엔진2-4
케라스Keras텐서플로를 쉽게 쓰는 창구2-4
선형 회귀Linear Regression점들을 잘 지나는 직선 찾기3-1
비용 함수Cost Function틀린 정도를 숫자로 바꾸는 함수3-2
평균제곱오차Mean Squared Error오차를 제곱해 평균 낸 점수3-2
에포크Epoch데이터 전체를 한 번 다 보는 것3-3
시퀀셜 모델Sequential Model층을 순서대로 쌓은 모델4-2
덴스 층Dense Layer모든 값과 연결된 층4-2
ReLURectified Linear Unit음수는 0, 양수는 그대로4-2
소프트맥스Softmax점수를 합이 1인 확률로4-2
옵티마이저Optimizer가중치를 고칠 걸음을 정하는 방법4-3
교차 엔트로피Cross Entropy정답 확률로 매기는 벌점4-3
비지도 학습Unsupervised Learning정답 없이 패턴 찾기5-1
라벨Label데이터에 붙은 정답5-1
피처Feature비교의 기준이 되는 특징5-2
군집화Clustering비슷한 것끼리 묶기5-3
주성분 분석Principal Component Analysis피처를 몇 개 축으로 줄이기5-4
이상 탐지Anomaly Detection평소와 다른 사례 찾기5-5