[AIS7] DL (3)

BBakHyeยท2022๋…„ 11์›” 30์ผ
0

๐Ÿฆ AI SCHOOL 7๊ธฐ

๋ชฉ๋ก ๋ณด๊ธฐ
38/52
post-thumbnail

0901 ์‹ค์Šต

๐Ÿ’ก Sigmoid๋Š” ์ถœ๋ ฅ์ธต์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ

  • ์ถœ๋ ฅ์ธต sigmoid ์‚ฌ์šฉ ์‹œ flatten ์„ ํ†ตํ•ด ์˜ˆ์ธก๊ฐ’์„ 1์ฐจ์›์œผ๋กœ ๋ณ€ํ™˜

๐Ÿ“Œ ๋ชจ๋ธ ์˜ˆ์ธก

# ๋ชจ๋ธ ์ปดํŒŒ์ผ
model.compile(optimizer='adam',
              loss='binary_crossentropy',
              metrics=['accuracy'])

# ์˜ˆ์ธก
# ์˜ˆ์ธก๊ฐ’์„ y_pred ๋ณ€์ˆ˜์— ํ• ๋‹น ํ›„ ์žฌ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
y_pred = model.predict(X_test)
y_pred.shape

# Outcome; ์•„๋ž˜์™€ ๊ฐ™์€ ํ™•๋ฅ ๊ฐ’์„ X_test ๊ฐœ์ˆ˜ (154๊ฐœ) ๋งŒํผ ์ถœ๋ ฅ
array([[0.62700105],
       [0.01058297],
       [0.3780695 ],
       [0.5054825 ],
       [0.2762504 ],
       ...

๐Ÿค” ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฉด ๊ฒฐ๊ณผ๊ฐ€ 2๊ฐœ ๋‚˜์™€์•ผ ํ•˜๋Š”๊ฑฐ ์•„๋‹Œ๊ฐ€์š”?
์†Œํ”„ํŠธ๋งฅ์Šค๋ผ๋ฉด 2๊ฐœ๊ฐ€ ๋‚˜์˜ค์ง€๋งŒ, ๋ชจ๋ธ ์ปดํŒŒ์ผ ์‹œ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์˜ˆ์ธก๊ฐ’์ด ๊ฐ row๋‹น ํ•˜๋‚˜์”ฉ ๋‚˜์˜ต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋‚˜์˜ค๋Š” ๊ฐ’์€ 0 ~ 1 ์‚ฌ์ด์˜ ํ™•๋ฅ ๊ฐ’(sigmoid)์ด ๋‚˜์˜ต๋‹ˆ๋‹ค.

argmax(): ๋‹ค์ฐจ์› ๋ฐฐ์—ด์˜ ์ฐจ์›์— ๋”ฐ๋ผ ๊ฐ€์žฅ ํฐ ๊ฐ’์˜ ์ธ๋ฑ์Šค๋“ค์„ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜

  • ์ถœ๋ ฅ์ธต์—์„œ softmax ์‚ฌ์šฉ ์‹œ ํ™•๋ฅ ๋กœ ๋ฐ˜ํ™˜๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ ์ค‘ ๊ฐ€์žฅ ๋†’์€ ๊ฐ’์˜ ์ธ๋ฑ์Šค๋ฅผ ์ฐพ์„ ๋•Œ ์‚ฌ์šฉ
    e.g. y_predict = np.argmax(y_pred, axis=1)

๐Ÿ“Œ ์„ฑ๋Šฅ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ

unit์˜ ์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ ๋„คํŠธ์›Œํฌ๋ฅผ ๋‹ค์–‘ํ•˜๊ฒŒ ๊ตฌ์„ฑํ•ด ๋ณผ ์ˆ˜ ์žˆ๊ณ  fit์„ ํ•  ๋•Œ epoch ์ˆ˜ ๋“ฑ์„ ์กฐ์ •ํ•ด์„œ ์„ฑ๋Šฅ์„ ๋ณ€๊ฒฝํ•ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์ž๋™์ฐจ ์—ฐ๋น„ ์˜ˆ์ธกํ•˜๊ธฐ (ํšŒ๊ท€)

https://www.tensorflow.org/tutorials/keras/regression

๐Ÿ’ก ๋ณดํ†ต ํšŒ๊ท€์—์„œ๋Š” ์ถœ๋ ฅ์„ 1๋กœ ๋ฐ›๋Š”๋‹ค.

๐Ÿ“Œ ์ •๊ทœํ™”

# ์‚ฌ์ดํ‚ท๋Ÿฐ์˜ ์ „์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์ด๋‚˜ ์ง์ ‘ ๊ณ„์‚ฐ์„ ํ†ตํ•ด ์ •๊ทœํ™” ํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๋‹ค.
# TF์—์„œ๋„ ์ •๊ทœํ™”ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. 
# horsepower_normalizer: Horsepower ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ ธ์™€์„œ ํ•ด๋‹น ๋ณ€์ˆ˜๋งŒ ์ •๊ทœํ™” ํ•ด์ฃผ๋Š” ์ฝ”๋“œ
horsepower = np.array(train_features['Horsepower'])

horsepower_normalizer = layers.Normalization(input_shape=[1,], axis=None)
horsepower_normalizer.adapt(horsepower)

โฌ†๏ธ ์ž…๋ ฅ์ธต โฌ†๏ธ
---------------------------------------------------------------------------

# ์ „์ฒ˜๋ฆฌ ๋ ˆ์ด์–ด๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ ๋ชจ๋ธ์„ ๋งŒ๋“ค ๋•Œ ์ „์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์„ ๊ฐ™์ด ๋„ฃ์–ด์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 
# ์žฅ์ ์€ ์ •๊ทœํ™” ๋ฐฉ๋ฒ•์„ ๋ชจ๋ฅด๋”๋ผ๋„ ์ถ”์ƒํ™”๋œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด์„œ ์‰ฝ๊ฒŒ ์ •๊ทœํ™” ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด์ง€๋งŒ
# ์ถ”์ƒํ™”๋œ ๊ธฐ๋Šฅ์˜ ๋‹จ์ ์€ ์†Œ์Šค์ฝ”๋“œ, ๋ฌธ์„œ๋ฅผ ์—ด์–ด๋ณด๊ธฐ ์ „์—๋Š” ์–ด๋–ค ๊ธฐ๋Šฅ์ธ์ง€ ์•Œ๊ธฐ ์–ด๋ ต๋‹ค๋Š” ๋‹จ์ 
# ์‚ฌ์ดํ‚ท๋Ÿฐ์˜ pipeline๊ธฐ๋Šฅ๊ณผ ์œ ์‚ฌํ•˜๋‹ค. 
horsepower_model = tf.keras.Sequential([
    horsepower_normalizer,
    layers.Dense(units=1) # (activation = "linear")๊ฐ€ ์ƒ๋žต๋˜์–ด ์žˆ๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค.					
])						  # == ํ•ญ๋“ฑํ•จ์ˆ˜; ์ž…๋ ฅ๋ฐ›์€ ๊ฐ’์„ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅ

horsepower_model.summary()

Output:

Model: "sequential"
_________________________________________________________________
 Layer (type)                Output Shape              Param #   
=================================================================
 normalization_1 (Normalizat  (None, 1)                3         
 ion)                                                            
                                                                 
 dense (Dense)               (None, 1)                 2         
                                                                 
=================================================================
Total params: 5
Trainable params: 2
Non-trainable params: 3
_________________________________________________________________

๐Ÿค” ๋ ˆ์ด์–ด ๊ตฌ์„ฑ์—์„œ ์ถœ๋ ฅ์ธต์˜ ๋ถ„๋ฅ˜์™€ ํšŒ๊ท€์˜ ์ฐจ์ด?

  • ๋ถ„๋ฅ˜๋Š”(n, activation='softmax'), (1, activation='sigmoid')
  • ํšŒ๊ท€๋Š” ํ•ญ๋“ฑํ•จ์ˆ˜ (= ์ž…๋ ฅ๋ฐ›์€ ๊ฐ’์„ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅ)

๐Ÿ’ก ํšŒ๊ท€์˜ ์ถœ๋ ฅ์ธต์€ ํ•ญ์ƒ layers.Dense(units=1) ํ˜•ํƒœ

๐Ÿค” ๋ถ„๋ฅ˜ ์‹ค์Šต๊ณผ ํšŒ๊ท€ loss ์˜ ์ฐจ์ด?

  • ๋ถ„๋ฅ˜: crossentropy
  • ํšŒ๊ท€: mae, mse ๋“ฑ

โœ… ์„ ํ˜•ํšŒ๊ท€์™€ DNN์„ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ loss ๊ฐ’์˜ ์ฐจ์ด

๐Ÿค” loss์™€ val_loss์˜ ์ฐจ์ด?
loss๋Š” ํ›ˆ๋ จ ์†์‹ค๊ฐ’, val_loss๋Š” ๊ฒ€์ฆ ์†์‹ค๊ฐ’

๐Ÿค” ์–ด๋–ป๊ฒŒ ํ•ด์•ผ val ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ฌ๊นŒ?
ํ•™์Šต๋‹จ๊ณ„์—์„œ validation_split ์ง€์ •
model.fit(X_train, y_train, epochs, validation_split)

๐Ÿค” flatten() ์€ 2์ฐจ์›๋งŒ ๋ฐ›์•„์„œ 1์ฐจ์›์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๋‚˜?
A: n์ฐจ์›์„ 1์ฐจ์›์œผ๋กœ ๋งŒ๋“ค์–ด์คŒ.

๐Ÿ’ก ndim(): ํ•ด๋‹น ๋ฐ์ดํ„ฐ์˜ dimension ์ถœ๋ ฅ
๐Ÿ’ก ๊ด„ํ˜ธ n๊ฐœ == n์ฐจ์›
e.g.[[[ ]]]] == 3์ฐจ์›

๐Ÿ‘€ ์ฐธ๊ณ ํ•  ๋งŒํ•œ ์‚ฌ์ดํŠธ: https://numpy.org/doc/stable/user/absolute_beginners.html

๐Ÿ“Œ ํšŒ๊ท€ ์‹ค์Šต Summary

1) ์ •ํ˜•๋ฐ์ดํ„ฐ ์ž…๋ ฅ์ธต: input_shape
2) ์ •๊ทœํ™” ๋ ˆ์ด์–ด์˜ ์‚ฌ์šฉ: ์ง์ ‘ ์ •๊ทœํ™”ํ•ด๋„ ๋œ๋‹ค.
3) ์ถœ๋ ฅ์ธต์ด ๋ถ„๋ฅ˜์™€ ๋‹ค๋ฅด๊ฒŒ ๊ตฌ์„ฑ์ด ๋œ๋‹ค.
4) loss ์„ค์ •์ด ๋ถ„๋ฅ˜, ํšŒ๊ท€์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋‹ค.
5) ์ž…๋ ฅ๋ณ€์ˆ˜(ํ”ผ์ฒ˜)๋ฅผ ํ•˜๋‚˜๋งŒ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ๋ณด๋‹ค ์—ฌ๋Ÿฌ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ ์„ฑ๋Šฅ์ด ๋” ์ข‹์•„์กŒ๋‹ค.
๐Ÿ’ก ๋ฐ˜๋“œ์‹œ ์—ฌ๋Ÿฌ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•ด์„œ ์„ฑ๋Šฅ์ด ์ข‹์•„์ง€์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๋„ˆ๋ฌด ์ ์€ ๋ณ€์ˆ˜๋กœ๋Š” ์˜ˆ์ธก๋ชจ๋ธ์„ ์ž˜ ๋งŒ๋“ค๊ธฐ ์–ด๋ ต๋‹ค๋Š” ์ ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

