728x90
https://book.naver.com/bookdb/book_detail.nhn?bid=11492334
밑바닥부터 시작하는 딥러닝
직접 구현하고 움직여보며 익히는 가장 쉬운 딥러닝 입문서!『밑바닥부터 시작하는 딥러닝』은 라이브러리나 프레임워크에 의존하지 않고, 딥러닝의 핵심을 ‘밑바닥부터’ 직접 만들어보며
book.naver.com
해당 책에 대한 정보이며 해당 책을 읽고 학습한 내용을 단원별로 공유하고자 합니다.
◎ 밑바닥부터 시작하는 딥러닝(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 |