[밑시딥1] [1] 퍼셉트론 (Perceptron)

2024. 7. 24. 21:41· DS Study/밑바닥부터 시작하는 딥러닝 1
목차
  1. 1. 퍼셉트론
  2. 2. 단순한 논리회로
  3. 2.1. AND 게이트
  4. 2.2. OR 게이트
  5. 2.3. NAND게이트
  6. 3. 단층 퍼셉트론의 한계
  7. 3.1. XOR 게이트
  8. 3.2. 다층 퍼셉트론

1. 퍼셉트론

- 다수의 신호를 입력 받아 하나의 신호를 출력하는 체계를 의미

- 퍼셉트론 신호는 흐름을 만들고 정보를 앞으로 전달해줌

- 퍼셉트론의 OutPut은 1/0 두가지 논리값을 가짐(1: 전류흐름 / 0: 전류 흐름X)

- 다음은 퍼셉트론의 구조를 의미

변수 설명 -------------------------------------------------------------------------------------------------

x1,x2 : input

w1,w2 : 가중치(weight)

y : Output

-----------------------------------------------------------------------------------------------------------

Perceptron

- 해당 그림의 원은 뉴런 또는 노드라고 부름

- 뉴런에서 전달 받은 신호의 총합이 임계값을 넘기면 y 에서 1을 출력하고 아니면 0을 출력

- 이를 수식으로 나타내면 다음과 같음.

 

- 수식을 보면 x1,x2에 가중치가 곱해지면서 x1,x2의 영향력을 조절해줄 수 있음

- 즉, 가중치(weight)가 클수록 해당 input이 상대적으로 중요함을 의미

 

2. 단순한 논리회로

- 이러한 퍼셉트론으로 간단한 논리회로를 구현해보자.

2.1. AND 게이트

- AND게이트의 진리표는 다음과 같다.

 

- 입력값 두개가 전부 True일때만 True

- 한개라도 False면 False를 리턴해준다, 이를 boolean에서 integer로 변환한 진리표를 봐보자.

- 이를 나타내는 퍼셉트론을 구현해보자.

- (w1,w2,theta) = (0.5,0.5,0.7) 이라고 두면 이를 만족한다.

- 이를 파이썬을 이용하여 간단히 구현해보자. 

- Input

def AND(x1,x2):
    w1,w2,theta = 0.5,0.5,0.7
    y = x1*w1 + x2*w2
    if y > theta:
        return 1
    else:
        return 0

-Output

print(AND(0,0))
print(AND(1,0))
print(AND(0,1))
print(AND(1,1))
----------------------------------------
0
0
0
1

2.2. OR 게이트

- OR 게이트의 진리표를 보면 다음과 같다.

- x1,x2중 하나만 True여도 True가 반환되고,

- 둘다 False라면 False가 반환된다.

- (w1,w2,theta) = (0.5,0.5,0.2)로 두면 퍼셉트론을 간단히 구현 가능하다. 

 

- 이를 파이썬 코드로 나타내보자.(기존의 AND게이트를 나타낸 코드에서 가중치와 임계값만 변경해주면 된다.)

#INPUT
def OR(x1,x2):
    w1,w2,theta = 0.5,0.5,0.2
    y = x1*w1 + x2*w2
    if y > theta:
        return 1
    else:
        return 0

print(OR(0,0))
print(OR(1,0))
print(OR(0,1))
print(OR(1,1))

--------------------------------------------------------
#OUTPUT
0
1
1
1

2.3. NAND게이트

- NAND게이트의 진리표는 다음과 같다.

- AND게이트의 정확히 반대라고 생각하면 편하다.

- (w1,w2,theta) = (-0.5,-0.5,-0.7)로 잡으면 쉽게 구현이 가능하다.

- 이를 파이썬으로 한번 구현해보자.

#INPUT
def NAND(x1,x2):
    w1,w2,theta = -0.5,-0.5,-0.7
    y = x1*w1 + x2*w2
    if y > theta:
        return 1
    else:
        return 0

print(NAND(0,0))
print(NAND(1,0))
print(NAND(0,1))
print(NAND(1,1))

------------------------------------------
#OUTPUT
1
1
1
0

 

3. 단층 퍼셉트론의 한계

- 우리는 지금까지 단층 퍼셉트론 즉, 한개의 퍼셉트론으로 AND, NAND,OR게이트들을 구현하였다.