0902 ์‹ค์Šต

๐Ÿ“Œ ๋ชจ๋ธ ์ปดํŒŒ์ผ๊ณผ ํ•™์Šต

# ๋ชจ๋ธ์„ ์ปดํŒŒ์ผ ํ•ฉ๋‹ˆ๋‹ค.
# loss์™€ metrics์— ํ•˜๋‚˜ ์ด์ƒ์„ ์ง€์ •ํ•˜๊ฒŒ๋˜๋ฉด ํ‰๊ฐ€๋ฅผ ์—ฌ๋Ÿฌ๊ฐ€์ง€๋กœ ํ•˜๊ฒŒ๋œ๋‹ค. 
model.compile(loss=['mae', 'mse'],
                optimizer=tf.keras.optimizers.Adam(0.001),
                metrics=['mae', 'mse'])      
                
# ๋ชจ๋ธ์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.
early_stop = tf.keras.callbacks.EarlyStopping(monitor='val_mae',
patience=50)

# ํ•™์Šต๊ฒฐ๊ณผ๋ฅผ history ๋ณ€์ˆ˜์— ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.
# validation_split: ๋ฐ์ดํ„ฐ์…‹ ๋‚ด์—์„œ ์ง€์ •ํ•œ ๊ฐ’์— ๋”ฐ๋ผ ์•Œ์•„์„œ validation set์„ ์ƒ์„ฑ
history = model.fit(X_train, y_train, epochs=1000, verbose=0, 
                    callbacks=[early_stop], validation_split=0.2)                

