| μΌ | μ | ν | μ | λͺ© | κΈ | ν |
|---|---|---|---|---|---|---|
| 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 |
- Python
- TDD
- 컨ν μ΄λκ°μ²΄
- DROPTABLE
- sklearn
- ν΄λ¦°μ½λ
- SQLDDL
- μ¬μ΄ν·λ°
- Key μ’ λ₯
- λΆκ½λ°μ΄ν°μ
- ν
- RENAMETABLE
- λ¬Έμμ΄
- λ°±μ€
- SQL
- latent factor model
- ALTERTABLE
- νμ΄μ¬
- μ£Όμ±λΆ μ°ΎκΈ°
- μ μ¬μμλͺ¨λΈ
- 무결μ±
- Hyperlink Graphs
- knn_classify
- latent factor
- ν€ μ’ λ₯
- μκ³ λ¦¬μ¦
- μΈλλ³κ°λΉμ§μ»¬λ ν°
- 무결μ±μ μ§λ©μ»€λμ¦
- 무결μ±μ μ§
- CREATETABLE
- Today
- Total
DonHurry
step41. νλ ¬μ κ³± λ³Έλ¬Έ
π’ λ³Έ ν¬μ€ν μ λ°λ°λ₯λΆν° μμνλ λ₯λ¬λ3μ κΈ°λ°μΌλ‘ μμ±νμμ΅λλ€. λ°°μ΄ λ΄μ©μ κΈ°λ‘νκ³ , κ°μΈμ μΈ κ³΅λΆλ₯Ό μν΄ μμ±νλ ν¬μ€ν μ λλ€. μμΈν λ΄μ©μ κ΅μ¬ ꡬ맀λ₯Ό κ°λ ₯ μΆμ²λ립λλ€.

μ λͺ©μμ μ μ μλ―μ΄ μ΄λ² λ¨κ³λ 벑ν°μ λ΄μ κ³Ό νλ ¬μ κ³±μ λ€λ£Ήλλ€. κ΅μ¬μμ κ°λ¨ν μκ°λ₯Ό νκ³ μμ§λ§, μ¬μ€ μ΄ λΆλΆμ μ νλμνμ λ°λ‘ 곡λΆνλ κ²μ΄ μ’μ΅λλ€. 벑ν°μ λ΄μ κ³Ό νλ ¬μ κ³±μμ νμν νμμ λν λ΄μ©μ λ°λ‘ 곡λΆνλ κ²μ μΆμ²λ립λλ€. μ΄λ² ννΈμμ μ£Όλ‘ λ€λ£° λ΄μ©μ νλ ¬ κ³±μ μμ νμ λλ€. μ°μ $y=xW$λΌλ κ³μ°μ μμλ‘ μ€λͺ μ μ΄μ΄λκ°κ² μ΅λλ€.
[κ·Έλ¦Ό 41-3]μ κ°λ¨ν νλ ¬ κ³±μ μμ νμ λλ€. μ¬κΈ°μ μ€μν κ²μ μ΅μ’ μΆλ ₯μ΄ μ€μΉΌλΌλΌλ κ²μ λλ€. λ₯λ¬λ μμ²΄κ° μ΅μ’ μ μΌλ‘ μ€μΉΌλΌλ₯Ό μΆλ ₯νλ κ³μ°μ λ€λ£¨κΈ° λλ¬Έμ λλ€. κ²°κ΅ μμ νλ‘ κ΅¬ν΄μΌν κ²μ $L$μ κ° λ³μμ λν λ―ΈλΆμ λλ€. μ¦λͺ κ³Όμ μ μλ΅νκ³ , μ½λ ꡬνμ μν λ¨κ³λ‘ λμ΄κ°κ² μ΅λλ€.

λ€μ κ·Έλ¦Όμ $y=xW$λΌλ κ³μ°μμ νλ ¬ κ³±μ μμ ν, μμ ν νμμ 보μ¬μ£Όκ³ μμ΅λλ€. μμ νλ₯Ό μ΄ν΄λ³΄λ©΄ κ²°κ΅ $L$μ κ° λ³μμ λν λ―ΈλΆμ΄λΌλ κ²μ μ μ μμ΅λλ€. κ° λ³μλ₯Ό λ―ΈμΈνκ² λ³νμμΌ°μ λ $L$μ΄ μΌλ§λ λ³ννλλ, λ³νμ¨μ 보λ κ²μ λλ€. [κ·Έλ¦Ό 41-6]μ 보면 κ·Έ ꡬ체μ κ³μ°κ³Ό νμμ 체ν¬ν μ μμ΅λλ€. μ¬κΈ°μ μ£Όμν΄μΌν μ μ νμμ΄ μ¬λ°λ₯΄λ€κ³ ν΄μ μμ ν μμ΄ νμ μ¬λ°λ₯΄κ² λμΆλλ κ²μ μλλλ€.


μ΄μ μ§μ μ½λλ‘ κ΅¬νν΄λ³΄κ² μ΅λλ€. μ΄μ λ¨κ³λ€κ³Ό λ§μ°¬κ°μ§λ‘ μμ νλ λνμ΄μ dot λ©μλλ₯Ό νμ©νκ³ , μμ νλ μ§μ ꡬνν ν¨μλ₯Ό νμ©ν©λλ€. μ΄λ μμ νμμ μ¬μ©νλ matmul ν¨μλ λ°λ‘ λ°μ ꡬνν ν¨μμ λμΌν©λλ€.
class MatMul(Function):
def forward(self, x, W):
y = x.dot(W)
return y
def backward(self, gy):
x, W = self.inputs
gx = matmul(gy, W.T)
gW = matmul(x.T, gy)
return gx, gW
def matmul(x, W):
return MatMul()(x, W)
μ΄μ λ€μκ³Ό κ°μ ν μ€νΈλ μ§νν μ μμ΅λλ€. x.grad.shapeμ x.shapeκ° λμΌν¨μ νμΈμΌλ‘ μ΄λ² λ¨κ³λ₯Ό λ§λ¬΄λ¦¬νκ² μ΅λλ€.
import numpy as np
from dezero import Variable
import dezero.functions as F
x = Variable(np.random.randn(2, 3))
W = Variable(np.random.randn(3, 4))
y = F.matmul(x, W)
y.backward()
print(x.grad.shape) # (2, 3)
print(W.grad.shape) # (3, 4)'DeZero > π»μ 4κ³ μ§' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| step 43. μ κ²½λ§ (0) | 2023.02.19 |
|---|---|
| step42. μ ν νκ· (0) | 2023.02.18 |
| step40. λΈλ‘λμΊμ€νΈ ν¨μ (0) | 2023.02.15 |
| step39. ν©κ³ ν¨μ (0) | 2023.02.14 |
| step38. νμ λ³ν ν¨μ (0) | 2023.02.13 |