728x90
2023-11-06 43rd Class
Deep Learning Intro
#️⃣ 딥러닝 적용 예시
- 신한은행 AI모델
- 윌라 AI 1.5 배속
- 태양광사업의 구름과, 그림자 object detection
- 기상관측 구름 object detection
딥러닝은 목표에 따라 사용 기술이 다름
#️⃣ To-Do List
최신 뉴스 많이 찾아보기
모델을 배울 때마다 어떤 도메인으로 연결시킬 수 있을지
어떤 개발을 할 수 있을지 서징 많이하기
그리고 나의 개발자로서의 목표와 연결지어 스토리텔링 만들기
Perceptron
#️⃣ Perceptron Formula
기본 식
여러개의 뉴런
임계치(theta) threshold를 좌변으로 이동
theta를 bias로 대체한 최종 perceptron 계산 식
#️⃣ Logic Gates
기본 게이트
NOT GATE
INPUT | OUTPUT |
---|---|
A | NOT A |
0 | 1 |
1 | 0 |
AND GATE
INPUT | OUTPUT | |
---|---|---|
A | B | A AND B |
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
OR GATE
INPUT | OUTPUT | |
---|---|---|
A | B | A OR B |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
XOR GATE
INPUT | OUTPUT | |
---|---|---|
A | B | A XOR B |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
조합 게이트
NAND GATE
(AND + NOT)
A | B | P | Y |
---|---|---|---|
0 | 0 | 0 | 1 |
0 | 1 | 0 | 1 |
1 | 0 | 0 | 1 |
1 | 1 | 1 | 0 |
NOR GATE
(OR + NOT)
A | B | P | Y |
---|---|---|---|
0 | 0 | 0 | 1 |
0 | 1 | 1 | 0 |
1 | 0 | 1 | 0 |
1 | 1 | 1 | 0 |
XNOR GATE
(XOR + NOT)
A | B | P | Y |
---|---|---|---|
0 | 0 | 0 | 1 |
0 | 1 | 1 | 0 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 1 |
HALF ADDER
Inputs | Outputs | ||
---|---|---|---|
A | B | Sum | Carry |
0 | 0 | 0 | 0 |
1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 |
1 | 1 | 0 | 1 |
- hafl adder는 이진수 더하는 원리랑 같음
FULL ADDER
Inputs | Outputs | |||
---|---|---|---|---|
A | B | Ci | Sum | Co |
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 0 |
1 | 0 | 0 | 1 | 0 |
1 | 1 | 0 | 0 | 1 |
0 | 0 | 1 | 1 | 0 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 1 | 0 | 1 |
1 | 1 | 1 | 1 | 1 |
- Ci : Carry in value from 2^0, input이랑 같은 자리에 올라온 수
- Sum : 2^1의 자리 값 더하기 A+B+CI
- Co: Carry out, Sum에서 넘은 2^2 자리 수
CUSTOM ADDER
A | B | Cin | P | Q | R | S | Cout |
---|---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 |
1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 |
1 | 1 | 0 | 0 | 0 | 1 | 0 | 1 |
0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 |
0 | 1 | 1 | 1 | 1 | 0 | 0 | 1 |
1 | 0 | 1 | 1 | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 |
#️⃣ Logic Gates’s Decision Boundary
- AND, Or, Not 등 기본 gate가 만드는 0, 1의 구역은 직선으로 나눌 수 있음
- decision boundary = linear
- 하지만 XOR가 만드는 0, 1의 구역은 직선으로 나눌 수 ‘없음’
- decision boundary = non-linear
- Linear logic gate를 조합하여 NON-LINEAR Logic Gate 구현이가능해지며 MLP 시작
#️⃣ Linear Logic Gate의 조합으로 XOR GATE 구현
Inputs | Outputs | ||||
---|---|---|---|---|---|
A | B | P=NAND | Q=OR | R=AND | XOR |
0 | 0 | 1 | 0 | 0 | 0 |
0 | 1 | 1 | 1 | 1 | 1 |
1 | 0 | 1 | 1 | 1 | 1 |
1 | 1 | 0 | 1 | 0 | 0 |
- XOR은 Multi Layer Perceptron의 기본적인 유형
- 각각의 Gate는 Single Layer Perceptron
- 딥러닝은 연속적으로 Gate 입출력을 거치면서 최종 output 값을 내는 것
Logic Gates and H/F Adders
code
def AND(x1, x2):
if x2 > -x1 + 1.5: y = 1
else: y = 0
return y
def OR(x1, x2):
if x2 > -x1 + 0.5: y = 1
else: y = 0
return y
def NAND(x1, x2):
if x2 < -x1 + 1.5: y = 1
else: y = 0
return y
def XOR(x1, x2):
p = NAND(x1, x2)
q = OR(x1, x2)
y = AND(p, q)
return y
def half_adder(A, B):
S = XOR(A, B)
C = AND(A, B)
return S, C
def full_adder(A, B, Cin):
P = XOR(A, B)
S = XOR(P, Cin)
Q = AND(P, Cin)
R = AND(A, B)
Cout = OR(Q, R)
return S, Cout
def adder4(A, B):
S0, C0 = half_adder(A[-1], B[-1])
S1, C1 = full_adder(A[-2], B[-2], C0)
S2, C2 = full_adder(A[-3], B[-3], C1)
S3, Cout = full_adder(A[-4], B[-4], C2)
S = [S3, S2, S1, S0]
return Cout, S
## test code
print(adder4(A=[1, 0, 0, 1], B=[1, 1, 1, 0]))
result
(1, [0, 1, 1, 1])
반응형
'Education > 새싹 TIL' 카테고리의 다른 글
새싹 AI데이터엔지니어 핀테커스 10주차 (수) - DL Preliminaries (Game using Class) (2) | 2023.11.08 |
---|---|
새싹 AI데이터엔지니어 핀테커스 10주차 (화) - DL Preliminaries (Logic Gates using Class) (0) | 2023.11.07 |
새싹 AI데이터엔지니어 핀테커스 9주차 (금) - PJT 5 Marketing Strategy (0) | 2023.11.03 |
새싹 AI데이터엔지니어 핀테커스 9주차 (목) - PJT 4 Segment Analysis (0) | 2023.11.02 |
새싹 AI데이터엔지니어 핀테커스 9주차 (수) - PJT 3 Customer Clustering via K-means and LGBM (0) | 2023.11.01 |