# history๋ฅผ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
df_hist = pd.DataFrame(history.history)
df_hist.tail(3)

Output:

output ์ˆœ์„œ๋Š” compile ์‹œ ์ง€์ •ํ•œ ์ˆœ์„œ๋Œ€๋กœ ์ถœ๋ ฅ. loss ๋Š” ๋‹ค๋ฅธ ์ง€ํ‘œ๋ฅผ ์ง€์ •ํ–ˆ์„ ๋•Œ ๊ฐ€์žฅ ์•ž์— ์ถœ๋ ฅ๋จ.

๐Ÿค” loss, val_loss, mae, val_mae ๊ฐ’์ด ๊ฐ™์€ ์ด์œ ?
loss์˜ ๊ธฐ์ค€์„ mae๋กœ ์ง€์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ™์€ ๊ฐ’์ด ์ถœ๋ ฅ๋œ๋‹ค.

๐Ÿ’ก optimizer์˜ ์ข…๋ฅ˜์™€ learning_rate์— ๋”ฐ๋ผ ํ•™์Šต์†๋„์— ์ฐจ์ด๊ฐ€ ์ƒ๊ธด๋‹ค.

๐Ÿค” mae์™€ val_mae๊ฐ€ ๋ฒŒ์–ด์ง€๋Š” ํ˜„์ƒ?
๊ณผ์ ํ•ฉ

