
학습 내용
AND, OR, NOT 게이트
학습 목표
이 레슨을 완료하면:
- •논리 게이트가 무엇이고, 왜 중요한지 이해합니다
- •퍼셉트론 하나로 AND, OR, NOT을 구현할 수 있습니다
- •AND와 OR의 차이가 편향(bias) 하나뿐이라는 사실을 압니다
- •음수 가중치가 어떤 역할을 하는지 이해합니다
- •이것이 AI의 "논리적 사고"와 어떻게 연결되는지 파악합니다
핵심 메시지
"퍼셉트론 하나로 AND, OR, NOT -- 모든 기본 논리 연산을 구현할 수 있습니다. AI도 논리적 판단이 가능하다는 뜻이죠!"
1. 논리 게이트가 뭔가요?
일상 속 비유: 자동문
여러분이 건물 자동문 앞에 섰다고 생각해보세요.
- •센서 A: 사람이 감지됨? (예/아니오)
- •센서 B: 문이 잠겨있지 않음? (예/아니오)
자동문이 열리려면 **두 조건이 모두 "예"**여야 합니다. 사람이 있어도 문이 잠겨 있으면 안 열리죠. 이게 바로 AND 게이트의 원리입니다!
논리 게이트의 정의
논리 게이트는 0(거짓)과 1(참)을 입력받아, 정해진 규칙에 따라 0 또는 1을 출력하는 장치입니다.
text입력 (0 또는 1) → [논리 게이트] → 출력 (0 또는 1)
놀라운 사실이 있어요. 컴퓨터의 모든 계산은 AND, OR, NOT 이 세 가지 게이트의 조합으로 만들어집니다. 여러분의 스마트폰, 노트북, 게임기 안에서 수십억 개의 논리 게이트가 동작하고 있어요!
왜 AI에서 중요할까?
퍼셉트론이 논리 게이트를 구현할 수 있다면, AI가 "논리적 판단"을 할 수 있다는 뜻입니다. 예를 들어 "비가 오고(AND) 우산이 없으면 택시를 타라"는 판단을 AI가 할 수 있게 되는 거예요.
2. AND 게이트 -- "둘 다 참이어야 참!"
일상 비유: 보물 상자 열기
보물 상자를 열려면 열쇠 2개가 모두 필요하다고 상상해보세요.
- •열쇠 1만 있다? 안 열림
- •열쇠 2만 있다? 안 열림
- •둘 다 있다? 열림!
- •둘 다 없다? 당연히 안 열림
이것이 AND 게이트입니다. 모든 입력이 참(1)이어야만 출력이 참(1)이 됩니다.
AND 진리표
| 입력 x1 | 입력 x2 | 출력 | 왜? |
|---|---|---|---|
| 0 | 0 | 0 | 둘 다 거짓 |
| 0 | 1 | 0 | 하나가 거짓 |
| 1 | 0 | 0 | 하나가 거짓 |
| 1 | 1 | 1 | 둘 다 참! |
일상 예시를 더 볼까요?
- •"시험 공부를 했고(AND) 컨디션도 좋으면 = 시험 잘 봄"
- •"비밀번호가 맞고(AND) 얼굴인식도 통과하면 = 잠금해제"
퍼셉트론으로 AND 구현하기
지난 시간에 배운 퍼셉트론 공식을 기억하시나요?
textz = x1 * w1 + x2 * w2 + b 출력 = z > 0이면 1, 아니면 0 (계단 함수)
AND 게이트의 설정값:
- •가중치: w1 = 0.5, w2 = 0.5
- •편향: b = -0.7 (꽤 엄격한 기준!)
모든 입력을 계산해봅시다:
text(0, 0): 0 x 0.5 + 0 x 0.5 + (-0.7) = -0.7 → 0보다 작으므로 출력 0 (0, 1): 0 x 0.5 + 1 x 0.5 + (-0.7) = -0.2 → 0보다 작으므로 출력 0 (1, 0): 1 x 0.5 + 0 x 0.5 + (-0.7) = -0.2 → 0보다 작으므로 출력 0 (1, 1): 1 x 0.5 + 1 x 0.5 + (-0.7) = +0.3 → 0보다 크므로 출력 1
4가지 경우 모두 정답과 일치합니다! 편향이 -0.7로 꽤 큰 음수인데요, 이 때문에 입력이 둘 다 1(총합 1.0)이어야만 편향을 이기고 0을 넘을 수 있습니다. 마치 문턱이 높은 것과 같아요.
3. OR 게이트 -- "하나라도 참이면 참!"
일상 비유: 비상구
화재 경보가 울리는 상황을 생각해보세요.
- •연기 감지기가 반응했다? 경보 울림!
- •열 감지기가 반응했다? 경보 울림!
- •둘 다 반응했다? 당연히 경보 울림!
- •아무것도 반응 안 했다? 경보 안 울림
하나라도 참이면 출력이 참인 것이 OR 게이트입니다. AND보다 훨씬 "관대한" 판정 기준이죠.
OR 진리표
| 입력 x1 | 입력 x2 | 출력 | 왜? |
|---|---|---|---|
| 0 | 0 | 0 | 둘 다 거짓 |
| 0 | 1 | 1 | 하나가 참! |
| 1 | 0 | 1 | 하나가 참! |
| 1 | 1 | 1 | 둘 다 참! |
일상 예시:
- •"커피 OR 주스를 마신다" → 둘 중 하나만 마셔도 음료를 마신 것!
- •"엄마 OR 아빠가 허락하면 = 갈 수 있다"
퍼셉트론으로 OR 구현하기
AND와 비교해서 뭐가 달라지는지 주목하세요!
textOR 게이트 설정값: - 가중치: w1 = 0.5, w2 = 0.5 (AND와 동일!) - 편향: b = -0.2 (AND는 -0.7이었는데, 여기는 -0.2!)
계산해봅시다:
text(0, 0): 0 x 0.5 + 0 x 0.5 + (-0.2) = -0.2 → 출력 0 (0, 1): 0 x 0.5 + 1 x 0.5 + (-0.2) = +0.3 → 출력 1 (1, 0): 1 x 0.5 + 0 x 0.5 + (-0.2) = +0.3 → 출력 1 (1, 1): 1 x 0.5 + 1 x 0.5 + (-0.2) = +0.8 → 출력 1
완벽합니다! 하나만 1이어도(총합 0.5) 편향(-0.2)을 이기고 0을 넘을 수 있네요. 문턱이 낮으니까 쉽게 통과하는 거예요.
4. AND vs OR: 편향 하나의 차이
여기서 정말 중요한 발견을 해봅시다.
| 비교 항목 | AND 게이트 | OR 게이트 |
|---|---|---|
| 가중치 w1 | 0.5 | 0.5 |
| 가중치 w2 | 0.5 | 0.5 |
| 편향 b | -0.7 (엄격!) | -0.2 (관대!) |
| 통과 기준 | 둘 다 1이어야 | 하나만 1이면 OK |
가중치는 완전히 같고, 편향(bias)만 다릅니다!
비유: 시험 합격선
같은 시험인데 합격 기준만 다른 거예요.
- •AND는 합격선이 70점(엄격) → 두 과목 모두 잘 봐야 통과
- •OR은 합격선이 20점(관대) → 한 과목만 잘 봐도 통과
편향이 하는 일이 바로 이겁니다. "얼마나 쉽게 활성화시킬 것인가"를 결정하는 거예요. AI에서 편향은 판단의 "엄격함 정도"를 조절하는 역할을 합니다.
5. NOT 게이트 -- "반대로 뒤집기!"
일상 비유: 스위치
전등 스위치를 생각해보세요.
- •켜져 있으면(1) → 누르면 꺼짐(0)
- •꺼져 있으면(0) → 누르면 켜짐(1)
입력을 반대로 뒤집는 것, 이것이 NOT 게이트입니다. AND, OR과 다르게 입력이 하나뿐이에요.
NOT 진리표
| 입력 | 출력 | 의미 |
|---|---|---|
| 0 | 1 | 거짓을 참으로 |
| 1 | 0 | 참을 거짓으로 |
일상 예시:
- •"NOT 배고프다 = 배부르다"
- •"NOT 합격 = 불합격"
- •"NOT 비가 온다 = 비가 안 온다"
퍼셉트론으로 NOT 구현하기
NOT은 입력을 뒤집어야 하니까, 뭔가 특별한 것이 필요합니다.
textNOT 게이트 설정값: - 가중치: w = -1 (음수!) - 편향: b = 0.5
계산해봅시다:
text입력 0: 0 x (-1) + 0.5 = +0.5 → 0보다 크므로 출력 1 (0이 1로 뒤집힘!) 입력 1: 1 x (-1) + 0.5 = -0.5 → 0보다 작으므로 출력 0 (1이 0으로 뒤집힘!)
비밀은 **음수 가중치(-1)**에 있습니다! 가중치가 음수이면 입력이 클수록 결과가 작아지는 "반대 효과"가 생기거든요. 마치 "브레이크"와 같은 역할이에요.
음수 가중치가 AI에서 하는 역할
실제 AI에서도 음수 가중치는 매우 중요합니다.
- •양수 가중치: "이 입력은 중요해! 더 반영해!" (가속 페달)
- •음수 가중치: "이 입력은 반대로 작용해! 억제해!" (브레이크)
예를 들어, 스팸 메일을 감지하는 AI가 있다면:
- •"무료", "당첨" 같은 단어 → 양수 가중치 (스팸 가능성 높임)
- •"교수님", "논문" 같은 단어 → 음수 가중치 (스팸 가능성 낮춤)
6. 세 게이트 한눈에 비교
자, 세 가지 게이트를 나란히 놓고 비교해볼까요?
textAND 게이트: x1 → [w=0.5] → 합산 + b(-0.7) → 계단함수 → 출력 x2 → [w=0.5] → OR 게이트: x1 → [w=0.5] → 합산 + b(-0.2) → 계단함수 → 출력 x2 → [w=0.5] → NOT 게이트: x → [w=-1] → 합산 + b(0.5) → 계단함수 → 출력
전부 같은 퍼셉트론 구조인데, 가중치와 편향 숫자만 바꾸면 완전히 다른 논리 연산이 됩니다. 이것이 퍼셉트론의 놀라운 점이에요!
왜 이것이 AI에서 중요한가?
컴퓨터의 모든 계산은 AND, OR, NOT의 조합입니다. 퍼셉트론이 이 세 가지를 모두 구현할 수 있으니, 이론적으로 퍼셉트론을 잘 연결하면 어떤 계산이든 할 수 있다는 뜻이 됩니다!
이것은 1950-60년대 과학자들을 매우 흥분시켰습니다. "퍼셉트론으로 사람처럼 생각하는 기계를 만들 수 있겠다!"라고 기대했거든요. (하지만 다음 시간에 배울 큰 문제가 기다리고 있었습니다...)
7. 직접 실험해보기
아래 코드로 AND, OR, NOT 게이트를 직접 확인해볼 수 있습니다.
python# 퍼셉트론으로 논리 게이트 구현하기 def step_function(z): """계단 함수: 0보다 크면 1, 아니면 0""" if z > 0: return 1 else: return 0 def AND_gate(x1, x2): z = x1 * 0.5 + x2 * 0.5 + (-0.7) return step_function(z) def OR_gate(x1, x2): z = x1 * 0.5 + x2 * 0.5 + (-0.2) return step_function(z) def NOT_gate(x): z = x * (-1) + 0.5 return step_function(z) # AND 게이트 테스트 print("=== AND 게이트 ===") for x1 in [0, 1]: for x2 in [0, 1]: result = AND_gate(x1, x2) print(f" AND({x1}, {x2}) = {result}") # OR 게이트 테스트 print("\n=== OR 게이트 ===") for x1 in [0, 1]: for x2 in [0, 1]: result = OR_gate(x1, x2) print(f" OR({x1}, {x2}) = {result}") # NOT 게이트 테스트 print("\n=== NOT 게이트 ===") for x in [0, 1]: result = NOT_gate(x) print(f" NOT({x}) = {result}")
핵심 정리
| 개념 | 설명 | 비유 | AI에서의 의미 |
|---|---|---|---|
| AND 게이트 | 둘 다 참이어야 참 | 보물상자 열쇠 2개 | 여러 조건 모두 충족 확인 |
| OR 게이트 | 하나라도 참이면 참 | 비상구 경보 | 조건 하나라도 해당되면 반응 |
| NOT 게이트 | 입력 반전 | 전등 스위치 | 억제 신호, 반대 판단 |
| 편향(bias) | 판단의 엄격함 조절 | 시험 합격선 | 활성화 난이도 결정 |
| 음수 가중치 | 입력을 억제/반전 | 브레이크 | 특정 입력의 반대 효과 |
학습 체크리스트
- • AND, OR, NOT의 진리표를 보지 않고 작성할 수 있다
- • 퍼셉트론으로 AND 게이트를 구현하는 과정을 설명할 수 있다
- • AND와 OR의 유일한 차이가 편향값이라는 것을 안다
- • 편향이 "판단의 엄격함"을 조절한다는 것을 이해한다
- • NOT 게이트에 음수 가중치가 필요한 이유를 설명할 수 있다
- • 이것이 AI의 논리적 판단 능력과 연결된다는 것을 안다
다음 강의 예고
"XOR 문제와 한계" AND, OR, NOT은 퍼셉트론으로 잘 구현했는데... 해결 못하는 문제가 있습니다! 바로 XOR(배타적 OR)인데요, 이 한계가 AI 역사에서 "겨울"을 불러왔습니다. 무슨 일이 있었는지, 왜 중요한지 알아봅니다.
레슨 정보
- 레벨
- Level 1: AI 기초 이론
- 예상 소요 시간
- 6분 37초
- 참고 영상
- YouTube 링크
💡실습 환경 안내
코드 블록의 ▶ 실행 버튼을 누르면 브라우저에서 바로 Python을 실행할 수 있습니다.
별도 설치 없이 NumPy, Matplotlib 등 기본 라이브러리를 사용할 수 있습니다.