์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- set method
- ๊ตํํ์
- 2022๋
- gradient descent
- ๋ฏธ๋์์ ์ฅํ์
- ์๊ทน์ฌ
- cost function
- ๋ฏธ๋์์ ํด์ธ๊ตํ
- ์ด์ฐจ์ ์ง
- Deeplearning
- set add
- special method
- electrochemical models
- fluent python
- Linear Regression
- anaconda ๊ฐ์ํ๊ฒฝ
- m1 anaconda ์ค์น
- ์ ํํ๊ท
- li-ion
- ์ ๋ฝ
- Machine learning
- Andrew ng
- ์ ๋ฝ ๊ตํํ์
- fatigue fracture
- ์ค์คํธ๋ฆฌ์
- ์ฒญ์ถ ํ์ดํ
- ๋ฅ๋ฌ๋
- Python
- ๋์23์ด
- ํน๋ณ ๋ฉ์๋
- Today
- Total
Done is Better Than Perfect
[๋ฅ๋ฌ๋] 1. Perceptron ๋ณธ๋ฌธ
9์ ์์ฌ ์ ํ ์ ๊น์ง ๋ชฉํ๊ฐ ์๋ค.
๋ฅ๋ฌ๋ ๋ ผ๋ฌธ์ ๋ณด๊ณ , ๋ ผ๋ฌธ์ ์ฌํ(reproduction) ํ ์ ์์ ๋งํผ ์ฝ๋ฉ์ค๋ ฅ์ ํค์ฐ๋ ๊ฒ์ด๋ค.
๊ทธ๋์์ ์ด๋ก ์ฑ , ์ํ์ฑ ์ ๋ณด๊ณ ์์์ ๋ ์ต์ํด์ ธ ์๋ค๋ ๋๋์ ๋ฐ์๋๋ฐ, ์ด์ ๋ ์ฝ๋ฉ ๋ฅ๋ ฅ๋ ํค์ฐ๋ ๊ฒ์ด ์ฌ๋ฆ ๋ฐฉํ ๋์์ ๋ชฉํ์ด๋ค.
๋ฅ๋ฌ๋ : ์ธ๊ณต์ ๊ฒฝ๋ง์ ๊ธฐ๋ฐํ์ฌ ์ปดํจํฐ์๊ฒ ์ฌ๋์ ์ฌ๊ณ ๋ฐฉ์์ ๊ฐ๋ฅด์น๋ ๋ฐฉ๋ฒ
์ธ๊ณต์ ๊ฒฝ๋ง์ ํน์ง : ๋ชจ๋ธ ์ค์ค๋ก ๋ฐ์ดํฐ์ ํน์ฑ์ ํ์ตํ์ฌ ์ง๋ ํ์ต, ๋น์ง๋ ํ์ต ๋ชจ๋ ์ ์ฉ ๊ฐ๋ฅ
1. ํผ์ ํธ๋ก : ์ด๊ธฐ ํํ์ ์ ๊ฒฝ๋ง
2. ํ์ฑํ ํจ์ : ๊ฐ ๋ด๋ฐ์ ์ถ๋ ฅ ์ ํธ๋ฅผ ๊ฒฐ์
- ์ ๋ ฅ ์ ํธ๋ฅผ ๋ฐ์๋ค์ฌ ๋น์ ํ ๋ณํ ์ํ, ๋ณํ๋ ์ถ๋ ฅ์ ๋ค์ ์ธต์ผ๋ก ์ ๋ฌ.
- ํ์ฑํ ํจ์๋ ์ ๊ฒฝ๋ง์ ํ์ต ๋ฅ๋ ฅ๊ณผ ์ฑ๋ฅ์ ํฐ ์ํฅ์ ์ค.
ํ์ฑํ ํจ์์ ์ญํ :
- ๋น์ ํ์ฑ ๋ถ์ฌ: ํ์ฑํ ํจ์๋ ์ ๊ฒฝ๋ง์ ๋น์ ํ์ฑ์ ๋ถ์ฌํ์ฌ ๋ณต์กํ ๋ฐ์ดํฐ ํจํด ํ์ต ๊ฐ๋ฅ. ๋น์ ํ์ฑ์ด ์๋ค๋ฉด, ์ ๊ฒฝ๋ง์ ๋จ์ํ ์ ํ ๋ณํ๋ง ์ํํ๊ฒ ๋์ด ๋ค์ธต ๊ตฌ์กฐ์ ์๋ฏธ๊ฐ ์์ด์ง.
- ์ ๊ฒฝ๋ง์ ์ถ๋ ฅ ๋ฒ์ ์ ํ: ํ์ฑํ ํจ์๋ ์ถ๋ ฅ๊ฐ์ ํน์ ๋ฒ์๋ก ์ ํํ์ฌ ์์ ์ ์ธ ํ์ต์ ๋์์ค.
- ๊ฒฝ์ฌ ํ๊ฐ๋ฒ์ ํตํ ํ์ต ๊ฐ๋ฅ: ํ์ฑํ ํจ์๋ ๋ฏธ๋ถ ๊ฐ๋ฅํด์ผ ํ๋ฉฐ, ์ญ์ ํ(Backpropagation)๋ฅผ ํตํด ๊ธฐ์ธ๊ธฐ๋ฅผ ๊ณ์ฐํ ์ ์์.
์ฃผ๋ก, ์๊ทธ๋ชจ์ด๋ ํจ์(Sigmoid Function), ๋ ๋ฃจ ํจ์(ReLU, Rectified Linear Unit), ๋ฆฌํค ๋ ๋ฃจ ํจ์(Leaky ReLU), ์ํํธ๋งฅ์ค ํจ์(Softmax Function) ๋ฑ์ด ํ์ฑํ ํจ์๋ก ์ฌ์ฉ๋จ
ํ์ฑํ ํจ์ ์ ํ ๊ธฐ์ค : ๊ฐ๊ฐ์ ํ์ฑํ ํจ์๋ง๋ค ์ฅ,๋จ์ ์ด ์์ผ๋ฏ๋ก ์คํ์ ํตํด ๊ฐ ๋ฌธ์ ์ ์ ํฉํ ํ์ฑํ ํจ์ ์ ํํด์ผ ํจ
- ๋ฌธ์ ์ ํน์ฑ: ๋ถ๋ฅ ๋ฌธ์ ์ ์ถ๋ ฅ์ธต์์๋ ์ํํธ๋งฅ์ค ํจ์๋ฅผ, ํ๊ท ๋ฌธ์ ์ ์ถ๋ ฅ์ธต์์๋ ์ ํ ํ์ฑํ ํจ์๋ฅผ ์ฌ์ฉ.
- ๊ธฐ์ธ๊ธฐ ์์ค ๋ฌธ์ : ReLU๋ Leaky ReLU์ ๊ฐ์ ํจ์๋ ๊ธฐ์ธ๊ธฐ ์์ค ๋ฌธ์ ๋ฅผ ์ํ.
3. ํผ์ ํธ๋ก ์ ํ ๋ถ๋ฅ๊ธฐ
3.1 ๋จ์ธต ํผ์ ํธ๋ก (single layer perceptron)
- [ ํผ์ ํธ๋ก > ์ธ๊ณต์ ๊ฒฝ๋ง > ์ธ๊ณต์ง๋ฅ ] : ํผ์ ํธ๋ก ์ ์ธ๊ณต์ ๊ฒฝ๋ง์ ๋ ผ๋ฆฌํ๋ก ์ญํ ์ ์ํํจ
- ์ ํ ๋ถ๋ฅ๋ฅผ ์ํ ํผ์ ํธ๋ก : ๋จ์ธต ํผ์ ํธ๋ก (single layer perceptron) [์, AND, OR, NAND, NOR gate ]
[ AND gate ํผ์ ํธ๋ก ๊ตฌํ ]
def AND(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
else:
return 1
print(AND(0,0)) # 0
print(AND(0,1)) # 0
print(AND(1,0)) # 0
print(AND(1,1)) # 1
[ NAND gate ํผ์ ํธ๋ก ๊ตฌํ ]
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
else:
return 1
print(NAND(0,0)) # 1
print(NAND(0,1)) # 1
print(NAND(1,0)) # 1
print(NAND(1,1)) # 0
[ OR gate ํผ์ ํธ๋ก ๊ตฌํ ]
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
else:
return 1
print(OR(0,0)) # 0
print(OR(0,1)) # 1
print(OR(1,0)) # 1
print(OR(1,1)) # 1
3.2 ๋ค์ธต ํผ์ ํธ๋ก (MLP, multi layer perceptron)
- ํ๋์ ์ (๋จ์ธต ํผ์ ํธ๋ก )์ผ๋ก ๋ถ๋ฅํ ์ ์๋ ๋ฌธ์ ๋ฑ์ฅ ๐ ์ธต์ ์์ ๋ค์ธต ํผ์ ํธ๋ก (multi-layer perceptron)์ผ๋ก ๋ถ๋ฅ
- ๋จ์ธต ํผ์ ํธ๋ก ์ ์ฌ๋ฌ์ธต์ผ๋ก ์์ ๋ค์ธต ํผ์ ํธ๋ก ํ์ฑ
- ๋น์ ํ์ ๋ ผ๋ฆฌ ๊ฒ์ดํธ : XOR gate (๋ฐฐํ์ ๋ ผ๋ฆฌํฉ์ด๋ผ๋ ๋ ผ๋ฆฌํ๋ก , ๋ ์ ๋ ฅ๊ฐ์ค ํ์ชฝ์ด 1 ์ผ๋๋ง 1์ ์ถ๋ ฅ)
- AND, NAND, OR๊ฒ์ดํธ๋ฅผ ์กฐํฉํ์ฌ XOR ๊ฒ์ดํธ ์์ฑํ ์ ์์.
- hidden layer : ์ ๋ ฅ์ธต๊ณผ ์ถ๋ ฅ์ธต ์ฌ์ด์ ๋ชจ๋ layer
- hidden layer๊ฐ 3์ธต ์ด์์ผ ๊ฒฝ์ฐ, ๊น์ ์ ๊ฒฝ๋ง์ด๋ผ๋ ์๋ฏธ์ deep learning ์ฌ์ฉ
[ XOR gate ํผ์ ํธ๋ก ๊ตฌํ : ์์ ์ ์ํ ํจ์ AND, NAND, OR๋ฅผ ์์์ ๊ตฌํ ]
def XOR(x1, x2):
s1 = NAND(x1, x2)
s2 = OR(x1, x2)
y = AND(s1, s2)
return y
print(XOR(0,0)) # 0
print(XOR(1,0)) # 1
print(XOR(0,1)) # 1
print(XOR(1,1)) # 0
๐ Reference
- Deep Learning from Scratch