๐Ÿ“Œ ์˜ˆ์ธก๊ณผ ํ‰๊ฐ€

# ์˜ˆ์ธก
y_pred = model.predict(X_test)
y_pred.shape

Output: 
(79, 1)

# ์˜ˆ์ธก๊ฐ’์„ flatten์„ ์‚ฌ์šฉํ•ด 1์ฐจ์›์œผ๋กœ ๋ณ€ํ™˜
y_predict = y_pred.flatten()
y_predict.shape

Output:
(79,)

# evaluate๋ฅผ ํ†ตํ•ด ํ‰๊ฐ€
# loss, mae, mse
loss, mae, mse = model.evaluate(X_test, y_test)
print("ํ…Œ์ŠคํŠธ ์„ธํŠธ์˜ ํ‰๊ท  ์ ˆ๋Œ€ ์˜ค์ฐจ : {:5.2f}".format(mae))
print("ํ…Œ์ŠคํŠธ ์„ธํŠธ์˜ ํ‰๊ท  ์ œ๊ณฑ ์˜ค์ฐจ : {:5.2f}".format(mse))

Output: 
- loss: 63.7553 - mae: 63.7553 - mse: 11125.1436
ํ…Œ์ŠคํŠธ ์„ธํŠธ์˜ ํ‰๊ท  ์ ˆ๋Œ€ ์˜ค์ฐจ : 63.76
ํ…Œ์ŠคํŠธ ์„ธํŠธ์˜ ํ‰๊ท  ์ œ๊ณฑ ์˜ค์ฐจ : 11125.14

