๐Ÿš€ ๋”ฅ๋Ÿฌ๋‹ ์‹ค์Šต - Tensorflow ๋ชจ๋ธ ์„ค๊ณ„ํ•˜๊ธฐ (ํ์•” ์ˆ˜์ˆ  ํ™˜์ž์˜ ์˜ˆ์ธก)

vincaยท2022๋…„ 10์›” 27์ผ
0

๐ŸŒ” AI/DL - Training

๋ชฉ๋ก ๋ณด๊ธฐ
1/5
post-thumbnail

๐ŸŸข Introduction

ํ์•”์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์ƒ์กดํ• ์ง€, ์‚ฌ๋งํ• ์ง€ ์˜ˆ์ธกํ•˜๋Š” regression ๋ชจ๋ธ

ํ•ด๋‹น ์ฝ”๋“œ์—์„œ๋Š” keras ๋ฐ Tensorflow์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•ด, ์‚ฌ์šฉ์ž์—๊ฒŒ ์ƒ๋‹นํžˆ ํŽธ๋ฆฌํ•˜๊ฒŒ ์ œ๊ณต๋˜๋ฏ€๋กœ, ์ˆ˜์‹์ ์ธ ๋ถ€๋ถ„์€ ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์ฝ”๋“œ์˜ ๊ธธ์ด๊ฐ€ ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ํŒŒ์ผ์„ importํ•˜๋Š” ๊ฒƒ์„ ์ œ์™ธํ•˜๊ณค 10์ค„ ์ •๋„ ์ž…๋‹ˆ๋‹ค.

์ง์ ‘ ์ˆ˜์‹์„ ์†์ˆ˜ ์ž‘์„ฑํ–ˆ๋‹ค๋ฉด ์ƒ๋‹นํžˆ ๊ธธ์–ด์ ธ์•ผํ•  ๋ถ€๋ถ„๋“ค์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•ด ๋งค์šฐ๋งค์šฐ ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ดํ›„ ์ง์ ‘ ์ˆ˜์‹์„ ํ†ตํ•ด ์ดํ•ดํ•˜๊ณ , ์ˆ˜ํ–‰ํ•˜๋Š” ๊ณผ์ •์— ๋Œ€ํ•ด์„œ๋„ ๋‹ค๋ค„ ๋ณผ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

Google Colab ํ™˜๊ฒฝ์—์„œ ์ง„ํ–‰

๊ตฌ๊ธ€ ์ฝ”๋žฉ์— ํ•ด๋‹น ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋ถ™์—ฌ ๋„ฃ๊ฑฐ๋‚˜,
ํ•ด๋‹น ํŒŒ์ผ์„ ๋‹ค์šด๋ฐ›์•„ ์—…๋กœ๋“œ ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

Github


์‹ค์Šต (071_01_ANN_ThoraricSurgery.ipynb)

  • ํ•ด๋‹น ๊ธ€์—์„œ๋Š” 071_01๋งŒ ๋‹ค๋ค„๋ณด๋„๋ก ํ•œ๋‹ค.

๋ณธ๊ฒฉ์ ์œผ๋กœ ํ์•” ์ˆ˜์ˆ  ํ™˜์ž๊ฐ€ ์‚ด์ง€ ์ฃฝ์„์ง€ ์˜ˆ์ธกํ•˜๋Š” ๋ชจ๋ธ์„ ๋งŒ๋“ค์–ด ๋ณด๋„๋ก ํ•˜์ž.


1) ํŒŒ์ผ ์„ ํƒ์„ ํ†ตํ•ด ์˜ˆ์ œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ด ์ปดํ“จํ„ฐ์—์„œ ๋ถˆ๋Ÿฌ์˜จ๋‹ค.
์˜ˆ์ œ ๋ฐ์ดํ„ฐ๋Š” CSVํŒŒ์ผ ํ˜•ํƒœ๋กœ ๋˜์–ด์žˆ๋‹ค. (github์— ํฌํ•จ)

from google.colab import files
uploaded = files.upload()
my_data = 'ThoraricSurgery.csv

2) ๋”ฅ๋Ÿฌ๋‹์„ ๊ตฌ๋™ํ•˜๋Š”๋ฐ, ํ•„์š”ํ•œ ์ผ€๋ผ์Šค ํ•จ์ˆ˜ ๋ฐ numpy๋ฅผ ๋ถˆ๋Ÿฌ์˜จ๋‹ค.

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
import pandas as pd
import numpy as np
import tensorflow as tf

