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

μ΄λ² λ¨κ³μμλ μ λ¨κ³μμ ꡬννλ μ ν νκ·λ₯Ό μ κ²½λ§μΌλ‘ νμ₯μν€λλ‘ νκ² μ΅λλ€. μ°μ μ ν λ³νμ DeZeroμ linear ν¨μλ‘ κ΅¬νν΄λ³΄κ² μ΅λλ€. $y = F.matmul(x, W) + b$μ κ°μ΄ μ λ ₯ xμ λ§€κ°λ³μ Wλ₯Ό νλ ¬ κ³±νκ³ , bλ₯Ό λνλ κ²μ μ ν λ³ν(linear transformation) νΉμ μν λ³ν(affine transformation)μ΄λΌκ³ ν©λλ€. (μλ°ν λ§νλ©΄ bλ₯Ό μ μΈν κ²μ΄ μ ν λ³νμ λλ€.) μ΄λ μ ν λ³νμ μ κ²½λ§μμ μμ μ°κ²°κ³μΈ΅(fully connected later)μ ν΄λΉν©λλ€.
μ ν λ³νμ μλ λ κ°μ§ λ°©μμ ν΅ν΄ ꡬνν μ μμ΅λλ€. μΌμͺ½μ DeZeroμ matmul ν¨μμ +(add ν¨μ)λ₯Ό μ΄μ©νλλ°, μ΄λ matmul ν¨μμ μΆλ ₯μ Variable μΈμ€ν΄μ€μ΄κΈ° λλ¬Έμ κ³μ° κ·Έλνμ κΈ°λ‘λ©λλ€. κ³μ° κ·Έλνκ° μ‘΄μ¬νλ λμμλ Variable μΈμ€ν΄μ€μ κ·Έ μμ λ΄κΈ΄ ndarray μΈμ€ν΄μ€λ λ©λͺ¨λ¦¬μ κ³μ λ¨κ² λ©λλ€. ννΈ μ€λ₯Έμͺ½μ Linear ν΄λμ€λ₯Ό νμ©νλ λ°©λ²μ μ€κ° κ²°κ³Ό tκ° λ³΄μ‘΄λμ§ μκΈ° λλ¬Έμ λ©λͺ¨λ¦¬λ₯Ό ν¨μ¨μ μΌλ‘ μ¬μ©ν©λλ€.

μ΄λ tμ λ°μ΄ν°λ + μμ νμ νμκ° μμ΅λλ€. matmul μμ ν μμ λ§μ°¬κ°μ§μ λλ€. +μ μμ νλ μΆλ ₯ μͺ½ κΈ°μΈκΈ°λ₯Ό λ¨μν ν리기 λλ¬Έμ λλ€. λ°λΌμ λ€μκ³Ό κ°μ΄ ꡬν κ°λ₯ν©λλ€. μ€κ° κ²°κ³ΌμΈ t λ°μ΄ν°λ₯Ό μμ ν΄μ£Όλ κ²μ΄μ£ .
def linear_simple(x, W, b=None):
t = matmul(x, W)
if b is None:
return t
y = t + b
t.data = None # Release t.data (ndarray) for memory
return y
μ 4κ³ μ§μμλ μλ΅λλ μ½λ μ€λͺ μ΄ λ§μλ°, μλ κΉνλΈμμ μμΈν ꡬνμ νμΈν΄λ³Ό μ μμ΅λλ€. Linear ν΄λμ€ μμ λ§μ°¬κ°μ§μ λλ€. dezeroμ functions.pyμ ꡬνλμ΄ μμ΅λλ€.
GitHub - WegraLee/deep-learning-from-scratch-3: γλ°λ°λ₯λΆν° μμνλ λ₯λ¬λ βΈγ(νλΉλ―Έλμ΄, 2020)
γλ°λ°λ₯λΆν° μμνλ λ₯λ¬λ βΈγ(νλΉλ―Έλμ΄, 2020). Contribute to WegraLee/deep-learning-from-scratch-3 development by creating an account on GitHub.
github.com
μ΄μ μ§μ λ°μ΄ν°μ μ νμ©ν΄ μ κ²½λ§μ ꡬνν΄λ³΄κ² μ΅λλ€. μ λ²κ³Όλ λ¬λ¦¬ λΉμ ν λ°μ΄ν°μ μ λ§λ€μ΄λ΄κ² μ΅λλ€.
import numpy as np
np.random.seed(0)
x = np.random.rand(100, 1)
y = np.sin(2 * np.pi * x) + np.random.rand(100, 1)
μ΄λ¬ν λ°μ΄ν°μ μμ xμ yλ μ ν κ΄κ³κ° μλκΈ° λλ¬Έμ μ ν νκ·λ‘ ν μ μμ΅λλ€. λ°λΌμ μ κ²½λ§μ΄ νμν©λλ€. μ κ²½λ§μμλ μ ν λ³νμ μΆλ ₯μ λΉμ ν λ³νμ μννκ² λλλ°, μ΄ λΉμ ν λ³νμ νμ±ν ν¨μλΌκ³ ν©λλ€. μκ·Έλͺ¨μ΄λλ λ 루 κ°μ ν¨μλ€μ΄μ£ .