๐Ÿ“Œ 0902 ์‹ค์Šต summary

1) ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ์„ ์กฐ์ •ํ•˜์—ฌ์„œ ํšŒ๊ท€ ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ์„ ์ƒ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค!
(๋ถ„๋ฅ˜ ๋ชจ๋ธ๊ณผ ๋‹ค๋ฅด๊ฒŒ Dense ์ถœ๋ ฅ ์œ ๋‹› 1๋กœ ์„ค์ •, Compile์—์„œ loss, metrics ๋ณ€๊ฒฝ)
2) ์ž์›๊ณผ ์‹œ๊ฐ„์„ ์•„๋ผ๊ธฐ ์œ„ํ•ด์„œ ํ•™์Šต ๊ณผ์ • ์ค‘ ์„ฑ๋Šฅ์ด ๋น„์Šทํ•˜๋ฉด ๋ฉˆ์ถœ ์ˆ˜ ์žˆ๋„๋ก EarlyStopping์„ ์„ค์ •ํ•ด์ค๋‹ˆ๋‹ค!
(tf.keras.callbacks.EarlyStopping -> ์„ฑ๋Šฅ์ด ๋น„์Šทํ•จ์—๋„ ๋‚จ์€ epochs๊ฐ€ ๋งŽ์ด ๋‚จ์•˜๋‹ค๋ฉด ์‹œ๊ฐ„์ด ์•„๊นŒ์šฐ๋‹ˆ๊นŒ์š”)
3) ํ•™์Šต ๊ณผ์ •์—์„œ validation_split์„ ์„ค์ •ํ•˜์—ฌ ๊ฒ€์ฆ ๋ฐ์ดํ„ฐ์…‹๋„ ์„ค์ •ํ•ด์ค๋‹ˆ๋‹ค!
(๋ชจ๋ธ์ด ๊ณผ์ ํ•ฉ์ธ์ง€ ๊ณผ์†Œ์ ํ•ฉ์ธ์ง€ ์ œ ์„ฑ๋Šฅ์„ ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ)
4) ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ์„ ํ•™์Šต์‹œํ‚ต๋‹ˆ๋‹ค.
(model.fit)
5) ํ•™์Šตํ•œ ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์„ history ํ‘œ๋ฅผ ๋ณด๋ฉด์„œ ์ธก์ •ํ•ฉ๋‹ˆ๋‹ค!
(์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ ์ „์— ๋ฐฐ์› ๋˜ loss, mae, mse ์ง€ํ‘œ๋ฅผ ๋ณด๋ฉด์„œ ๋ชจ๋ธ์ด ์ž˜ ์˜ˆ์ธกํ–ˆ๋Š”์ง€ ํ‰๊ฐ€ํ•ด๋ด…๋‹ˆ๋‹ค. -> ๊ฒ€์ฆ๋ชจ๋ธ์—์„œ์˜ ์ง€ํ‘œ์™€ ๋น„๊ต๋ฅผ ํ•ด๋ณด๊ณ (val_loss, val_mae, val_mse ๋“ฑ๋“ฑ) ๊ณผ๋Œ€์ ํ•ฉ์ด ๋๋Š”์ง€, ๊ณผ์†Œ์ ํ•ฉ์ด ๋๋Š”์ง€๋„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)


๐Ÿ™‹๐Ÿปโ€โ™€๏ธ ์งˆ๋ฌธ

