optimizer, loss, metrics
์์คํจ์(loss)์ ํ๊ฐ์งํ(metric)๋? ๊ทธ ์ฐจ์ด๋?
https://gombru.github.io/2018/05/23/cross_entropy_loss/
https://teddylee777.github.io/tensorflow/keras-metic-%EC%BB%A4%EC%8A%A4%ED%85%80
๋ชจ๋ธ์ ์ปดํ์ผ(ํ์ต ๊ณผ์ ์ค์ )ํ ๋, “optimizer”, “loss”์ “metrics”์ ์ ํํ๋ค.
network %>% compile( loss="categorical_crossentropy", optimizer="rmsprop", metrics=c("accuracy") )
model.compile(loss='mse', optimizer='adam', metrics=['mse', 'mae', 'mape']) model.compile(loss='mse', optimizer='rmsprop', metrics=['mse', 'mae', 'mape']) model.compile(loss=keras.losses.categorical_crossentropy, optimizer='adam', metrics=['accuracy']) model.compile(loss='mse', optimizer=tf.keras.optimizers.Adm(lr=0.001), metrics=['mae'])
loss function( ์์คํจ์, ๋ชฉ์ ํจ์)
๋คํธ์ํฌ์ parameter๋ค์ ฮธ๋ผ๊ณ ํ์ ๋, ๋คํธ์ํฌ์์ ๋ด๋๋ ๊ฒฐ๊ณผ๊ฐ๊ณผ ์ค์ ๊ฒฐ๊ณผ๊ฐ ์ฌ์ด์ ์ฐจ์ด๋ฅผ ์ ์ํ๋ ํจ์ Loss function J(ฮธ)์ ๊ฐ์ ์ต์ํ
๋ชจ๋ธ์ ํ๋ จ์ํฌ๋, Loss ํจ์๋ฅผ ์ต์๋ก ๋ง๋ค์ด์ฃผ๋ ๊ฐ์ค์น๋ค์ ์ฐพ๋ ๊ฒ์ ๋ชฉํ๋ก ์ผ์ต๋๋ค.
ํ๋ จ์ ๊ณผ ์ฐ๊ด. ํ๋ จ์ ์ฌ์ฉ.
ํ๋ จ์ํค๋ ๋ชจ๋ธ์ ์ ํฉํ ์์คํจ์๋ฅผ ์ ํ
์๋ฅผ ๋ค์ด, 10๊ฐ์ ํด๋์ค๋ฅผ ๋ถ๋ฅํ ์ ์๋ ๋ถ๋ฅ๊ธฐ๋ฅผ ํ๋ จ์ํค๋ ๊ฒฝ์ฐ์๋ ์์คํจ์๋ก sparse categorical crossentropy๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
MAE(mean absolute error), hinge, categorical crossentropy, sparse categorical crossentropy, binary crossentropy
๋ชจ๋ธ์ ์ค์ ๋ผ๋ฒจ๊ณผ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฐ์ด ์์ธก๋๋๋ก ํ๋ จ๋์ด์ง๋๋ค. ์ด๋ ๊ทธ ๊ฐ๊น์ด ์ ๋๋ฅผ ์ธก์ ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๊ฒ์ด ์์ค ํจ์(loss function)์ ๋๋ค.
Regression
MSE(mean squared error), RMSE, MAE(mean absolute error)
MAE๋ regression ๋ชจ๋ธ์ ํ๋ จ์ํฌ๋, ๋ง์ด ์ฌ์ฉ๋๋ ์์ค ํจ์
MAE๋ ์ ๋๊ฐ(์ ๊ณฑ์ด ์๋)์ ํ๊ท
Classification
binary crossentropy
์ดํญ ๋ถ๋ฅ๊ธฐ(class๊ฐ ๋๊ฐ์ธ ๋ถ๋ฅ, T/F, ์/์)๋ฅผ ํ๋ จ์ํฌ๋ ์ฌ์ฉ
L=โ1NโNi=1tilog(yi)+(1โti)log(1โyi)L=โ1Nโi=1Ntilog(yi)+(1โti)log(1โyi) …(binary crossentropy)
์์คํจ์๋ ์์ธก๊ฐ๊ณผ ์ค์ ๊ฐ์ด ๊ฐ์ผ๋ฉด 0์ด ๋๋ ํน์ฑ์ ๊ฐ๊ณ ์์ด์ผ ํฉ๋๋ค.
์์ธก๊ฐ๊ณผ ์ค์ ๊ฐ์ด ๋ชจ๋ 1๋ก ๊ฐ์ ๋(yi=ti=1yi=ti=1) ์์คํจ์๊ฐ์ด 0์ด ๋๋์ง ํ๋ฒ ํ์ธํด๋ณด๊ฒ ์ต๋๋ค.
์ฐธ๊ณ ๋ก ์ด์ง ๋ถ๋ฅ๊ธฐ์ ๊ฒฝ์ฐ ์์ธก๊ฐ์ด 0๊ณผ 1์ฌ์ด์ ํ๋ฅ ๊ฐ์ผ๋ก ๋์ต๋๋ค. 1์ ๊ฐ๊น์ฐ๋ฉด ํ๋์ ํด๋์ค(์๋ฅผ ๋ค์ด, True ํด๋์ค)์ผ ํ๋ฅ ์ด ํฐ ๊ฒ์ด๊ณ , 0์ ๊ฐ๊น์ฐ๋ฉด ๋ค๋ฅธ ํ๋์ ํด๋์ค(์๋ฅผ ๋ค์ด, False ํด๋์ค)์ผ ํ๋ฅ ์ด ํฐ ๊ฒ์ด์ฃ . ์ํฉ์ ๊ฐ๋จํ๊ฒ ํ๊ธฐ ์ํด์ ์ํ์ด ํ๋๋ง ์๋ค๊ณ ๊ฐ์ ํ๊ฒ ์ต๋๋ค.
L=โ[1log1+(1โ1)log(1โ1)]=0L=โ[1log1+(1โ1)log(1โ1)]=0
์์ธก๊ฐ๊ณผ ์ค์ ๊ฐ์ด ๊ฐ์ ๊ฒฝ์ฐ์๋ ๊ธฐ๋ํ๋ ๋๋ก ์์คํจ์๊ฐ์ 0์ด ๋ฉ๋๋ค. ์ด๋ฒ์๋ ์์ธก๊ฐ์ 0, ์ค์ ๊ฐ์ 1์ธ ์ํฉ์๋(yi=0,ti=1yi=0,ti=1) ์ด๋ป๊ฒ ๋๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
L=โ[1log0+(1โ0)log(1โ0)]=โL=โ[1log0+(1โ0)log(1โ0)]=โ
์์ ๋ฌดํ๋๊ฐ ๋ฉ๋๋ค. ๊ทธ๋ฐ๋ฐ ์ผ๋ฐ์ ์ผ๋ก ํ๋ฅ ์ด 0์ด ๋์ค์ง๋ ์๊ธฐ ๋๋ฌธ์ ๊ฝค ํฐ ์๊ฐ ๋์จ๋ค๊ณ ์๊ฐํ๋ฉด ๋ฉ๋๋ค. ์ด๋ฌํ ํน์ฑ์ ๊ฐ๊ณ ์๊ธฐ ๋๋ฌธ์ binary crossentropy๊ฐ ์ด์ง ๋ถ๋ฅ์ ์ ์ ํ ์ฌ์ฉ๋ ์ ์๋ ์์คํจ์์ธ ๊ฒ์ ๋๋ค.
categorical crossentropy
categorical crossentropy๋ ๋ถ๋ฅํด์ผํ ํด๋์ค๊ฐ 3๊ฐ ์ด์์ธ ๊ฒฝ์ฐ, ์ฆ ๋ฉํฐํด๋์ค ๋ถ๋ฅ์ ์ฌ์ฉ๋ฉ๋๋ค.
๋ผ๋ฒจ์ด [0,0,1,0,0], [1,0,0,0,0], [0,0,0,1,0]๊ณผ ๊ฐ์ด one-hot ํํ๋ก ์ ๊ณต๋ ๋ ์ฌ์ฉ๋ฉ๋๋ค. ๊ณต์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
L=โ1NโNj=1โCi=1tijlog(yij)L=โ1Nโj=1Nโi=1Ctijlog(yij) …(categorical crossentropy)
์ฌ๊ธฐ์ C๋ ํด๋์ค์ ๊ฐฏ์์ ๋๋ค.
์ด๋ฒ์๋ ์ํ์ด ํ๋๋ง ์๋ค๊ณ ๊ฐ์ ํ๊ณ , ์ค์ ๊ฐ๊ณผ ์์ธก๊ฐ์ด ์์ ํ ์ผ์นํ๋ ๊ฒฝ์ฐ์ ์์คํจ์๊ฐ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. 0์ด ๋์์ผํฉ๋๋ค. ์ค์ ๊ฐ๊ณผ ์์ธก๊ฐ์ด ๋ชจ๋ [1 0 0 0 0]์ด๋ผ๊ณ ๊ฐ์ ํ๊ฒ ์ต๋๋ค.
L=โ(1log1+0log0+0log0+0log0+0log0)=0L=โ(1log1+0log0+0log0+0log0+0log0)=0
๊ณ์ฐํ๋๋ 0์ด ๋์์ต๋๋ค. ์ด๋ฒ์๋ ์ค์ ๊ฐ์ [1 0 0 0 0], ์์ธก๊ฐ์ [0 1 0 0 0]์ธ ๊ฒฝ์ฐ์ ์์คํจ์๊ฐ์ ๊ตฌํด๋ณด๊ฒ ์ต๋๋ค.
L=โ(1log0+0log1+0log0+0log0+0log0)=โL=โ(1log0+0log1+0log0+0log0+0log0)=โ
๊ณ์ฐํ๋๋ ์์ ๋ฌดํ๋๊ฐ ๋์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์์ธก๊ฐ์ [0.02 0.94 0.02 0.01 0.01]์ ๊ฐ์ ์์ผ๋ก ๋์ค๊ธฐ ๋๋ฌธ์ ์์ ๋ฌดํ๋๊ฐ ๋์ฌ๋ฆฌ๋ ์์ง๋ง, ํฐ ๊ฐ์ด ๋์ค๋ ๊ฒ๋ง์ ๋ถ๋ช ํฉ๋๋ค. ์ด๋ฌํ ํน์ฑ์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ categorical crossentropy๋ ๋ฉํฐํด๋์ค ๋ถ๋ฅ ๋ฌธ์ ์ ์์คํจ์๋ก ์ฌ์ฉ๋๊ธฐ์ ์ ํฉํฉ๋๋ค.
5. sparse categorical crossentropy
sparse categorical crossentropy ์ญ์ ๋ฉํฐํด๋์ค ๋ถ๋ฅ์ ์ฌ์ฉ๋๋ ์์คํจ์์
๋๋ค. ์ด๋ฆ์ sparse ํ๋๊ฐ ์ถ๊ฐ๋์์ฃ . ๊ทธ๋ฌ๋ฉด sparse categorical crossentropy๊ฐ ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ๋ ์ธ์ ์ผ๊น์?
๋ฐ๋ก ๋ผ๋ฒจ์ด 0, 1, 2, 3, 4์ ๊ฐ์ด ์ ์์ ํํ๋ก ์ ๊ณต๋ ๋์
๋๋ค.
optimizer(์ต์ ํ ๊ณํ)
http://shuuki4.github.io/deep%20learning/2016/05/20/Gradient-Descent-Algorithm-Overview.html
SGD (Stochastic gradient decent, ํ๋ฅ ์ ๊ฒฝ์ฌํ๊ฐ)์ ํน์ ๋ณํ์ ๊ตฌํ
Loss function์ ๋ฐ๋ผ Network์ ๊ฐฑ์ ํ๋ ๋ฐฉ๋ฒ
Neural network์ weight์ ์กฐ์ ํ๋ ๊ณผ์ ์๋ ๋ณดํต โGradient Descentโ ๋ผ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉ
์ด๋ ๋คํธ์ํฌ์ parameter๋ค์ ฮธ๋ผ๊ณ ํ์ ๋, ๋คํธ์ํฌ์์ ๋ด๋๋ ๊ฒฐ๊ณผ๊ฐ๊ณผ ์ค์ ๊ฒฐ๊ณผ๊ฐ ์ฌ์ด์ ์ฐจ์ด๋ฅผ ์ ์ํ๋ ํจ์ Loss function J(ฮธ)์ ๊ฐ์ ์ต์ํํ๊ธฐ ์ํด ๊ธฐ์ธ๊ธฐ(gradient) โJ(ฮธ)๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค. Gradient Descent์์๋ ฮธ ์ ๋ํด gradient์ ๋ฐ๋ ๋ฐฉํฅ์ผ๋ก ์ผ์ ํฌ๊ธฐ๋งํผ ์ด๋ํด๋ด๋ ๊ฒ์ ๋ฐ๋ณตํ์ฌ Loss function J(ฮธ) ์ ๊ฐ์ ์ต์ํํ๋ ฮธ์ ๊ฐ์ ์ฐพ๋๋ค. ํ iteration์์์ ๋ณํ ์์ ๋ค์๊ณผ ๊ฐ๋ค.ฮธ=ฮธโฮทโJ(ฮธ)
์ด ๋ ฮท ๋ ๋ฏธ๋ฆฌ ์ ํด์ง ๊ฑธ์์ ํฌ๊ธฐ โstep sizeโ ๋ก์, ๋ณดํต 0.01~0.001 ์ ๋์ ์ ๋นํ ํฌ๊ธฐ๋ฅผ ์ฌ์ฉํ๋ค.
์ด ๋ Loss Function์ ๊ณ์ฐํ ๋ ์ ์ฒด train set์ ์ฌ์ฉํ๋ ๊ฒ์ Batch Gradient Descent ๋ผ๊ณ ํ๋ค. ๊ทธ๋ฌ๋ ์ด๋ ๊ฒ ๊ณ์ฐ์ ํ ๊ฒฝ์ฐ ํ๋ฒ step์ ๋ด๋์ ๋ ์ ์ฒด ๋ฐ์ดํฐ์ ๋ํด Loss Function์ ๊ณ์ฐํด์ผ ํ๋ฏ๋ก ๋๋ฌด ๋ง์ ๊ณ์ฐ๋์ด ํ์ํ๋ค. ์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ณดํต์ Stochastic Gradient Descent (SGD) ๋ผ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค. ์ด ๋ฐฉ๋ฒ์์๋ loss function์ ๊ณ์ฐํ ๋ ์ ์ฒด ๋ฐ์ดํฐ(batch) ๋์ ์ผ๋ถ ์กฐ๊ทธ๋งํ ๋ฐ์ดํฐ์ ๋ชจ์(mini-batch)์ ๋ํด์๋ง loss function์ ๊ณ์ฐํ๋ค. ์ด ๋ฐฉ๋ฒ์ batch gradient descent ๋ณด๋ค ๋ค์ ๋ถ์ ํํ ์๋ ์์ง๋ง, ํจ์ฌ ๊ณ์ฐ ์๋๊ฐ ๋น ๋ฅด๊ธฐ ๋๋ฌธ์ ๊ฐ์ ์๊ฐ์ ๋ ๋ง์ step์ ๊ฐ ์ ์์ผ๋ฉฐ ์ฌ๋ฌ ๋ฒ ๋ฐ๋ณตํ ๊ฒฝ์ฐ ๋ณดํต batch์ ๊ฒฐ๊ณผ์ ์ ์ฌํ ๊ฒฐ๊ณผ๋ก ์๋ ดํ๋ค. ๋ํ, SGD๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ Batch Gradient Descent์์ ๋น ์ง local minima์ ๋น ์ง์ง ์๊ณ ๋ ์ข์ ๋ฐฉํฅ์ผ๋ก ์๋ ดํ ๊ฐ๋ฅ์ฑ๋ ์๋ค.
๋ณดํต Neural Network๋ฅผ ํธ๋ ์ด๋ํ ๋๋ ์ด SGD๋ฅผ ์ด์ฉํ๋ค. ๊ทธ๋ฌ๋ ๋จ์ํ SGD๋ฅผ ์ด์ฉํ์ฌ ๋คํธ์ํฌ๋ฅผ ํ์ต์ํค๋ ๊ฒ์๋ ํ๊ณ๊ฐ ์๋ค. ๊ฒฐ๋ก ๋ถํฐ ์ดํด๋ณด๊ธฐ ์ํด, ๋ค์๊ณผ ๊ฐ์ ๊ทธ๋ฆผ๋ค์ ์ดํด๋ณด์.
์์ ๊ทธ๋ฆผ๋ค์ ๊ฐ๊ฐ SGD ๋ฐ SGD์ ๋ณํ ์๊ณ ๋ฆฌ์ฆ๋ค์ด ์ต์ ๊ฐ์ ์ฐพ๋ ๊ณผ์ ์ ์๊ฐํํ ๊ฒ์ด๋ค. ๋นจ๊ฐ์์ SGD๊ฐ ์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ Naive Stochastic Gradient Descent ์๊ณ ๋ฆฌ์ฆ์ด๊ณ , Momentum, NAG, Adagrad, AdaDelta, RMSprop ๋ฑ์ SGD์ ๋ณํ์ด๋ค. ๋ณด๋ค์ํผ ๋ชจ๋ ๊ฒฝ์ฐ์์ SGD๋ ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ๋ค์ ๋นํด ์ฑ๋ฅ์ด ์๋ฑํ๊ฒ ๋ฎ๋ค. ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ๋ค ๋ณด๋ค ์ด๋์๋๊ฐ ํ์ ํ๊ฒ ๋๋ฆด๋ฟ๋ง ์๋๋ผ, ๋ฐฉํฅ์ ์ ๋๋ก ์ก์ง ๋ชปํ๊ณ ์ด์ํ ๊ณณ์์ ์๋ ดํ์ฌ ์ด๋ํ์ง ๋ชปํ๋ ๋ชจ์ต๋ ๊ด์ฐฐํ ์ ์๋ค. ์ฆ ๋จ์ํ SGD๋ฅผ ์ด์ฉํ์ฌ ๋คํธ์ํฌ๋ฅผ ํ์ต์ํฌ ๊ฒฝ์ฐ ๋คํธ์ํฌ๊ฐ ์๋์ ์ผ๋ก ์ข์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ง ๋ชปํ ๊ฒ์ด๋ผ๊ณ ์์ธกํ ์ ์๋ค. ๊ทธ๋ ๋ค๋ฉด ์ค์ ๋ก๋ ์ด๋ค ๋ฐฉ๋ฒ๋ค์ ์ด์ฉํด์ผ ํ๋ ๊ฒ์ธ๊ฐ? ์ด ๊ธ์์๋ Neural Network๋ฅผ ํ์ต์ํฌ ๋ ์ค์ ๋ก ๋ง์ด ์ฌ์ฉํ๋ ๋ค์ํ SGD์ ๋ณํ ์๊ณ ๋ฆฌ์ฆ๋ค์ ๊ฐ๋ตํ๊ฒ ์ดํด๋ณด๊ฒ ๋ค. ๋ด์ฉ๊ณผ ๊ทธ๋ฆผ์ ์๋น ๋ถ๋ถ์ Sebastian Ruder์ ๊ธ ์์ ์ฐจ์ฉํ๋ค.
Momentum
Momentum ๋ฐฉ์์ ๋ง ๊ทธ๋๋ก Gradient Descent๋ฅผ ํตํด ์ด๋ํ๋ ๊ณผ์ ์ ์ผ์ข ์ โ๊ด์ฑโ์ ์ฃผ๋ ๊ฒ์ด๋ค. ํ์ฌ Gradient๋ฅผ ํตํด ์ด๋ํ๋ ๋ฐฉํฅ๊ณผ๋ ๋ณ๊ฐ๋ก, ๊ณผ๊ฑฐ์ ์ด๋ํ๋ ๋ฐฉ์์ ๊ธฐ์ตํ๋ฉด์ ๊ทธ ๋ฐฉํฅ์ผ๋ก ์ผ์ ์ ๋๋ฅผ ์ถ๊ฐ์ ์ผ๋ก ์ด๋ํ๋ ๋ฐฉ์์ด๋ค. ์์์ผ๋ก ํํํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. vtvt๋ฅผ time step t์์์ ์ด๋ ๋ฒกํฐ๋ผ๊ณ ํ ๋, ๋ค์๊ณผ ๊ฐ์ ์์ผ๋ก ์ด๋์ ํํํ ์ ์๋ค.vt=ฮณvtโ1+ฮทโฮธJ(ฮธ)vt=ฮณvtโ1+ฮทโฮธJ(ฮธ)ฮธ=ฮธโvtฮธ=ฮธโvt
์ด ๋, ฮณฮณ๋ ์ผ๋ง๋ momentum์ ์ค ๊ฒ์ธ์ง์ ๋ํ momentum term์ผ๋ก์, ๋ณดํต 0.9 ์ ๋์ ๊ฐ์ ์ฌ์ฉํ๋ค. ์์ ์ดํด๋ณด๋ฉด ๊ณผ๊ฑฐ์ ์ผ๋ง๋ ์ด๋ํ๋์ง์ ๋ํ ์ด๋ ํญ v๋ฅผ ๊ธฐ์ตํ๊ณ , ์๋ก์ด ์ด๋ํญ์ ๊ตฌํ ๊ฒฝ์ฐ ๊ณผ๊ฑฐ์ ์ด๋ํ๋ ์ ๋์ ๊ด์ฑํญ๋งํผ ๊ณฑํด์ค ํ Gradient์ ์ด์ฉํ ์ด๋ step ํญ์ ๋ํด์ค๋ค. ์ด๋ ๊ฒ ํ ๊ฒฝ์ฐ ์ด๋ํญ vtvt ๋ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ ๋ฆฌํ ์ ์์ด, Gradient๋ค์ ์ง์ํ๊ท ์ ์ด์ฉํ์ฌ ์ด๋ํ๋ค๊ณ ๋ ํด์ํ ์ ์๋ค.vt=ฮทโฮธJ(ฮธ)t+ฮณฮทโฮธJ(ฮธ)tโ1+ฮณ2ฮทโฮธJ(ฮธ)tโ2+….vt=ฮทโฮธJ(ฮธ)t+ฮณฮทโฮธJ(ฮธ)tโ1+ฮณ2ฮทโฮธJ(ฮธ)tโ2+….
Momentum ๋ฐฉ์์ SGD๊ฐ Oscilation ํ์์ ๊ฒช์ ๋ ๋์ฑ ๋น์ ๋ฐํ๋ค. ๋ค์๊ณผ ๊ฐ์ด SGD๊ฐ Oscilation์ ๊ฒช๊ณ ์๋ ์ํฉ์ ์ดํด๋ณด์.
ํ์ฌ SGD๋ ์ค์์ ์ต์ ์ ์ผ๋ก ์ด๋ํด์ผํ๋ ์ํฉ์ธ๋ฐ, ํ๋ฒ์ step์์ ์์ง์ผ ์ ์๋ step size๋ ํ๊ณ๊ฐ ์์ผ๋ฏ๋ก ์ด๋ฌํ oscilation ํ์์ด ์ผ์ด๋ ๋๋ ์ข์ฐ๋ก ๊ณ์ ์ง๋ํ๋ฉด์ ์ด๋์ ๋ํญ์ ๊ฒช๊ฒ ๋๋ค.
๊ทธ๋ฌ๋ Momentum ๋ฐฉ์์ ์ฌ์ฉํ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด ์์ฃผ ์ด๋ํ๋ ๋ฐฉํฅ์ ๊ด์ฑ์ด ๊ฑธ๋ฆฌ๊ฒ ๋๊ณ , ์ง๋์ ํ๋๋ผ๋ ์ค์์ผ๋ก ๊ฐ๋ ๋ฐฉํฅ์ ํ์ ์ป๊ธฐ ๋๋ฌธ์ SGD์ ๋นํด ์๋์ ์ผ๋ก ๋น ๋ฅด๊ฒ ์ด๋ํ ์ ์๋ค.
๋ํ Momentum ๋ฐฉ์์ ์ด์ฉํ ๊ฒฝ์ฐ ์์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด local minima๋ฅผ ๋น ์ ธ๋์ค๋ ํจ๊ณผ๊ฐ ์์ ๊ฒ์ด๋ผ๊ณ ๋ ๊ธฐ๋ํ ์ ์๋ค. ๊ธฐ์กด์ SGD๋ฅผ ์ด์ฉํ ๊ฒฝ์ฐ ์ข์ธก์ local minima์ ๋น ์ง๋ฉด gradient๊ฐ 0์ด ๋์ด ์ด๋ํ ์๊ฐ ์์ง๋ง, momentum ๋ฐฉ์์ ๊ฒฝ์ฐ ๊ธฐ์กด์ ์ด๋ํ๋ ๋ฐฉํฅ์ ๊ด์ฑ์ด ์์ด ์ด local minima๋ฅผ ๋น ์ ธ๋์ค๊ณ ๋ ์ข์ minima๋ก ์ด๋ํ ๊ฒ์ ๊ธฐ๋ํ ์ ์๊ฒ ๋๋ค. ๋ฐ๋ฉด momentum ๋ฐฉ์์ ์ด์ฉํ ๊ฒฝ์ฐ ๊ธฐ์กด์ ๋ณ์๋ค ฮธฮธ ์ธ์๋ ๊ณผ๊ฑฐ์ ์ด๋ํ๋ ์์ ๋ณ์๋ณ๋ก ์ ์ฅํด์ผํ๋ฏ๋ก ๋ณ์์ ๋ํ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๊ธฐ์กด์ ๋ ๋ฐฐ๋ก ํ์ํ๊ฒ ๋๋ค.
Nesterov Accelerated Gradient (NAG)
Nesterov Accelerated Gradient(NAG)๋ Momentum ๋ฐฉ์์ ๊ธฐ์ด๋ก ํ ๋ฐฉ์์ด์ง๋ง, Gradient๋ฅผ ๊ณ์ฐํ๋ ๋ฐฉ์์ด ์ด์ง ๋ค๋ฅด๋ค. ๋น ๋ฅธ ์ดํด๋ฅผ ์ํด ๋ค์ ๊ทธ๋ฆผ์ ๋จผ์ ์ดํด๋ณด์.
Momentum ๋ฐฉ์์์๋ ์ด๋ ๋ฒกํฐ vtvt ๋ฅผ ๊ณ์ฐํ ๋ ํ์ฌ ์์น์์์ gradient์ momentum step์ ๋ ๋ฆฝ์ ์ผ๋ก ๊ณ์ฐํ๊ณ ํฉ์น๋ค. ๋ฐ๋ฉด, NAG์์๋ momentum step์ ๋จผ์ ๊ณ ๋ คํ์ฌ, momentum step์ ๋จผ์ ์ด๋ํ๋ค๊ณ ์๊ฐํ ํ ๊ทธ ์๋ฆฌ์์์ gradient๋ฅผ ๊ตฌํด์ gradient step์ ์ด๋ํ๋ค. ์ด๋ฅผ ์์์ผ๋ก ๋ํ๋ด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.vt=ฮณvtโ1+ฮทโฮธJ(ฮธโฮณvtโ1)vt=ฮณvtโ1+ฮทโฮธJ(ฮธโฮณvtโ1)ฮธ=ฮธโvtฮธ=ฮธโvt
NAG๋ฅผ ์ด์ฉํ ๊ฒฝ์ฐ Momentum ๋ฐฉ์์ ๋นํด ๋ณด๋ค ํจ๊ณผ์ ์ผ๋ก ์ด๋ํ ์ ์๋ค. Momentum ๋ฐฉ์์ ๊ฒฝ์ฐ ๋ฉ์ถฐ์ผ ํ ์์ ์์๋ ๊ด์ฑ์ ์ํด ํจ์ฌ ๋ฉ๋ฆฌ ๊ฐ์๋ ์๋ค๋ ๋จ์ ์ด ์กด์ฌํ๋ ๋ฐ๋ฉด, NAG ๋ฐฉ์์ ๊ฒฝ์ฐ ์ผ๋จ ๋ชจ๋ฉํ ์ผ๋ก ์ด๋์ ๋ฐ์ ๋ ํ ํ ์ด๋ค ๋ฐฉ์์ผ๋ก ์ด๋ํด์ผํ ์ง๋ฅผ ๊ฒฐ์ ํ๋ค. ๋ฐ๋ผ์ Momentum ๋ฐฉ์์ ๋น ๋ฅธ ์ด๋์ ๋ํ ์ด์ ์ ๋๋ฆฌ๋ฉด์๋, ๋ฉ์ถฐ์ผ ํ ์ ์ ํ ์์ ์์ ์ ๋์ ๊ฑฐ๋ ๋ฐ์ ํจ์ฌ ์ฉ์ดํ๋ค๊ณ ์๊ฐํ ์ ์์ ๊ฒ์ด๋ค.
Adagrad
Adagrad(Adaptive Gradient)๋ ๋ณ์๋ค์ updateํ ๋ ๊ฐ๊ฐ์ ๋ณ์๋ง๋ค step size๋ฅผ ๋ค๋ฅด๊ฒ ์ค์ ํด์ ์ด๋ํ๋ ๋ฐฉ์์ด๋ค. ์ด ์๊ณ ๋ฆฌ์ฆ์ ๊ธฐ๋ณธ์ ์ธ ์์ด๋์ด๋ โ์ง๊ธ๊น์ง ๋ง์ด ๋ณํํ์ง ์์ ๋ณ์๋ค์ step size๋ฅผ ํฌ๊ฒ ํ๊ณ , ์ง๊ธ๊น์ง ๋ง์ด ๋ณํํ๋ ๋ณ์๋ค์ step size๋ฅผ ์๊ฒ ํ์โ ๋ผ๋ ๊ฒ์ด๋ค. ์์ฃผ ๋ฑ์ฅํ๊ฑฐ๋ ๋ณํ๋ฅผ ๋ง์ด ํ ๋ณ์๋ค์ ๊ฒฝ์ฐ optimum์ ๊ฐ๊น์ด ์์ ํ๋ฅ ์ด ๋๊ธฐ ๋๋ฌธ์ ์์ ํฌ๊ธฐ๋ก ์ด๋ํ๋ฉด์ ์ธ๋ฐํ ๊ฐ์ ์กฐ์ ํ๊ณ , ์ ๊ฒ ๋ณํํ ๋ณ์๋ค์ optimum ๊ฐ์ ๋๋ฌํ๊ธฐ ์ํด์๋ ๋ง์ด ์ด๋ํด์ผํ ํ๋ฅ ์ด ๋๊ธฐ ๋๋ฌธ์ ๋จผ์ ๋น ๋ฅด๊ฒ loss ๊ฐ์ ์ค์ด๋ ๋ฐฉํฅ์ผ๋ก ์ด๋ํ๋ ค๋ ๋ฐฉ์์ด๋ผ๊ณ ์๊ฐํ ์ ์๊ฒ ๋ค. ํนํ word2vec์ด๋ GloVe ๊ฐ์ด word representation์ ํ์ต์ํฌ ๊ฒฝ์ฐ ๋จ์ด์ ๋ฑ์ฅ ํ๋ฅ ์ ๋ฐ๋ผ variable์ ์ฌ์ฉ ๋น์จ์ด ํ์ฐํ๊ฒ ์ฐจ์ด๋๊ธฐ ๋๋ฌธ์ Adagrad์ ๊ฐ์ ํ์ต ๋ฐฉ์์ ์ด์ฉํ๋ฉด ํจ์ฌ ๋ ์ข์ ์ฑ๋ฅ์ ๊ฑฐ๋ ์ ์์ ๊ฒ์ด๋ค.
Adagrad์ ํ ์คํ ์ ์์ํํ์ฌ ๋ํ๋ด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.Gt=Gtโ1+(โฮธJ(ฮธt))2Gt=Gtโ1+(โฮธJ(ฮธt))2ฮธt+1=ฮธtโฮทGt+ฯตโโโโโโโ โฮธJ(ฮธt)ฮธt+1=ฮธtโฮทGt+ฯตโ โฮธJ(ฮธt)
Neural Network์ parameter๊ฐ k๊ฐ๋ผ๊ณ ํ ๋, GtGt๋ k์ฐจ์ ๋ฒกํฐ๋ก์ โtime step t๊น์ง ๊ฐ ๋ณ์๊ฐ ์ด๋ํ gradient์ sum of squaresโ ๋ฅผ ์ ์ฅํ๋ค. ฮธฮธ๋ฅผ ์ ๋ฐ์ดํธํ๋ ์ํฉ์์๋ ๊ธฐ์กด step size ฮทฮท์ GtGt์ ๋ฃจํธ๊ฐ์ ๋ฐ๋น๋กํ ํฌ๊ธฐ๋ก ์ด๋์ ์งํํ์ฌ, ์ง๊ธ๊น์ง ๋ง์ด ๋ณํํ ๋ณ์์ผ ์๋ก ์ ๊ฒ ์ด๋ํ๊ณ ์ ๊ฒ ๋ณํํ ๋ณ์์ผ ์๋ก ๋ง์ด ์ด๋ํ๋๋ก ํ๋ค. ์ด ๋ ฯตฯต์ 10โ410โ4 ~ 10โ810โ8 ์ ๋์ ์์ ๊ฐ์ผ๋ก์ 0์ผ๋ก ๋๋๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํ ์์ ๊ฐ์ด๋ค. ์ฌ๊ธฐ์์ GtGt๋ฅผ ์ ๋ฐ์ดํธํ๋ ์์์ ์ ๊ณฑ์ element-wise ์ ๊ณฑ์ ์๋ฏธํ๋ฉฐ, ฮธฮธ๋ฅผ ์ ๋ฐ์ดํธํ๋ ์์์๋ โ โ ์ element-wiseํ ์ฐ์ฐ์ ์๋ฏธํ๋ค.
Adagrad๋ฅผ ์ฌ์ฉํ๋ฉด ํ์ต์ ์งํํ๋ฉด์ ๊ตณ์ด step size decay๋ฑ์ ์ ๊ฒฝ์จ์ฃผ์ง ์์๋ ๋๋ค๋ ์ฅ์ ์ด ์๋ค. ๋ณดํต adagrad์์ step size๋ก๋ 0.01 ์ ๋๋ฅผ ์ฌ์ฉํ ๋ค, ๊ทธ ์ดํ๋ก๋ ๋ฐ๊พธ์ง ์๋๋ค. ๋ฐ๋ฉด, Adagrad์๋ ํ์ต์ ๊ณ์ ์งํํ๋ฉด step size๊ฐ ๋๋ฌด ์ค์ด๋ ๋ค๋ ๋ฌธ์ ์ ์ด ์๋ค. GG์๋ ๊ณ์ ์ ๊ณฑํ ๊ฐ์ ๋ฃ์ด์ฃผ๊ธฐ ๋๋ฌธ์ GG์ ๊ฐ๋ค์ ๊ณ์ํด์ ์ฆ๊ฐํ๊ธฐ ๋๋ฌธ์, ํ์ต์ด ์ค๋ ์งํ๋ ๊ฒฝ์ฐ step size๊ฐ ๋๋ฌด ์์์ ธ์ ๊ฒฐ๊ตญ ๊ฑฐ์ ์์ง์ด์ง ์๊ฒ ๋๋ค. ์ด๋ฅผ ๋ณด์ํ์ฌ ๊ณ ์น ์๊ณ ๋ฆฌ์ฆ์ด RMSProp๊ณผ AdaDelta์ด๋ค.
RMSProp
RMSProp์ ๋ฅ๋ฌ๋์ ๋๊ฐ ์ ํ๋ฆฌ ํํค์ด ์ ์ํ ๋ฐฉ๋ฒ์ผ๋ก์, Adagrad์ ๋จ์ ์ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ด๋ค. Adagrad์ ์์์ gradient์ ์ ๊ณฑ๊ฐ์ ๋ํด๋๊ฐ๋ฉด์ ๊ตฌํ GtGt ๋ถ๋ถ์ ํฉ์ด ์๋๋ผ ์ง์ํ๊ท ์ผ๋ก ๋ฐ๊พธ์ด์ ๋์ฒดํ ๋ฐฉ๋ฒ์ด๋ค. ์ด๋ ๊ฒ ๋์ฒด๋ฅผ ํ ๊ฒฝ์ฐ Adagrad์ฒ๋ผ GtGt๊ฐ ๋ฌดํ์ ์ปค์ง์ง๋ ์์ผ๋ฉด์ ์ต๊ทผ ๋ณํ๋์ ๋ณ์๊ฐ ์๋์ ์ธ ํฌ๊ธฐ ์ฐจ์ด๋ ์ ์งํ ์ ์๋ค. ์์ผ๋ก ๋ํ๋ด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.G=ฮณG+(1โฮณ)(โฮธJ(ฮธt))2G=ฮณG+(1โฮณ)(โฮธJ(ฮธt))2ฮธ=ฮธโฮทG+ฯตโโโโโโโ โฮธJ(ฮธt)ฮธ=ฮธโฮทG+ฯตโ โฮธJ(ฮธt)
AdaDelta
AdaDelta (Adaptive Delta) ๋ RMSProp๊ณผ ์ ์ฌํ๊ฒ AdaGrad์ ๋จ์ ์ ๋ณด์ํ๊ธฐ ์ํด ์ ์๋ ๋ฐฉ๋ฒ์ด๋ค. AdaDelta๋ RMSProp๊ณผ ๋์ผํ๊ฒ GG๋ฅผ ๊ตฌํ ๋ ํฉ์ ๊ตฌํ๋ ๋์ ์ง์ํ๊ท ์ ๊ตฌํ๋ค. ๋ค๋ง, ์ฌ๊ธฐ์์๋ step size๋ฅผ ๋จ์ํ๊ฒ ฮทฮท ๋ก ์ฌ์ฉํ๋ ๋์ step size์ ๋ณํ๊ฐ์ ์ ๊ณฑ์ ๊ฐ์ง๊ณ ์ง์ํ๊ท ๊ฐ์ ์ฌ์ฉํ๋ค.G=ฮณG+(1โฮณ)(โฮธJ(ฮธt))2G=ฮณG+(1โฮณ)(โฮธJ(ฮธt))2ฮฮธ=s+ฯตโโโโโG+ฯตโโโโโโโ โฮธJ(ฮธt)ฮฮธ=s+ฯตG+ฯตโ โฮธJ(ฮธt)ฮธ=ฮธโฮฮธฮธ=ฮธโฮฮธs=ฮณs+(1โฮณ)ฮ2ฮธs=ฮณs+(1โฮณ)ฮฮธ2
์ผํ ๋ณด๋ฉด ์ ์ด๋ฌํ ์์ด ๋์ถ๋์๋์ง ์ดํด๊ฐ ์๋ ์ ์์ง๋ง, ์ด๋ ์ฌ์ค Gradient Descent์ ๊ฐ์ first-order optimization ๋์ Second-order optimization์ approximate ํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ด๋ค. ์ค์ ๋ก ๋ ผ๋ฌธ์ ์ ์๋ SGD, Momentum, Adagrad์ ๊ฐ์ ์๋ค์ ๊ฒฝ์ฐ ฮฮธฮฮธ์ unit(๋จ์)์ ๊ตฌํด๋ณด๋ฉด ฮธฮธ์ unit์ด ์๋๋ผ ฮธฮธ์ unit์ ์ญ์๋ฅผ ๋ฐ๋ฅธ๋ค๋ ๊ฒ์ ์ง์ ํ๋ค. ฮธฮธ์ unit์ u(ฮธ)u(ฮธ)๋ผ๊ณ ํ๊ณ J๋ unit์ด ์๋ค๊ณ ์๊ฐํ ๊ฒฝ์ฐ, first-order optimization์์๋ฮฮธโโJโฮธโ1u(ฮธ)ฮฮธโโJโฮธโ1u(ฮธ)
์ด๋ค. ๋ฐ๋ฉด, Newton method์ ๊ฐ์ second-order optimization์ ์๊ฐํด๋ณด๋ฉดฮฮธโโJโฮธโ2Jโฮธ2โu(ฮธ)ฮฮธโโJโฮธโ2Jโฮธ2โu(ฮธ)
์ด๋ฏ๋ก ๋ฐ๋ฅธ unit์ ๊ฐ์ง๊ฒ ๋๋ค. ๋ฐ๋ผ์ ์ ์๋ Newtonโs method๋ฅผ ์ด์ฉํ์ฌ ฮฮธฮฮธ๊ฐ โJโฮธโ2Jโฮธ2โJโฮธโ2Jโฮธ2 ๋ผ๊ณ ์๊ฐํ ํ, 1โ2Jโฮธ2=ฮฮธโJโฮธ1โ2Jโฮธ2=ฮฮธโJโฮธ ์ด๋ฏ๋ก ์ด๋ฅผ ๋ถ์์ Root Mean Square, ๋ถ๋ชจ์ Root Mean Square ๊ฐ์ ๋น์จ๋ก ๊ทผ์ฌํ ๊ฒ์ด๋ค. ๋์ฑ ์์ธํ ์ค๋ช ์ ์ํ์๋ ๋ถ์ ๋ ผ๋ฌธ์ ์ง์ ์ฝ์ด๋ณด์๊ธธ ๋ฐ๋๋ค.
Adam
Adam (Adaptive Moment Estimation)์ RMSProp๊ณผ Momentum ๋ฐฉ์์ ํฉ์น ๊ฒ ๊ฐ์ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ์ด ๋ฐฉ์์์๋ Momentum ๋ฐฉ์๊ณผ ์ ์ฌํ๊ฒ ์ง๊ธ๊น์ง ๊ณ์ฐํด์จ ๊ธฐ์ธ๊ธฐ์ ์ง์ํ๊ท ์ ์ ์ฅํ๋ฉฐ, RMSProp๊ณผ ์ ์ฌํ๊ฒ ๊ธฐ์ธ๊ธฐ์ ์ ๊ณฑ๊ฐ์ ์ง์ํ๊ท ์ ์ ์ฅํ๋ค.mt=ฮฒ1mtโ1+(1โฮฒ1)โฮธJ(ฮธ)mt=ฮฒ1mtโ1+(1โฮฒ1)โฮธJ(ฮธ)vt=ฮฒ2vtโ1+(1โฮฒ2)(โฮธJ(ฮธ))2vt=ฮฒ2vtโ1+(1โฮฒ2)(โฮธJ(ฮธ))2
๋ค๋ง, Adam์์๋ m๊ณผ v๊ฐ ์ฒ์์ 0์ผ๋ก ์ด๊ธฐํ๋์ด ์๊ธฐ ๋๋ฌธ์ ํ์ต์ ์ด๋ฐ๋ถ์์๋ mt,vtmt,vt๊ฐ 0์ ๊ฐ๊น๊ฒ bias ๋์ด์์ ๊ฒ์ด๋ผ๊ณ ํ๋จํ์ฌ ์ด๋ฅผ unbiased ํ๊ฒ ๋ง๋ค์ด์ฃผ๋ ์์ ์ ๊ฑฐ์น๋ค. mtmt ์ vtvt์ ์์ โโ ํํ๋ก ํผ์น ํ ์๋ณ์ expectation์ ์์์ ์ ๋ฆฌํด๋ณด๋ฉด, ๋ค์๊ณผ ๊ฐ์ ๋ณด์ ์ ํตํด unbiased ๋ expectation์ ์ป์ ์ ์๋ค. ์ด ๋ณด์ ๋ expectation๋ค์ ๊ฐ์ง๊ณ gradient๊ฐ ๋ค์ด๊ฐ ์๋ฆฌ์ mt^mt^, GtGt๊ฐ ๋ค์ด๊ฐ ์๋ฆฌ์ vt^vt^๋ฅผ ๋ฃ์ด ๊ณ์ฐ์ ์งํํ๋ค.mt^=mt1โฮฒt1mt^=mt1โฮฒ1tvt^=vt1โฮฒt2vt^=vt1โฮฒ2tฮธ=ฮธโฮทvt^+ฯตโโโโโโmt^ฮธ=ฮธโฮทvt^+ฯตmt^
๋ณดํต ฮฒ1ฮฒ1 ๋ก๋ 0.9, ฮฒ2ฮฒ2๋ก๋ 0.999, ฯตฯต ์ผ๋ก๋ 10โ810โ8 ์ ๋์ ๊ฐ์ ์ฌ์ฉํ๋ค๊ณ ํ๋ค.
Summing up
์ง๊ธ๊น์ง ๋ค์ํ Gradient Descent ์๊ณ ๋ฆฌ์ฆ์ ๋ณํ ์๊ณ ๋ฆฌ์ฆ๋ค์ ์์๋ณด์๋ค. Momentum, NAG, AdaGrad, AdaDelta, RMSProp, Adam ๋ฑ ๋ค์ํ ์๊ณ ๋ฆฌ์ฆ๋ค์ด ์์์ง๋ง ์ด ์ค์์ ์ด๋ ์๊ณ ๋ฆฌ์ฆ์ด ๊ฐ์ฅ ์ข๋ค, ๋ผ๊ณ ๋งํ๊ธฐ๋ ํ๋ค๋ค. ์ด๋ค ๋ฌธ์ ๋ฅผ ํ๊ณ ์๋์ง, ์ด๋ค ๋ฐ์ดํฐ์ ์ ์ฌ์ฉํ๋์ง, ์ด๋ค ๋คํธ์ํฌ์ ๋ํด ์ ์ฉํ๋์ง์ ๋ฐ๋ผ ๊ฐ ๋ฐฉ๋ฒ์ ์ฑ๋ฅ์ ํ์ดํ๊ฒ ์ฐจ์ด๊ฐ ๋ ๊ฒ์ด๋ฏ๋ก ์ค์ ๋ก ๋คํธ์ํฌ๋ฅผ ํ์ต์ํฌ ๋๋ ๋ค์ํ ์๋๋ฅผ ํด๋ณด๋ฉฐ ํ์ฌ ๊ฒฝ์ฐ์์๋ ์ด๋ค ์๊ณ ๋ฆฌ์ฆ์ด ๊ฐ์ฅ ์ฑ๋ฅ์ด ์ข์์ง์ ๋ํด ์คํํด๋ณผ ํ์๊ฐ ์๋ค. ๋คํํ, Tensorflow ๋ฑ์ Machine learning library๋ฅผ ์ฌ์ฉํ๋ฉด ์ฝ๋ ํ ์ค๋ง ๋ณํ์ํค๋ฉด ์ฝ๊ฒ ์ด๋ค optimizer๋ฅผ ์ฌ์ฉํ ๊ฒ์ธ์ง ์ค์ ํด์ค ์ ์์ด ๊ฐํธํ๊ฒ ์คํํด๋ณผ ์ ์์ ๊ฒ์ด๋ค.
์ฌ๊ธฐ์ ์ค๋ช ํ ์๊ณ ๋ฆฌ์ฆ๋ค์ ๋ชจ๋ Stochastic Gradient Descent, ์ฆ ๋จ์ํ first-order optimization์ ๋ณํ๋ค์ด๋ค. ์ด ์ธ์๋ Newtonโs Method ๋ฑ second-order optimization์ ๊ธฐ๋ฐ์ผ๋ก ํ ์๊ณ ๋ฆฌ์ฆ๋ค๋ ์๋ค. ๊ทธ๋ฌ๋ ๋จ์ํ second-order optimization์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ Hessian Matrix๋ผ๋ 2์ฐจ ํธ๋ฏธ๋ถ ํ๋ ฌ์ ๊ณ์ฐํ ํ ์ญํ๋ ฌ์ ๊ตฌํด์ผ ํ๋๋ฐ, ์ด ๊ณ์ฐ๊ณผ์ ์ด ๊ณ์ฐ์ ์ผ๋ก ๋น์ผ ์์ ์ด๊ธฐ ๋๋ฌธ์ ๋ณดํต ์ ์ฌ์ฉ๋์ง ์๋๋ค. ์ด๋ฌํ ๊ณ์ฐ๋์ ์ค์ด๊ธฐ ์ํด hessian matrix๋ฅผ ๊ทผ์ฌํ๊ฑฐ๋ ์ถ์ ํด๋๊ฐ๋ฉด์ ๊ณ์ฐ์ ์งํํ๋ BFGS / L-BFGS ๋ฑ์ ์๊ณ ๋ฆฌ์ฆ, ๊ทธ๋ฆฌ๊ณ hessian matrix๋ฅผ ์ง์ ๊ณ์ฐํ์ง ์์ผ๋ฉด์ second-order optimization์ธ Hessian-Free Optimization ๋ฑ๋ ์กด์ฌํ๋ค. ์ด๋ฌํ ๋ถ๋ถ๋ค์ ๋ํด์๋ ๋์ค์ ๊ธฐํ๊ฐ ๋๋ฉด ๊ณต๋ถํด์ ์ธ๊ธํด๋ณด๋๋ก ํ๊ฒ ๋ค.
metric(ํ๊ฐ์งํ)
Validation set์์ ํ๋ จ๋ ๋ชจ๋ธ์ ์ฑ๋ฅ์ ํ๊ฐํ ๋, ์ด๋ค ํ๊ฐ์งํ๋ก ํ๊ฐํ ์ง๋ฅผ ๊ฒฐ์ ํด์ค๋๋ค.
๊ฒ์ฆ์
๊ณผ ์ฐ๊ด. ํ๋ จ ๊ณผ์ ์ ๋ชจ๋ํฐ๋งํ๋๋ฐ ์ฌ์ฉ.
(ํ๊ฐ์งํ๋ก ์ด๋ค ๊ฒ์ ์ฌ์ฉํ๋๋ผ๋ ๋ชจ๋ธ ๊ฐ์ค์น์ ์
๋ฐ์ดํธ์๋ ์ํฅ์ ๋ฏธ์น์ง ์๋๋ค)
ํ์ต๊ณก์ ์ ๊ทธ๋ฆด ๋ ์์คํจ์์ ํ๊ฐ์งํ๋ฅผ ์ํฌํฌ(epoch)๋ง๋ค ๊ณ์ฐํ ๊ฒ์ ๊ทธ๋ ค์ฃผ๋๋ฐ, ์์คํจ์์ ์ถ์ด์ ํ๊ฐ์งํ์ ์ถ์ด๋ฅผ ๋น๊ตํด๋ณด๋ฉด์ ๋ชจ๋ธ์ด ๊ณผ๋์ ํฉ(overfit) ๋๋ ๊ณผ์์ ํฉ(underfit)๋๊ณ ์๋์ง ์ฌ๋ถ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
bskyvision์ ์ถ์ฒ๊ธ โ
[python] ํผ์ด์จ ์๊ด๊ณ์๋ฅผ ๋ชจ๋ธ์ ์์คํจ์ ๋๋ ํ๊ฐ์งํ๋ก ์ฌ์ฉํ๋ ค๋ฉด
<์ฐธ๊ณ ์๋ฃ>
[1] https://keras.io/ko/metrics/, Keras Documentation, “์ธก์ ํญ๋ชฉ์ ์ฌ์ฉ๋ฒ” [2] https://keras.io/ko/losses/, Keras Documentation, “์์ค ํจ์์ ์ฌ์ฉ” [3] https://www.tensorflow.org/guide/keras/overview?hl=ko, TensorFlow, “์ผ๋ผ์ค: ๋น ๋ฅด๊ฒ ํ์ด๋ณด๊ธฐ”