| ์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
|---|---|---|---|---|---|---|
| 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 | 31 |
- SQLDDL
- ๋ถ๊ฝ๋ฐ์ดํฐ์
- ์ปจํ ์ด๋๊ฐ์ฒด
- ๋ฐฑ์ค
- DROPTABLE
- ๋ฌด๊ฒฐ์ฑ
- CREATETABLE
- Key ์ข ๋ฅ
- latent factor model
- sklearn
- Python
- RENAMETABLE
- ํด๋ฆฐ์ฝ๋
- knn_classify
- ๋ฌด๊ฒฐ์ฑ์ ์ง๋ฉ์ปค๋์ฆ
- ํ
- ํ์ด์ฌ
- ์๊ณ ๋ฆฌ์ฆ
- ALTERTABLE
- latent factor
- ๋ฌธ์์ด
- Hyperlink Graphs
- TDD
- ์ธ๋๋ณ๊ฐ๋น์ง์ปฌ๋ ํฐ
- SQL
- ํค ์ข ๋ฅ
- ๋ฌด๊ฒฐ์ฑ์ ์ง
- ์ฃผ์ฑ๋ถ ์ฐพ๊ธฐ
- ์ฌ์ดํท๋ฐ
- ์ ์ฌ์์๋ชจ๋ธ
- Today
- Total
DonHurry
step15. ๋ณต์กํ ๊ณ์ฐ ๊ทธ๋ํ(์ด๋ก ํธ) ๋ณธ๋ฌธ
๐ข ๋ณธ ํฌ์คํ ์ ๋ฐ๋ฐ๋ฅ๋ถํฐ ์์ํ๋ ๋ฅ๋ฌ๋3์ ๊ธฐ๋ฐ์ผ๋ก ์์ฑํ์์ต๋๋ค. ๋ฐฐ์ด ๋ด์ฉ์ ๊ธฐ๋กํ๊ณ , ๊ฐ์ธ์ ์ธ ๊ณต๋ถ๋ฅผ ์ํด ์์ฑํ๋ ํฌ์คํ ์ ๋๋ค. ์์ธํ ๋ด์ฉ์ ๊ต์ฌ ๊ตฌ๋งค๋ฅผ ๊ฐ๋ ฅ ์ถ์ฒ๋๋ฆฝ๋๋ค.

์ง๊ธ๊น์ง๋ ๊ทธ๋ฆผ[15-1]๊ณผ ๊ฐ์ด ํ ์ค๋ก ๋์ด์ ๊ณ์ฐ ๊ทธ๋ํ๋ง ๋ค๋ค์ต๋๋ค. ํ์ง๋ง ๋ ๋ณต์กํ๊ฒ ์ฐ๊ฒฐ๋๋ ๊ฒฝ์ฐ, ์ง๊ธ์ DeZero๋ ์ ๋๋ก ๊ณ์ฐํด๋ด์ง ๋ชปํฉ๋๋ค.

์ฌ๋ฐ๋ฅธ ์ญ์ ํ์ ์์๋ ๋ค์๊ณผ ๊ฐ์์ผ ํฉ๋๋ค.

๊ทธ๋ฌ๋ ํ์ฌ์ DeZero๋ ์ฌ๋ฌ ๋ฌธ์ ๋ค์ด ๋ณด์ ๋๋ค. C ๋ค์์ ๋ฐ๋ก A๋ก ์ด์ด์ง๊ณ , ํจ์ A์ ์ญ์ ํ๊ฐ ๋ ๋ฒ ์ผ์ด๋๋ ๊ฒ๋ ๋ฌธ์ ์ ๋๋ค.