Q: sigmoid ๊ทธ๋ž˜ํ”„๋ฅผ ์–ด๋–ป๊ฒŒ 2์ง„ ๋ถ„๋ฅ˜์— ์‚ฌ์šฉํ• ๊นŒ์š”?
A: 0.5๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์—…๋‹ค์šด. ํŠน์ • ์ž„๊ณ„๊ฐ’์„ ์ •ํ•ด์„œ ํฌ๊ณ  ์ž‘๋‹ค๋ฅผ ํ†ตํ•ด True, False๊ฐ’์œผ๋กœ ํŒ๋‹จํ•ฉ๋‹ˆ๋‹ค. ์ž„๊ณ„๊ฐ’์€ ๋ณดํ†ต 0.5๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

Q: loss, metric ์˜ ์ฐจ์ด๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?
A: loss๋Š” W, b ๊ฐ’์„ ์—…๋ฐ์ดํŠธ ํ•ด์ฃผ๊ธฐ ์œ„ํ•ด ํ›ˆ๋ จ์— ์‚ฌ์šฉํ•˜๊ณ , metric ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์„ ํ‰๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ๊ฒ€์ฆ์— ์‚ฌ์šฉํ•œ๋‹ค.

Q: ๋ถ„๋ฅ˜์ผ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” loss ์˜ ์ข…๋ฅ˜๋Š” ๋ฌด์—‡์ด ์žˆ์„๊นŒ์š”?
A: Cross entropy.

loss ๊ฐ’์„ ๋ณด๊ณ  label์ด ์–ด๋–ค ํ˜•ํƒœ์ธ์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. label ๊ฐ’์ด ๋ฐ”์ด๋„ˆ๋ฆฌ, ์›ํ•ซ, ์˜ค๋””๋„ ์ธ์ฝ”๋”ฉ ๋˜์–ด ์žˆ๋Š”์ง€ ๋ณด๊ณ  loss ๊ฐ’์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์ด์ง„๋ถ„๋ฅ˜ : binarycrossentropy
  • ๋‹ค์ค‘๋ถ„๋ฅ˜ : ์›ํ•ซ์ธ์ฝ”๋”ฉ - categorical_crossentropy
  • ๋‹ค์ค‘๋ถ„๋ฅ˜ : ์˜ค๋””๋„ - sparse_categorical_crossentropy

Q: ๋จธ์‹ ๋Ÿฌ๋‹์„ ์ผ์„ ๋•Œ์™€ ๋”ฅ๋Ÿฌ๋‹์„ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ ์„ฑ๋Šฅ์ด ์–ด๋–ค๊ฐ€์š”?
A: ๋ณดํ†ต์€ ์ •ํ˜•๋ฐ์ดํ„ฐ๋Š” ๋”ฅ๋Ÿฌ๋‹๋ณด๋‹ค๋Š” ๋จธ์‹ ๋Ÿฌ๋‹์ด ๋Œ€์ฒด์ ์œผ๋กœ ์ข‹์€ ์„ฑ๋Šฅ์„ ๋‚ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๋”ฅ๋Ÿฌ๋‹์ด ์ข‹์€ ์„ฑ๋Šฅ์„ ๋‚ผ๋•Œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌด์—‡๋ณด๋‹ค๋„ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ์™€ ํ”ผ์ฒ˜์—”์ง€๋‹ˆ์–ด๋ง์ด ์„ฑ๋Šฅ์— ๋” ๋งŽ์€ ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค.

์ •ํ˜•๋ฐ์ดํ„ฐ: ๋ถ€์ŠคํŒ… 3๋Œ€์žฅ
๋น„์ •ํ˜•๋ฐ์ดํ„ฐ: ๋”ฅ๋Ÿฌ๋‹