3) ์‹คํ–‰ํ•  ๋•Œ๋งˆ๋‹ค ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ์ถœ๋ ฅ๋˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‹œ๋“œ๋ฅผ ๊ณ ์ •ํ•ด์ค€๋‹ค.

np.random.seed(3)
tf.random.set_seed(3)

4) ํ™˜์ž ๊ธฐ๋ก์„ ๋ถˆ๋Ÿฌ์˜จ๋‹ค.

df = pd.read_csv(my_data, header=None)
Data_set = df.to_numpy()

ํ™˜์ž ๊ธฐ๋ก์˜ csv ํŒŒ์ผ์„ ์‚ดํŽด๋ณด์ž.
ํ–‰์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ด 470๊ฐœ ์ฆ‰, 470๋ช…์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•œ๋‹ค.
์—ด์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ด 18๊ฐœ๋กœ (1~17)์€ ์ข…์–‘์˜ ์œ ํ˜•์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ๋งˆ์ง€๋ง‰(18)์€ ์ƒ์กด์—ฌ๋ถ€๋ฅผ 1or0์œผ๋กœ ๋‚˜ํƒ€๋‚ธ๋‹ค.

5) ํ™˜์ž์˜ ๊ธฐ๋ก๊ณผ ์ˆ˜์ˆ ๊ฒฐ๊ณผ๋ฅผ X์™€ Y๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ €์žฅํ•œ๋‹ค.
์ฆ‰, ์ž…๋ ฅ๋ฐ์ดํ„ฐ(X)์™€ ๊ฒฐ๊ณผ-์ •๋‹ต๋ฐ์ดํ„ฐ(Y)๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค.

X = Data_set[: ,0 :17]
Y = Data_set[: ,17]

  • X์˜ :๋Š” ํ–‰ ์ „์ฒด(๋ชจ๋“  ์ผ€์ด์Šค)๋ฅผ ์˜๋ฏธํ•˜๊ณ  ,๋’ค์˜ 0:17์€ 0์„ ํฌํ•จํ•œ 17 ์ด์ „๊นŒ์ง€์˜ ์ธ๋ฑ์Šค๋ฅผ ๋งํ•œ๋‹ค. (0~16 ์ด 17๊ฐœ)

  • Y์˜ :๋˜ํ•œ ํ–‰ ์ „์ฒด(๋ชจ๋“  ์ผ€์ด์Šค)๋ฅผ ์˜๋ฏธํ•˜๊ณ , 17์˜ ์ธ๋ฑ์Šค๋Š” 18๋ฒˆ์งธ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
    (-1์„ ์“ฐ๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค)

๊ทธ๋ฆผ์œผ๋กœ ํ‘œํ˜„ํ•œ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด X(ํŒŒ๋ž‘), Y(๋…ธ๋ž‘)๊ณผ ๊ฐ™์ด ๋ถ„๋ฅ˜๋œ๋‹ค.

6) ๋ชจ๋ธ์„ ์ •์˜ํ•œ๋‹ค.

model = Sequential()
model.add(Dense(30, input_dim=17, activation='relu'))
model.add(Dense(1, activation='sigmoid'))

  • Sequential() : ๋ชจ๋ธ์˜ ํ‹€์„ ์ƒ์„ฑํ•œ๋‹ค.

  • ์ฒซ๋ฒˆ์งธ add()

    • add() : ๊ฐ add ํ•˜๋‚˜๋‹น ์ธต์ด ํ•˜๋‚˜์”ฉ ์ถ”๊ฐ€๋œ๋‹ค.
    • Dense : Fully Connectedํ•œ ๋ฐฉ์‹์œผ๋กœ ์ธต์„ ๊ตฌ์„ฑํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. ํ˜„์žฌ์—์„œ ๋‹ค์Œ ๋…ธ๋“œ๋กœ์˜ ์—ฐ๊ฒฐ์ด ์™„์ „ํžˆ ์ „๋ถ€ ์—ฐ๊ฒฐ ๋˜์–ด์žˆ๋‹ค๋Š” ๋œป์œผ๋กœ ์ •๋‹ต์„ ๊ฒฐ์ •์ง“๋Š” weight๊ฐ€ ๋ชจ๋“  ์—ฐ๊ฒฐ๋งˆ๋‹ค ์กด์žฌํ•œ๋‹ค.
    • input_dim : ์ž…๋ ฅ๋˜๋Š” feture์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ด 17๊ฐœ์ด๋ฏ€๋กœ ์ž…๋ ฅ์œผ๋กœ ๋“ค์–ด์˜ค๋Š” ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜๋Š” 17๊ฐœ์ด๋‹ค. ๋”ฐ๋ผ์„œ hidden layer์—์„œ ๋ฐ›๊ฒŒ ๋˜๋Š” (input_dim)๋Š” 17์ด๋‹ค.
    • 30 : hidden layer์— ์‚ฌ์šฉํ•  ์œ ๋‹›์˜ ๊ฐœ์ˆ˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
    • activation : ํ™œ์„ฑํ•จ์ˆ˜. vanishing gradient ๋ฌธ์ œ๋ฅผ ๋ฐœ์ƒํ•˜๋Š” sigmoid๊ฐ€ ์•„๋‹Œ relu๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.
  • ๋‘๋ฒˆ์งธ add()

    • ์ฃฝ๋А๋ƒ, ์‚ฌ๋А๋ƒ 2์ง„์œผ๋กœ ๋ถ„๋ฅ˜ ๋˜๋ฏ€๋กœ 1๊ฐœ์˜ ๋…ธ๋“œ๋กœ ์ถฉ๋ถ„ํ•˜๋ฉฐ, ์ด์ง„ ๋ถ„๋ฅ˜์— ์ตœ์ ์ธ sigmoidํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

