ํ์คํ ์น๐ ๊ฐ๋ฐ์ ์ง๋ง์ ๐ง๐ฝโ๐ป
โ ์ธ๊ณต์ง๋ฅ ๊ด์ฌ ๐ค
Categories
-
โฃ
โถ COMPUTER_SCIENCE
๐: 7 -
โฃ
โถ WEB
๐: 3 -
โฃ
โถ ETC
๐: 3-
โ
โฃ
ETCS
๐: 10 -
โ
โฃ
SUBBRAIN ๊ฐ๋ฐ๊ธฐ
๐: 5 -
โ
โ
YOS ๊ฐ๋ฐ๊ธฐ
๐: 1
-
โ
โฃ
-
โ
โถ AI
๐: 9-
โฃ
AITOOLS
๐: 3 -
โฃ
CV
๐: 2 -
โฃ
DEEP_LEARNING
๐: 1 -
โฃ
DATA_VIS
๐: 2 -
โฃ
GRAPH
๐: 1 -
โฃ
LIGHTWEIGHT
๐: 1 -
โฃ
MATH
๐: 1 -
โฃ
NLP
๐: 3 -
โ
STRUCTURED_DATA
๐: 2
-
โฃ
AI ์ํ ๊ธฐ๋ณธ
- Vector
- Matrix
- Gradient Algorithm(๊ฒฝ์ฌํ๊ฐ๋ฒ)
- ์ธ๊ณต์ง๋ฅ ํ์ต์ ์ํ์ ์ดํด
- ํ๋ฅ ๋ก
- ํต๊ณํ
- ๋ฒ ์ด์ฆ ํต๊ณํ
- CNN
- RNN
AIMath
Vector
๋ฒกํฐ๋?
-
์ซ์๋ฅผ ์์๋ก ๊ฐ์ง๋ ๋ฆฌ์คํธ ๋๋ ๋ฐฐ์ด์ ์๋ฏธ
๋ฒกํฐ์ ์ฝ๋ฉ์ ์๋ฏธ
-
$X$ = ์ด ๋ฒกํฐ, $X^T$ = ํ ๋ฒกํฐ
-
์ํ์ ์ผ๋ก๋ ๊ณต๊ฐ์์์ ํ ์ , ์์ ์ผ๋ก ๋ถํฐ์ ์๋์ ์์น๋ฅผ ์๋ฏธ
๋ฒกํฐ์ ์ํ์ ์๋ฏธ
- ๊ฐ ๋ฒกํฐ๊ฐ ๊ฐ์ง๋ ํ๊ณผ ์ด์ ์๋ฅผ ๋ฒกํฐ์ ์ฐจ์์ด๋ผ๊ณ ํ๋ค.
๋ฒกํฐ์ ์ฑ์ง
1. ๋ฒกํฐ์ ์์๋ฅผ ๊ณฑํด์ฃผ๋ฉด ๋ฐฉํฅ์ ๊ทธ๋๋ก, ๊ธธ์ด๋ง ๋ณํ๋ค.
-
์ด ๋ ๊ณฑํด์ฃผ๋ ์ซ์๋ฅผ ์ค์นผ๋ผ๊ณฑ($\alpha$)์ด๋ผ๊ณ ํํํ๋ค.
-
์ค์นผ๋ผ๊ณฑ์ด ์์์ด๋ฉด ๋ฐฉํฅ์ด ์ ๋ฐ๋ ๋ฐฉํฅ์ด ๋๋ค.
-
๋ฒกํฐ์ ๊ธธ์ด๋ 1๋ณด๋ค ํฌ๋ฉด ๊ธธ์ด๊ฐ ์ฆ๊ฐ, 1๋ณด๋ค ์์ผ๋ฉด ๊ธธ์ด๊ฐ ๊ฐ์ํ๋ค.
2. ๊ฐ์ ๋ชจ์(๊ฐ์ ํ๊ณผ ์ด)์ ๊ฐ์ง๋ฉด ๋ง์ , ๋บ์ , ๊ณฑ์ , ๋๋์ ์ด ๊ฐ๋ฅํ๋ค.
- ์ด๋์ ๊ณฑ์ ์ ์ฑ๋ถ๊ณฑ(Hadamard product)๋ผ๊ณ ํ๋ค.
- numpy array์๋ ์ ์ฉ๋๋ค.
3. ๋ฒกํฐ์ ๋ฒกํฐ์ ๋ง์ ๊ณผ ๋บ์ ์ ๋ค๋ฅธ ๋ฒกํฐ๋ก๋ถํฐ ์๋์ ์์น ์ด๋์ ํํํจ.
๋ฒกํฐ ๋ ธ๋ฆ(norm)๊ณผ ๊ธฐํํ์ ์ฑ์ง
๋ฒกํฐ์ ๋ ธ๋ฆ
-
๋ฒกํฐ์ ๋ ธ๋ฆ(norm)์ ์์ ์์๋ถํฐ์ ๊ฑฐ๋ฆฌ๋ฅผ ์๋ฏธ
- ์ฐจ์์ ์์ ๊ด๊ณ์์ด ๋ชจ๋ ๋ฒกํฐ๋ ๋ ธ๋ฆ์ ๊ตฌํ ์ ์๋ค.
- L~1~-๋
ธ๋ฆ์ ๊ฐ ์ฑ๋ถ์ ๋ณํ๋์ ์ ๋๊ฐ์ ํฉ์ ์๋ฏธ
- $(x,y)$๋ $|x|+|y|$ ๋งํผ ๊ฑฐ๋ฆฌ
- L~2~-๋
ธ๋ฆ์ ํผํ๊ณ ๋ผ์ค ์ ๋ฆฌ๋ฅผ ์ด์ฉํด ์ ํด๋ฆฌ๋ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ์ฐ
- $(x,y)$๋ $\sqrt{|x|^2 +|y|^2}$๋ฅผ ์๋ฏธ
np.linalg.norm
์ผ๋ก ๊ตฌํ ๊ฐ๋ฅ
- $\parallel \parallel $ ๊ธฐํธ๋ ๋ ธ๋ฆ์ด๋ผ๊ณ ๋ถ๋ฆ
๋ฐฑํฐ ๋ ธ๋ฆ์ ์ฝ๋ ๊ตฌํ
def l1_norm(x):
x_norm = np.abs(x)
x_norm = np.sum(x_norm)
return x_norm
def l2_norm(x):
x_norm = x*x
x_norm = np.sum(x_norm)
x_norm = np.sqrt(x_norm)
return x_norm
๋ ธ๋ฆ์ ํ์ฉ๊ณผ ์ฑ์ง
-
๋ ธ๋ฆ์ ์ข ๋ฅ๋ฅผ ๋ฌด์์ผ๋ก ์ ์ฉํ๋๋์ ๋ฐ๋ผ ๊ธฐํํ์ ์ฑ์ง์ด ๋ฌ๋ผ์ง๋ค.
- L1 ๋ ธ๋ฆ์ ๋ง๋ฆ๋ชจ ๋ชจ์์ ์์ ๊ทธ๋ฆฌ๋ฉฐ, L2 ๋ ธ๋ฆ์ ๊ธฐ์กด์ ์ ๋ชจ์์ ์์ ๊ฐ์ง๋ค.
- ๋ ธ๋ฆ์ ์ข ๋ฅ์ ๋ฐ๋ผ ๋จธ์ ๋ฌ๋์์์ ํ์ฉ๋ ๋ฌ๋ผ์ง๋ค.
-
๋ ธ๋ฆ์ ์ด์ฉํด ๋ ๋ฒกํฐ ์ฌ์ด์ ๊ฑฐ๋ฆฌ๋ฅผ ๋บ์ ์ ํตํ์ฌ ๊ณ์ฐํ ์ ์๋ค.
- $\parallel y - x\parallel = \parallel x - y\parallel$ ์ธ์ ์ ์ด์ฉํ๊ฒ ๋๋ค.
- ์ฆ x-y ๋๋ y-x๋ฅผ ํ ์์ ์์์ ์ขํ๋ฅผ ์ด์ฉํด L2 norm์ ๊ตฌํ๋ฉด ๋๋ฒกํฐ ์ฌ์ด์ ๊ฑฐ๋ฆฌ๊ฐ ๋์จ๋ค.
-
L2 ๋ ธ๋ฆ ํ์ ์ผ๋ก ๋ด์ ์ ์ด์ฉํด ์ด๋ ๊ฒ ๊ตฌํ ๋ฒกํฐ์ฌ์ด์ ๊ฑฐ๋ฆฌ๋ฅผ ์ด์ฉํด ๊ฐ๋ ๋ํ ๊ณ์ฐ ๊ฐ๋ฅํ๋ค.
- <x, y> ๋ ๋ด์ (inner product)์ ์๋ฏธํ๋ฉฐ ์ฑ๋ถ ๊ณฑ๋ค์ ํฉ์ ์๋ฏธํ๋ค.
- ์๋ฅผ ๋ค์ด x = (0, 1), y = (0, 2)์ ๋ด์ ์ 0 * 0 + 1 * 2 = 2 ์ด๋ค.
- <x, y> ๋ ๋ด์ (inner product)์ ์๋ฏธํ๋ฉฐ ์ฑ๋ถ ๊ณฑ๋ค์ ํฉ์ ์๋ฏธํ๋ค.
๋ด์ ์ ์ด์ฉํ ๊ฐ๋ ๊ณ์ฐ
def angle(x,y):
# np.inner(x, y)๊ฐ ๋ด์ ์ ๊ตฌํ๋ numpy ํจ์
v = np.inner(x, y) / (l2_norm(x) * l2_norm(y))
theta = np.arccos(v)
return theta
๋ด์ ์ ํด์
-
๋ด์ ์ ์ ์ฌ์(orthogonal projection)๋ ๋ฒกํฐ์ ๊ธธ์ด์ ๊ด๋ จ ์๋ค.
- Proj(x)๋ ๋ฒกํฐ y๋ก ์ ์ฌ์๋ ๋ฒกํฐ x์ ๊ทธ๋ฆผ์๋ฅผ ์๋ฏธํ๋ค.
- Proj(x)์ ๊ธธ์ด๋ ์ฝ์ฌ์ธ๋ฒ์น์ ์ํด
-
๊ฐ ๋๋ค.
-
์ด๋ ๋ด์ ์ ์ ์ฌ์์ ๊ธธ์ด๋ฅผ ๋ฒกํฐ y์ ๊ธธ์ด $\parallel y \parallel$๋งํผ ์กฐ์ ํ(๊ณฑํ) ๊ฐ์ด๋ค.
-
๋ด์ ์ ์ด์ฉํด ์ ์ฌ๋(similarity)๋ฅผ ๊ตฌํ ์ ์๋ค.
Matrix
ํ๋ ฌ์ด๋?
- ๋ฒกํฐ๋ฅผ ์์๋ก ๊ฐ์ง๋ 2์ฐจ์ ๋ฐฐ์ด
\[X = \begin{bmatrix} 1 & -2 & 3 \\ 7 & 5 & 0 \\ -2 & -1 & 2\end{bmatrix}\]ํ๋ ฌ์ ์์ ํํ
ํ๋ ฌ์ ์ฝ๋ ํํ
x = np.array([[1, -2, 3], [7, 5, 0], [-2, -1, 2]]) # numpy์์ ํ(row)์ด ๊ธฐ๋ณธ๋จ์
\(\boldsymbol{X} = \begin{bmatrix}symbol{x_{1}} \\symbol{x_{2}} \\symbol{\vdots}\\symbol{x_{n}} \end{bmatrix} = \begin{bmatrix} x_{11} & x_{12} & \dots & x_{1m}\\ x_{21} & x_{22} & \dots & y_{2m}\\ \vdots & \vdots & & \vdots\\ x_{n1} & x_{n2} & \dots & x_{nm}\end{bmatrix} \begin{aligned}\boldsymbol{x_{1}}\\symbol{x_{2}}\\symbol{x_{7}}\end{aligned}\)
-
n x m ํ๋ ฌ์ ํํ
-
ํ๋ ฌ์ ํ(row)๊ณผ ์ด(column)์ด๋ผ๋ ์ธ๋ฑ์ค(index)๋ฅผ ๊ฐ์ง๋๋ค.
-
ํ๋ ฌ์ ํน์ ํ์ด๋ ์ด์ ๊ณ ์ ํ๋ฉด ํ ๋ฒกํฐ ๋๋ ์ด ๋ฒกํฐ๋ผ ๋ถ๋ฅธ๋ค.
-
์ ์น ํ๋ ฌ(transpose matrix) $X^T$๋ ํ๊ณผ ์ด์ ์ธ๋ฑ์ค๊ฐ ๋ฐ๋ ํ๋ ฌ์ ์๋ฏธํจ.
-
๋ฒกํฐ ๋ํ ๋์ผํ๊ฒ ํ๊ณผ ์ด์ด ๋ฐ๋ ์ ์น ๋ฒกํฐ๊ฐ ์กด์ฌํ๋ค.
ํ๋ ฌ์ ์ดํด
1. ์ฒซ๋ฒ์งธ ์๋ฏธ
- ๋ฒกํฐ๊ฐ ๊ณต๊ฐ์ ํ์ ์ ์๋ฏธํ๋ค๋ฉด ํ๋ ฌ์ ๊ณต๊ฐ์์ ์ฌ๋ฌ ์ ๋ค์ ์งํฉ์ ์๋ฏธํจ.
- ํ๋ ฌ์ ํ๋ฒกํฐ $x_i$๋ i๋ฒ์งธ ๋ฐ์ดํฐ๋ฅผ ์๋ฏธํจ.
- ํ๋ ฌ $x_{ij}$๋ i๋ฒ์งธ ๋ฐ์ดํฐ์ j ๋ฒ์งธ ๋ณ์๊ฐ์ ์๋ฏธํจ.
- ๋ฒกํฐ์ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ฐ์ ๋ชจ์์ ๊ฐ์ง๋ฉด ๊ฐ์ ์ธ๋ฑ์ค ์์น๋ผ๋ฆฌ ๋ง์ , ๋บ์ . ์ฑ๋ถ๊ณฑ์ ๊ณ์ฐํ ์ ์๋ค.
- ๋ฒกํฐ์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ค์นผ๋ผ๊ณฑ($\alpha$) ๋ํ ๊ฐ๋ฅํ๋ค.
2. ๋๋ฒ์งธ ์๋ฏธ
- ํ๋ ฌ์ ๋ฒกํฐ ๊ณต๊ฐ์์ ์ฌ์ฉ๋๋ ์ฐ์ฐ์(operator)๋ฅผ ์๋ฏธ.
- ํ๋ ฌ ๊ณฑ์ ํตํด ๋ฒกํฐ๋ฅผ ๋ค๋ฅธ ์ฐจ์์ ๊ณต๊ฐ์ ๋ณด๋ผ ์ ์์
- ํ๋ ฌ์ X๋ฒกํฐ์ ๊ณฑํ๋ฉด m์ฐจ์์์ n์ฐจ์ ๋ฒกํฐ๋ก ๋ณํ๋์ด n์ฐจ์์ z๋ฒกํฐ๊ฐ ๋จ.
- ์ด๋ฅผ ํตํด ๋งตํ, ๋์ฝ๋ฉ ๋ฑ์ด ๊ฐ๋ฅํจ.
- ์ด๋ฅผ ์ ํ ๋ณํ(linear transform)์ด๋ผ๊ณ ๋ ํจ.
- ๋ฅ๋ฌ๋์ ์ ํ ๋ณํ๊ณผ ๋น์ ํ ๋ณํ์ ํฉ์ฑ์ผ๋ก ์ด๋ฃจ์ด์ง
- ํจํด ์ถ์ถ, ๋ฐ์ดํฐ ์์ถ ๋ฑ์๋ ์ฌ์ฉํจ.
ํ๋ ฌ์ ๊ณฑ์ (matrix multiplication)๊ณผ ๋ด์
1. ํ๋ ฌ์ ๊ณฑ์ (matrix multiplication)
- ํ๋ ฌ ๊ณฑ์ ์ i๋ฒ์งธ ํ๋ฒกํฐ์ j ๋ฒ์งธ ์ด๋ฒกํฐ ์ฌ์ด์ ๋ด์ ์ ์ฑ๋ถ์ผ๋ก ๊ฐ์ง๋ ํ๋ ฌ์ ๋ง๋ญ๋๋ค.
- ๊ณ ๋ก ํ๊ณผ ์ด์ ๊ฐฏ์๊ฐ ๊ฐ์์ผ ๊ฐ๋ฅํ๋ค.
ํ๋ ฌ์ ๊ณฑ์ code ๊ตฌํ ์
X = np.array([[1, -2, 3],
[7, 5, 0],
[-2, -1, 3]])
Y = np.array([[0, 1],
[1, -1],
[-2, 1]])
print(x @ Y) # numpy์์ @ ์ฐ์ฐ์ผ๋ก ํ๋ ฌ ๊ณฑ์
๊ณ์ฐ
# array([[-8, 6],
# [5, 2],
# [-5, 1]])
2. ํ๋ ฌ์ ๋ด์
np.inner
๋ i๋ฒ์งธ ํ๋ฒกํฐ์ j๋ฒ์งธ ํ๋ฒกํฐ ์ฌ์ด์ ๋ด์ ์ ์ฑ๋ถ์ผ๋ก ๊ฐ์ง๋ ํ๋ ฌ์ ๊ณ์ฐํฉ๋๋ค.- ์ํ์ ํ๋ ฌ ๋ด์ $tr(XY^T)$๊ณผ ๋ค๋ฆ
ํ๋ ฌ์ ๋ด์ code ๊ตฌํ ์
X = np.array([[1, -2, 3],
[7, 5, 0],
[-2, -1, 3]])
Y = np.array([[0, 1, -1],
[1, -1, 0]])
print(np.inner(x, Y)) # numpy์์ np.inner() ํจ์๋ก ํ๋ ฌ ๋ด์ ๊ณ์ฐ
# array([[-5, 3],
# [5, 2],
# [-3, -1]])
์ญํ๋ ฌ์ ์ดํด
- ํ๋ ฌ A์ ์ฐ์ฐ์ ๊ฐ์ ์ฐ์ฐ์ผ๋ก ๊ฑฐ๊พธ๋ก ๋๋ฆฌ๋ ํ๋ ฌ์ ์ญํ๋ ฌ(Inverse matrix)๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ, $A^{-1}$๋ผ ํ๊ธฐํ๋ค.
- ํ๊ณผ ์ด ์ซ์๊ฐ ๊ฐ๊ณ ํ๋ ฌ์(determinant)๊ฐ 0์ด ์๋ ๊ฒฝ์ฐ์๋ง ๊ณ์ฐ ๊ฐ๋ฅ.
\[AA^{-1} = A^{-1}A = I(ํญ๋ฑํ๋ ฌ)\]์ญํ๋ ฌ๊ณผ์ ํ๋ ฌ๊ณฑ์ ๊ฒฐ๊ณผ
- ํญ๋ฑํ๋ ฌ(Identity Matrix)์ ๊ณฑํ๊ฒ ๋ ์ ์๊ธฐ ์์ ์ด ๋์ค๋ ํ๋ ฌ์ด๋ค.
์ญํ๋ ฌ์ ์ฝ๋ ๊ตฌํ
Y = np.array([[1, -2, 3], [7, 5, 0], [-2,-1,2]])
print(Y @ np.linalg.inv(Y)) # np.linalg.inv(Y) Y ํ๋ ฌ์ ์ญํ๋ ฌ์ด ๋ฆฌํด
# array([[1, 0, 0], [0, 1, 0], [0, 0, 1]]) # ์ ํํ๋ float์ผ๋ก ๋น์ทํ ๊ฐ์ด ๋์จ๋ค.
- ์ญํ๋ ฌ์ ๊ณ์ฐํ ์ ์๋ ์กฐ๊ฑด์ด๋ผ๋ฉด ์ ์ฌ์ญํ๋ ฌ(pseudo-inverse) ๋๋ ๋ฌด์ด-ํ๋ก์ฆ(Moore-Penrose) ์ญํ๋ ฌ $A^ +$์ ์ด์ฉํ๋ค.
\[n \geq m ์ธ\ ๊ฒฝ์ฐ, \ A^+ = (A^TA)^{-1}A^T,\ A^+A = I\\ n \leq m ์ธ\ ๊ฒฝ์ฐ, \ A^+ = A^T(A^TA)^{-1},\ AA^+ = I\\\]์ ์ฌ์ญํ๋ ฌ์ ์ฑ์ง
- ์์๋ฅผ ๋ฐ๊พธ๋ฉด ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋ผ์ง๋ฏ๋ก ์ ์ฌ์ญํ๋ ฌ์ ์์์ ์ฃผ์!
์ ์ฌ ์ญํ๋ ฌ์ ์ฝ๋ ๊ตฌํ
Y = np.aray([[0, 1], [1,-1], [-2,1]])
print(Y @ np.linalg.pinv(Y)) # np.linalg.pinv(Y) Y ํ๋ ฌ์ ์ ์ฌ์ญํ๋ ฌ์ด ๋ฆฌํด
# array([[1, 0], [0, 1]]) # ์ ํํ๋ float์ผ๋ก ๋น์ทํ ๊ฐ์ด ๋์จ๋ค.
ํ๋ ฌ์ ์์ฉ
1. ์ฐ๋ฆฝ๋ฐฉ์ ์ ํ๊ธฐ
\[a_{11}x_1 + a_{12}x_2 + \dots + a_{1m}x_{m} = b_{1}\\ a_{12}x_1 + a_{22}x_2 + \dots + a_{2m}x_{m} = b_{2}\\ \vdots\\ a_{n1}x_1 + a_{n2}x_2 + \dots + a_{nm}x_{m} = b_{n}\\ n \leq m \ ์ธ\ ๊ฒฝ์ฐ:\ ์์ด\ ๋ณ์\ ๊ฐ์๋ณด๋ค\ ์๊ฑฐ๋\ ๊ฐ์์ผ\ ํจ\]sol) n์ด m๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ผ๋ฉด ๋ฌด์ด-ํ๋ก์ฆ ์ญํ๋ ฌ์ ์ด์ฉํด ํด๋ฅผ ํ๋ ๊ตฌํ ์ ์๋ค.
\(Ax = B \\
\Rightarrow x = A^+b\\
=A^T(AA^T)^{-1}b\)
2. ์ ํํ๊ท๋ถ์
-
np.linalg.pinv
๋ฅผ ์ด์ฉํ๋ฉด ๋ฐ์ดํฐ๋ฅผ ์ ํ๋ชจ๋ธ(linear model)๋ก ํด์ํ๋ ์ ํํ๊ท์์ ์ฐพ์ ์ ์๋ค. -
sklearn
์LinearRegression
๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ์ด
# Scikit Learn์ ํ์ฉํ ํ๊ท๋ถ์
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(x,y)
y_test = model.predict(x_test)
# Moore-Penrose ์ญํ๋ ฌ, y์ ํธ(intercept)ํญ์ ์ง์ ์ถ๊ฐํด์ผํ๋ค.
X_ = np.array([np.append(x,[1]) for x in X]) # intercept ํญ ์ถ๊ฐ
beta = np.linalog.pinv(X_) @ y
y_test = np.append(x, [1]) @ beta
Gradient Algorithm(๊ฒฝ์ฌํ๊ฐ๋ฒ)
๋ฏธ๋ถ (differentiation)์ด๋?
- ๋ณ์์ ์์ง์์ ๋ฐ๋ฅธ ํจ์๊ฐ์ ๋ณํ๋ฅผ ์ธก์ ํ๊ธฐ ์ํ ๋๊ตฌ.
- ๋ณํ์จ์ ๊ทนํ, ์ต์ ํ์์ ์ ์ผ ๋ง์ด ์ฌ์ฉํ๋ ๊ธฐ๋ฒ.
๋ฏธ๋ถ ์ฝ๋ ๊ตฌํ
import sympy as sym # ๊ธฐํธ๋ฅผ ํตํด ํจ์๋ฅผ ์ดํดํ๊ฒ ํด์ค
from sympy.abc import x
sym.diff(sym.poly(x**2 + 2*x + 3), x)
#Poly(2*x + 2, x, domain='zz')
๋ฏธ๋ถ ํ์ฉ
- ํจ์ ๊ทธ๋ํ์ ์ ์ ์ ๊ธฐ์ธ๊ธฐ์๋ ๊ฐ์ผ๋ฉฐ, ์ด๋ฅผ ํตํด ํจ์๊ฐ์ ์ฆ๊ฐ์ ์ ์ ์๋ค.
-
์ด๋ ๊ฒ ๊ตฌํ ๊ธฐ์ธ๊ธฐ๋ฅผ ํตํ์ฌ ๋ฏธ๋ถ๊ฐ์ ๋ํ๊ฑฐ๋ ๋นผ์, ๊ณ ์ฐจ์ ๊ณต๊ฐ์์๋ ์ต์ ํ ๊ฐ๋ฅ
- ๋ฏธ๋ถ๊ฐ์ ๋ํ๋ฉด ๊ฒฝ์ฌ์์น๋ฒ์ด๋ผ ํ๋ฉฐ, ํจ์์ ๊ทน๋๊ฐ์ ์ฐพ๋๋ฐ ์ฌ์ฉ
- ๋ฏธ๋ถ๊ฐ์ ๋นผ๋ฉด ๊ฒฝ์ฌํ๊ฐ๋ฒ์ด๋ผ ํ๋ฉฐ, ํจ์์ ๊ทน์๊ฐ์ ์ฐพ๋๋ฐ ์ฌ์ฉ
-
๊ทน์๊ฐ์ด๋ ๊ทน๋๊ฐ์ ๋๋ฌํ๋ฉด ๋ฏธ๋ถ๊ฐ์ด 0์ด๋ฏ๋ก ์ต์ ํ๊ฐ ์ข ๋ฃ๋จ.
๊ฒฝ์ฌํ๊ฐ๋ฒ (Gradient Algorithm) ๊ตฌํ
์ฝ๋ ๊ตฌํ ์๋ ์ฝ๋
Input : gradeint, init, lr, eps, Output: var
# gradient: ๋ฏธ๋ถ์ ๊ณ์ฐํ๋ ํจ์
# init: ์์์ , lr: ํ์ต๋ฅ , eps: ์๊ณ ๋ฆฌ์ฆ ์ข
๋ฃ ์กฐ๊ฑด
var = init
grad = gradient(var)
while(abs(grad) &#62; eps): # ๋ฏธ๋ถ๊ฐ์ด ์ ํ์ด 0์ด ๋๋ ๊ฒฝ์ฐ๋ ๊ฑฐ์ ์์, ์ฆ ์์ฃผ ์์๊ฐ(eps)์ดํ๊ฐ ๋๋ฉด ์ข
๋ฃ
var = var - lr * grad # lr: ํ์ต๋ฅ ์ด ๋์์๋ก ๋๊ฒ ์
๋ฐ์ดํธํจ, ๋๋ฌด ํฌ๊ฑฐ๋ ์์ผ๋ฉด ์๋จ
grad = gradient(var) # ๋ฏธ๋ถ๊ฐ ์
๋ฐ์ดํธ
๋ค๋ณ์ ํจ์์ผ ๊ฒฝ์ฐ?
- ๋ฒกํฐ๊ฐ ์ ๋ ฅ์ธ ๋ค๋ณ์ ํจ์์ ๊ฒฝ์ฐ ํธ๋ฏธ๋ถ(partial differentiation)์ ์ฌ์ฉ.
์ฝ๋ฉ์ ์ด์ฉํ ํธ๋ฏธ๋ถ
import sympy as sym
from sympy.abc import x, y
sym.diff(sym.poly(x**2 + 2*x*y + 3) + sym.cos(x + 2*y), x)
# 2*x + 2*y - sin(x+2*y)
- ๊ฐ ๋ณ์ ๋ณ๋ก ํธ๋ฏธ๋ถ์ ๊ณ์ฐํ ๊ทธ๋ ์ด์ธํธ ๋ฒกํฐ๋ฅผ ์ด์ฉํ์ฌ ๊ฒฝ์ฌํ๊ฐ/๊ฒฝ์ฌ์์น๋ฒ์ ์ฌ์ฉ ๊ฐ๋ฅ.
๊ทธ๋ ๋์ธํธ ๋ฒกํฐ (Gradient vector) ์ด์ฉํ ๊ฒฝ์ฌํ๊ฐ๋ฒ
- โf (x,y)๋ ์์์ ์ (x,y)์์ ๊ฐ์ฅ ๋นจ๋ฆฌ ํจ์๊ฐ์ด ์ฆ๊ฐํ๋ ๋ฐฉํฅ์ด๋ค
- ๊ทธ๋ฌ๋ฏ๋ก -โf (x,y)๋ฐฉํฅ์ผ๋ก ๊ฐ๋ฉด ๊ฐ์ฅ ๋นจ๋ฆฌ ํจ์๊ฐ์ด ๊ฐ์ํ๋ ๋ฐฉํฅ์ด ๋๋ฉฐ, ์ด๋ฅผ ์ ์ฉํด ๊ฒฝ์ฌํ๊ฐ์ ํ๋ค.
๊ทธ๋ ๋์ธํธ ๋ฒกํฐ๊ฐ ์ ์ฉ๋ ๊ฒฝ์ฌํ๊ฐ๋ฒ ์๋์ฝ๋
Input : gradeint, init, lr, eps, Output: var
# gradient: ๊ทธ๋ ๋์ธํธ ๋ฒกํฐ๋ฅผ ๊ณ์ฐํ๋ ํจ์
# init: ์์์ , lr: ํ์ต๋ฅ , eps: ์๊ณ ๋ฆฌ์ฆ ์ข
๋ฃ ์กฐ๊ฑด
var = init
grad = gradient(var)
while(norm(grad) &#62; eps): # ๋ฒกํฐ์ ์ ๋๊ฐ ๋์ ๋
ธ๋ฆ(norm)์ ๊ณ์ฐํด ์ข
๋ฃ์กฐ๊ฑด ์ค์
var = var - lr * grad # lr: ํ์ต๋ฅ ์ด ๋์์๋ก ๋๊ฒ ์
๋ฐ์ดํธํจ, ๋๋ฌด ํฌ๊ฑฐ๋ ์์ผ๋ฉด ์๋จ
grad = gradient(var) # ๋ฏธ๋ถ๊ฐ ์
๋ฐ์ดํธ
๊ฒฝ์ฌํ๊ฐ๋ฒ์ ์ ํ ํ๊ท ์ ์ฉ (apply to linear regression)
-
๋ฌด์ด-ํ๋ก์ฆ ํ๋ ฌ์ ์ด์ฉํด์ ์ ํํ๊ท๊ฐ ๊ฐ๋ฅํ์ง๋ง, ๊ฒฝ์ฌํ๊ฐ๋ฒ์ ์ด์ฉํ๋๊ฒ ์ผ๋ฐ์ ์ด๋ค.
-
**์ ํํ๊ท์ ๋ชฉ์ ์์ โฅy-Xฮฒโฅ~2~ ๋๋ โฅy-Xฮฒโฅ~2~^2^ ** ์ด๋ฉฐ, ์ด๋ฅผ ์ต์ํํ๋ ฮฒ๋ฅผ ์ฐพ๋๊ฒ ๋ชฉ์ ์ด๋ฏ๋ก ๋ค์๊ณผ ๊ฐ์ ๊ทธ๋ ๋์ธํธ ๋ฒกํฐ๋ฅผ ๊ตฌํด์ผํ๋ค.(loss : RMSE ๊ธฐ์ค)
\(\nabla_\beta\left\| y - X\beta\right\|_2 = (\partial_{\beta_1}\left\| y - X\beta\right\|_2,\dots,\partial_{\beta_d}\left\| y - X\beta\right\|_2)\\ \partial_{\beta_k}\left\| y - X\beta\right\|_2 = \partial_{\beta_k}\left\{\frac{1}n\sum_{i=1}^n{\left(y_i - \sum_{j=1}^{d}X_{ij}\beta_j\right)^2}\right\}^\frac{1}2 = -\frac{X^T_{\cdot k}(y - X\beta)}{n\left\| y - X\beta\right\|_2}\\ X^T_{\cdot k} = ํ๋ ฌ\ X์\ k๋ฒ์งธ\ ์ด(column)\ ๋ฒกํฐ๋ฅผ\ ์ ์น์ํจ\ ๊ฒ\\ ์ฆ,\\ \nabla_\beta\left\| y - X\beta\right\|_2 = (\partial_{\beta_1}\left\| y - X\beta\right\|_2,\dots,\partial_{\beta_d}\left\| y - X\beta\right\|_2) = \left( -\frac{X^T_{\cdot 1}(y - X\beta)}{n\left\| y - X\beta\right\|_2},\dots, -\frac{X^T_{\cdot d}(y - X\beta)}{n\left\| y - X\beta\right\|_2}\right)\) -
์ด์ ๋ชฉ์ ์์ ์ต์ํํ๋ ฮฒ๋ฅผ ๊ตฌํ๋ ๊ฒฝ์ฌํ๊ฐ๋ฒ ์๊ณ ๋ฆฌ์ฆ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ๋ชฉ์ ์์ผ๋ก โฅy-Xฮฒโฅ~2~ ๋์ โฅy-Xฮฒโฅ~2~^2^์ ์ต์ํํ๋ฉด ์์ด ์ข๋ ๊ฐ๋จํด์ง๋ค.
๊ฒฝ์ฌํ๊ฐ๋ฒ ๊ธฐ๋ฐ ์ ํํ๊ท ์๊ณ ๋ฆฌ์ฆ ์๋ ์ฝ๋
Input: X, y, lr, T, Output: beta
# norm: L2-๋
ธ๋ฆ์ ๊ณ์ฐํ๋ ํจ์
# lr: ํ์ต๋ฅ , T: ํ์ตํ์ = hyperparameter
for t in range(T): # ํ์ตํ์ ์ ํ, ๋๋ ์ด์ ์ฒ๋ผ ์ผ์ ํ ์์ค ์ดํ๋ก ๋จ์ด์ง ๋๊น์ง ํด๋ ๋๋ค.
error = y - X @ beta
grad = - transpose(X) @ error
beta = beta - lr * grad # ๋ฒ ํ ์
๊ทธ๋ ์ด๋
ํ๋ฅ ์ ๊ฒฝ์ฌํ๊ฐ๋ฒ (stochastic gradient descent)
-
์ด๋ก ์ ์ผ๋ก ์ ์ ํ ํ์ต๋ฅ ๊ณผ ํ์ตํ์๋ฅผ ์ ํ์, ์๋ ด์ด ๋ณด์ฅ๋์ด์๋ค.
-
ํ์ง๋ง ๋น์ ํํ๊ท์ ๊ฒฝ์ฐ ๋ชฉ์ ์์ด ๋ณผ๋กํ์ง ์์ผ๋ฏ๋ก(non-convex) ์๋ ด์ด ํญ์ ๋ณด์ฅ๋์ง ์์
- ๋ฅ๋ฌ๋์ ๋ชฉ์ ์์ ๋๋ถ๋ถ ๋ณผ๋กํจ์๊ฐ ์๋๋ค, ์ฆ ๋๋ถ๋ถ ๋ณด์ฅํ์ง ์์
- ์๋์ ๊ฐ์ ๊ฒฝ์ฐ ํน์ ๋ถ๋ถ์ ์๋ ดํ์ง๋ง ํจ์์ ์ต์์ง์ ์ด ์๋๋ค.
โ
-
ํ๋ฅ ์ ๊ฒฝ์ฌํ๊ฐ๋ฒ(SGD)์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํด์ ์ ๋ฐ์ดํธ ํ๋ ๋์ ๋ฐ์ดํฐ ํ๊ฐ ๋๋ ์ผ๋ถํ์ฉํ์ฌ ์ ๋ฐ์ดํธํฉ๋๋ค.
๊ฐ์
- ๋ง๋ฅ์ ์๋์ง๋ง ๋ฅ๋ฌ๋์์ mini-batch ๋ฐฉ์์ ์ถ๊ฐํ์ฌ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉํจ.
- SGD๋ ๋ฐ์ดํฐ์ ์ผ๋ถ๋ฅผ ๊ฐ์ง๊ณ ํจ๋ฌ๋ฏธํฐ๋ฅผ ์
๋ฐ์ดํธํ๊ธฐ ๋๋ฌธ์ ์ฐ์ฐ์์์ ์ข ๋ ํจ์จ์ ์ผ๋ก ํ์ฉ
- ์ฐ์ฐ๋์ด b/n์ผ๋ก ๊ฐ์
-
๊ฒฝ์ฌํ๊ฐ๋ฒ์ ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ๋ชฉ์ ์ ๊ทธ๋ ๋์ธํธ ๋ฒกํฐ๋ฅผ ๊ณ์ฐํ๋ ๋ฐ๋ฉด, SGD๋ ๋ฏธ์น๋ฐฐ์น(๋ฐ์ดํฐ์ ์ผ๋ถ)๋ฅผ ๊ฐ์ง๊ณ ๊ทธ๋ ๋์ธํธ ๋ฒกํฐ๋ฅผ ๊ณ์ฐ
-
๊ทธ๋ฌ๋ฏ๋ก ๋งค๋ฒ ๋ค๋ฅธ ๋ฐ์ดํฐ์ ์ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋น์ทํ๊ธฐ ๋๋ฌธ์ ํจ์ ๊ณก์ ์ ๋ชจ์์ด ๋ฏธ๋๋ฐฐ์น๋ง๋ค ๋ฐ๋๊ฒ ๋๋ค.
-
ํ์ง๋ง ์ต์ข ์ ์ธ ๋ฐฉํฅ์ฑ์ ์ ์ฌํ๊ฒ ์ด๋ํ๊ฒ ๋๋ค.
-
์ฆ ๋ณผ๋ก๋ชจ์์ด ์๋์ด๋ ํจ์จ์ ์ผ๋ก ํ์ฉ๊ฐ๋ฅ ํ๋ค.
๊ฒฝ์ฌํ๊ฐ๋ฒ(์ข) vs ํ๋ฅ ์ ๊ฒฝ์ฌํ๊ฐ๋ฒ(์ฐ)
-
๋ค๋ง mini-batch ์ฌ์ด์ฆ๋ฅผ ๋๋ฌด ์๊ฒ ์ก์ผ๋ฉด ๊ฒฝ์ฌํ๊ฐ๋ฒ์ ๋นํด ๋๋ฌด ๋๋ ค์ง๋ค.
-
์ต๊ทผ์๋ ๊ฒฝ์ฌํ๊ฐ๋ฒ์ผ๋ก ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํด ํ์ต์ํค๋ฉด, ๋ฐฉ๋ํ ๋ฐ์ดํฐ์ ์ ์ํ์ฌ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ด๊ณผ๋๋ฏ๋ก ๋ฏธ๋๋ฐฐ์น๋ก ๋๋์ด์ ํ์ตํ๋ SGD๋ฅผ ์ฌ์ฉํ๋ค.
์ธ๊ณต์ง๋ฅ ํ์ต์ ์ํ์ ์ดํด
์ ๊ฒฝ๋ง์ ํด์
- ๋น์ ํ, ๋ณต์กํ ๋ชจ๋ธ์ด ๋๋ถ๋ถ์ธ ์ ๊ฒฝ๋ง์ ์ฌ์ค ์ ํ ๋ชจ๋ธ๊ณผ ๋น์ ํ ํจ์๋ค์ ๊ฒฐํฉ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
[math 0. ์ ๊ฒฝ๋ง ์์ ๋ถํด]
- b๋ ๊ฐ ํ ํ์ ๋ชจ๋ ๊ฐ์ด ๊ฐ๋ค.
์ผ์์... ์ด๊ฒ ๋จธ์ผ ์ธ์ ๊ฐ ๊ณ ์น๊ธฐ
graph BT
x1((x&#60;sub&#62;1&#60;/sub&#62;)) & x2((x&#60;sub&#62;2&#60;/sub&#62;)) & x((x...)) & xd((x&#60;sub&#62;d&#60;/sub&#62;))--&#62;o1((O&#60;sub&#62;1&#60;/sub&#62;)) & os((o...)) & op((O&#60;sub&#62;p&#60;/sub&#62;))
[chart 0. ์ ๊ฒฝ๋ง ๋ชจ๋ธ์ ์ฐจํธํ]
-
d๊ฐ์ ๋ณ์๋ก p๊ฐ์ ์ ํ๋ชจ๋ธ์ ๋ง๋ค์ด p๊ฐ์ ์ ์ฌ๋ณ์๋ฅผ ์ค๋ช ํ๋ ๋ชจ๋ธ์ ๋์ํ์ด๋ค.
-
ํ์ดํ๋ w~ij~๋ค์ ๊ณฑ์ ์๋ฏธํ๋ค.
์ํํธ๋งฅ์ค ์ฐ์ฐ
\[softmax(o) = softmax(Wx+b) = \left( \dfrac{\exp(0)}{\sum_{k=1}^p\exp(o_k) }, \dots, \dfrac{\exp(0_p)}{\sum_{k=1}^p\exp(o_k) },\right)\][math1.softmax]
- ์ํํธ๋งฅ์ค(softmax) ํจ์๋ ๋ชจ๋ธ์ ์ถ๋ ฅ์ ํ๋ฅ ๋ก ํด์ํ ์ ์๊ฒ ๋ณํํด์ฃผ๋ ์ฐ์ฐ
- ๋ถ๋ฅ ๋ฌธ์ ๋ฅผ ํ ๋ ์ ํ๋ชจ๋ธ๊ณผ ์ํํธ ๋งฅ์ค ํจ์๋ฅผ ๊ฒฐํฉํ์ฌ ์์ธก
def softmax(vec):
denumerator = np.exp(vec - np.max(vec, axis=-1, keepdims=True)) # ๊ฐ ์ถ๋ ฅ์ ๊ฐ
# ๋๋ฌด ํฐ ๋ฒกํฐ๊ฐ ๋ค์ด์ค๋ ๊ฒ์ ๋ง๊ธฐ์ํด np.max(vec)์ vec์์ ๋นผ์ ๋ฐฉ์ง
numerator = np.sum(denumerator, axis=-1, keepdims=True)#๋ชจ๋ ์ถ๋ ฅ์ ๊ฐ๋ค์ ํฉ
val = denumerator / numerator
return val
[code 1.softmax์ ์ฝ๋ ๊ตฌํ]
- ์ด๋ฌํ ์ํํธ๋งฅ์ค ํจ์๋ก ๋ฒกํฐ๋ฅผ ํ๋ฅ ๋ฒกํฐ(๊ฐ ์ฑ๋ถ์ ํฉ์ด 1์ธ ๋ฒกํฐ)๋ก ๋ณํํ ์ ์๋ค.
def one_hot(val, dim):
return [np.eye(dim)[_] for _ in val]
def one_hot_encoding(vec):
vec_dim = vec.shape[1]
vec_argmax= np.argmax(vec, axis=-1)
return one_hot(vec_argmax, vec_dim)
[code 1-1.one_hot ํจ์ ๊ตฌํ]
- ํ์ต์ด ์๋ ์ถ๋ก ์์๋ one_hot ๋ฒกํฐ๋ฅผ ์ด์ฉํด ๊ฐ์ฅ ํฐ ๋ฒกํฐ๋ฅผ ์ ๋ต์ผ๋ก ์ผ์ผ๋ฉด ๋๋ฏ๋ก softmax()๋ฅผ ์์ธ ํ์ ์๋ค.(
one_hot(softmax(o)=> X, one_hot(o) => O)
ํ์ฑํ ํจ์(activation function)์ ๋ค์ธต ์ ๊ฒฝ๋ง(MLP)
- ์ ๊ฒฝ๋ง์ ์ ํ๋ชจ๋ธ๊ณผ ํ์ฑํจ์(activation function)์ ํฉ์ฑํ ํจ์
[math 2. ์ ๊ฒฝ๋ง ๋ด๋ฐ]
[img 2. ์ ๊ฒฝ๋ง ๋ด๋ฐ ๋์ํ]
- ์ ์ฌ๋ฒกํฐ๋ค์ ์ด์ฉํด ๋ง๋ ์๋ก์ด ์ ์ฌ๋ฒกํฐ๋ค,(๊ทธ๋ฆฌ๊ณ , ์ด ์๋ก ๋ง๋ ์ ์ฌ๋ฒกํฐ๋ก ๋ง๋ค ์๋ก์ด ์ ์ฌ๋ฒกํฐ๋ค)์ ๋ด๋ฐ(neuron) ๋๋ ์ด๋ผ๊ณ ํ๋ฉฐ, ์ด๋ฌํ ๊ตฌ์กฐ์ ์ธ๊ณต์ ๊ฒฝ๋ง์ ํผ์
ํธ๋ก (perceptron)์ด๋ผ๊ณ ํ๋ค.
- ๊ฐ ๋ด๋ฐ(๋ ธ๋) ๊ฐ ๊ฐ์ง๊ณ ์๋ ๊ฐ์ ํ ์(tensor)๋ผ๊ณ ํ๋ค.
- ํ์ฑํ ํจ์๋ ์ค์๊ฐ์ ๋ฐ์ ์ค์๊ฐ์ ๋๋ ค์ฃผ๋ ๋น์ ํ(nonlinear) ํจ์
- ๋น์ ํ ๊ทผ์ฌ๋ฅผ ํ๊ธฐ ์ํด ์กด์ฌ
- ์ด๋ก ์ธํด ๋ฅ๋ฌ๋์ด ์ ํ๋ชจํ๊ณผ ์ฐจ์ด๋ฅผ ๋ณด์์ผ๋ฉฐ, ์๊ทธ๋ชจ์ด๋(sigmoid), $tanh$, ๊ทธ๋ฆฌ๊ณ ์ฃผ๋ก ์ฐ์ด๊ณ ์๋ ReLU ํจ์ ๋ฑ์ด ์๋ค.
[img 3. sigmoid, tanh, ReLu ํจ์ ๊ทธ๋ํ]
- ๋ง์ฝ, ์ด๋ ๊ฒ ๊ตฌํ ์ ์ฌ ๋ฒกํฐ H์์ ๊ฐ์ค์นํ๋ ฌ $W^{(2)}$์ $b^{(2)}$๋ฅผ ํตํด ๋ค์ ํ๋ฒ ์ ํ ๋ณํํด์ ์ถ๋ ฅํ๊ฒ ๋๋ฉด ($W^{(2)}, W^{(1)}$)๋ฅผ ํจ๋ฌ๋ฏธํฐ๋ก ๊ฐ์ง 2์ธต(2-layers) ์ ๊ฒฝ๋ง์ด ๋๋ค.
[math 2-1. 2์ค ์ ๊ฒฝ๋ง]
[img 2-1.2์ค ์ ๊ฒฝ๋ง์ ๊ตฌ์กฐ]
- ์ด๋ ๊ฒ ์ ๊ฒฝ๋ง์ด ์ฌ๋ฌ์ธต ํฉ์ฑ๋ ํจ์๋ฅผ ๋ค์ธต(multi-layer) ํผ์ ํธ๋ก (MLP)๋ผ๊ณ ํ๋ค.
[math 2-2. n์ธต์ผ๋ก ์ด๋ฃจ์ด์ง ๋ค์ค์ ๊ฒฝ๋ง์ ํฉ์ฑํจ์]
- $l = 1,\dots,L$๊น์ง ์์ฐจ์ ์ธ ์ ๊ฒฝ๋ง ๊ณ์ฐ์ ์์ ํ(forward propagation)์ด๋ผ ๋ถ๋ฅธ๋ค.
[img 2-3. ๋ค์ธต ์ ๊ฒฝ๋ง ๊ตฌ์กฐ]
- ์ด๋ก ์ ์ผ๋ก 2์ธต ์ ๋์ ์ ๊ฒฝ๋ง์ผ๋ก๋ ์์์ ์ฐ์ํจ์๋ฅผ ๊ทผ์ฌ(universal approximation theorem)ํ ์ ์๋ค.
- ์ธต์ด ๊น์ ์๋ก ํ์ํ ๋ด๋ฐ(ํ
์๋ฅผ ๊ฐ์ง๊ณ ์๋ ๋
ธ๋), ํ๋ผ๋ฏธํฐ์ ์ซ์๊ฐ ๊ธฐํ๊ธ์์ ์ผ๋ก ์ค์ด๋ค์ด ์ข ๋ ํจ์จ์ ์ด๋ค.
- ์ฆ, ์ธต์ ๊น์ด ํ๋ฉด ๋์ด๋ฅผ ์๊ฒ ํด๋ ๋๋ค.
- ๋ฌผ๋ก ์ต์ ํ๋ ์ฌ์ ํ ์ด๋ ต๋ค.(CNN์์ ๊น๊ฒ ์ค๋ช )
์ญ์ ํ(backpropagation) ์๊ณ ๋ฆฌ์ฆ
- ๊ฐ ์ธต์ ์ฌ์ฉ๋ ํจ๋ฌ๋ฏธํฐ ${W^{l},b^{l}}^L_{l=1}$์ ์ญ์์ผ๋ก ํ์ตํ๋๋ฐ ์ฌ์ฉ๋๋ค.
- ํฉ์ฑ๋ฏธ๋ถ์ ์ฐ์๋ฒ์น(chain-rule) ๊ธฐ๋ฐ ์๋๋ฏธ๋ถ(auto-differentiation)์ ์ด์ฉํ์ฌ ์ญ์์ผ๋ก ๊ตฌํ๋ค.
[math 3. ํธ๋ฏธ๋ถ์ ์ด์ฉํ ์ญ์ ํ ์๊ณ ๋ฆฌ์ฆ ์์]
- ๋จผ์ ์์ธต์ ๊ทธ๋ ๋์ธํธ ๋ฒกํฐ๋ฅผ ๊ตฌํ ๋ค, ๊ทธ ๋ฒกํฐ๋ฅผ ์ด์ฉํด ๊ทธ ์๋ ๊ทธ๋ ๋์ธํธ ๋ฒกํฐ๋ฅผ ๊ตฌํ๋ค.
- ํฌ์๋ ํ๋กํ ๊ฒ์ด์ ๊ณผ ๋ฌ๋ฆฌ, ๊ฐ ๋ด๋ฐ ๋๋ ๋ ธ๋์ ํ ์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ฃ์ด์ผ ํ๋ฏ๋ก, ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ง์ด ๋จน๋๋ค.
[img 3. 2์ธต ์ ๊ฒฝ๋ง ์ด๋ ค์ด ์์ ]
- ํ๋์ : forward propagation
- ๋นจ๊ฐ์ : back propagation
ํ๋ฅ ๋ก
- ๋ฅ๋ฌ๋์ ํ๋ฅ ๋ก ๊ธฐ๋ฐ์ ๊ธฐ๊ณํ์ต ์ด๋ก ์ ๋ฐํ์ ๋๊ณ ์์ผ๋ฉฐ, ํต๊ณ์ ํด์์ ์์คํจ์ ๋ค์ ๊ธฐ๋ณธ ์๋์๋ฆฌ์ด๋ค.
- ํ๊ท ๋ถ์์ L2 ๋ ธ๋ฆ์ ์์ธก์ค์ฐจ ๋ถ์ฐ์ ์ต์ํํ๋ ๋ฐฉํฅ์ผ๋ก ํ์ตํ๋ฉฐ
- ๋ถ๋ฅ ๋ฌธ์ ์ ๊ต์ฐจ ์ํธ๋กํผ๋ ๋ชจ๋ธ ์์ธก์ ๋ถํ์ค์ฑ์ ์ต์ํํ๋ ๋ฐฉํฅ์ผ๋ก ํ์ตํ๋ค.
ํ๋ฅ ๋ถํฌ
-
ํ๋ฅ ๋ถํฌ๋, ํ๋ฅ ๋ณ์๊ฐ ํน์ ํ ๊ฐ์ ๊ฐ์ง ํ๋ฅ ์ ๋ํ๋ด๋ ํจ์๋ฅผ ์๋ฏธํ๋ค.
-
ํ๋ฅ ๋ถํฌ๋ ๋ฐ์ดํฐ๊ณต๊ฐ $(x, y)$ ์์ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๋ ๋ถํฌ์ด๋ค.
-
ํ๋ฅ ๋ณ์๋ ์ด์ฐํ(discrete)๊ณผ ์ฐ์ํ(continuous)์ผ๋ก ๊ตฌ๋ถ๋๋ค.
- ์ด์ฐํ ํ๋ฅ ๋ณ์ : ํ๋ฅ ๋ณ์๊ฐ ๊ฐ์ง ์ ์๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ชจ๋ ๊ณ ๋ คํ์ฌ ํ๋ฅ ์ ๋ํด ๋ชจ๋ธ๋ง
\(\mathbb{P}(X \in A) = \sum_{x\in A}{P(X= x)}\\ \mathbb{P} = ํ๋ฅ ๋ณ์\)
[math 4. ์ด์ฐํ ํ๋ฅ ๋ณ์]
- ์ฐ์ํ ํ๋ฅ ๋ณ์ : ๋ฐ์ดํฐ ๊ณต๊ฐ์ ์ ์๋ ํ๋ฅ ๋ณ์์ ๋ฐ๋(density) ์์์์ ์ ๋ถ์ ํตํด ๋ชจ๋ธ๋งํ๋ค.
[math 4-1. ์ฐ์ํ ํ๋ฅ ๋ณ์]
- ์ด์ฐํ ํ๋ฅ ๋ณ์ : ํ๋ฅ ๋ณ์๊ฐ ๊ฐ์ง ์ ์๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ชจ๋ ๊ณ ๋ คํ์ฌ ํ๋ฅ ์ ๋ํด ๋ชจ๋ธ๋ง
-
$P(x)$๋ ์ ๋ ฅ x์ ๋ํ ์ฃผ๋ณํ๋ฅ ๋ถํฌ๋ก y์ ๋ํ ์ ๋ณด๋ฅผ ์ฃผ์ง ์์
๊ธฐ๋๊ฐ
-
์กฐ๊ฑด๋ถ ํ๋ฅ $P(x|y)$๋ ๋ฐ์ดํฐ ๊ณต๊ฐ์์ ์ ๋ ฅ x์ ์ถ๋ ฅ y ์ฌ์ด์ ๊ด๊ณ๋ฅผ ๋ชจ๋ธ๋งํ๋ฉฐ, ์ ๋ ฅ ๋ณ์ x์ ๋ํด ์ ๋ต์ด y์ผ ํ๋ฅ ์ ์๋ฏธํจ.
-
$softmax(W\phi + b )$์ ๋ฐ์ดํฐ x์ผ๋ก๋ถํฐ ์ถ์ถ๋ ํน์งํจํด $\phi (x)$๊ณผ ๊ฐ์ค์นํ๋ ฌ W์ ํตํด ์กฐ๊ฑด๋ถํ๋ฅ $P(y|x)$์ ๊ณ์ฐ
-
๊ธฐ๋๊ฐ(expectation)์ ๋ฐ์ดํฐ๋ฅผ ๋ํํ๋ ํต๊ณ๋, ํ๋ฅ ๋ถํฌ๋ฅผ ํตํด ๋ค๋ฅธ ํต๊ณ์ ๋ฒํจ์๋ฅผ ๊ณ์ฐํ๋๋ฐ ์ฌ์ฉ
- ํ๊ท ๋ฌธ์ ์ ๊ฒฝ์ฐ ์กฐ๊ฑด๋ถ ๊ธฐ๋๊ฐ์ ์ถ์ ํ๋ฉฐ ์ด๋ ๊ฐ ํ๋ฅ ๋ถํฌ์ ๋ฐ๋ผ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌํ๋ค.
[math 5. ๊ธฐ๋๊ฐ ๊ตฌํ๊ธฐ]
- ๋ถ์ฐ, ์ฒจ๋ ๊ณต๋ถ์ฐ ๋ฑ์ ํต๊ณ๋์ ๊ณ์ฐํ๋๋ฐ ์ฌ์ฉํจ.
โ [math 5-1. ๊ธฐ๋๊ฐ์ ์ฌ์ฉ]
๋ชฌํ ์นด๋ฅผ๋ก ์ํ๋ง(Monte Carlo sampling)
- ํ๋ฅ ๋ถํฌ๋ฅผ ๋ชจ๋ฅผ ๋ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํ์ฌ ๊ธฐ๋๊ฐ์ ๊ณ์ฐํ๋ ๋ฐฉ๋ฒ.
- ์ด์ฐํ, ์ฐ์ํ์ด๋ ๊ด๊ณ์์ด ๋ค์๊ณผ ๊ฐ์ด ํํํจ.
[math 6.๋ชฌํ ์นด๋ฅผ๋ก ์ํ๋ง]
- ๋ ๋ฆฝ ์ถ์ถ๋ง ๋ณด์ฅ๋๋ค๋ฉด ๋์์ ๋ฒ์น(law of large number)์ ์ํด ์๋ ด์ฑ์ ๋ณด์ฅ
import numpy as np
#f(x) = e^(-x^2), [-1, 1]
def mc_int(fun, low, high, sample_size=100, repeat=10):
int_len = np.abs(high - low)
stat = []
for _ in range(repeat):
x = np.random.uniform(low=low, high=high, size=sample_size)
fun_x = fun(x)
int_val = int_len * np.mean(fun_x)
stat.append(int_val)
return np.mean(stat), np.std(stat)
def f_x(x):
return np.exp(-x**2)
print(mc_int(f_x, low=-1, hight=1, sample_size=10000, repeat=100))
[code 6. f(x), [-1, 1] ๋ชฌํ ์นด๋ฅผ๋ก ์ฝ๋๊ตฌํ]
ํต๊ณํ
- ํต๊ณ์ ๋ชจ๋ธ๋ง์ ์ ์ ํ ๊ฐ์ ์์์ ํ๋ฅ ๋ถํฌ๋ฅผ ์ถ์ (inference)ํ๋ ๊ฒ์ด ๋ชฉํ์ด๋ฉฐ, ์ด๋ ๊ธฐ๊ณํ์ต์ด ๊ฒฐ๊ณผ๋ฅผ ์์ธกํ๋ ๊ฒ๊ณผ ๊ฐ์ ๋ชฉํ์ด๋ค.
- ์ ํํ ๊ฐ์์ ๋ฐ์ดํฐ๋ก๋ ๋ชจ์ง๋จ์ ๋ถํฌ๋ฅผ ์ ํํ๊ฒ ์์๋ผ ์ ์์ผ๋ฏ๋ก ๊ทผ์ฌ์ ์ผ๋ก ํ๋ฅ ๋ถํฌ๋ฅผ ์ถ์ ํ์ฌ ๋ถํ์ค์ฑ์ ์ต์ํ
๋ชจ์
- ๋ฐ์ดํฐ๊ฐ ํน์ ํ๋ฅ ๋ถํฌ๋ฅผ ๋ฐ๋ฅธ๋ค๊ณ ์ ํ์ ์ผ๋ก(a priori) ๊ฐ์ ํ ํ ๊ทธ ๋ถํฌ๋ฅผ ๊ฒฐ์ ํ๋ ๋ชจ์(parameter)๋ฅผ ์ถ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ชจ์์ (parametirc) ๋ฐฉ๋ฒ๋ก ์ด๋ผ๊ณ ํจ.
- ์ด์ ๋ฐ๋๋ก ๋ฐ์ดํฐ์ ๋ฐ๋ผ ๋ชจ๋ธ์ ์ฃผ์กฐ ๋ฐ ๊ฐ์๊ฐ ์ ์ฐํ๊ฒ ๋ฐ๋๋ฉด ๋น๋ชจ์(nonparametric) ๋ฐฉ๋ฒ๋ก ์ด๋ผ ๋ถ๋ฅด๋ฉฐ ๊ธฐ๊ณํ์ต์ ๋ง์ ๋ฐฉ๋ฒ๋ก ์ด ์ด๋ฅผ ๋ฐ๋ฅด๊ธฐ๋ ํจ.
๋ฐ์ดํฐ ๋ชจ์ ์ถ์
ํ๋ฅ ๋ถํฌ ๊ฐ์
- ํ์คํ ๊ทธ๋จ์ ๋ชจ์์ ๊ด์ฐฐํ์ฌ ํ๋ฅ ๋ถํฌ๋ฅผ ๊ฐ์ ํ ์ ๋ ์๋ค.
[img 7. ์ฌ๋ฌ๊ฐ์ง ๋ชจ์์ ํ๋ฅ ๋ถํฌ]
ํ๋ฅ ๋ถํฌ๋ช | ๋ฐ์ดํฐ ๋ชจ์ |
---|---|
๋ฒ ๋ฅด๋์ด ๋ถํฌ | ๋ฐ์ดํฐ๊ฐ 2๊ฐ์ ๊ฐ(0 ๋๋ 1)๋ง ๊ฐ์ง |
์นดํ ๊ณ ๋ฆฌ ๋ถํฌ | ๋ฐ์ดํฐ๊ฐ n๊ฐ์ ์ด์ฐ์ ์ธ ๊ฐ๋ง์ ๊ฐ์ง |
๋ฒ ํ ๋ถํฌ | ๋ฐ์ดํฐ๊ฐ [0, 1] ์ฌ์ด์์ ๊ฐ์ ๊ฐ์ง |
๊ฐ๋ง ๋ถํฌ, ๋ก๊ทธ ์ ๊ท ๋ถํฌ | ๋ฐ์ดํฐ๊ฐ 0 ์ด์์ ๊ฐ์ ๊ฐ์ง |
์ ๊ท ๋ถํฌ, ๋ผํ๋ผ์ค ๋ถํฌ | ๋ฐ์ดํฐ๊ฐ $\mathbb{R}$(์ค์) ์ ์ฒด์์ ๊ฐ์ ๊ฐ์ง |
[fig 7. ํ๋ฅ ๋ถํฌ์ ์์]
- ํ์ง๋ง ์ด๋ฐ์์ผ๋ก ๊ฐ์ ํ๋ ๊ฒ๋ณด๋ค ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๋ ์๋ฆฌ๋ฅผ ๊ณ ๋ คํ ๋ค, ๊ฐ ๋ถํฌ๋ง๋ค ๋ชจ์๋ฅผ ์ถ์ ํ ๊ฐ ํ๋ฅ ๋ถํฌ์ ๊ฒ์ ๋ฐฉ๋ฒ์ผ๋ก ๊ฒ์ ํ๋ ๋ฐฉ์์ด ์์น์ด๋ค.
๋ฐ์ดํฐ ๋ชจ์ ์ถ์
-
๋ฐ์ดํฐ ํ๋ฅ ๋ถํฌ๋ฅผ ๊ฐ์ ํ ์ ๋ฐ์ดํฐ ๋ชจ์๋ฅผ ์ถ์ ํ๋ค.
-
ํ๊ท $\mu$์ ๋ถ์ฐ $\sigma^2$์ผ๋ก ์ด๋ฅผ ์ถ์ ํ๋ ํต๊ณ๋(statistic)์ ๋ค์๊ณผ ๊ฐ๋ค.
\(\stackrel{ํ๋ณธ ํ๊ท }{\bar{X} = \frac{1}{N}\sum^N_{i=1}X_i},\ \ \ \stackrel{ํ๋ณธ ๋ถ์ฐ}{S^2 = \frac{1}{N-1}\sum^N_{i=1}(X_i-\bar{X})^2}\\ \mathbb{E}[\bar{X}] = \mu,\ \ \ \mathbb{E}[S^2] = \sigma^2,\ ํ๋ณธ ํ์ค ํธ์ฐจ = \sqrt{ํ๋ณธ๋ถ์ฐ} = \sqrt{S^2} = S\)
[math 7. ํต๊ณ๋ ๊ณ์ฐ]- ํ๋ณธ๋ถ์ฐ์ ๊ตฌํ ๋ N์ด ์๋ N-1๋ก ๋๋๋ ์ด์ ๋ ๋ถํธ(unbiased) ์ถ์ ๋์ ๊ตฌํ๊ธฐ ์ํด์๋ผ๊ณ ํ๋ฉฐ, ๊ณ ๊ธ ํต๊ณํ ๋ด์ฉ์ด๋ฏ๋ก ์ผ๋จ ๋์ด๊ฐ๊ฒ ๋ค.
-
ํต๊ณ๋์ ํ๋ฅ ๋ถํฌ๋ฅผ ํ์ง๋ถํฌ(Sampling distribution)์ด๋ผ ๋ถ๋ฅด๋ฉฐ, ํนํ ํ๋ณธํ๊ท ์ ํ์ง๋ถํฌ๋ N์ด ์ปค์ง์๋ก ์ ๊ท๋ถํฌ $\mathcal{N}(\mu,\sigma^2/N )$๋ฅผ ๋ฐ๋ฆ ๋๋ค.
- ์ด๋ฅผ ์ค์ฌ ๊ทนํ ์ ๋ฆฌ(Central Limit Theorem)์ด๋ผ ๋ถ๋ฅด๋ฉฐ, ๋ชจ์ง๋จ์ ๋ถํฌ๊ฐ ์ ๊ท๋ถํฌ๋ฅผ ๋ฐ๋ฅด์ง ์์๋ ์ฑ๋ฆฝํฉ๋๋ค.
์ต๋ ๊ฐ๋ฅ๋(maximum likelihood estimation, MLE) ์ถ์
-
ํต๊ณ๋์ ์ธก์ ํ๋ ์ ์ ํ ๋ฐฉ๋ฒ์ ํ๋ฅ ๋ถํฌ๋ง๋ค ๋ค๋ฅด๋ค.
-
์ด๋ก ์ ์ผ๋ก ๊ฐ์ฅ ๊ฐ๋ฅ์ฑ์ด ๋์ ๋ชจ์ ์ธก์ ๋ฐฉ๋ฒ์ ์ต๋ ๊ฐ๋ฅ๋ ์ถ์ ๋ฒ(maximum likelihood estimation, MLE)์ ๋๋ค.
\(\hat{\theta}_{MLE} = argmax\ L(\theta;x) = argmax\ P(x|\theta)\)
[math 8. ์ต๋๊ฐ๋ฅ๋ ์ถ์ ๋ฒ] -
๋ฐ์ดํฐ ์งํฉ X๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ์ถ์ถ๋์์ ๊ฒฝ์ฐ ๋ก๊ทธ๊ฐ๋ฅ๋๋ฅผ ์ต์ ํํฉ๋๋ค.
- ์ด๋ ๋ชจ์ $\theta$๋ ๊ฐ๋ฅ๋๋ฅผ ์ต์ ํํ๋ MLE๊ฐ ๋ฉ๋๋ค.
โ [math 8. ๋ ๋ฆฝ ์ถ์ถ ์์ ์ถ์ ๋ฒ ์ต๋๊ฐ๋ฅ๋ ์ถ์ ๋ฒ]
- ๋ฐ์ดํฐ์ ์ซ์๊ฐ ์์ต๋จ์๊ฐ ๋๋ฉด ์ปดํจํฐ์ ์ฐ์ฐ์ผ๋ก ๊ณ์ฐ ๋ถ๊ฐ๋ฅํ๋ฏ๋ก, ๋ฐ์ดํฐ๊ฐ ๋
๋ฆฝ์ผ ์, ๋ก๊ทธ ๊ฐ๋ฅ๋์ ๋ง์
์ผ๋ก ๋ฐ๊พธ๋ฉด ์ปดํจํฐ๋ก ์ฐ์ฐ์ด ๊ฐ๋ฅํด์ง.
- ๊ฒฝ์ฌํ๊ฐ๋ฒ์ผ๋ก ๊ฐ๋ฅ๋ ์ต์ ํ์, ๋ฏธ๋ถ์ฐ์ฐ์ ์ฌ์ฉํ๋ฉฐ, ์์ ๋ก๊ทธ๊ฐ๋ฅ๋(negative log-likelihood)๋ฅผ ์ฌ์ฉํ๋ฉด ์ฐ์ฐ๋์ด O(n^2^)์์ O(n)์ผ๋ก ์ค์ฌ์ค๋ค.
- ๋ถํธ ์ถ์ ๋์ ๋ณด์ฅํ์ง ์์.
์ต๋ ๊ฐ๋ฅ๋ ์ถ์ ๋ฒ ์์
์ ๊ท๋ถํฌ
\[\hat{\theta}_{MLE}= argmax\ L(\theta; x) = argmax\ P(x|\theta)\\ log\ L(\theta;X) = \sum^n_{i=1}logP(x_i|\theta) = \sum^n_{i=1}log\frac{1}{\sqrt{2\pi\sigma^2}}e^{-\frac{{|x_i-\mu|^2}}{2\mu^2}} = -\frac{n}{2}log2\pi\sigma^2 - \sum^n_{i=1}\frac{{|x_i-\mu|}^2}{2\sigma^2}\][math 8-1. ๋ชจ์ ์ถ์ ์ ์ํ ๋ก๊ทธ ๊ฐ๋ฅ๋ ๊ณ์ฐ]
\(0 = \frac{\partial logL}{\partial\mu}= -\sum^n_{i=1}\frac{x_i - \mu}{\sigma^2} \Rightarrow \hat{\mu}_{MLE}=\frac{1}{n}\sum^N_{i=1}x_i\\
0 = \frac{\partial logL}{\partial\sigma}= -\frac{n}{\sigma}+\frac{1}{\sigma^3}\sum^n_{i=1}|{x_i - \mu}|^2 \Rightarrow \hat{\sigma}_{MLE}^2=\frac{1}{n}\sum^N_{i=1}(x_i -\mu)^2\\\)
[math 8-2. ๋ฏธ๋ถ์ ํตํ ๋ชจ์ ์ถ์ ]
์นดํ ๊ณ ๋ฆฌ ๋ถํฌ
\[\hat{\theta}_{MLE}= argmax\ P(x_i|\theta) = argmax\ log(\prod^n_{i=1}\prod^d_{k=1}p_k^{x_i,k})\\ log(\prod^n_{i=1}\prod^d_{k=1}p_k^{x_i,k})=\sum^d_{k=1}(\sum^n_{i=1}x_{i,k})logp_k = \sum^d_{k=1}n_klogp_k\ with\ \sum^d_{k=1}p_k=1\\ \Rightarrow \mathcal{L}(p_1,\dots,p_k,\lambda) = \sum^d_{k=1}n_k logp_k + \lambda(1-\sum_kp_k) (๋ผ๊ทธ๋์ฃผ\ ์น์๋ฒ)\\ 0 = \frac{\partial \mathcal{L}}{\partial p_k} = \frac{n_k}{p_k} - \lambda,\ \ \ 0=\frac{\partial \mathcal{L}}{\partial \lambda} = 1 - \sum^d_{k=1}p_k \rightarrow\ p_k =\frac{n_k}{\sum^d_{k=1}n_k}\]**[math 8-3. ๋ชจ์ ์ถ์ ] **
๋ฅ ๋ฌ๋์์ ์ต๋๊ฐ๋ฅ๋ ์ถ์ ๋ฒ
-
๋ฅ๋ฌ๋ ๋ชจ๋ธ์ ๊ฐ์ค์น๋ฅผ $\theta=(W^{(1)},\dots,W^{(L)})$๋ผ ํ๊ธฐํ์ ๋ ๋ถ๋ฅ ๋ฌธ์ ์์ ์ํํธ๋งฅ์ค ๋ฒกํฐ๋ ์นดํ ๊ณ ๋ฆฌ ๋ถํฌ์ ๋ชจ์ $(p_1,\dots,p_k)$๋ฅผ ๋ชจ๋ธ๋งํฉ๋๋ค.
-
์ํซ๋ฒกํฐ๋ก ํํํ ์ ๋ต๋ ์ด๋ธ $y= (y_1, \dots,y_k)$์ ๊ด์ฐฐ๋ฐ์ดํฐ๋ก ์ด์ฉํด ํ๋ฅ ๋ถํฌ์ธ ์ํํธ๋งฅ์ค ๋ฒกํฐ์ ๋ก๊ทธ๊ฐ๋ฅ๋๋ฅผ ์ต์ ํํ ์ ์์ต๋๋ค.
\(\hat{\theta}_{MLE} = argmax \frac{1}{n}\sum^n_{i=1}\sum^K_{k=1}y_{i,k}log(MLP_\theta(x_i)_k)\)
[math 9. ๋ถ๋ฅ ๋ฌธ์ ์ต๋๊ฐ๋ฅ๋ ์ถ์ ]
ํ๋ฅ ๋ถํฌ์ ๊ฑฐ๋ฆฌ ๊ตฌํ๊ธฐ - ์ฟจ๋ฐฑ-๋ผ์ด๋ธ๋ฌ ๋ฐ์ฐ
- ๊ธฐ๊ณํ์ต์์ ์ฌ์ฉ๋๋ ํจ์๋ค์ ๋ชจ๋ธ์ด ํ์ตํ๋ ํ๋ฅ ๋ถํฌ์ ๋ฐ์ดํฐ์์ ๊ด์ฐฐ๋๋ ํ๋ฅ ๋ถํฌ์ ๊ฑฐ๋ฆฌ๋ฅผ ํตํด ์ ๋๋ฉ๋๋ค.
- ๋ ๊ฐ์ ํ๋ฅ ๋ถํฌ P(x), Q(x)๊ฐ ์์ ๊ฒฝ์ฐ ๋ ํ๋ฅ ๋ถํฌ ์ฌ์ด์ ๊ฑฐ๋ฆฌ(distance)๋ฅผ ๊ณ์ฐํ ๋ ์ฌ๋ฌ ํจ์๋ฅผ ์ด์ฉ
- ์ด๋ณ๋ ๊ฑฐ๋ฆฌ (Total Variation Distance, TV)
- ์ฟจ๋ฐฑ-๋ผ์ด๋ธ๋ฌ ๋ฐ์ฐ (Kullback-Leibler Divergence, KL)
- ๋ฐ์ํ์ธ ๊ฑฐ๋ฆฌ (Wasserstein Distance)
- ์ด ์ค ์ฟจ๋ฐฑ-๋ผ์ด๋ธ๋ฌ ๋ฐ์ฐ(KL Divergence)์ ๋ค์๊ณผ ๊ฐ์ด ์ ์.
\(\mathbb{KL}(P\|Q) = -\mathbb{E}_{x\sim P(x)}[logQ(x)] + \mathbb{E}_{x\sim P(x)}[logP(x)]\\ -\mathbb{E}_{x\sim P(x)}[logQ(x)] = ํฌ๋ก์ค\ ์ํธ๋กํผ,\ \mathbb{E}_{x\sim P(x)}[logP(x)] = ์ํธ๋กํผ\)
[math 10. ์ฟจ๋ฐฑ-๋ผ์ด๋ธ๋ฌ ๋ฐ์ฐ ๊ตฌํ๊ธฐ]
- ๋ถ๋ฅ ๋ฌธ์ ์์ ์ ๋ต๋ ์ด๋ธ์ P, ๋ชจ๋ธ ์์ธก์ Q๋ผ ๋๋ฉด ์ต๋๊ฐ๋ฅ๋ ์ถ์ ๋ฒ์ ์ฟจ๋ฐฑ-๋ผ์ด๋ธ๋ฌ ๋ฐ์ฐ์ ์ต์ํ ํ๋ ๊ฒ๊ณผ ๊ฐ์.
๋ฒ ์ด์ฆ ํต๊ณํ
- ๋ฒ ์ด์ฆ ํต๊ณํ์ด๋, ๋ชจ์ ์ถ์ ์ ์ฌ์ฉ๋๋ ๋ฒ ์ด์ฆ ์ ๋ฆฌ์ ๋ํ ๋ด์ฉ, ๋ฐ์ดํฐ ์ถ๊ฐ์ ๋ฐ์ดํฐ ์ ๋ฐ์ดํธ ๋ฐฉ๋ฒ์ ๋ํ ์ด๋ก
- ๋ฒ ์ด์ฆ ์ ๋ฆฌ๋, ์กฐ๊ฑด๋ถํ๋ฅ ์ ์ด์ฉํด ์ ๋ณด๋ฅผ ๊ฐฑ์ ํ๋ ๋ฐฉ๋ฒ์ ์๋ ค์ค, ์์ธก ๋ชจํ์ ๋ฐฉ๋ฒ๋ก
์กฐ๊ฑด๋ถ ํ๋ฅ
- ์กฐ๊ฑด๋ถ ํ๋ฅ $P(A|B)$๋ ์ฌ๊ฑด B๊ฐ ์ผ์ด๋ ์ํฉ์์ ์ฌ๊ฑด A๊ฐ ๋ฐ์ํ ํ๋ฅ
- ์ด๋ฅผ ํตํด $P(A|B)$ ๋ํ ๊ตฌํ ์ ์๋ค.
[math 11. ์กฐ๊ฑด๋ถํ๋ฅ ์ ๋ํ ์]
\(P(\theta\|\mathcal{D}) = P(\theta)\frac{P(\mathcal{D}\|\theta)}{P(\mathcal{D})}\\
P(\theta\|\mathcal{D}) : ์ฌํํ๋ฅ (posterior),\ P(\theta):์ฌ์ ํ๋ฅ (prior), \ P(\mathcal{D}|\theta): ๊ฐ๋ฅ๋(likelihood),\ P(\mathcal{D}):Evidence\)
[math 11-1. ๋ฒ ์ด์ฆ ์ ๋ฆฌ ์ฉ์ด ์ ๋ฆฌ]
- ์์๋ฅผ ๋ค์ด๋ณด์๋ฉด ์ฝ๋ก๋ ๋ฐ๋ณ๋ฅ ์ด 10%(์ฌ์ ํ๋ฅ $P(\theta)$:0.1), ์ค์ ๋ก ๊ฑธ๋ ค์ ํ์ง๋ ํ๋ฅ 99%, ์๊ฑธ๋ ธ๋๋ฐ ์ค์ง๋ ํ๋ฅ 1% (๊ฐ๋ฅ๋, $P(\mathcal{D}|\theta)$: 0.99, 0.01 )๋ผ ํ ๋ ์ง๋ณ์ ๊ฑธ๋ฆฐ ์ฌ๋์ ๊ฒ์ง๊ฒฐ๊ณผ๊ฐ ๋์์ ๋ ์ ๋ง๋ก ์ฝ๋ก๋์ ๊ฐ์ผ๋์์ ํ๋ฅ ?
[math 11-2. ์ฌํํ๋ฅ ๊ณ์ฐ]
- $\theta : ์ฝ๋ก๋\ ๋ฐ๋ณ์ฌ๊ฑด์ผ๋ก\ ์ ์(๊ด์ฐฐ ๋ถ๊ฐ),\ \mathcal{D}: ํ ์คํธ\ ๊ฒฐ๊ณผ๋ก\ ์ ์(๊ด์ฐฐ ๊ฐ๋ฅ), \neg\theta : ~๊ฐ\ ์๋\ ํ๋ฅ $
- ์คํ์จ(False alarm)์ด ์ค๋ฅด๋ฉด ํ ์คํธ์ ์ ๋ฐ๋(Precision)๊ฐ ๋จ์ด์ง๋ค. (0.1๋ก 10๋ฐฐ ์ค๋ฅผ์ 0.524๊น์ง ๋จ์ด์ง)
[img 11. ์กฐ๊ฑด๋ถ ํ๋ฅ ์ ์๊ฐํ]
๋ฒ ์ด์ฆ ์ ๋ฆฌ๋ฅผ ํตํ ์ ๋ณด์ ๊ฐฑ์
- ๋ฒ ์ด์ฆ ์ ๋ฆฌ๋ฅผ ํตํด ์๋ก์ด ๋ฐ์ดํฐ๊ฐ ๋ค์ด์์ ๋ ์์ ๊ณ์ฐํ ์ฌํํ๋ฅ ์ ์ฌ์ ํ๋ฅ ๋ก ์ฌ์ฉํ์ฌ ๊ฐฑ์ ๋ ์ฌํํ๋ฅ ์ ๊ณ์ฐํ ์ ์์.
[math 12. ๊ฐฑ์ ๋ ์ฌํํ๋ฅ ๊ตฌํ๊ธฐ]
\(new\ P(\theta\|\mathcal{D}) = 0.1 \times \frac {0.99}{0.189} \approx 0.524,\ P(\theta\|\mathcal{D}) = 0.99,\ P(\theta\|\neg\mathcal{D}) = 0.1 \\
P(\mathcal{D}^*)=0.99\times0.524+0.1\times0.476 \approx0.566\\
๊ฐฑ์ ๋\ ์ฌํํ๋ฅ \ P(\theta\|\mathcal{D}^*) = 0.524 \times\frac{0.99}{0.566}\approx0.917\)
[math 12-1. ๊ฐฑ์ ๋ ์ฌํํ๋ฅ ๊ณ์ฐ]
- ์ฝ๋ก๋ ํ์ ์ ๋ฐ์ ์ฌ๋์ด ์ค์ง์จ์ด 10%์ผ์ ๋๋ฒ์งธ ๊ฒ์ง์ด ์์ฑ์ผ ์์๋ ํ์ง์ผ ํ๋ฅ ?
์กฐ๊ฑด๋ถํ๋ฅ ๊ณผ ์ธ๊ณผ๊ด๊ณ์ ์ฐจ์ด
-
๋ฐ์ดํฐ๊ฐ ๋ง์๋ ์กฐ๊ฑด๋ถ ํ๋ฅ ์ ์ธ๊ณผ๊ด๊ณ(causality)์ ๋ค๋ฅด๋ค
- ์ธ๊ณผ๊ด๊ณ๋ ๋ฐ์ดํฐ ๋ถํฌ์ ๋ณํ์ ๊ฐ๊ฑดํ ์์ธก ๋ชจํ์ ๋ง๋ค ๋ ๊ณ ๋ คํจ.
- ์ธ๊ณผ ๊ด๊ณ๋ฅผ ๊ณ ๋ คํ์ง ์์ผ๋ฉด ์๋๋ฆฌ์ค๋ ๋ฐ๋ ๋ฐ์ดํฐ์ ๋ฐ๋ผ ์ ํ๋๊ฐ ํฌ๊ฒ ๋จ์ด์ง
- ์ธ๊ณผ๊ด๊ณ๋ ์ค์ฒฉ์์ธ(confounding factor)์ ํจ๊ณผ๋ฅผ ์ ๊ฑฐํ๊ณ ์์ธ์ ํด๋นํ๋ ๋ณ์๋ง์ ์ธ๊ณผ๊ด๊ณ๋ฅผ ๊ณ์ฐ ํด์ผํจ.
- ํค๊ฐ ํด์๋ก ์ง๋ฅ์ง์๊ฐ ๋๋ค? => ์ฐ๋ น์ด ํด์๋ก ๋์ด์ ์ง๋ฅ์ด ๋์์ ์๊ธฐ๋ ์ธ๊ณผ๊ด๊ณ
- ์ฌ๊ธฐ์ ์ค์ฒฉ์์ธ์ ์ฐ๋ น
simpsonโs paradox์ ์ํ ์ธ๊ณผ๊ด๊ณ ์ค๋ฅ
[img 13. ์ ์ฅ ๊ฒฐ์ ์น๋ฃ๋ฒ์ ๋ฐ๋ฅธ ์น๋ฃ์จ]
- ์ค์ ๋ก๋ ์์ ๊ฒฐ์ ๋, ํฐ ๊ฒฐ์ ๊ด๊ณ์์ด ์ธ๊ณผ์์ ์ด ์น๋ฃ์จ์ด ๋์ง๋ง, ์ฝ๋ฌผ ์น๋ฃ๋ฒ์ด ์ฑ๊ณต์จ์ด ๋์ ์์ ๊ฒฐ์ ์น๋ฃ์ ๋ง์ด ์ฌ์ฉ๋๋ฏ๋ก ์ ์ฒด ์น๋ฃ์จ์ ๋์๋ณด์ธ๋ค.
- do(T=a)๋ผ๋ ์กฐ์ ํจ๊ณผ๋ฅผ ํตํด Z์ ๊ฐ์ ์ ์ ๊ฑฐํด์ผํ๋ค.
[math 13. ์กฐ์ ํจ๊ณผ๋ฅผ ํตํ Z(์ค์ฒฉ์์ธ) ๊ฐ์ ์ ๊ฑฐ]
CNN
CNN(Convolution Neural Network)์ ์ดํด
- ๊ธฐ์กด์ ๋ชจ๋ธ๋ค์ ๋ด๋ฐ์ด ๋ชจ๋ ์ฐ๊ฒฐ๋ (fully connected) ๊ตฌ์กฐ์์ง๋ง CNN์ ๋์ผํ ๊ณ ์ ๋ ๊ฐ์ค์น ๊ฐ์ ๊ฐ์ง ์ปค๋(kernel)์ ์ ๋ ฅ๋ฒกํฐ ์์์ ์์ง์ฌ๊ฐ๋ฉด์ ์ ํ๋ชจ๋ธ๊ณผ ํฉ์ฑํจ์๊ฐ ์ ์ฉ๋๋ ๊ตฌ์กฐ์.
- ์ ํ์ ๋ณํ์ ํ ์ข ๋ฅ์์ ๊ฐ์,
- ์ปค๋ ์ฌ์ด์ฆ๋ ๊ณ ์ ๋๋ฏ๋ก parameter ์ฌ์ด์ฆ๊ฐ ์๋ค.
[math 14. Convolution ์ฐ์ฐ]
[img 14. Convolution ์ฐ์ฐ ๊ทธ๋ฆผ]
- CNN์ ์ํ์ ์๋ฏธ๋ ์ ํธ(signal)๋ฅผ ์ปค๋์ ์ด์ฉํด ๊ตญ์์ ์ผ๋ก ์ฆํญ ๋๋ ๊ฐ์์์ผ ์ ๋ณด๋ฅผ ์ถ์ถ ๋๋ ํํฐ๋งํ๋ ๊ฒ์ด๋ฉฐ, ์ด๋ ํฌ๊ฒ 2๊ฐ์ง ์ ์ ํ ์ ์๋ค.
- ์ ์์ญ์ด ์ฐ์์ (continuous)์ธ ๊ณต๊ฐ : ์ ๋ถ์ผ๋ก ํํ
- ์ ์์ญ์ด ์ด์(discrete) ๊ณต๊ฐ : ๊ธ์๋ก ํํ
[math 14-1. Convolution ์ฐ์ฐ ์์]
- z ๋๋ a๋ง ์์ง์ด๋ ํํ๋ก ์ฐ์ฐ
- ์ฌ์ค x-z, i-a๊ฐ์๋๋ผ x+z, i+a ์ด๋ฉฐ cross-correlation ์ด๋ค.
- ์ ์ฒด ๊ณต๊ฐ์์๋ +,-๊ฐ ์ฐจ์ด๊ฐ ํฌ์ง์์ผ๋ฏ๋ก convolution์ด๋ผ ๋ถ๋ฌ์์
Convolution ์ฐ์ฐ ๊ทธ๋ํฝ์ ์ดํด |
---|
![]() |
![]() |
[fig 14-1. Convolution ์ฐ์ฐ ๊ทธ๋ํฝ์ ์ดํด]
- ์ปค๋์ ์ ์์ญ ๋ด์์ ์์ง์ฌ๋ ๋ณํ์ง ์๊ณ (translation invariant) ์ฃผ์ด์ง ์ ํธ์ ๊ตญ์์ (local)๋ก ์ ์ฉ.
[math 14-2. Convolution ์ฌ๋ฌ ์ฐจ์ ์ฐ์ฐ]
- 1์ฐจ์ ๋ฟ๋ง ์๋๋ผ ๋ค์ํ ์ฐจ์์์ ๊ณ์ฐ ๊ฐ๋ฅ
- 1์ฐจ์(text), 2์ฐจ์(ํ๋ฐฑ), 3์ฐจ์(์ปฌ๋ฌ)๋ณ๋ก ์ ์ฉ ๊ฐ๋ฅ
- ์์ fํญ์ ๋ฐ๋์ง ์๋๋ค.
๋ค์ฐจ์ CNN(Convolution Neural Network)์ ์ดํด
[img 14-2. 2์ฐจ์ Convolution ์ฐ์ฐ ๊ทธ๋ํฝ์ ์ดํด-1]
[img 14-3. 2์ฐจ์ Convolution ์ฐ์ฐ ๊ทธ๋ํฝ์ ์ดํด-2]
\(O_H=H-K_H+1\\
O_W=W-K_w+1\)
[math 14-3. Convolution ์ถ๋ ฅ ํฌ๊ธฐ ๊ณ์ฐ]
- ์๋ฅผ ๋ค์ด 28x28 ์ ๋ ฅ์ 3x3 ์ปค๋๋ก ์ฐ์ฐ์ 26x26์ด ๋๋ค.
[img 14-4. 3์ฐจ์ Convolution ์ฐ์ฐ ๊ทธ๋ํฝ์ ์ดํด]
- 3์ฐจ์์ ๊ฒฝ์ฐ 2์ฐจ์ Convolution์ 3๋ฒ ์ ์ฉํ๋ ๊ฒ์ดs๋ค.
- ์ปค๋์ ๊ฐฏ์๋ ๋์ด๋จ
- 3์ฐจ์ ๋ถํฐ๋ ์ ๋ ฅ์ ํ ์๋ผ๊ณ ๋งํ๋ค.
CNN์ ์ญ์ ํ
- ์ปค๋์ด ๋ชจ๋ ์ ๋ ฅ๋ฐ์ดํฐ์ ๊ณตํต์ผ๋ก ์ ์ฉ๋๋ฏ๋ก ์ญ์ ํ ๊ณ์ฐ์ convolution ์ฐ์ฐ์ ํจ
[math 14-4. Convolution ์ฐ์ฐ ์ฐ์์ ์ญ์ ํ]
- Discrete ๊ตฌ์กฐ์๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฑ๋ฆฝํ๋ค.
[math 14-5. Convolution ์ฐ์ฐ]
RNN
์ํ์ค(sequence) ๋ฐ์ดํฐ
- ์๋ฆฌ, ๋ฌธ์์ด, ์ฃผ๊ฐ ์ถ์ด ๋ฑ, ์์ฐจ์ ์ผ๋ก ๋ค์ด์ค๋ ๋ฐ์ดํฐ
- ์๊ณ์ด(time-series) ๋ฐ์ดํฐ๋ ์๊ฐ ์์์ ๋ฐ๋ผ ๋์ด๋ ๋ฐ์ดํฐ๋ก, ์ํ์ค ๋ฐ์ดํฐ์ ์ํจ.
- ๋
๋ฆฝ ๋๋ฑ ๋ถํฌ ($i.i.d$)๊ฐ์ ์ ์๋ฐฐํ๊ธฐ ๋๋ฌธ์ ์์๋ฅผ ๋ฐ๊พธ๊ฑฐ๋ ๊ณผ๊ฑฐ ์ ๋ณด์ด ๋ณํ๋๋ฉด ๋ฐ์ดํฐ์ ํ๋ฅ ๋ถํฌ๋ ๋ฐ๋.
- ex) ๊ฐ๊ฐ ์ฌ๋์ ๋ฌผ์๋ค. $\leftrightarrow$ ์ฌ๋์ด ๊ฐ๋ฅผ ๋ฌผ์๋ค. $\rightarrow$ ์์น๋ฅผ ๋ฐ๊พผ๊ฒ ๋ง์ผ๋ก, ๋ฐ์ดํฐ์ ํ๋ฅ , ์๋ฏธ๊ฐ ๋ฌ๋ผ์ง.
sequence data handling
- ์ด์ ์ํ์ค์ ์ ๋ณด๋ก ์์ผ๋ก์ ๋ฐ์ดํฐ์ ํ๋ฅ ๋ถํฌ๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํด ์กฐ๊ฑด๋ถํ๋ฅ ๊ฒฐํฉ๋ฒ์น ์ด์ฉ
[math. ๋ฒ ์ด์ฆ ๋ฒ์น์ ์ํ P(X~s~) ์ถ๋ก ]
- ๊ณผ๊ฑฐ ์ ๋ณด๋ฅผ ์ฌ์ฉํ์ง๋ง 0๋ถํฐ t-1๊น์ง ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ํ์ํ๊ฑด ์๋, ์คํ๋ ค ์ง๋์น ๊ณผ๊ฑฐ ์ ๋ณด๋ ์ ์ธ
- ์ํ์ค ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํด์ ๊ธธ์ด๊ฐ ๊ฐ๋ณ์ ์ธ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ์ ์์ด์ผ ํ๋ค.
- ์๋ฅผ ๋ค์ด, ์ํ์ค ๋ฐ์ดํฐ $X_t$ ์์ธก ์ ์ ๋ถ๊ฐ ์๋, $X_{t-1}\sim X_{t-\tau}$๊ฐ ๋งํผ๋ง ์ฌ์ฉํ๋ ๋ชจ๋ธ์ AR($\tau$), ์ฆ ์๊ธฐ ํ๊ท ๋ชจ๋ธ(Autoregressive Model)์ด๋ผ๊ณ ๋ถ๋ฆ.
-
์์ ์๊ธฐ ํ๊ท ๋ชจ๋ธ์ ๊ฒฝ์ฐ $\tau$๋ฅผ ํ๋ผ๋ฉํฐ๋ก ํ๋๋ฐ ์ด ๊ฐ์ ์ง์ํ๊ธฐ ํ๋ค๊ฑฐ๋ $\tau$ ์ด์์ ๊ณผ๊ฑฐ ์ ๋ณด๊ฐ ํ์ํ ์ง๋ ๋ชจ๋ฅธ๋ค.
- ์ด๋ฅผ ๋ณด์ํ๊ธฐ ์ํ ๋ชจ๋ธ์ด ์ ์ฌ ์๊ธฐ ํ๊ท ๋ชจ๋ธ(Latent autoregressive Model, ์ ์ฌ AR ๋ชจ๋ธ)์ด๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ RNN์ ๊ธฐ๋ณธ ๋ชจ๋ธ์ด๋ค.
[math. ์ ์ฌ๋ณ์ H~t~๋ฅผ ์ ๊ฒฝ๋ง์ ํตํด ๋ฐ๋ณต ์ฌ์ฉํด ์ํ์ค ๋ฐ์ดํฐ์ ํจํด์ ํ์ตํ๋ ๊ฒ์ด RNN]
RNN์ ์ดํด์ BPTT
[img. ๊ธฐ๋ณธ RNN ๋ชจํ, ์์ ํ์ ์ญ์ ํ ํ์ดํ ํฌํจ]
- ๊ธฐ๋ณธ์ ์ธ RNN ๋ชจํ์ Multi Layer Perceptron๊ณผ ์ ์ฌํ๋ค.
- ์ด์ ์์์ ์ ์ฌ๋ณ์์ ํ์ฌ์ ์ ๋ ฅ์ ํ์ฉํ์ฌ ๋ชจ๋ธ๋ง
[math. ์ ์ฌ๋ณ์ H~t~์ ์์ฑ์์ ์ด์ ์ ์ฌ๋ณ์์ธ H~t-1~ ํ์ฉ]
- RNN์ ์ญ์ ํ๋ ์ ์ฌ๋ณ์์ ์ฐ๊ฒฐ ๊ทธ๋ํ์ ๋ฐ๋ผ ์์ฐจ์ ์ผ๋ก ๊ณ์ฐ๋๋ฉฐ ์ด๋ฅผ Backpropagtion Through Time(BPTT)๋ผ๊ณ ํ๋ค.
\(L(x,y,w_h,w_o)=\sum^T_{t=1}l(y_t,o_t)\\
\partial_{w_h}L(x,y,w_h,w_o)=\sum^T_{t=1}\partial_{w_h}l(y_t,o_t)=\sum^T_{t=1}\partial_{o_t}l(y_t,o_t)\part_{h_t}g(h_t,w_h)[\part_{w_h}h_t],\\
\part_{w_h}h_t=\part_{w_h}f(x_t,h_{t-1},w_h)+\sum^{t-1}_{i=1}\left(\prod^t_{j=t+1}\part_{h_{j-1}}f(x_j,h_{j-1},w_h)\right)\part_{w_h}f(x_i,h_{i-1},w_h)\\
while\ h_t=f(x_t,h_{t-1},w_h)\ and\ o_t =g(h_t,w_o).\)
[math. BPTT ์ญ์ ํ ๊ณ์ฐ ๊ณผ์ ]
- RNN์ ๊ฐ์ค์นํ๋ ฌ์ ๋ฏธ๋ถ์ ๊ณ์ฐํด๋ณด๋ฉด ๋ฏธ๋ถ์ ๊ณฑ์ผ๋ก ์ด๋ฃจ์ด์ง ํญ์ด ๊ณ์ฐ๋จ.
- ์ด ๋ฏธ๋ถ์ ๊ณฑ์ ์ํ์ค์ ๊ธธ์ด๊ฐ ๊ธธ์ด์ง ์๋ก ๊ฐ์ด ๋ถ์์ ํด์ง๋ค.(๋ฌดํ๋๋ก ์๋ ด ๋๋ 0์ผ๋ก, ๊ฐ์ด ํฌ๊ฒ ๋ฐ๋ ๋ฑ)
- ์ด๋ฅผ ๋ง๊ธฐ ์ํด ์ ์ ํ ๊ธธ์ด ์์ ์์ ๋์ด ์ค๋ค.(truncated BPTT ๊ธฐ์ )
[img. LSTM๊ณผ GPU ๊ทธ๋ฆผ]
- ์ต๊ทผ์๋ ๊ธธ์ด๊ฐ ๊ธด ์ํ์ค๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ๋ค๋ฅธ RNN unit์ ์ฌ์ฉํจ.
_articles/AI/MATH/AI ์ํ ๊ธฐ๋ณธ.md