Q: standard, min-max, robust ์Šค์ผ€์ผ๋ง ๊ฐ๊ฐ์˜ ํŠน์ง•์„ ์–˜๊ธฐํ•ด ์ฃผ์„ธ์š”!
A:

  • Z-score (Standard) scaling์€ ํ‰๊ท ์„ 0์œผ๋กœ, ํ‘œ์ค€ํŽธ์ฐจ๋ฅผ 1๋กœ ๋งŒ๋“ค๊ณ  ํ‰๊ท ์„ ์ด์šฉํ•˜์—ฌ ๊ณ„์‚ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด์ƒ์น˜์— ๋ฏผ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • Min-Max scaler๋Š” ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ์ตœ์†Ÿ๊ฐ’๊ณผ ์ตœ๋Œ“๊ฐ’์„ 0๊ณผ 1๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ •๊ทœ๋ถ„ํฌ๊ฐ€ ์•„๋‹ˆ๊ฑฐ๋‚˜ ํ‘œ์ค€ํŽธ์ฐจ๊ฐ€ ์ž‘์„ ๋•Œ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด์ƒ์น˜๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ๋ฒ”์œ„ ์„ค์ •์— ์˜ํ–ฅ์ด ๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ์ด์ƒ์น˜์— ๋ฏผ๊ฐํ•ฉ๋‹ˆ๋‹ค.
  • Robust scaler๋Š” ์ค‘์•™๊ฐ’์„ 0์œผ๋กœ, ์‚ฌ๋ถ„์œ„ ์ˆ˜๋ฅผ 1๋กœ ๋งŒ๋“ค๊ณ  ์ค‘์•™๊ฐ’์„ ์ด์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•ž์˜ ๋‘ ์ •๊ทœํ™” ๋ฐฉ๋ฒ•๋“ค์— ๋น„ํ•ด ์ด์ƒ์น˜์— ๊ฐ•ํ•ฉ๋‹ˆ๋‹ค.
    ๐Ÿ’ก standard, min-max, robust: ์Šค์ผ€์ผ๋งŒ ๋ฐ”๊ฟ€ ๋ฟ์ด์ง€ ๋ถ„ํฌ๋Š” ๋ณ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Q: ๋”ฅ๋Ÿฌ๋‹์—์„œ๋Š”, model ์— fit ํ•ด์ค€๊ฑธ ์™œ history ๋ผ๊ณ  ํ•˜๋‚˜์š”?
A: epoch๋ฅผ ํ†ตํ•ด ํ•™์Šต์„ ํ•˜๋ฉด ๊ทธ ํ•™์Šต๊ฒฐ๊ณผ๋ฅผ ๋กœ๊ทธ๋กœ ์ €์žฅ์„ ํ•ด์„œ history๋ผ๋Š” API๋ช…์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Q: ๋‹ค์ค‘์ž…๋ ฅ ์„ ํ˜•ํšŒ๊ท€ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ์˜ ์—๋Ÿฌ๊ฐ€ ๋‹จ์ผ์ž…๋ ฅ DNN ์‚ฌ์šฉํ–ˆ์„ ๋•Œ์˜ ์—๋Ÿฌ๋ณด๋‹ค ๋‚ฎ์€๋ฐ ๊ทธ๋Ÿผ DNN์‚ฌ์šฉ ์—ฌ๋ถ€๋ณด๋‹ค๋Š” ๋‹ค์ค‘์ž…๋ ฅ์ธ์ง€ ๋‹จ์ผ์ž…๋ ฅ์ธ์ง€๊ฐ€ ๋” ์ค‘์š”ํ•œ๊ฑด๊ฐ€์š”?
A: DNN์ด๋ผ๋„ ์ž…๋ ฅ๊ฐ’์ด ๋ถˆ์ถฉ๋ถ„ํ•˜๋‹ค๋ฉด ์ œ๋Œ€๋กœ ํ•™์Šตํ•˜๊ธฐ ์–ด๋ ต๋‹ค๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (=๊ณผ์†Œ์ ํ•ฉ)


๐Ÿฆ ์งˆ๋ฌธ

