728x90
https://book.naver.com/bookdb/book_detail.nhn?bid=11492334
해당 책에 대한 정보이며 해당 책을 읽고 학습한 내용을 단원별로 공유하고자 합니다.
◎ 밑바닥부터 시작하는 딥러닝(1)¶
● chapter 1. 헬로 파이썬¶
1.1 파이썬이란?
- 오픈 소스 + 무료인 배우기 쉬운 프로그래밍 언어
- 넘파이 + 사이파이 = 수치 계산과 통계 처리를 다루는 데 탁월한 라이브러리
- 카페 + 텐서플로 + 체이너 + 테아노 = 딥러닝 프레임워크
1.2 파이썬 설치하기
- 기본적인 파이썬 코드 구현으로 생략하겠습니다.
● chapter 2. 퍼셉트론¶
- 퍼셉트론은 신경망(딥러닝)의 기원이 되는 알고리즘
2.1 퍼셉트론이란?
- 퍼셉트론은 다수의 신호를 입력으로 받아 하나의 신호로 출력하는 것 (입출력을 갖춘 알고리즘)
- 퍼셉트론에서는 '가중치'와 '편향'을 매개변수로 설정한다
- 퍼셉트론은 뉴런에 가중치를 곱해 그 값이 한계인 임계값을 넘으면 1 아니면 0을 출력하는 원리입니다.
- 식으로는 Y = w1x1 + w2x2 >= ∮(임계값) 이면 1 아니면 0
2.2 단순한 논리 회로
- AND, NAND, OR 게이트가 있다.
- AND 게이트 = x1, x2 모두 1일 때 1 출력
- NAND 게이트 = x1, x2 모두 1을 제외한 모든 경우의 수일 때 1 출력
- OR 게이이트 = x1, x2 모두 0을 제외한 모든 경우의 수일 때 1 출력
2.3 퍼셉트론 구현하기
In [1]:
# AND 게이트 구현
def AND(x1,x2):
w1,w2,theta = 0.5,0.5,0.7
tmp= w1*x1 + w2*x2
if tmp > theta:
return 1
elif tmp <= theta:
return 0
In [2]:
print(AND(0,0))
print(AND(0,1))
print(AND(1,0))
print(AND(1,1)) # x1, x2 모두 1일때 1을 반환하는 AND 게이트
0 0 0 1
In [3]:
import numpy as np
# AND 게이트 구현2
def AND2(x1,x2):
x = np.array([x1,x2])
w = np.array([0.5,0.5])
b = -0.7
tmp = np.sum(x*w)+b
if tmp > 0 :
return 1
elif tmp <= 0 :
return 0
In [4]:
print(AND2(0,0))
print(AND2(0,1))
print(AND2(1,0))
print(AND2(1,1))
0 0 0 1
In [5]:
# NAND와 OR 구현 코드
def NAND(x1,x2):
x = np.array([x1,x2])
w = np.array([-0.5,-0.5])
b = 0.7
tmp = np.sum(x*w)+b
if tmp <= 0 :
return 0
elif tmp > 0 :
return 1
def OR(x1,x2):
x = np.array([x1,x2])
w = np.array([0.5,0.5])
b = -0.2
tmp = np.sum(x*w)+b
if tmp <= 0 :
return 0
elif tmp > 0 :
return 1
2.4 퍼셉트론의 한계
- XOR 게이트는 배타적 논리합이라는 논리 회로
- x1,x2 중 한쪽이 1일 때만 1을 출력
- 직선의 영역에서는 XOR 게이트를 표현할 수 없다. (한계)
2.5 다층 퍼셉트론이 출동한다면
- AND, NAND, OR 게이트를 하나씩 대입한다면 XOR 게이트를 만들 수 있다.
In [6]:
def XOR(x1,x2):
s1 = NAND(x1,x2)
s2 = OR(x1,x2)
y = AND(s1,s2)
return y
In [7]:
print(XOR(0,0))
print(XOR(0,1))
print(XOR(1,0))
print(XOR(1,1))
0 1 1 0
- XOR는 다층 퍼셉트론이다. (2층 퍼셉트론)
- 단층 퍼셉트론으로는 XOR 구현이 불가능하지만 다층 퍼셉트론은 가능하다.
2.6 NAND에서 컴퓨터까지
- 다층 퍼셉트론으로 더 복잡한 회로를 만들 수 있다.
- 다층 퍼셉트론은 컴퓨터로도 만들 정도로 복잡한 표현이 가능하다.
- 퍼셉트론은 층을 거듭 쌓으면 비선형적이 표현도 가능하다.
In [8]:
from IPython.core.display import display, HTML
display(HTML("<style>.container {width:80% !important;}</style>"))
728x90
'Book report > Deep Learning from Scratch' 카테고리의 다른 글
Chapter 6. 학습 관련 기술들 (0) | 2021.10.10 |
---|---|
Chapter 5. 오차역전파법 (0) | 2021.10.09 |
Chapter 4. 신경망 학습 (0) | 2021.10.06 |
Chapter 3. 신경망 (0) | 2021.08.16 |