๋ฌธ์ ์ ์์ธ์ funcs ๋ฆฌ์คํธ์ ์์ต๋๋ค. ๋ค์์ ์ฒ๋ฆฌํ ํจ์๋ฅผ pop()์ ์ด์ฉํด ๊บผ๋ด๊ธฐ ๋๋ฌธ์, ์ฌ๋ฌ ๋ณ์๋ฅผ ๋ด๊ฒ ๋ ๊ฒฝ์ฐ ๋์ค์ ๋ด๊ธด ์์๋ฅผ ์๋ชป ๊บผ๋ด๊ฒ ๋ฉ๋๋ค. ์ง๊ธ๊น์ง๋ ํ ์ค๋ก ๋์ด๋ ๊ณ์ฐ ๊ทธ๋ํ๋ฅผ ๋ค๋ค๊ธฐ ๋๋ฌธ์, ๋ฆฌ์คํธ์์ ์์๋ฅผ ๊บผ๋ผ ๋ ํญ์ ์์๊ฐ ํ๋ ๋ฟ์ด์ด์ ๋ฌธ์ ๊ฐ ์๊ธฐ์ง ์์๋ ๊ฒ์ ๋๋ค.
class Variable:
...
def backward(self):
if self.grad is None:
self.grad = np.ones_like(self.data)
funcs = [self.creator]
while funcs:
f = funcs.pop()
gys = [output.grad for output in f.outputs]
gxs = f.backward(*gys)
if not isinstance(gxs, tuple):
gxs = (gxs, )
for x, gx in zip(f.inputs, gxs):
if x.grad is None:
x.grad = gx
else:
x.grad = x.grad + gx
if x.creator is not None:
funcs.append(x.creator)
์ง๊ธ๊น์ง๋ funcs ๋ฆฌ์คํธ์ ๋ค์์ ์ฒ๋ฆฌํ ํจ์์ ํ๋ณด๋ค์ ์๊ฐ ์์ด ๋ง์ง๋ง ์์๋ง ๊บผ๋์ง๋ง, ์ด์ ๋ ์ฐ์ ์์๋ฅผ ๋ถ์ฌํ ์ ์์ด์ผ ํฉ๋๋ค. ๊ทธ๋ผ ์ฐ์ ์์๋ ์ด๋ป๊ฒ ์ค์ ํ ๊น์? ์ฐ๋ฆฌ๋ ์ผ๋ฐ์ ์ธ ๊ณ์ฐ์ธ ์์ ํ ๋ ํจ์๊ฐ ๋ณ์๋ฅผ ๋ง๋ค์ด๋ด๋ ๊ณผ์ ์ ๋ชฉ๊ฒฉํ๊ณ ์์ต๋๋ค. ์ฐฝ์กฐ์-ํผ์กฐ๋ฌผ ๊ด๊ณ ํน์ ๋ถ๋ชจ-์์ ๊ด๊ณ๋ฅผ ๋ชฉ๊ฒฉํ๊ณ ์๋ ๊ฒ์ ๋๋ค. ์ด ๊ด๊ณ๋ฅผ ๊ธฐ์ค์ผ๋ก ํจ์์ ๋ณ์์ ์ธ๋๋ฅผ ๊ธฐ๋กํ๊ฒ ์ต๋๋ค. ์ธ๋ ์๊ฐ ํฐ ์์๋๋ก ์ญ์ ํ๋ฅผ ์งํํ๋ฉด, ๋ถ๋ชจ๋ณด๋ค ์์์ด ๋จผ์ ์ฒ๋ฆฌ๋จ์ ๋ณด์ฅํ ์ ์์ ๊ฒ์ ๋๋ค. ๋ค์ ๋จ๊ณ์์ ๊ตฌํํด๋ณด๊ฒ ์ต๋๋ค.
'DeZero > ๐ป์ 2๊ณ ์ง' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| step17. ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ ์ํ ์ฐธ์กฐ (0) | 2023.01.18 |
|---|---|
| step16. ๋ณต์กํ ๊ณ์ฐ ๊ทธ๋ํ(๊ตฌํ ํธ) (0) | 2023.01.17 |
| step14. ๊ฐ์ ๋ณ์ ๋ฐ๋ณต ์ฌ์ฉ (0) | 2023.01.15 |
| step13. ๊ฐ๋ณ ๊ธธ์ด ์ธ์(์ญ์ ํ ํธ) (2) | 2023.01.14 |
| step12. ๊ฐ๋ณ ๊ธธ์ด ์ธ์(๊ฐ์ ํธ) (0) | 2023.01.13 |