Level 1: AI 기초 이론
🧠

Level 1

XOR 문제와 한계

퍼셉트론이 해결할 수 없는 문제

5분 15초
XOR 문제와 한계 강의 영상
강의 영상 보기 (새 탭에서 재생)YouTube

학습 내용

XOR 문제와 한계

학습 목표

이 레슨을 완료하면:

  • XOR 게이트가 무엇인지 이해합니다
  • 왜 퍼셉트론 하나로는 XOR을 절대 해결할 수 없는지 압니다
  • "선형 분리 가능성"이라는 핵심 개념을 이해합니다
  • 이 한계가 AI 역사에서 "겨울"을 불러온 이유를 압니다
  • 해결의 실마리(다층 퍼셉트론)를 예상할 수 있습니다

핵심 메시지

"퍼셉트론은 직선 하나로 나눌 수 있는 문제만 풀 수 있습니다. XOR은 직선 하나로는 절대 나눌 수 없는 문제예요. 이 한계를 깨닫는 것이 딥러닝으로 가는 첫걸음입니다!"


1. XOR 게이트란? -- "둘이 달라야 참!"

일상 비유: 가위바위보의 "비김"

친구와 같은 것을 냈을 때를 생각해보세요.

  • 둘 다 가위? 비김(재미없음 = 0)
  • 둘 다 바위? 비김(재미없음 = 0)
  • 서로 다른 것을 냄? 승부가 남!(재미있음 = 1)

XOR도 비슷합니다. **두 입력이 다를 때만 참(1)**이고, 같으면 거짓(0)이에요. "배타적 OR(Exclusive OR)"이라고도 부르는데, "하나만 독점적으로 참일 때"라는 뜻이에요.

XOR 진리표

입력 x1입력 x2출력왜?
000둘이 같음 (거짓)
011둘이 다름!
101둘이 다름!
110둘이 같음 (거짓)

OR과 비교해볼까요? OR은 (1,1)일 때 1을 출력하는데, XOR은 0을 출력합니다. 이 작은 차이가 엄청난 문제를 만들어냅니다.

일상에서 만나는 XOR

사실 우리는 매일 XOR을 경험합니다!

  • 전등 2개 스위치: 한쪽 스위치만 바꾸면 전등이 바뀌고, 양쪽 다 바꾸면 원래대로 (계단 조명이 이 원리!)
  • 양자택일: "짜장면이나 짬뽕 중 하나만 골라!" (둘 다 고르거나 둘 다 안 고르면 안 됨)
  • 토론: 두 사람이 같은 의견이면 토론 안 됨, 다른 의견이어야 토론이 됨

2. 문제 발생! 퍼셉트론이 실패하다

직접 시도해봅시다

지난 시간에 AND, OR, NOT을 퍼셉트론으로 만들었죠? 같은 방식으로 XOR을 시도해봅시다.

text
퍼셉트론: z = x1 * w1 + x2 * w2 + b 출력 = z > 0이면 1, 아니면 0 XOR에 맞는 w1, w2, b를 찾아보자! 필요한 조건: (0,0) → 0: 0*w1 + 0*w2 + b < 0 → b < 0 (0,1) → 1: 0*w1 + 1*w2 + b > 0 → w2 + b > 0 (1,0) → 1: 1*w1 + 0*w2 + b > 0 → w1 + b > 0 (1,1) → 0: 1*w1 + 1*w2 + b < 0 → w1 + w2 + b < 0

조건을 정리하면:

text
조건 1: b < 0 조건 2: w2 + b > 0 → w2 > -b → w2 > 0 (b가 음수이므로) 조건 3: w1 + b > 0 → w1 > -b → w1 > 0 (b가 음수이므로) 조건 4: w1 + w2 + b < 0 조건 2+3에서: w1 + w2 > -2b > 0 (둘 다 양수) 조건 4에서: w1 + w2 < -b 그런데 조건 2에서 w2 > -b, 조건 3에서 w1 > -b이므로: w1 + w2 > -2b > -b (b가 음수이니까 -2b > -b) 이것은 조건 4(w1 + w2 < -b)와 모순!

어떤 숫자를 넣어도 4가지 조건을 동시에 만족할 수 없습니다! 이것은 "운이 나빠서"가 아니라, 수학적으로 불가능하다는 뜻이에요.

코드로 직접 확인해보기

정말로 불가능한지 다양한 가중치를 시도해볼까요?

python
# XOR을 퍼셉트론으로 풀 수 있을까? 다양하게 시도해보기! def perceptron(x1, x2, w1, w2, b): z = x1 * w1 + x2 * w2 + b return 1 if z > 0 else 0 # XOR 정답 xor_answers = {(0,0): 0, (0,1): 1, (1,0): 1, (1,1): 0} # 다양한 가중치를 시도해봅시다 test_cases = [ (0.5, 0.5, -0.7), # AND 설정 (0.5, 0.5, -0.2), # OR 설정 (1.0, 1.0, -0.5), # 다른 시도 1 (1.0, -1.0, 0.0), # 다른 시도 2 (-1.0, 1.0, 0.0), # 다른 시도 3 (2.0, 2.0, -1.0), # 다른 시도 4 (0.3, 0.7, -0.4), # 다른 시도 5 ] for w1, w2, b in test_cases: correct = 0 results = [] for (x1, x2), answer in xor_answers.items(): output = perceptron(x1, x2, w1, w2, b) results.append(f"({x1},{x2})={output}") if output == answer: correct += 1 status = "성공!" if correct == 4 else f"{correct}/4 맞음" print(f"w1={w1:+.1f}, w2={w2:+.1f}, b={b:+.1f}{status} {results}") print("\n어떤 조합을 시도해도 4개를 모두 맞출 수 없습니다!")