์ธต์„ ํ•˜๋‚˜ ๋” ์ถ”๊ฐ€ํ•œ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ดํ•  ์ˆ˜ ์žˆ๋‹ค. input_dim์— ์œ ์˜ํ•˜์—ฌ ๋ณด์ž.

model = Sequential()
model.add(Dense(30, input_dim=17, activation='relu'))
model.add(Dense(40, input_dim=30, activation='relu'))
model.add(Dense(1, activation='sigmoid'))

7) ๋ชจ๋ธ์„ ํ•™์Šตํ•œ๋‹ค. (๋”ฅ๋Ÿฌ๋‹)

model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy', tf.ke
ras.metrics.Recall()])
model.fit(X, Y, epochs=100, batch_size=10)
  • compile() : ๋ชจ๋ธ์„ ํ•™์Šตํ•˜๊ธฐ ์œ„ํ•ด์„œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํ™˜๊ฒฝ์„ค์ •์„ ํ•ด์ค€๋‹ค.
    (์ด๋Ÿฌ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ํ•™์Šต์„ ํ•ด์ค˜๋ผ๊ณ  ๋ชจ๋ธํ•œํ…Œ ์•Œ๋ ค์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.)
    • loss : ๋น„์šฉํ•จ์ˆ˜๋ฅผ ์–ด๋–ค ๊ฑธ๋กœ ์‚ฌ์šฉํ•  ๊ฒƒ์ธ๊ฐ€?
    • optimizer : ์ตœ์ ํ™” ๋ฐฉ๋ฒ•(weight์˜ update ๋ฐฉ๋ฒ•)์€ ์–ด๋–ค ๊ฑธ๋กœ ์‚ฌ์šฉํ•  ๊ฒƒ์ธ๊ฐ€?
    • metrics : ๋ชจ๋ธ์„ ํ‰๊ฐ€ํ• ๋•Œ, ํ‰๊ฐ€ํ•˜๋Š” ์ง€ํ‘œ๋กœ ์–ด๋–ค ๊ฑธ ๋ณด๊ณ  ์‹ถ์€๊ฐ€? (์ •ํ™•๋„, ์žฌํ˜„์œจ, F1์Šค์ฝ”์–ด ๋“ฑ..)
  • Fit() : ๋ชจ๋ธ์„ ํ•™์Šต์‹œํ‚จ๋‹ค.

    • X : ํ•™์Šต๋ฐ์ดํ„ฐ

    • Y : ์ •๋‹ต๋ฐ์ดํ„ฐ
      (ํ•™์Šต๋ฐ์ดํ„ฐ์™€ ์ •๋‹ต์„ ๋ชจ๋ธ์—๊ฒŒ ํ•จ๊ป˜ ์ œ๊ณตํ•˜๋ฏ€๋กœ ์ง€๋„ํ•™์Šต์ด๋‹ค)

    • epochs : ๋ชจ๋“  ์ƒ˜ํ”Œ์„ ํ†ตํ•ด ํ•™์Šตํ•  ๋•Œ, ์ด๋ฅผ 1 epoch์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ด๋•Œ ๋ช‡๋ฒˆ ํ•™์Šตํ•  ๊ฒƒ์ธ๊ฐ€?

    • batch_size : ๊ฐ€์ค‘์น˜๋ฅผ updateํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” SGD, BatchGD ๋‘๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.
      ์ด๋•Œ, SGD๋ผ๋ฉด 1epoch๋‹น 470๊ฐœ์˜ ๋ชจ๋“  ์ƒ˜ํ”Œ๋งˆ๋‹ค ๊ฐ€์ค‘์น˜๊ฐ€ update๋˜๊ฒŒ ๋œ๋‹ค.
      BatchGD๋ผ๋ฉด 1epoch๋‹น 470๊ฐœ์˜ ์ƒ˜ํ”Œ์„ ๋ชจ๋‘ ๋ฐ˜์˜ํ•œ 1๋ฒˆ์˜ update๋งŒ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค.

      • ์—ฌ๊ธฐ์„œ batch_size๋ฅผ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ง€์ •ํ•˜๋Š” ์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•์ด ๋ฐ”๋กœ mini batch๋ฐฉ๋ฒ•์ด๋‹ค.

