
학습 내용
다층 퍼셉트론 (MLP)
Level 1 마지막 강의!
학습 목표
이 레슨을 완료하면:
- •다층 퍼셉트론(MLP)이 무엇인지 이해합니다
- •XOR 문제가 어떻게 해결되는지 단계별로 따라갈 수 있습니다
- •은닉층이 무엇이고 왜 중요한지 파악합니다
- •"딥러닝"이라는 이름이 어디서 왔는지 알게 됩니다
- •MLP가 왜 현대 AI의 기초인지 이해합니다
핵심 메시지
"퍼셉트론 하나로 안 되면, 여러 개를 층으로 쌓으면 됩니다! 이 단순한 아이디어가 딥러닝의 시작이고, ChatGPT까지 이어지는 모든 AI의 기초입니다."
1. 복습: 왜 XOR이 문제였나?
지난 시간에 배운 핵심을 빠르게 복습합시다.
text퍼셉트론 하나 = 직선 하나 AND: 직선 하나로 분리 가능 → 퍼셉트론 OK OR: 직선 하나로 분리 가능 → 퍼셉트론 OK NOT: 직선 하나로 분리 가능 → 퍼셉트론 OK XOR: 직선 하나로 분리 불가능 → 퍼셉트론 실패!
그래서 어떻게 하면 될까요? 직선이 하나로 부족하면, 여러 개를 쓰면 됩니다!
2. 다층 퍼셉트론의 아이디어
비유: 요리사 팀
혼자서는 어려운 요리를 생각해보세요. 코스 요리를 혼자 다 만들기는 힘들죠?
text혼자 하는 요리사 (단일 퍼셉트론): 재료 → [한 명이 다 함] → 완성? (간단한 요리만 가능) 팀으로 하는 요리사 (다층 퍼셉트론): 재료 → [전처리 팀] → [조리 팀] → [플레이팅 팀] → 완성! (입력층) (은닉층) (출력층)
각 팀이 자기 역할을 하고, 그 결과를 다음 팀에 넘기면 훨씬 복잡한 요리도 만들 수 있어요! MLP도 같은 원리입니다.
Multi-Layer Perceptron (MLP)
MLP는 말 그대로 퍼셉트론을 여러 층(Layer)으로 쌓은 것입니다.
| 층 이름 | 영어 | 역할 | 비유 |
|---|---|---|---|
| 입력층 | Input Layer | 데이터가 들어오는 곳 | 재료 투입구 |
| 은닉층 | Hidden Layer | 중간 계산 (핵심!) | 주방 (밖에서 안 보임) |
| 출력층 | Output Layer | 최종 결과 출력 | 완성된 요리 서빙 |
은닉층이 "Hidden(숨겨진)"이라고 불리는 이유가 재미있어요. 밖에서 보면 입력과 출력만 보이지, 중간에 어떤 계산이 일어나는지는 보이지 않거든요. 마치 레스토랑 주방이 손님에게 보이지 않는 것과 같아요!
3. XOR 해결하기 -- 단계별 따라가기
NAND 게이트 먼저 알아보기
XOR을 풀려면 새로운 게이트가 하나 필요합니다. NAND = NOT + AND, 즉 AND의 결과를 뒤집은 것이에요.
| x1 | x2 | AND 결과 | NAND 결과 (AND 뒤집기) |
|---|---|---|---|
| 0 | 0 | 0 | 1 |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 0 |
AND는 "둘 다 참이면 참"인데, NAND는 "둘 다 참이면 거짓"입니다. 정반대죠!
XOR을 게이트 조합으로 풀기
놀라운 발견: XOR = NAND와 OR의 결과를 AND로 합치면 됩니다!
모든 입력을 하나씩 따라가봅시다
입력 (0, 0) -- 기대 출력: 0
text은닉층: NAND(0, 0) = 1 (둘 다 0이니까 NAND는 1) OR(0, 0) = 0 (둘 다 0이니까 OR도 0) 출력층: AND(1, 0) = 0 (둘 다 1이어야 하는데 하나가 0) 결과: 0 (정답!)
입력 (0, 1) -- 기대 출력: 1
text은닉층: NAND(0, 1) = 1 (둘 다 1이 아니니까 NAND는 1) OR(0, 1) = 1 (하나라도 1이니까 OR은 1) 출력층: AND(1, 1) = 1 (둘 다 1이니까 AND는 1) 결과: 1 (정답!)
입력 (1, 0) -- 기대 출력: 1
text은닉층: NAND(1, 0) = 1 (둘 다 1이 아니니까 NAND는 1) OR(1, 0) = 1 (하나라도 1이니까 OR은 1) 출력층: AND(1, 1) = 1 (둘 다 1이니까 AND는 1) 결과: 1 (정답!)
입력 (1, 1) -- 기대 출력: 0
text은닉층: NAND(1, 1) = 0 (둘 다 1이니까 NAND는 0!) OR(1, 1) = 1 (하나라도 1이니까 OR은 1) 출력층: AND(0, 1) = 0 (둘 다 1이어야 하는데 하나가 0) 결과: 0 (정답!)
전체 결과 검증표
| x1 | x2 | NAND (은닉1) | OR (은닉2) | AND (출력) | XOR 정답 | 맞음? |
|---|---|---|---|---|---|---|
| 0 | 0 | 1 | 0 | 0 | 0 | 맞음 |
| 0 | 1 | 1 | 1 | 1 | 1 | 맞음 |
| 1 | 0 | 1 | 1 | 1 | 1 | 맞음 |
| 1 | 1 | 0 | 1 | 0 | 0 | 맞음 |
4가지 경우 모두 정답! 퍼셉트론 3개(NAND, OR, AND)를 2층으로 연결하니까 XOR이 풀렸습니다!
4. 코드로 직접 확인하기
python# 다층 퍼셉트론으로 XOR 해결하기! def step(z): """계단 함수""" return 1 if z > 0 else 0 def AND_gate(x1, x2): return step(x1 * 0.5 + x2 * 0.5 - 0.7) def OR_gate(x1, x2): return step(x1 * 0.5 + x2 * 0.5 - 0.2) def NAND_gate(x1, x2): # AND의 반대: 가중치를 음수로! return step(x1 * (-0.5) + x2 * (-0.5) + 0.7) def XOR_gate(x1, x2): """다층 퍼셉트론: NAND + OR → AND""" # 은닉층 (1층) hidden1 = NAND_gate(x1, x2) hidden2 = OR_gate(x1, x2) # 출력층 (2층) output = AND_gate(hidden1, hidden2) return output # 테스트 print("=== 다층 퍼셉트론으로 XOR 해결! ===") print() for x1 in [0, 1]: for x2 in [0, 1]: nand = NAND_gate(x1, x2) or_val = OR_gate(x1, x2) result = XOR_gate(x1, x2) expected = 1 if x1 != x2 else 0 status = "정답!" if result == expected else "오답" print(f" ({x1}, {x2}) → NAND={nand}, OR={or_val} → AND={result} [{status}]")
5. 은닉층은 무슨 일을 하는 걸까?
비유: 통역사
영어를 모르는 한국인과 한국어를 모르는 미국인이 대화하려면? 통역사가 필요합니다!
text한국인(입력) → [통역사(은닉층)] → 미국인(출력) 통역사가 하는 일: 한국어를 받아서 → 영어로 "변환"해서 → 전달
은닉층도 같은 일을 합니다. 입력 데이터를 받아서, 출력층이 이해할 수 있는 형태로 **"변환"**하는 거예요.
XOR에서 은닉층이 하는 변환
원래 XOR 문제는 직선 하나로 나눌 수 없었죠? 은닉층이 데이터를 변환하면 직선으로 나눌 수 있는 형태가 됩니다!
text[원래 공간 -- 직선으로 분리 불가능] x2 1 파란(0) 빨강(1) 0 빨강(1) 파란(0) 0 1 x1 ↓ 은닉층이 변환! ↓ [변환된 공간 -- 직선으로 분리 가능!] OR결과 1 빨강(0,1) 빨강(1,1) 파란(0,1) 0 파란(1,0) 0 1 NAND결과 변환 후에는 직선 하나로 빨강과 파란 분리 가능!
이것이 은닉층의 핵심 역할입니다. "문제가 풀리는 공간으로 데이터를 변환하는 것!" 정말 놀랍지 않나요?
6. 딥러닝의 탄생
은닉층을 더 쌓으면?
은닉층이 하나면 XOR을 풀 수 있었는데, 더 쌓으면 어떻게 될까요?
| 은닉층 수 | 이름 | 풀 수 있는 문제 |
|---|---|---|
| 0개 | 단일 퍼셉트론 | AND, OR, NOT (단순한 문제만) |
| 1개 | 얕은 신경망 (Shallow) | XOR 등 좀 더 복잡한 문제 |
| 2개 이상 | 깊은 신경망 (Deep) | 이미지 인식, 음성 인식, 번역... |
은닉층이 2개 이상이면 "깊은(Deep)" 신경망이라고 부릅니다. 그리고 이 깊은 신경망으로 학습하는 것을 **딥러닝(Deep Learning)**이라고 합니다!
text입력 → [은닉층1] → [은닉층2] → [은닉층3] → ... → 출력 ↑ 이렇게 깊이 쌓으니까 "Deep" Learning!
보편 근사 정리 -- "모든 것을 배울 수 있다"
수학자들이 증명한 놀라운 사실이 있습니다:
"은닉층이 충분히 크면, 어떤 복잡한 함수든 원하는 만큼 정확하게 흉내낼 수 있다" -- 보편 근사 정리 (Universal Approximation Theorem)
쉽게 말하면, 퍼셉트론을 충분히 많이, 충분히 깊게 쌓으면 이론적으로 어떤 문제든 풀 수 있다는 뜻입니다!
| AI가 하는 일 | 은닉층에서 일어나는 변환 |
|---|---|
| 이미지 인식 | 픽셀 → 선/모서리 → 형태 → 물체 인식 |
| 음성 인식 | 소리 파형 → 음소 → 단어 → 문장 |
| 번역 | 한국어 단어 → 의미 공간 → 영어 단어 |
| ChatGPT | 이전 단어들 → 문맥 이해 → 다음 단어 예측 |
모든 현대 AI의 기초가 바로 이 "층을 쌓는다"는 아이디어입니다!
7. 역사: AI 겨울에서 봄으로
남은 문제: 어떻게 학습시킬까?
MLP로 XOR을 풀 수 있다는 건 알았지만, 큰 문제가 남아있었습니다. 위 예시에서 NAND, OR, AND의 가중치를 우리가 직접 정해줬죠? 실제로는 컴퓨터가 스스로 가중치를 찾아야 합니다.
은닉층이 있으면 "어떤 퍼셉트론의 가중치를 얼마나 바꿔야 하는지" 알기가 어려웠어요. 출력에서 틀렸다는 건 알겠는데, 은닉층의 어떤 퍼셉트론이 잘못한 건지 어떻게 알까요?
1986년: 역전파 알고리즘의 등장
제프리 힌턴, 데이비드 러멜하트, 로널드 윌리엄스가 역전파(Backpropagation) 알고리즘을 발표합니다.
text역전파의 핵심 아이디어: 출력에서 틀린 정도(오차)를 계산한다 → 그 오차를 뒤로(Back) 전파(Propagation)한다 → 각 퍼셉트론이 "자기가 얼마나 틀렸는지" 알 수 있다 → 그만큼 가중치를 수정한다 비유: 릴레이 달리기에서 기록이 나빴을 때 총 기록 확인 → 각 구간별 기록 분석 → 느린 구간 집중 연습
| 시기 | 사건 | 의미 |
|---|---|---|
| 1969년 | XOR 한계 증명 | AI 겨울 시작 |
| 1986년 | 역전파 알고리즘 발표 | AI 봄 시작! MLP 학습 가능해짐 |
| 2012년 | AlexNet (딥러닝 혁명) | GPU로 깊은 MLP 학습 성공 |
| 2017년 | Transformer 발표 | GPT 시리즈의 기초 |
| 현재 | ChatGPT, 이미지 생성 AI 등 | 모두 MLP의 확장! |
퍼셉트론 → 다층 퍼셉트론 → 딥러닝 → ChatGPT. 이 모든 것이 하나의 줄기로 연결되어 있습니다!
8. 지금까지의 여정 정리
Level 1에서 배운 내용을 한눈에 봅시다:
text[뉴런] → [퍼셉트론] → [학습] → [AND, OR, NOT] → [XOR 한계] → [MLP] 뇌의 수학적 가중치 논리 연산 직선의 층을 쌓아 신경세포 모델화 조정 구현 성공! 한계 발견 한계 극복!
| 강의 | 배운 것 | 핵심 한줄 |
|---|---|---|
| 1-1 | AI란? | 사람의 지능을 모방하는 기술 |
| 1-2 | 뉴런과 퍼셉트론 | 뇌 신경세포를 수학으로 표현 |
| 1-3 | 활성화 함수 | 0과 1을 구분하는 판정 기준 |
| 1-4 | 퍼셉트론 학습 | 가중치를 자동으로 조정 |
| 1-5 | AND, OR, NOT | 퍼셉트론으로 논리 연산 구현 |
| 1-6 | XOR 문제 | 직선 하나의 한계 발견 |
| 1-7 | MLP | 층을 쌓아 한계 극복! 딥러닝의 시작 |
핵심 정리
| 개념 | 설명 | 비유 | AI에서의 의미 |
|---|---|---|---|
| MLP | 퍼셉트론을 층으로 쌓은 구조 | 요리사 팀 | 모든 현대 AI의 기본 구조 |
| 은닉층 | 입력을 변환하는 중간 계산층 | 통역사, 주방 | 복잡한 패턴을 학습하는 핵심 |
| XOR 해결 | NAND + OR → AND로 2층 구성 | 밧줄 2개로 분리 | 비선형 문제 해결의 첫 사례 |
| 공간 변환 | 은닉층이 데이터를 새로운 공간으로 변환 | 외국어 통역 | 어려운 문제를 쉬운 문제로 바꿈 |
| 딥러닝 | 은닉층 2개 이상인 깊은 신경망 | 다단계 처리 팀 | ChatGPT 등 현대 AI의 기반 |
| 역전파 | 오차를 뒤로 보내 가중치 수정 | 릴레이 구간별 분석 | MLP 학습을 가능하게 한 핵심 |
학습 체크리스트
- • MLP의 3가지 층(입력, 은닉, 출력)의 역할을 설명할 수 있다
- • XOR을 NAND + OR + AND로 해결하는 과정을 단계별로 따라갈 수 있다
- • 은닉층이 "공간 변환"을 한다는 것을 비유로 설명할 수 있다
- • "딥러닝"이라는 이름이 왜 "깊은 학습"인지 안다
- • 역전파 알고리즘이 왜 필요한지 대략적으로 안다
- • 퍼셉트론에서 현대 AI까지의 흐름을 설명할 수 있다
Level 1 완료!
축하합니다! AI 기초 이론을 마스터했습니다!
Level 1에서 배운 핵심:
- •AI의 정의와 역사
- •뉴런에서 퍼셉트론으로 -- 뇌를 수학으로 표현하기
- •퍼셉트론의 구조와 학습 -- 가중치 자동 조정
- •AND, OR, NOT, XOR 논리 게이트 -- 가능한 것과 불가능한 것
- •다층 퍼셉트론 -- 한계를 극복하고 딥러닝의 시작!
다음 Level에서는: Level 2 수학 기초 - 함수, 미분, 선형대수, 확률을 배웁니다. "왜 AI에 수학이 필요한가?"에 대한 답을 찾아가는 여정입니다!
레슨 정보
- 레벨
- Level 1: AI 기초 이론
- 예상 소요 시간
- 4분 16초
- 참고 영상
- YouTube 링크
💡실습 환경 안내
코드 블록의 ▶ 실행 버튼을 누르면 브라우저에서 바로 Python을 실행할 수 있습니다.
별도 설치 없이 NumPy, Matplotlib 등 기본 라이브러리를 사용할 수 있습니다.