3. 왜 안 되는 걸까? -- 선형 분리 가능성

비유: 운동장에서 줄 긋기

운동장에 학생 4명이 서 있다고 상상해보세요. 빨간 조끼를 입은 학생(출력 1)과 파란 조끼를 입은 학생(출력 0)을 밧줄 하나로 나눠야 합니다.

AND 게이트의 경우:

핵심 아이디어

text
퍼셉트론 하나 = 직선 하나 = AND, OR 같은 단순한 문제 퍼셉트론 여러 개 = 직선 여러 개 = XOR 같은 복잡한 문제도 가능! 그러면 퍼셉트론을 여러 개 연결하면 어떨까? → 이것이 바로 "다층 퍼셉트론(Multi-Layer Perceptron)"의 아이디어!

사실 민스키도 책에서 "다층 퍼셉트론으로는 XOR을 풀 수 있다"고 언급했습니다. 다만 당시에는 다층 퍼셉트론을 "학습시키는 방법"을 몰랐던 거예요. 그 학습 방법(역전파 알고리즘)은 1986년에 발표되었고, 그때부터 AI의 두 번째 봄이 시작됩니다!


6. XOR 문제가 AI에 주는 의미

왜 이렇게 단순한 XOR 문제에 시간을 쓰는 걸까요?

현실 세계는 XOR로 가득합니다

text
질문: 공부를 열심히 하면 성적이 오를까? - 열심히 하지 않고 + 똑똑하지 않으면 = 성적 낮음 (0) - 열심히 하지 않고 + 똑똑하면 = 성적 높음 (1) - 열심히 하고 + 똑똑하지 않으면 = 성적 높음 (1) - 열심히 하고 + 똑똑하면 = 성적... 높음? (여기는 XOR과 다르지만) 현실의 많은 문제는 "단순한 직선"으로 나눌 수 없습니다. 이미지 인식, 음성 인식, 자연어 이해 모두 비선형 문제입니다!

XOR은 가장 단순한 비선형 문제입니다. 이것을 풀 수 있어야 더 복잡한 현실 문제도 풀 수 있어요.

문제 유형예시단일 퍼셉트론
선형 문제AND, OR, NOT해결 가능
비선형 문제XOR, 이미지 인식, 음성 인식, 번역해결 불가능

현실 세계의 중요한 문제는 대부분 비선형입니다. 그래서 단일 퍼셉트론의 한계를 넘어서는 것이 반드시 필요했던 거예요.


핵심 정리

개념설명비유AI에서의 의미
XOR 게이트두 입력이 다를 때만 참양자택일, 계단 조명가장 단순한 비선형 문제
선형 분리직선 하나로 나눌 수 있음밧줄 하나로 편 나누기단일 퍼셉트론으로 해결 가능
선형 분리 불가능직선 하나로 나눌 수 없음대각선 배치된 학생들단일 퍼셉트론으로 불가능
AI 겨울XOR 한계로 인한 연구 침체꿈과 현실의 충돌한계 인식이 발전의 시작
해결 힌트직선을 여러 개 사용밧줄 여러 개 사용다층 퍼셉트론의 아이디어

학습 체크리스트

  • XOR 진리표를 보지 않고 작성할 수 있다
  • XOR이 OR과 다른 점을 설명할 수 있다
  • "선형 분리 가능"의 의미를 일상 비유로 설명할 수 있다
  • 왜 퍼셉트론 하나로 XOR을 절대 풀 수 없는지 설명할 수 있다
  • AI 겨울이 왜 찾아왔는지 이야기할 수 있다
  • 해결책(다층 퍼셉트론)의 기본 아이디어를 안다

다음 강의 예고

"다층 퍼셉트론 (MLP)" 드디어 XOR의 한계를 극복합니다! 퍼셉트론을 여러 층으로 쌓으면 어떤 일이 벌어지는지, 그리고 이것이 어떻게 현대 딥러닝의 시작점이 되었는지 알아봅니다. Level 1의 대미를 장식하는 마지막 강의입니다!

레슨 정보

레벨
Level 1: AI 기초 이론
예상 소요 시간
5분 15초
참고 영상
YouTube 링크

💡실습 환경 안내

코드 블록의 ▶ 실행 버튼을 누르면 브라우저에서 바로 Python을 실행할 수 있습니다.

별도 설치 없이 NumPy, Matplotlib 등 기본 라이브러리를 사용할 수 있습니다.