mini batch (๋ฏธ๋‹ˆ ๋ฐฐ์น˜)

์ด๋“ค์˜ ์ค‘๊ฐ„์ง€์ ์„ ์ฐพ์•„, ํƒ€ํ˜‘ํ•œ ๋ฐฉ๋ฒ•์ด ๋ฐ”๋กœ mini_batch์ด๋‹ค. ์ด๋Ÿฌํ•œ batch_size๋ฅผ ์ง€์ •ํ•จ์œผ๋กœ์จ mini_batch๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
์˜ˆ์ œ์—์„œ๋Š” batch_size๊ฐ€ 10์ด๋ฏ€๋กœ ์ด 470๊ฐœ์˜ ์ƒ˜ํ”Œ์ด ์žˆ์„ ๋•Œ, 1 epoch ๋งˆ๋‹ค 47๋ฒˆ์˜ update๊ฐ€ ์ˆ˜ํ–‰๋˜๊ฒŒ ๋œ๋‹ค.

ํ•™์Šต ๊ฒฐ๊ณผ


์˜ค์ฐจ๊ฐ€ ๊ฝค๋‚˜ ํฌ๊ฒŒ ๋‚˜์™”๋‹ค. ์ด๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด์„œ ์ธต์„ ๋” ์Œ“๊ฑฐ๋‚˜, batch_size๋ฅผ ๋‹ค๋ฅด๊ฒŒ ์กฐ์ ˆ ํ•˜๊ฑฐ๋‚˜, optimizer๋ฅผ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜, optimizer์˜ ๋‚ด๋ถ€ lr๋ฅผ ์กฐ์ ˆํ•˜๋Š” ๋“ฑ ์—ฌ๋Ÿฌ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•ด๋ณด๊ณ  ์‹œ๋„ํ•ด๋ณด๋ฉด ๋œ๋‹ค. ์ด๋Ÿฌํ•œ ์ตœ์ ์˜ ๊ฐ’์„ ์ฐพ๋Š” ๊ฒƒ์ด ๋”ฅ๋Ÿฌ๋‹์ด๋‹ค.

๋น„์šฉํ•จ์ˆ˜์˜ ์ข…๋ฅ˜

๋น„์šฉํ•จ์ˆ˜๋Š” ์‚ฌ์‹ค ๊ฑฐ์˜ ๊ณ ์ •์ ์ด๋‹ค.
ํšŒ๊ท€์™€ ๋ถ„๋ฅ˜์— ๋”ฐ๋ผ ์‚ฌ์šฉ๋˜๋Š” ๋น„์šฉํ•จ์ˆ˜๊ฐ€ ๋‹ค๋ฅด๊ธฐ์—, ๋ณ€๊ฒฝํ•  ์ผ์ด ์ž˜ ์—†๋‹ค.
์ด๋ฒˆ ๋ฌธ์ œ์—์„œ๋Š” (์ƒ์กด/์‚ฌ๋ง)์˜ ์ด์ง„ ๋ถ„๋ฅ˜ ๋ฌธ์ œ์ด๋ฏ€๋กœ logistic(sigmoid)์ž˜ ํ‘œํ˜„ํ•˜๋Š” ์˜ค์ฐจ ํ•จ์ˆ˜์ธ binary_crossentropy๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.
์ด๋Ÿฌํ•œ ์‚ฌ์šฉ์— ๋Œ€ํ•ด์„œ๋Š” logistic regression์„ ์ฐธ๊ณ ํ•˜๋ฉด ์‰ฝ๊ฒŒ ์ดํ•ด๋  ๊ฒƒ์ด๋‹ค.

์ตœ์ ํ™”(update ๋ฐฉ๋ฒ•)์˜ ์ข…๋ฅ˜

