Perceptron - BD-SEARCH/MLtutorial GitHub Wiki
ํผ์ ํธ๋ก (perceptron)
ํผ์ ํธ๋ก ?
- ๋ค์์ ์ ํธ๋ฅผ ๋ฐ์ ํ๋์ ์ ํธ๋ฅผ ์ถ๋ ฅ.
- ์ ๋ ฅ์ผ๋ก ๋ฐ์ ์ ํธ์ ๊ฐ๊ฐ ๊ฐ์ค์น๋ฅผ ๊ณฑํ ๋ค, ์๊ณ๊ฐ์ ์ด๊ณผํ๋ฉด 1์, ์๋๋ฉด 0์ ์ถ๋ ฅ.
[๊ทธ๋ฆผ 1-1. ์ ๋ ฅ์ผ๋ก 2๊ฐ์ ์ ํธ๋ฅผ ๋ฐ์ ํผ์ ํธ๋ก ]
-
๊ฐ์ค์น์ ํธํฅ
- ๊ฐ์ค์น:
w_1, w_2, ...
- ๊ฐ ์ ๋ ฅ ์ ํธ๊ฐ ๊ฒฐ๊ณผ์ ์ฃผ๋ ์ํฅ๋ ฅ(์ค์๋)๋ฅผ ์กฐ์ ํ๋ ๋งค๊ฐ๋ณ์
- ํธํฅ:
b (-ฮธ)
- ๋ด๋ฐ์ด ์ผ๋ง๋ ์ฝ๊ฒ ํ์ฑํ ๋๋์ง ์ ํ๋ ๋งค๊ฐ๋ณ์
- ๊ฐ์ค์น:
๋จ์ ๋ ผ๋ฆฌ ํ๋ก
ex) ์ ๋ ฅ์ด ๋ ๊ฐ์ธ ํผ์ ํธ๋ก ์ผ๋ก ๋จ์ ๋ ผ๋ฆฌ ํ๋ก ๊ตฌํ๊ธฐ
- AND:
(w_1, x_1, ฮธ) == (0.5, 0.5, 0.7)
- OR:
(w_1, x_1, ฮธ) == (0.5, 0.5, 0.3)
- NAND:
(w_1, x_1, ฮธ) == (-0.5, -0.5, -0.7)
- AND ๊ฒ์ดํธ์ ๋งค๊ฐ๋ณ์ ๊ฐ์ ๋ถํธ๋ฅผ ๋ชจ๋ ๋ฐ๊พธ๊ธฐ๋ง ํ๋ฉด ๋๋ค
ํ๊ณ
- ํผ์ ํธ๋ก ์ ์ฌ์ฉํ๋ฉด AND, NAND, OR 3๊ฐ์ง ๋ ผ๋ฆฌ ํ๋ก๋ฅผ ๊ตฌํ ์ ์๋ค. ๊ทธ๋ฌ๋ XOR๋ ๋ถ๊ฐ๋ฅํ๋ค.
[๊ทธ๋ฆผ 1-2. ๋๊ทธ๋ผ๋ฏธ, ์ธ๋ชจ๋ XOR๊ฒ์ดํธ์ ์ถ๋ ฅ์ ๋ํ๋ธ๋ค]
- XOR์ ๊ทธ๋ฆผ์์, ๋๊ทธ๋ผ๋ฏธ์ ์ธ๋ชจ๋ฅผ ์ง์ ํ๋๋ก ๋๋ ์ ์๋ค
- ์ง์ ํ๋๋ก ๋๋ ์์ญ๋ง ํํํ ์ ์๋ ํ๊ณ๊ฐ ์๋ค (์ ํ ์์ญ๋ง ํํํ ์ ์๋ค)
- XOR ๊ฐ์ ๊ฒฝ์ฐ (0, 0), (1, 1)์ ๊ฐ์ 0. (0, 1), (1, 0)์ ๊ฐ์ 1์ด๋ค. ๊ทธ๋ฌ๋ ์ง์ ํ๋๋ก ์ด ๋ ์์ญ์ ๋ถ๋ฆฌํ ์ ์๋ค
๋ค์ธต ํผ์ ํธ๋ก (multi-layer perceptron)
- ์ธต์ด ์ฌ๋ฌ ๊ฐ์ธ ํผ์ ํธ๋ก . ํผ์ ํธ๋ก ์ ์ฌ๋ฌ ์ธต์ผ๋ก ์์ ๊ฒ.
- ๊ณก์ ์ผ๋ก ๋๋ ์์ญ๋ ํํํ ์ ์๋ค (๋น์ ํ ์์ญ๋ ํํํ ์ ์๋ค.)
- ์ ๋ ฅ ์ ํธ๋ถํฐ ์ถ๋ ฅ ์ ํธ๊น์ง, ๊ฐ๊ฐ 0์ธต, 1์ธต, ..., n์ธต์ด๋ผ ํ๋ค. ์ด ํผ์ ํธ๋ก ์ n์ธต ํผ์ ํธ๋ก ์ด๋ผ๊ณ ํ๋ค.
Example) XOR ๊ฒ์ดํธ๋ฅผ 2์ธต ํผ์ ํธ๋ก ์ผ๋ก ๋ํ๋ด๊ธฐ
[๊ทธ๋ฆผ 1-3. AND, NAND, OR ๊ฒ์ดํธ๋ฅผ ์กฐํฉํด ๊ตฌํํ XOR ๊ฒ์ดํธ]
y = (~(x_1*x_2))(x_1+x_2)
- ์ด๋ก ์ 2์ธต ํผ์ ํธ๋ก ๊ณผ, ํ์ฑํ ํจ์๋ก ์๊ทธ๋ชจ์ด๋๋ฅผ ์ฌ์ฉํ๋ฉด ์์์ ํจ์๋ฅผ ํํํ ์ ์๋ค๋ ๊ฒ์ด ์ฆ๋ช ๋์๋ค. ์ปดํจํฐ ์ญ์ ๊ตฌํ ๊ฐ๋ฅ