์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ์ ํ๋์ํ
- ๊ฒฐ์ ํธ๋ฆฌ
- Git
- react
- ๋ฐ์ดํฐ๋ถ์
- ๋์
- ๊นํ
- ๋ฐ์ดํฐ
- ์๋ฒ ๋ฉ
- cs231n
- ๋ค์ดํฐ๋ธ
- ๋จธ์ ๋ฌ๋
- linearalgebra
- ์๋๋ก์ด๋์คํ๋์ค
- ๋ฐ์ดํฐ์๊ฐํ
- Titanic
- ๋ฐฑ์ค
- ์ํ์ฝ๋ฉ
- ์๊ณ ๋ฆฌ์ฆ
- ํ์ดํ๋
- ๋ฅ๋ฌ๋
- ๋ฆฌ์กํธ
- Kaggle
- ํ๊ตญ์ด์๋ฒ ๋ฉ
- AI
- nlp
- native
- ์ธํ๋ฐ
- ๋ถ์
- c++
- Today
- Total
yeon's ๐ฉ๐ป๐ป
[CS231n] 3. Loss Functions and Optimization ๋ณธ๋ฌธ
์ด๋ค W๊ฐ ๊ฐ์ฅ ์ข์์ง -> ์ง๊ธ ๋ง๋ W๊ฐ ์ข์์ง ๋์์ง๋ฅผ ์ ๋ํ ํ ๋ฐฉ๋ฒ ํ์
- W๋ฅผ ์ ๋ ฅ์ผ๋ก ๋ฐ์ ๊ฐ ์ค์ฝ์ด๋ฅผ ํ์ธํ๊ณ , ์ด W๊ฐ ์ง๊ธ ์ผ๋ง๋ bad ํ์ง ์ ๋์ ์ผ๋ก ๋งํด์ฃผ๋ ๊ฒ: Loss Function
- ํ๋ ฌ W๊ฐ ๋ ์ ์๋ ๋ชจ๋ ๊ฒฝ์ฐ์ ์ ์ค ๊ฐ์ฅ ๋ bad ํ W๊ฐ ๋ฌด์์ธ์ง : Optimization
* ์ ๋ต score๊ฐ ๋ค๋ฅธ score๋ณด๋ค ๋์ผ๋ฉด ์ข๋ค !!!
Multi-class SVM loss
: ์ฌ๋ฌ ํด๋์ค๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํ ์ด์ง SVM์ ์ผ๋ฐํ๋ ํํ
- ์์คํจ์ L_i์ ๊ตฌํ๊ธฐ ์ํด์ ์ฐ์ 'true์ธ ์นดํ ๊ณ ๋ฆฌ'๋ฅผ ์ ์ธํ '๋๋จธ์ง ์นดํ ๊ณ ๋ฆฌ Y'์ ํฉ์ ๊ตฌํ๋ค.
(์ฆ, ๋ง์ง ์์ ์นดํ ๊ณ ๋ฆฌ ์ ๋ถ๋ฅผ ํฉ์นจ)
- and ์ฌ๋ฐ๋ฅธ ์นดํ ๊ณ ๋ฆฌ์ score๊ณผ ์ฌ๋ฐ๋ฅด์ง ์์ ์นดํ ๊ณ ๋ฆฌ์ score์ ๋น๊ตํ๋ค.
- If ์ฌ๋ฐ๋ฅธ ์นดํ ๊ณ ๋ฆฌ score > ์ฌ๋ฐ๋ฅด์ง ์์ ์นดํ ๊ณ ๋ฆฌ score
- ์ผ์ safety margin ์ด์์ด๋ผ๋ฉด (ex. 1)
- then, true score๊ฐ ๋ค๋ฅธ false ์นดํ ๊ณ ๋ฆฌ๋ณด๋ค ํจ์ฌ ํฌ๋ค๋ ๋ป
- Loss = 0, ์ด๋ฏธ์ง ๋ด ์ ๋ต์ด ์๋ ์นดํ ๊ณ ๋ฆฌ์ ๋ชจ๋ ๊ฐ์ ํฉ์น๋ฉด ์ด ์ด๋ฏธ์ง์ ์ต์ข Loss๊ฐ ๋๋ ๊ฒ
- then, ์ ์ฒด training data set์์ ๊ทธ loss๋ค์ ํ๊ท ์ ๊ตฌํจ
If true class์ score๊ฐ ์ ์ผ ๋์ผ๋ฉด:
then, max(0, s_j - s_yi + 1)
hinge loss
- 0๊ณผ ๋ค๋ฅธ ๊ฐ์ ์ต๋๊ฐ, Max(0, value)์ ๊ฐ์ ์์ผ๋ก ์์คํจ์๋ฅผ ๋ง๋ฌ
์ ๋ต ์นดํ ๊ณ ๋ฆฌ์ ์ ์๊ฐ ๋์์ง์๋ก Loss๊ฐ ์ ํ์ ์ผ๋ก ์ค์ด๋ ๋ค.
- ์ด Loss๋ 0์ด ๋ ์ดํ์๋ Safety margin์ ๋์ด์ค ๋๊น์ง ๋ ์ค์ด๋ ๋ค.
(Loss=0; ํด๋์ค๋ฅผ ์ ๋ถ๋ฅํ๋ค.)
* s: ๋ถ๋ฅ๊ธฐ์ output์ผ๋ก ๋์จ ์์ธก๋ score
ex) 1(๊ณ ์์ด), 2(๊ฐ)
-> S_1(๊ณ ์์ด score), S_2(๊ฐ score)
* y_i: ์ด๋ฏธ์ง์ ์ค์ ์ ๋ต category (์ ์ ๊ฐ)
* s_y_i: training ์ ์ i๋ฒ ์งธ ์ด๋ฏธ์ง์ ์ ๋ต class์ score
(1) Cat์ด ์ ๋ต class ์ผ ๊ฒฝ์ฐ
Cat์ Loss = 5.1 - 3.2 + 1(margin)
= 2.9 : Loss๊ฐ ๋ฐ์ํ๋ค!
Car์ Loss = 3.2
Frog์ Loss = -1.7
=> Cat์ score๋ Frog์ score๋ณด๋ค ํจ์ฌ ํฌ๋ฏ๋ก Loss๋ 0์ด๋ผ๊ณ ํ ์ ์๋ค.
๊ณ ์์ด image์ Multiclass-SVM Loss๋ ์ด๋ฐ ํด๋์ค ์์ Loss์ ํฉ์ด ๋๋ฉฐ, ์ฆ 2.9 + 0 = 2.9
- ์ฌ๊ธฐ์ 2.9๋ผ๋ ์ซ์๋ '์ผ๋ง๋ ๋ถ๋ฅ๊ธฐ๊ฐ ์ด ์ด๋ฏธ์ง๋ฅผ badํ๊ฒ ๋ถ๋ฅํ๋์ง' ์ ๋ํ ์ฒ๋๊ฐ ๋ ๊ฒ
(2) Car์ด ์ ๋ต class ์ผ ๊ฒฝ์ฐ
- Car & Cat -> Loss=0
- Car & Frog -> Loss=0
(3) Frog์ด ์ ๋ต class ์ผ ๊ฒฝ์ฐ
(4) ์ต์ข Loss
- ์ ์ฒด training set์ ์ต์ข Loss๋ ๊ฐ training image์ Loss๋ค์ ํ๊ท
: (2.9 + 0 + 5.27) / 3
- ์ฐ๋ฆฌ์ ๋ถ๋ฅ๊ธฐ๊ฐ 5.3์ ๋งํผ ์ด training set์ badํ๊ฒ ๋ถ๋ฅํ๊ณ ์๋ค๋ '์ ๋์ ์งํ' !
Q. margin์ ์ด๋ป๊ฒ ์ ํ๋ ๊ฒ์ธ๊ฐ?
- ์ฐ๋ฆฌ๋ ์ค์ loss function์ score๊ฐ ์ ํํ ๋ช์ธ์ง๋ฅผ ์ ๊ฒฝ์ฐ๋ ๊ฒ์ ์๋๋ค.
- ์ค์ํ ๊ฒ์ ์ฌ๋ฌ score๊ฐ์ ์๋์ ์ธ ์ฐจ์ด !
- ์ ๋ต score๊ฐ ๋ค๋ฅธ score์ ๋นํด ์ผ๋ง๋ ๋ ํฐ score์ ๊ฐ์ง๊ณ ์๋๋! ๊ฐ ์ค์
Q1. What happens to loss if car scores change a bit?
A. Car์ score๋ฅผ ์กฐ๊ธ ๋ฐ๊พธ๋๋ผ๋ Loss๊ฐ ๋ฐ๋์ง ์์ ๊ฒ์ด๋ค.
- SVM loss๋ ์ค์ง ์ ๋ต score๊ณผ ๊ทธ ์ด์ธ์ score๋ง ๊ณ ๋ คํ๋ค.
- Car์ score๊ฐ ์ด๋ฏธ ๋ค๋ฅธ score๋ค๋ณด๋ค ์์ฒญ ๋๊ธฐ ๋๋ฌธ์ ๊ฒฐ๊ตญ Loss๋ ๋ณํ์ง ์๊ณ 0์ผ ๊ฒ์ด๋ค.
Q2. What is the min/max possible loss?
A. min = 0
max = infinity (hinge loss๋ฅผ ๋ด๋ ์ ์ ์์)
Q3. At initialization W is small so all s=0, what is the loss?
- ํ๋ผ๋ฏธํฐ๋ฅผ ์ด๊ธฐํํ๊ณ ์ฒ์๋ถํฐ ํ์ต์๊ธธ ๋ ๋ณดํต W๋ฅผ ์์์ ์์ ์๋ก ์ด๊ธฐํ์ํค๋๋ฐ,
- ์ด๋ ๊ฒ ๋๋ฉด ์ฒ์ ํ์ต ์ ๊ฒฐ๊ณผ score๊ฐ ์์์ ์ผ์ ๊ฐ์ ๊ฐ๊ฒ ๋๋ค.
A. number of classes - 1
- Loss๋ฅผ ๊ณ์ฐํ ๋ ์ ๋ต์ด ์๋ class๋ค์ ์ํํ๋ค. = C-1 class๋ค์ ์ํํจ
- ๋น๊ตํ๋ ๋ score๊ฐ ๊ฑฐ์ ๋น์ทํ๋ margin ๋๋ฌธ์ 1 score๋ฅผ ์ป๊ฒ ๋ ๊ฒ
- Loss = C-1
Q4. What if the sum was over all classes? (including j=y_i)
(SVM์ ์ ๋ต์ธ class ๋นผ๊ณ ๋ค ๋ํ ๊ฒ์ธ๋ฐ, ์ ๋ต์ธ class๋ ๋ํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น?)
A. Loss์ 1์ด ๋ ์ฆ๊ฐํ ๊ฒ
Q5. What if we used mean instead of sum?
A. ์ํฅ์ ์ ๋ฏธ์น๋ค. (scale๋ง ๋ณํ ๋ฟ)
Q6. What if we used
A. ๊ฒฐ๊ณผ๋ ๋ฌ๋ผ์ง ๊ฒ
- ์ค์ ๋ก๋ squared hinge loss๋ฅผ ์ฌ์ฉํจ
Multiple SVM Loss: Example code
def L_i_vectorized(x, y, W):
scores = W.dot(x)
margins = np.maximum(0, scores-scores[y] + 1)
margins[y] = 0 # max๋ก ๋์จ ๊ฒฐ๊ณผ์์ ์ ๋ต class๋ง 0์ผ๋ก ๋ง๋ค์ด์ค
# ๊ตณ์ด ์ ์ฒด๋ฅผ ์ํํ ํ์ ์๊ฒ ํด์ฃผ๋ ์ผ์ข
์ vectorized ๊ธฐ๋ฒ
loss_i = np.sum(margins)
return loss_i
- numpy๋ฅผ ์ด์ฉํ๋ฉด loss function์ ์ฝ๋ฉํ ์ ์๋ค. (easy)
- max๋ก ๋์จ ๊ฒฐ๊ณผ์์ ์ ๋ต class๋ง
E.g. Suppose that we found a W s.t L=0. Is that W unique?
A. ๋ค๋ฅธ W๋ ์กด์ฌํ๋ค. ex. 2W is also has L=0.
-> margin๋ 2๋ฐฐ์ผ ๊ฒ
์ฐ๋ฆฌ๋ ์ค์ง data์ loss์๋ง ์ ๊ฒฝ์ ์ฐ๊ณ ์๊ณ , ๋ถ๋ฅ๊ธฐ์๊ฒ training data์ ๊ผญ ๋ง๋ W๋ฅผ ์ฐพ์ผ๋ผ๊ณ ๋งํ๋ ๊ฒ๊ณผ ๊ฐ๋ค.
-> ์ค์ ์ฐ๋ฆฌ๋ training data์ ์ผ๋ง๋ ๊ผญ ๋ง๋์ง๋ ์ ํ ์ ๊ฒฝ์ฐ์ง x
-> training data๋ฅผ ์ด์ฉํด ์ด๋ค ๋ถ๋ฅ๊ธฐ๋ฅผ ์ฐพ๊ณ , ์ด๋ฅผ test data์ ์ ์ฉํ ๊ฒ
-> test data์์์ ์ฑ๋ฅ์ด ์ค์ํ๋ค.
-> training data์์์ Loss๋ง ์ ๊ฒฝ์ด๋ค๋ฉด ์ข์ง x
Regularization
- ๋ชจ๋ธ์ด ์ข ๋ ๋จ์ํ W์ ์ฐพ๋๋ก ํจ
- Loss Function์ Data Loss์ Regularization์ ๋ ๊ฐ์ง ํญ์ ๊ฐ์ง๋ค.
- ๋๋ค: ํ์ดํผ ํ๋ผ๋ฏธํฐ; ์ค์ ๋ชจ๋ธ ํ๋ จํ ๋ ๊ณ ๋ คํด์ผ ํ ์ค์ํ ์์
์ข ๋ฅ
- Regularization์ ๋ชจ๋ธ์ด training data set์ ์๋ฒฝํ fitํ์ง ๋ชปํ๋๋ก ๋ชจ๋ธ์ ๋ณต์ก๋์ penalty๋ฅผ ๋ถ์ฌํ๋ ๋ฐฉ๋ฒ
(overfitting์ ๋ฐฉ์งํ๋ ๊ฒ์ด๋ผ๊ณ ์๊ณ ์์)
Softmax
- score์ ์ ๋ถ ์ฌ์ฉํ๋๋ฐ, score๋ค์ ์ง์๋ฅผ ์ทจํด ์์๊ฐ ๋๊ฒ ๋ง๋ ๋ค.
- ๊ทธ ์ง๋ค์ ํฉ์ผ๋ก ๋ค์ ์ ๊ทํ ์ํด
=> softmax ํจ์๋ฅผ ๊ฑฐ์น๊ฒ ๋๋ฉด ํ๋ฅ ๋ถํฌ๋ฅผ ์ป์ ์ ์์
(ํด๋น ํด๋์ค์ผ ํ๋ฅ )
- softmax์์ ๋์จ ํ๋ฅ ์ด ์ ๋ต class์ ํด๋นํ๋ ํ๋ฅ ์ 1๋ก ๋ํ๋๊ฒ ํ๋ ๊ฒ
- ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๊ฒ) ์ ๋ต class์ ํด๋นํ๋ class์ ํ๋ฅ ์ด 1์ ๊ฐ๊น๊ฒ ๊ณ์ฐ๋๋ ๊ฒ
- Loss๋ '-log(์ ๋ตclassํ๋ฅ )' ์ด ๋ ๊ฒ
- Loss function์ '์ผ๋ง๋ ์ข์์ง'๊ฐ ์๋๋ผ '์ผ๋ง๋ badํ์ง'๋ฅผ ์ธก์ ํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ง์ด๋์ค(-)๋ฅผ ๋ถ์ธ๋ค.
- score๊ฐ ์์ผ๋ฉด softmax๋ฅผ ๊ฑฐ์น๊ณ , ๋์จ ํ๋ฅ ๊ฐ์ -log๋ฅผ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค.
๊ณ ์์ด ์์ ๋ก ๋์๊ฐ๋ค๋ฉด, (linear classifier์ output์ผ๋ก ๋์จ / SVM Loss์ ๊ฒฐ๊ณผ) score ์์ฒด๋ฅผ ์ฐ๋ ๊ฒ์ด ์๋๋ผ ์ง์ํ ์์ผ ์ฐ์.
-> ํฉ์ด 1์ด ๋๋๋ก ์ ๊ทํ ์์ผ ์ฃผ๊ธฐ
-> ์ ๋ต score์๋ง -log๋ฅผ ์ทจํด์ฃผ๊ธฐ : "softmax" / "multinomial logistic regression"
Q. What is the min/max possible loss L_i?
A. min = 0, max = infinity
- ์ฐ๋ฆฌ๋ ์ ๋ต class์ ํ๋ฅ ์ 1์ด ๋๊ธฐ๋ฅผ, ์ ๋ต์ด ์๋ class์ ํ๋ฅ ์ 0์ด ๋๊ธธ ์ํ๋ค.
- ์ฆ, log ์์ ์ด๋ค ๊ฐ์ 1์ด ๋์ด์ผ ํ๋ค. => -log(1) = 0
- ๊ณ ์์ด๋ฅผ ์๋ฒฝํ๊ฒ ๋ถ๋ฅํ๋ค๋ฉด Loss=0 ์ผ ๊ฒ
Q. Loss=0์ด๋ผ๋ฉด ์ค์ score์ ์ด๋ป๊ฒ ๋์ด์ผ ํ ๊น?
A. score๋ infinity์ ๊ฐ๊น์์ผ ํ ๊ฒ์ด๋ค.
- ๋ง์ฝ ์ ๋ต class์ ํ๋ฅ ์ด 0 => -log(0) : + infinity (๋ถ๊ฐ๋ฅ, ์ง์=0์ด ๋ ์ ์๋ค.)
- '์ ํ ์ ๋ฐ๋'๋ฅผ ๊ฐ์ง๊ณ ์ต๋๊ฐ(๋ฌดํ๋), ์ต์๊ฐ(0)์ ๋๋ฌํ ์ ์๋ค.
*
์ต์ข Loss Function์ด ์ต์๊ฐ ๋๊ฒ ํ๋ ๊ฐ์ค์น ํ๋ ฌ์ด์ ํ๋ผ๋ฏธํฐ์ธ ํ๋ ฌ W๋ฅผ ๊ตฌํ๊ฒ ๋๋ ๊ฒ
-> ์ด๋ป๊ฒ Loss๋ฅผ ์ค์ด๋ W๋ฅผ ์ฐพ๋ ๊ฒ ??
-> "์ต์ ํ(Optimization)"
Optimization
(1) A first very bad idea solution: Random search (์์ ํ์)
# assume X_train is the data where each column is an example (e.g. 3073 x 50,000)
# assume Y_train are teh labels (e.g. 1D array of 50,000)
# assume the function L evaluates the loss function
bestloss = float("inf") # Python assigns the highest possible float value
for num in xrange(1000):
W = np.random.randn(10, 3073) * 0.0001 # generate random parameters
loss = L(X_train, Y_train, W)
if loss < bestloss: # keep track of the best solution
bestloss = loss
bestW = W
print ('in attempt %d the loss was %f, best %f' %(num, loss, bestloss))
- ์์๋ก ์ํ๋งํ W๋ค์ ์์ฒญ ๋ง์ด ๋ชจ์๋๊ณ Loss๋ฅผ ๊ณ์ฐํ์ฌ ์ด๋ค W๊ฐ ์ข์์ง ์ดํด๋ณด๋ ๊ฒ
Let's see how well this works on the test set ...
# Assume X_test is [3073 x 10000], Y_test [10000 x 1]
scores = Wbest.dot(Xte_cols) # 10 x 10000, the class scores for all test examples
# find the index with max score in each column (the predicted class)
Yte_predict = np.argmax(scores, axis=0)
# and calculate accuracy (fraction of predictions that are correct)
np.ean(Yte_prdict == Yte)
# returns 0.1555
- CIFAR-10์์ class๋ 10๊ฐ์ด๋ฏ๋ก ์์ ํ๋ฅ ์ 10%๊ฐ ๋๊ณ ,
random search๋ฅผ ๊ฑฐ์น๊ฒ ๋๋ฉด 15%์ ์ ํ๋๋ฅผ ๋ณด์
(2) Follow the slope: Local gemetry
- NN, Linear Classifier์ ํ๋ จ์ํฌ ๋ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
* ๊ฒฝ์ฌ(slope): 1์ฐจ์ ๊ณต๊ฐ์์๋ ์ด๋ค ํจ์์ ๋ํ ๋ฏธ๋ถ๊ฐ
= ๋ํจ์(derivative)
-> ๋ค๋ณ์ ํจ์์์๋ ํ์ฅ ๊ฐ๋ฅ
- ๋ค๋ณ์์์ ๋ฏธ๋ถ์ผ๋ก ์ผ๋ฐํ ์ํจ ๊ฒ์ด gradient
gradient์ ๋ฐฉํฅ: ํจ์์์ '๊ฐ์ฅ ๋ง์ด ์ฌ๋ผ๊ฐ๋ ๋ฐฉํฅ'
ํฌ๊ณ ๋ณต์กํ ์๊ณ ๋ฆฌ์ฆ ํ์ต์ํค๋ ๋ฐฉ๋ฒ
Gradient Descent
while True:
weights_grad = evaluate_gradient(loss_func, data, weights)
weights += - step_size * weights_grad # perform parameter update
- ์ฐ์ W๋ฅผ ์์์ด ๊ฐ์ผ๋ก ์ด๊ธฐํ์ํด
- then, Loss์ gradient๋ฅผ ๊ณ์ฐํ ๋ค ๊ฐ์ค์น๋ฅผ gradient์ ๋ฐ๋ ๋ฐฉํฅ์ผ๋ก update
- gradient๊ฐ ํจ์์์ ์ฆ๊ฐํ๋ ๋ฐฉํฅ์ด๊ธฐ ๋๋ฌธ์ -gradient๋ฅผ ํด์ผ ๋ด๋ ค๊ฐ๋ ๋ฐฉํฅ์ด ๋จ
- ๋ฐ๋ณตํ๋ค๋ณด๋ฉด ๊ฒฐ๊ตญ ์๋ ดํ ๊ฒ
- step size๋ ํ์ดํผ ํ๋ผ๋ฏธํฐ; gradient ๋ฐฉํฅ์ผ๋ก ์ผ๋ง๋ ๋์๊ฐ์ผ ํ๋์ง๋ฅผ ์๋ ค์ค
- learning rate๋ผ๊ณ ๋ ํ๋ฉฐ, ๋งค์ฐ ์ค์ !
Stochastic Gradient Descent (SGD)
- Loss Function์์ ์ฐ๋ฆฌ๋ ์ ์ฒด training set๋ค์ loss์ ํ๊ท ์ ๊ตฌํ๋ค.
- but, ์ค์ ๋ก N์ด ์์ฒญ๋๊ฒ ์ปค์ง ์ ์๋ค.
-> Loss๋ฅผ ๊ณ์ฐํ๋ ๊ฒ์ด ๊ต์ฅํ ์ค๋ ๊ฑธ๋ฆฌ๋ ์์ ์ด ๋จ (์๋ฐฑ๋ง ๋ฒ์ ๊ณ์ฐ)
# vanilla minibath gradient descent
while True:
data_batch = sample_training_data(data, 256) # sample 256 examples
weights_grad = evaluate_gradient(loss_func, data_batch, weights)
weights += - step_size * weigths_grad # perform parameter update
- ์ ์ฒด data set์ gradient์ loss๋ฅผ ๊ณ์ฐํ๊ธฐ ๋ณด๋ค๋, minibatch๋ผ๋ ์์ training sample ์งํฉ์ผ๋ก ๋๋์ด ํ์ตํจ
- ๋ณดํต 2์ ์น์ (32, 64, 128)
- ์ด ์์ minibatch๋ฅผ ์ด์ฉํด loss์ ์ ์ฒด ํฉ์ '์ถ์ ์น'์ ์ค์ gradient์ '์ถ์ ์น'๋ฅผ ๊ณ์ฐ
'AIFFEL ๐ฉ๐ปโ๐ป' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์๋ฒ ๋ฉ (Embedding) (0) | 2022.01.20 |
---|---|
ํ ์คํธ ๊ฐ์ฑ ๋ถ์ (Text Sentimental Analysis) (0) | 2022.01.20 |
[Exploration 04] RNN, ํ ํฐํ ๋ฑ ๊ฐ๋ ์ ๋ฆฌ (2) | 2022.01.13 |
[Exploration 03] ์นด๋ฉ๋ผ ์คํฐ์ปค์ฑ ๋ง๋ค๊ธฐ (์๊ด) (0) | 2022.01.11 |
[Fundamental 11] ์ฌ์ดํท๋ฐ Scikit-learn (0) | 2022.01.07 |