์ตœ์ ํ™”๋ž€ ๊ฒฐ๊ตญ, ๊ฒฝ์‚ฌ ํ•˜๊ฐ•๋ฒ•์„ ํ†ตํ•œ weight๊ฐ’์˜ update๋ฅผ ๋œปํ•œ๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ ๋ชจ๋ธ์˜ ์ตœ์ ํ™”๋Š” ๊ฑฐ์˜ ๊ณ ์ •์ ์œผ๋กœ adam์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ด๊ฒŒ ๊ฐ€์žฅ ์†๋„๋„ ๋ฌด๋‚œํ•˜๊ณ  ๊ฒฐ๊ณผ๋„ ์ข‹๋‹ค๊ณ  ํ•œ๋‹ค.
์ด์™ธ์—๋„ ์—ฌ๋Ÿฌ ์ตœ์ ํ™” ํ•จ์ˆ˜๋“ค์ด ์žˆ๋‹ค. ํ•œ๋ฒˆ ์‚ฌ์šฉํ•ด ๋ณด๋Š” ๊ฒƒ๋„ ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.

์ตœ์ ํ™” ํ•จ์ˆ˜ ํŠœ๋‹? "์ง์ ‘ ์ •์˜"

์ตœ์ ํ™” ํ•จ์ˆ˜์˜ ์ด๋ฆ„๋งŒ ๋“ค๊ณ ์™€์„œ ๊ทธ๋Œ€๋กœ default ๊ฐ’์˜ ์ตœ์ ํ™” ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ์ง์ ‘ ์ตœ์ ํ™” ํ•จ์ˆ˜์—์„œ์˜ ๋‚ด๋ถ€์˜ ํŠœ๋‹(?)๋˜ํ•œ ๊ฐ€๋Šฅํ•˜๋‹ค.
(ํ•„์ž๊ฐ€ ํ•ด๋ณธ ๋ฐ”๋กœ๋Š” ๋ช‡๋ช‡ ์ข…๋ฅ˜์˜ ํ•™์Šต์€ ์ง์ ‘ ์ตœ์ ํ™” ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•ด์„œ ๋‚ด๋ถ€ ํŠœ๋‹? ๋˜ํ•œ ์‹œ์ผœ์ฃผ์–ด์•ผ ์ œ๋Œ€๋กœ๋œ ํ•™์Šต์ด ์ด๋ฃจ์–ด์ง€๋Š” ๊ฒฝ์šฐ๋„ ์ข…์ข… ์žˆ์—ˆ๋‹ค.)

# ๊ธฐ์กด์˜ ๋ฐฉ๋ฒ•
model.compile(loss='mean_squared_error', optimizer='sgd')
# ์ง์ ‘ ์ตœ์ ํ™” ํ•จ์ˆ˜ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์„œ ์‚ฌ์šฉ
sgd = optimizers.SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True) 
model.compile(loss='mean_squared_error', optimizer=sgd)

SGD์— ๊ด€ํ•œ ์ถ”๊ฐ€์ ์ธ ๊ณ ์ฐฐ

SGD๋ผ๊ณ  ํ•ด์„œ, ๋งŒ์•ฝ sample ๋ฐ์ดํ„ฐ 100๊ฐœ๊ฐ€ ์žˆ์„ ๋•Œ, ๋งˆ๋ƒฅ sample์˜ ์ˆœ์„œ๋Œ€๋กœ 1, 2, 3,, 100 ๋ฒˆ์งธ sample์˜ ์ˆœ์„œ๋Œ€๋กœ ์ฐจ๋ก€ ์ฐจ๋ก€ ๊ฐ€์ค‘์น˜๋ฅผ update์‹œํ‚ค๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.

58, 92, 3, 64, 18, 23 ,... ์ด๋Ÿฐ ์‹์˜ ๋ฌด์ž‘์œ„ ์ˆœ์„œ๋กœ ์ƒ˜ํ”Œ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  update๋ฅผ ์‹œํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค.

๊ทธ๋ ‡๊ธฐ์— Stochastic Gradient Descent์ด๋‹ค.

์ฐธ๊ณ ์ž๋ฃŒ

https://www.kaggle.com/learn/intro-to-deep-learning

profile
๋ถ‰์€ ๋ฐฐ ์˜ค์ƒ‰ ๋”ฑ๋‹ค๊ตฌ๋ฆฌ ๊ฐœ๋ฐœ์ž ๐ŸฆƒCloud & DevOps

0๊ฐœ์˜ ๋Œ“๊ธ€