- 이번엔 XOR 게이트를 한번 바라보자.

3.1. XOR 게이트

- XOR게이트는 베타적 논리합을 의미하는데, 진리표는 다음과 같다.

 

- 입력값이 둘다 다르면 True를 반환, 둘다 같으면 False를 반환해준다.

- 이를 단층 퍼셉트론으로 나타내보자 하면 불가능하다.

- 우선 퍼셉트론은 직선으로 하나로 나눈 영역 즉, 선형 영역만 구분 가능하다.

- 이 사실을 인지한 채, XOR게이트를 나타낸 다음 그림을 보자.

- 절대 하나의 직선으로 구분할 수 없다는 것을 알 수 있다.

3.2. 다층 퍼셉트론

- 하지만 XOR게이트를 단층 퍼셉트론 여러개

- 즉, 다층 퍼셉트론으로 구현이 가능하다.

- 우리가 단층 퍼셉트론으로 구현했던 AND, OR, NAND게이트를 이용하여 나타내면 다음과 같다.

 

- 이를 바탕으로 XOR 게이트를 파이썬 코드로 나타내보자.

#INPUT
def XOR(x1,x2):
    z1 = OR(x1,x2)
    z2 = NAND(x1,x2)
    return AND(z1,z2)

print(XOR(1,1))
print(XOR(1,0))
print(XOR(0,1))
print(XOR(0,0))
-----------------------------------------------
#OUTPUT
0
1
1
0

 

'DS Study > 밑바닥부터 시작하는 딥러닝 1' 카테고리의 다른 글

[밑시딥1] [5] 손실함수(Loss Function)  (0) 2024.07.29
[밑시딥1] [4] MNIST  (0) 2024.07.29
[밑시딥1] [3] 인공신경망(ANN)  (1) 2024.07.26
[밑시딥1] [2] 활성화함수 (Activation Function)  (0) 2024.07.26
  1. 1. 퍼셉트론
  2. 2. 단순한 논리회로
  3. 2.1. AND 게이트
  4. 2.2. OR 게이트
  5. 2.3. NAND게이트
  6. 3. 단층 퍼셉트론의 한계
  7. 3.1. XOR 게이트
  8. 3.2. 다층 퍼셉트론
'DS Study/밑바닥부터 시작하는 딥러닝 1' 카테고리의 다른 글
  • [밑시딥1] [5] 손실함수(Loss Function)
  • [밑시딥1] [4] MNIST
  • [밑시딥1] [3] 인공신경망(ANN)
  • [밑시딥1] [2] 활성화함수 (Activation Function)
23학번이수현
23학번이수현
23학번이수현
밑바닥부터 시작하는 AI보안전문가
23학번이수현
전체
오늘
어제
  • 분류 전체보기 (243)
    • Statistic Study (47)
      • Mathematical Statistics(수리통.. (47)
    • Mathematics Study (15)
      • Linear Algebra (선형대수학) (15)
    • CS Study (74)
      • CLRS (자료구조 | 알고리즘) (49)
      • Database(DB) (11)
      • C++ (11)
      • 컴퓨터 구조 (2)
      • MongoDB (1)
    • DS Study (56)
      • CS 229(Machine Learning) (19)
      • CS 224n(NLP) (5)
      • Web Scraping (7)
      • R4DS(R언어) (20)
      • 밑바닥부터 시작하는 딥러닝 1 (5)
    • Hacking Study (0)
      • Web Hacking (0)
    • 코딩테스트 (5)
      • 백준-Python (5)
    • Paper Review(논문 리뷰) (43)
      • Deep Learning (16)
      • TCGA 관련 논문 (4)
      • Computer Vision (18)
      • NLP (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • R언어
  • 알고리즘
  • web scraping
  • introduction to algoritmhs
  • 정렬
  • clrs
  • Algorithms
  • NLP
  • 논문 리뷰
  • Linear Algebra
  • 자료구조
  • 데이터분석
  • db
  • 수리통계학
  • 시간복잡도
  • cs229
  • 파이썬
  • deep learning
  • cs 224n
  • LSTM
  • R4DS
  • graph
  • Machine Learning
  • Data Structure
  • 백준
  • AI
  • 선형대수학
  • Introduction to Algorithms
  • 딥러닝
  • C++

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
23학번이수현
[밑시딥1] [1] 퍼셉트론 (Perceptron)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.