μ ν λ³νκ³Ό νμ±ν ν¨μλ₯Ό νμ©νμ¬ μ κ²½λ§ μ½λλ₯Ό ꡬνν΄λ³΄κ² μ΅λλ€.
import numpy as np
import matplotlib.pyplot as plt
from dezero import Variable
import dezero.functions as F
# non-linear dataset
np.random.seed(0)
x = np.random.rand(100, 1)
y = np.sin(2 * np.pi * x) + np.random.rand(100, 1)
# κ°μ€μΉ μ΄κΈ°ν
I, H, O = 1, 10, 1
W1 = Variable(0.01 * np.random.randn(I, H))
b1 = Variable(np.zeros(H))
W2 = Variable(0.01 * np.random.randn(H, O))
b2 = Variable(np.zeros(O))
# μ κ²½λ§ μΆλ‘
def predict(x):
y = F.linear(x, W1, b1)
y = F.sigmoid(y)
y = F.linear(y, W2, b2)
return y
lr = 0.2
iters = 10000
# μ κ²½λ§ νμ΅
for i in range(iters):
y_pred = predict(x)
loss = F.mean_squared_error(y, y_pred)
W1.cleargrad()
b1.cleargrad()
W2.cleargrad()
b2.cleargrad()
loss.backward()
W1.data -= lr * W1.grad.data
b1.data -= lr * b1.grad.data
W2.data -= lr * W2.grad.data
b2.data -= lr * b2.grad.data
if i % 1000 == 0:
print(loss)
# Plot
plt.scatter(x, y, s=10)
plt.xlabel('x')
plt.ylabel('y')
t = np.arange(0, 1, 0.1)[:, np.newaxis]
y_pred = predict(t)
plt.plot(t, y_pred.data, color='r')
plt.show()
variable(0.8473695850105871)
variable(0.2514286285183606)
variable(0.2475948546674987)
variable(0.2378612044705481)
variable(0.21222231333102912)
variable(0.16742181117834126)
variable(0.09681932619992642)
variable(0.07849528290602334)
variable(0.07749729552991154)
variable(0.07722132399559321)
νμ΅μ μλ£νλ©΄ λ€μκ³Ό κ°μ κ²°κ³Όλ₯Ό μ»μ μ μμ΅λλ€. (μμ μ½λλ₯Ό κ·Έλλ‘ λ리면 곑μ μ΄ μλμ²λΌ λ§€λλ½μ§λ μμ΅λλ€.) κ²°κ³Όλ₯Ό νμΈνλ©΄ sin ν¨μμ 곑μ μ μ νννκ³ μμ΅λλ€. μ΄ λ°©μμ νμ©νλ©΄ λ κΉμ μ κ²½λ§λ ꡬνν μ μμ§λ§, λ§€κ°λ³μ κ΄λ¦¬κ° νλ€μ΄μ§λλ€. λ°λΌμ λ€μ λ¨κ³μμλ λ§€κ°λ³μ κ΄λ¦¬λ₯Ό κ°μννλ ꡬ쑰λ₯Ό λ§λ€μ΄λ³΄κ² μ΅λλ€.

'DeZero > π»μ 4κ³ μ§' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| step45. κ³μΈ΅μ λͺ¨μλλ κ³μΈ΅ (0) | 2023.02.24 |
|---|---|
| step44. λ§€κ°λ³μλ₯Ό λͺ¨μλλ κ³μΈ΅ (0) | 2023.02.23 |
| step42. μ ν νκ· (0) | 2023.02.18 |
| step41. νλ ¬μ κ³± (0) | 2023.02.16 |
| step40. λΈλ‘λμΊμ€νΈ ν¨μ (0) | 2023.02.15 |