Q: ๋ ˆ์ด์–ด ๊ตฌ์„ฑ์„ 2์˜ ์ œ๊ณฑ๋“ค๋กœ๋งŒ ํ•ด์•ผํ•˜๋‚˜์š”?
A: ๋ณดํ†ต์€ 2์˜ ์ œ๊ณฑ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ํŽธ์ธ๋ฐ ๊ทธ๋ ‡๊ฒŒ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ์ƒ๊ด€ ์—†์Šต๋‹ˆ๋‹ค.

Q: ๋“œ๋ž์•„์›ƒ ์ฝ”๋“œ๋Š” ํ•œ ์ค„๋งŒ ์จ์ค˜๋„ ๋ชจ๋“  layer์— ์ ์šฉ ๋˜๋‚˜์š”?
A: ๋ฐ”๋กœ ์œ„ ๋ ˆ์ด์–ด์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

Q: ํ•ญ๋“ฑํ•จ์ˆ˜๋ผ๋Š” ๊ฐœ๋…์„ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.
A: ์ž…๋ ฅ๋ฐ›์€ ๊ฐ’์„ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.

Q: ๊ทธ๋Ÿฌ๋ฉด ํšŒ๊ท€์˜ ์ถœ๋ ฅ์ธต์€ ํ•ญ์ƒ layers.Dense(units=1)์ด ํ˜•ํƒœ๊ฐ€ ๋˜๋‚˜์š”?
A: ๋„ต

Q: ์‹ ๊ฒฝ๋ง ๋ชจ๋ธ ์ž์ฒด๊ฐ€ 2์ฐจ์› ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๊ธฐ๋กœ ๋งŒ๋“ค์–ด์ง„๊ฑด๊ฐ€์š”? ๊ฒฐ๊ณผ๊ฐ€ 2์ฐจ์›์ธ๊ฒŒ ์กฐ๊ธˆ ํ—ท๊ฐˆ๋ฆฌ๋„ค์š”.
A: ์˜ˆ์ธก๊ฐ’์ด ๊ธฐ๋ณธ์ ์œผ๋กœ 2์ฐจ์›์œผ๋กœ ๋‚˜์˜ต๋‹ˆ๋‹ค. API ์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋ผ ์‚ฌ์ดํ‚ท๋Ÿฐ๊ณผ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์ดํ‚ท๋Ÿฐ์—์„œ ์ •ํ˜•๋ฐ์ดํ„ฐ๋ฅผ ์ „์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ํ…์„œํ”Œ๋กœ์—์„œ๋„ ์ •ํ˜•๋ฐ์ดํ„ฐ, ์ด๋ฏธ์ง€, ํ…์ŠคํŠธ ๋“ฑ์„ ์ „์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ๋“ค๋„ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.


โœ๏ธ TIL

  • ์‚ฌ์‹ค(Fact): ๋”ฅ๋Ÿฌ๋‹์„ ์ด์šฉํ•ด ๋ถ„๋ฅ˜์™€ ํšŒ๊ท€ ๋ฌธ์ œ๋ฅผ ์‹ค์Šตํ–ˆ๋‹ค.
  • ๋Š๋‚Œ(Feeling): ์•„์ง ํ—ท๊ฐˆ๋ฆฌ๊ณ  ์ดํ•ด๋˜์ง€ ์•Š๋Š” ๋ถ€๋ถ„๋“ค์ด ์žˆ์ง€๋งŒ 3์ผ์ฐจ์— ์ „๋ถ€ ์ดํ•ดํ•˜๋ ค๊ณ  ํ•˜๋Š”๊ฑด ์š•์‹ฌ์ด๋‹ค.
  • ๊ตํ›ˆ(Finding): ๋ณต์Šตํ•˜๋ฉฐ ๊ธฐ๋ณธ๊ธฐ๋ฅผ ๋‹ค์ง€์ž.
profile
๋ฐ์ดํ„ฐ ๋ถ„์„๊ฐ€๊ฐ€ ๋˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ก โœ๏ธ

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