Skip to content

ulgal/MachineLearning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

15 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

MachineLearning

Perceptron

์ž…๋ ฅ ๋ฒกํ„ฐ์— ๋Œ€ํ•œ ์ถœ๋ ฅ ํ•จ์ˆ˜

if wx + b > 0:  
        return 1  
        *w = weight, b = bias, wx => inner product*  
    else:  
        return 0  

MLP(Multilayer Perceptron)

์—ฌ๋Ÿฌ ๊ณ„์ธต์˜ ํผ์…‰ํŠธ๋ก 
์ฒ˜์Œ์—๋Š” ์ž„์˜๋กœ ํ• ๋‹น๋œ weight๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ™œ์„ฑํ™” ํ•œ ์ดํ›„ ์˜ˆ์ธก ๊ฐ’๊ณผ ์‹ค์ œ ๊ฐ’์„ ๋น„๊ตํ•˜์—ฌ ์˜ค์ฐจ๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ๋‹ค์‹œ ์•ž ํผ์…‰ํŠธ๋ก ์œผ๋กœ ์ „๋‹ฌ, ์ ์ ˆํ•œ optimizer๋ฅผ ํ†ตํ•ด ์˜ค์ฐจ๋ฅผ ์ค„์ด๋Š” ๋ฐฉํ–ฅ์œผ๋กœ weight ์กฐ์ •.
์ถœ๋ ฅ์— ๋Œ€ํ•œ weight ๋ฐ bias ์กฐ์ • ์‹œ ํ™œ์„ฑํ™” ํ•จ์ˆ˜ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Œ. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ถœ๋ ฅ ๊ฐ’์ด ํฌ๊ฒŒ ๋ณ€ํ•ด ์ ์ง„์ ์œผ๋กœ ํ•™์Šตํ•˜๊ธฐ ์–ด๋ ค์›€.


CNN(Convolutional Neural Network)

ํ•ฉ์„ฑ๊ณฑ ์‹ ๊ฒฝ๋ง
Layer ๋งŽ์œผ๋ฉด DCNN, ํ•„ํ„ฐ์˜ ๊นŠ์ด๋Š” ์ง„ํ–‰๋ ์ˆ˜๋ก ๊นŠ์–ด์ง, ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํ•˜๋‚˜ ์ด์ƒ์˜ ์™„์ „ ์—ฐ๊ฒฐ ๊ณ„์ธต์œผ๋กœ ๊ตฌ์„ฑ. ์ ์€ Training data์— ๋Œ€ํ•ด ์ข‹์€ ํšจ์œจ์„ ๋ณด์ด๋ฉฐ, Transfer Training์„ ์ž์ฃผ ์‚ฌ์šฉ.


Transfer Learning

์ „์ด ํ•™์Šต

  • ๊ธฐ์กด์— ๋งŒ๋“ค์–ด์ง„ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ชจ๋ธ์„ ๋งŒ๋“ค ๋•Œ ํ•™์Šต์„ ๋น ๋ฅด๊ฒŒ ํ•˜๊ณ  ์˜ˆ์ธก์„ ๋” ๋†’์ž„.
  • ์ด๋ฏธ ํ•™์Šต๋œ weight์—์„œ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ํ•™์Šต์— ๋งž๊ฒŒ fine tuningํ•จ.
  • fine tuning์—๋Š” feature extraction, ํ•™์Šต๋œ ๋ชจ๋ธ ์‚ฌ์šฉ, ์ผ๋ถ€ layer ์กฐ์ • ๋“ฑ์ด ์žˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ๊ฐ€ ๋ถ€์กฑํ•œ ๊ฒฝ์šฐ ํ™œ์šฉํ•˜๊ธฐ ์ข‹๋‹ค.

GAN(Generative Adversarial Networks) //

์ ๋Œ€์  ์ƒ์„ฑ ๋„คํŠธ์›Œํฌ
์ผ๋ฐ˜์ ์œผ๋กœ ๋‘ ๊ฐœ์˜ ๋„คํŠธ์›Œํฌ๋กœ ๊ตฌ์„ฑํ•  ๋•Œ, ํ•˜๋‚˜๋Š” ์ง„์งœ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ํ•ฉ์„ฑ ๋ฐ์ดํ„ฐ๋ฅผ ์œ„์กฐํ•˜๊ฒŒ ํ•™์Šตํ•˜๊ณ , ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ์œ„์กฐํ•œ ๋ฐ์ดํ„ฐ์™€ ์ง„์งœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ฒŒ ํ•™์Šตํ•œ๋‹ค. ์‹ค์ œ๋กœ ํ•ต์‹ฌ feature์— ๋Œ€ํ•ด์„œ๋Š” ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์— GAN์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋งŽ์ด ๋งŒ๋“ค์–ด์„œ ํ•™์Šตํ•˜๋”๋ผ๋„ ์—„์ฒญ๋‚œ ํ–ฅ์ƒ์ด ์žˆ์ง€๋Š” ์•Š๊ณ , ๋ชจ๋ธ์ด robustํ•ด์ง€๋Š” ํšจ๊ณผ๋Š” ์žˆ๋‹ค.
๋‘ ๋„คํŠธ์›Œํฌ๊ฐ„ ๊ฒฝ์Ÿ์„ ํ†ตํ•œ ํ–ฅ์ƒ
๋ฐฐ์น˜ ์ •๊ทœํ™”: ๊ฐ ๋‹จ์œ„์— ๋Œ€ํ•œ ์ž…๋ ฅ์„ ํ‰๊ท  ๋ฐ ๋‹จ์œ„๋ถ„์‚ฐ์„ 0์œผ๋กœ ์ •๊ทœํ™”ํ•ด ํ•™์Šต์„ ์•ˆ์ •ํ™”์‹œํ‚ค๋Š” ๋ฐ ๋„์›€. ์—ฌ๋Ÿฌ ์ƒํ™ฉ์—์„œ ํ•™์Šต์„ ๊ฐ€์†ํ™”ํ•˜๊ณ  ์ž˜๋ชป๋œ ์ดˆ๊ธฐํ™” ๋ฌธ์ œ๋ฅผ์ค„ ์ค„์ด๋ฉฐ, ์ผ๋ฐ˜์ ์œผ๋กœ ๋” ์ •ํ™•ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์‚ฐ์ถœํ•˜๋Š” ๊ฒƒ์ด ๊ฒฝํ—˜์ ์œผ๋กœ ์ž…์ฆ๋จ.

  • DCGAN - Deep Convolutional Generative Adversarial Networks
    CNN ํ™œ์šฉํ•˜์—ฌ ์œ„์กฐ ์ƒ์‚ฐ

Word Embedding //

One-Hot Encoding - ๋‹จ์–ด ๊ฐ„ ์œ ์‚ฌ์„ฑ ํ‘œํ˜„ ๋ถˆ๊ฐ€๋Šฅ
NLP(Natural Language Processing)

  • word2vec
  • GloVe

RNN(Recurrent Neural Network) //

์ˆœํ™˜ ์‹ ๊ฒฝ๋ง
๋‹ค์ค‘ ํผ์…‰ํŠธ๋ก  ์‹ ๊ฒฝ๋ง์˜ ๊ฒฝ์šฐ ๋ชจ๋“  ์ž…๋ ฅ ๋ณ€์ˆ˜๊ฐ€ ๋…๋ฆฝ์ด๋ผ ๊ฐ€์ •ํ•˜์ง€๋งŒ, ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋‚˜ ๋ฌธ์žฅ๊ณผ ๊ฐ™์€ ์ˆœ์ฐจ์ ์ธ ๋ฐ์ดํ„ฐ์˜ ๊ฒฝ์šฐ ๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ์˜์กด์„ฑ์ด ์žˆ๋‹ค.
์ˆœํ™˜ ์‹ ๊ฒฝ๋ง์˜ ์…€์—์„œ๋Š” ํŠน์ • ์‹œ์ ์— ๊ด€ํ•œ ํ•จ์ˆ˜๋กœ ์€๋‹‰ ์ƒํƒœ ๊ฐ’๊ณผ ์ž…๋ ฅ ๊ฐ’์„ ํ‘œํ˜„
RNN, LSTM, GRU


Autoencoder

๋น„์ง€๋„ํ•™์Šต
์—ญ์ „ํŒŒ ์ด์šฉ ์ž…๋ ฅ๊ฐ’ ๋ณต์›, ์ž…๋ ฅ ์ฐจ์›๊ณผ ์ถœ๋ ฅ ์ฐจ์›์ด ๊ฐ™๋‹ค. ์ฐจ์› ์••์ถ• ๊ณผ์ •์—์„œ ์ค‘์š”ํ•œ ์ •๋ณด๋“ค๋งŒ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด ๋ณต์›๋ฅ ์ด ์ข‹์œผ๋ฏ€๋กœ ์ด์— ๋งž๊ฒŒ ํ•™์Šต.
Autoencoder๋Š” ์ฐจ์› ์ถ•์†Œ์™€ ๋ฒกํ„ฐ ์—ฐ์‚ฐ ํšจ์œจ์„ฑ์˜ ์ด์ ์ด ์žˆ๋‹ค.

  • ์ฐจ์›์ด ์ปค์ง€๋ฉด ์—ฐ์‚ฐ์ด ์ง€์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋ฏ€๋กœ ์ ๋‹นํ•œ ์ฐจ์›์—์„œ ๊ณ„์‚ฐํ•ด์•ผ ํ•œ๋‹ค.
  • ๊ณ ์ฐจ์›์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๋กœ ์—ฐ์‚ฐํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ €์ฐจ์›์˜ ๋ฐ์ดํ„ฐ๋กœ ๋ฐ”๊พผ ๋’ค ์—ฐ์‚ฐํ•˜์—ฌ ๋‹ค์‹œ ๊ณ ์ฐจ์›์œผ๋กœ ๋ณต์›ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.(ex, ์ด๋ฏธ์ง€ ํ•ฉ์„ฑ)

Dimension

์ฐจ์› ์ถ•์†Œ

  • ์ฐจ์›์ด ์ปค์ง€๋ฉด ๊ณต๊ฐ„์˜ ํฌ๊ธฐ๊ฐ€ ๊ธฐํ•˜ ๊ธ‰์ˆ˜์ ์œผ๋กœ ์ปค์ ธ ๋ฐ์ดํ„ฐ์˜ ๋ฐ€๋„๊ฐ€ ๊ธ‰๊ฒฉํžˆ ๋‚ฎ์•„์ง€๋ฏ€๋กœ ๋ฐ์ดํ„ฐ์˜ ๋ถ„ํฌ ๋ฐ ๋ชจ๋ธ ๋ถ„์„์— ํ•„์š”ํ•œ ์ƒ˜ํ”Œ์˜ ์ˆ˜๊ฐ€ ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ๋Š˜์–ด๋‚œ๋‹ค. ๋”ฐ๋ผ์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์ฐจ์›์˜ ํฌ๊ธฐ๋ฅผ ์ค„์ด๊ณ  ํ•ต์‹ฌ์ด ๋˜๋Š” feature๋“ค์„ ์„ ๋ณ„ํ•˜์—ฌ ๋ฐ์ดํ„ฐ์˜ ๋ถ„ํฌ ๋ฐ ๋ชจ๋ธ ๋ถ„์„์„ ํ•œ๋‹ค. ์ฃผ๋กœ PCA, AutoEncoder ๋“ฑ์„ ์‚ฌ์šฉํ•˜๋ฉฐ ์ฐจ์› ์ถ•์†Œ๊ฐ€ ํฌํ•จ๋œ ๋ชจ๋ธ์˜ ์ค‘๊ฐ„ ๊ณ„์ธต์—์„œ ์ถ”์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๋‹ค.(ex DCNN) ์ค‘๊ฐ„ ๊ณ„์ธต์—์„œ ์ถ”์ถœ ์‹œ ํ•ด๋‹น ๋ชจ๋ธ์˜ ์—ญํ• ์— ๋งž๋Š” ํŠน์ง•์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

์ฐจ์› ํ™•์žฅ

  • ๊ฐ€๋ น 3์ฐจ์›์˜ ๊ณต๊ฐ„์—์„œ z>0๊ณผ z<0์œผ๋กœ ๋‚˜๋‰œ ๋ถ„ํฌ๊ฐ€ z=0์ธ ํ‰๋ฉด์— ์ •์‚ฌ์˜ ๋œ ๊ฒฝ์šฐ z=0์ธ 2์ฐจ์›์—์„œ๋Š” ๊ทธ ๋ถ„ํฌ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์–ด๋ ต์ง€๋งŒ 3์ฐจ์›์œผ๋กœ ํ™•์žฅํ•œ๋‹ค๋ฉด ํšจ๊ณผ์ ์œผ๋กœ ๋ถ„ํฌ๋ฅผ ํ™•์ธํ• ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ์ฒ˜๋Ÿผ ์ฐจ์›์„ ํ™•์žฅํ•˜์—ฌ ๋ฌธ์ œ๊ฐ€ ๋‹จ์ˆœํ™”๋  ์ˆ˜ ์žˆ๋‹ค.

Supervised vs Unsupervised

Supervised - ์ •๋‹ต์ง€๊ฐ€ ์žˆ์Œ, ์ถœ๋ ฅ๊ฐ’๊ณผ label ๋น„๊ต  
    ๊ฐœ๋Š” 1, ๊ณ ์–‘์ด๋Š” 0, ์ •๋‹ต์ง€ ์กด์žฌ  
        x1 -> 1  
        x2 -> 0  
        x3 -> 1  
        ...  
Unsupervised - ์ •๋‹ต x, (k-means, density-based, etc)clustering / (in time-series)anomaly detector //  
    clustering  
        x1 -> group 1  
        x2 -> group 2  
        x3 -> group 1  
        ...  
    anomaly detector  
        x1 -> 0  
        x2 -> 0  
        x3 -> 0  
        x4 -> 0.1  
        **x5 -> 0.9**  
        x6 -> 0.3  
        ...  
Semisupervise - ๊ฐœ์— ๋Œ€ํ•ด์„œ ํ•™์Šต, ๋‹ค๋ฅธ data๋„ ๋“ค์–ด์˜ด  
    x1 -> 1  
    x2 -> 1  
    x3 -> 1  
    x4 -> 1  
    a1 -> not 1  




Use


Data Preprocess

  • ํ•™์Šต ์‹œ ํ•„์š”ํ•œ data
    • Training data, Validation data, Test data(+ label if classifier/supervised)
    • data normalization ์‹œ ์ตœ๋Œ“๊ฐ’์œผ๋กœ ๋‚˜๋ˆ ์ฃผ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, 0.9 ๋˜๋Š” 0.95๊ฐ’์œผ๋กœ ๋‚˜๋ˆ ์ฃผ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค(quantile)

Modeling

  • PCA

    • ์ฃผ์„ฑ๋ถ„ ๋ถ„์„, ๋ชจ๋“  ๋ฒกํ„ฐ์— ๋Œ€ํ•ด ๋ถ„์„ํ•˜์—ฌ ์ฐจ์› ์ถ•์†Œ
    pca = PCA(k)
    pca.fit(target_data)
    
    pca.transform(test_data)    
  • MLP

    • bias, ํ™œ์„ฑํ™” ํ•จ์ˆ˜๊ฐ€ ์—†์„ ๊ฒฝ์šฐ, ๋ชจ๋“  ๋ฒกํ„ฐ์— ๋Œ€ํ•ด ๊ฐ€์ค‘์น˜๋ฅผ ๊ณ„์‚ฐํ•˜๋ฏ€๋กœ PCA์™€ ๊ฒฐ๊ณผ๊ฐ’์ด ๊ฑฐ์˜ ๋น„์Šทํ•˜๊ฒŒ ๋‚˜์˜ด.
    • bias, ํ™œ์„ฑํ™” ํ•จ์ˆ˜๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ, weight๊ณผ bias๊ฐ€ ๋ณ€ํ•˜๋ฉด์„œ ์˜ํ–ฅ๋ ฅ์ด ํฐ ์ธ์ž์— ๋Œ€ํ•ด weight ๋ฐ bias๊ฐ€ ์กฐ์ •๋˜๊ณ , ํ™œ์„ฑํ™” ํ•จ์ˆ˜์— ์˜ํ•ด ๋น„์„ ํ˜• ๋ณ€ํ™˜๋จ.
    input_layer = Input(shape=(n, n)) or input_layer = Input(shape(m, ))
    flatten_layer = Flatten()(input_layer)
    ... hidden layers
    encoding_layer = Dense(k)(hidden_layer_x)
    
    encoder = Model(input_layer, encoding_layer)
    encoder.compile(optimizer = 'rmsprop', loss = 'binary_crossentropy')  
    
    # check params
    encoder.summary() 
    
    encoder.fit(training_data, training_label, validation_data = (validation_data, validation_label), epochs = 1000, callbacks=[early_stopping, tensorboard]) # callbacks ๋‚ด๋ถ€ ์ธ์ž๋Š” ๋ฏธ๋ฆฌ ์„ ์–ธํ•ด์•ผํ•จ
    
    encoder.evaluate()
  • CNN

    • Deep Learning, ์ด๋ฏธ์ง€์˜ ํŠน์„ฑ์ด ๊ฐ•ํ•œ ๊ฒฝ์šฐ ์ข‹๋‹ค.
    • ์ธต์ด ๊นŠ์–ด์งˆ์ˆ˜๋ก filter ์ˆ˜๋ฅผ ๋งŽ์ด ํ•˜๋Š” ํŽธ
    • ์••์ถ•์ด ๋ชฉ์ ์ด๋ผ๋ฉด stride ์˜ต์…˜์„ ๋”ฐ๋กœ ์ฃผ๊ฑฐ๋‚˜ filter size๋ฅผ ํฌ๊ฒŒ ํ•˜์—ฌ filter๋ฅผ ํ†ต๊ณผํ•œ ์ดํ›„์˜ ํฌ๊ธฐ๋ฅผ ์ž‘์•„์ง€๊ฒŒ ํ•˜๊ฑฐ๋‚˜, Pooling์„ ์ด์šฉ
    • ๋น„๊ต์  ์ ์€ parameter ์‚ฌ์šฉ, ๋งŽ์€ resource ์†Œ๋ชจ
    input_layer = Input(shape=(n, n, 1))
    conv1_layer = Conv2D(10, (3, 3), padding="same")(input_layer)
    mxp1_layer = MaxPooling2D((2, 2), padding="same")(conv1_layer) 
    ....
    encoding_layer = Conv2D(1, (3, 3), padding='same')(mxp3_deep)
    
    encoder = Model(input_layer, encoding_layer)
    encoder.compile(optimizer='rmsprop', loss='binary_crossentropy') 
    
    # check params
    encoder.summary() 
    
    encoder.fit(training_data, training_label, validation_data = (validation_data, validation_label), epochs = 1000, callbacks=[early_stopping, tensorboard]) # callbacks ๋‚ด๋ถ€ ์ธ์ž๋Š” ๋ฏธ๋ฆฌ ์„ ์–ธํ•ด์•ผํ•จ
    
    encoder.evaluate()
  • In Model

    • ๋ชจ๋ธ ์ƒ์„ฑ ์‹œ parameter ์ˆ˜๋Š” data ์ˆ˜์— ๋น„ํ•ด ์ ์€๊ฒŒ ์ข‹๋‹ค(๋ณต์žกํ•œ ๋ชจ๋ธ - ์‹œ๊ฐ„ ์†Œ๋ชจ ํฌ๊ณ  overfitting ๊ฐ€๋Šฅ์„ฑ ๋†’์Œ)
    • Input layer ์ž…๋ ฅ์ธต
    • Flatten layer (ํ•„์š”ํ•˜๋‹ค๋ฉด) (n, n)ํ–‰๋ ฌ์„ (n**2, 1) ํ–‰๋ ฌ๋กœ
    • Hidden layer ์€๋‹‰์ธต, Hidden layer ์ค‘์ฒฉ์„ ํ†ตํ•ด Deep Learning
    • Output layer ์ถœ๋ ฅ์ธต, ์ถœ๋ ฅ ๊ฐ’์— ๋งž๋Š” ํ™œ์„ฑํ™” ํ•จ์ˆ˜ ์‚ฌ์šฉ(sigmoid, softmax, etc)
    • Dropout ๋„คํŠธ์›Œํฌ ๋‚ด๋ถ€๋กœ ์ „๋‹ฌ๋˜๋Š” ๊ฐ’ ์ค‘ ์ผ๋ถ€๋ฅผ ๋“œ๋กญ์•„์›ƒ ํ™•๋ฅ ๋กœ ๋ฌด์ž‘์œ„๋กœ ์ œ๊ฑฐํ•˜์—ฌ ์„ฑ๋Šฅ ํ–ฅ์ƒ
    • summary๋ฅผ ํ†ตํ•ด parameter ์ˆ˜ ํ™•์ธ
    • ํ™œ์„ฑํ™”ํ•จ์ˆ˜ ํ™œ์„ฑํ™” ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ํŠน์ • ๊ตฌ๊ฐ„์— fitting ์‹œํ‚จ๋‹ค. ํ™œ์„ฑํ™” ํ•จ์ˆ˜ ์—†์ด ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ๋‹จ์ˆœ PCA์™€ ๋น„์Šทํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ด.
      • sigmoid: -inf to 0, inf to 1, (0,1)์˜ ์ถœ๋ ฅ๊ฐ’์„ ๊ฐ–๋Š” ์ถœ๋ ฅ์ธต์— ์ ์ ˆ, [True, False]
      • tanh: -inf to -1, inf to 1, (-1,1)
      • ReLU: ์€๋‹‰์ธต์— ์ ์ ˆ, sigmoid/tanh๋ณด๋‹ค ๋น ๋ฅด๊ฒŒ ์ˆ˜๋ ดํ•œ๋‹ค.
      • LeakyReLU: ReLU์˜ ํŠน๋ณ„ํ•œ ๋ฒ„์ „, ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์—์„œ GAN์˜ ์„ฑ๋Šฅ ๊ฐœ์„ 
        if x<0:  
            return 0  
        else:  
            return ax
        
      • softmax: ํ™•๋ฅ ๋ถ„ํฌํ•จ์ˆ˜๋กœ 2๊ฐœ ์ด์ƒ์˜ ๋ถ„๋ฅ˜ ๋ชจ๋ธ ์ถœ๋ ฅ์ธต์— ์ ์ ˆ, [a, b, c, ...]
  • Compile(Model.compile)

    • loss:
      • mean squared error - ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ
      • binary crossentropy - ์ถœ๋ ฅ ๊ฐ’๊ณผ ๋ฉ€์–ด์งˆ์ˆ˜๋ก ํฐ penalty ๋ฐ›์Œ, binary
      • categorical crossentropy - ์ถœ๋ ฅ ๊ฐ’๊ณผ ๋ฉ€์–ด์งˆ ์ˆ˜๋ก ํฐ penalty ๋ฐ›์Œ, >2
    • Metric:
      • Accuracy(์ •ํ™•๋„) - ํƒ€๊ฒŸ์„ ์ •ํ™•ํžˆ ์˜ˆ์ธกํ•œ ๋น„์œจ
      • Precision(์ •๋ฐ€๋„) - ๊ธ์ •์ด๋ผ๊ณ  ์˜ˆ์ธกํ•œ ๊ฒƒ ์ค‘ ์‹ค์ œ๋กœ ์ฐธ์ธ ๊ฒƒ์˜ ๋น„์œจ
      • Recall(์žฌํ˜„์œจ) - ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์˜ˆ์ธกํ•œ ๊ฒƒ ์ค‘ ๊ธ์ •์œผ๋กœ ์˜ˆ์ธกํ•œ ๊ฒƒ์ด ์‹ค์ œ๋กœ ์ฐธ์ธ ๊ฒฝ์šฐ์˜ ๋น„์œจ
    • optimizer:
      • SGD(Stochastic Gradient Descent) - ํ™•๋ฅ ์  ๊ฒฝ์‚ฌํ•˜๊ฐ•๋ฒ•
      • RMSprop, Adam - SGD์— ๊ด€์„ฑ๊ฐœ๋… ํฌํ•จ, ๋งŽ์€ ๊ณ„์‚ฐ ๋น„์šฉ ํ•„์š” ์‹œ ๋น ๋ฅธ ์ˆ˜๋ ด ๊ฐ€๋Šฅ
  • Learning(Model.fit)

    • epochs - ๋ชจ๋ธ์ด ํ•™์Šต ๋ฐ์ดํ„ฐ์…‹ ์ „์ฒด๋ฅผ ์‚ดํŽด๋ณธ ํšŸ์ˆ˜, ๊ฐ ๋ฐ˜๋ณต๋งˆ๋‹ค optimizer๋ฅผ ํ†ตํ•ด ๋ชฉ์  ํ•จ์ˆ˜๊ฐ€ ์ตœ์†Œํ™”๋˜๋„๋ก ๊ฐ€์ค‘์น˜ ์กฐ์ • // ๋ชจ๋ธ์˜ ๋ณต์žก๋„
    • batch_size - ์˜ตํ‹ฐ๋งˆ์ด์ €๊ฐ€ weight ์—…๋ฐ์ดํŠธ ํ•˜๊ธฐ ์ „๊นŒ์ง€ ์‚ดํŽด๋ณธ ํ•™์Šต ๋ฐ์ดํ„ฐ์˜ ์ˆ˜ // ์ˆ˜๋ ด์„ฑ
    • Regularization
      • kernel_regularizer weight matrix์— ์ ์šฉ๋˜๋Š” ์ผ๋ฐ˜ํ™” ํ•จ์ˆ˜
      • bias_regularizer bias vector์— ์ ์šฉ๋˜๋Š” ์ผ๋ฐ˜ํ™” ํ•จ์ˆ˜
      • activity_regularizer ๊ณ„์ธต์˜ ์ถœ๋ ฅ์— ์ ์šฉ๋˜๋Š” ์ผ๋ฐ˜ํ™” ํ•จ์ˆ˜
    • callback - Tensorboard, earlystopping
  • After Learning

    • evaluate - ์†์‹ค ๊ฐ’ ๊ณ„์‚ฐ
    • predict_classes - ๋ฒ”์ฃผ ์ถœ๋ ฅ ๊ณ„์‚ฐ
    • predict_proba - ๋ฒ”์ฃผ ํ™•๋ฅ 

๋ถ„์„ ๋ฐฉ๋ฒ•


tSNE

  • ๋ฐ์ดํ„ฐ ์‚ฌ์ด์˜ ์œ ์‚ฌ๋„(๊ฑฐ๋ฆฌ ์ •๋ณด ํ™œ์šฉ)๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ณ ์ฐจ์›์˜ ์› ๊ณต๊ฐ„์—์„œ ์ €์ฐจ์›์˜ ์ž„๋ฒ ๋”ฉ ๊ณต๊ฐ„์œผ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.
  • ์› ๊ณต๊ฐ„์—์„œ ์ธ์ ‘ํ•œ ๋ฐ์ดํ„ฐ๋Š” ์ž„๋ฒ ๋”ฉ ๊ณต๊ฐ„์—์„œ๋„ ์ธ์ ‘ํ•˜๊ฒŒ, ์› ๊ณต๊ฐ„์—์„œ ๋จผ ๋ฐ์ดํ„ฐ๋Š” ์ž„๋ฒ ๋”ฉ ๊ณต๊ฐ„์—์„œ๋„ ๋ฉ€๊ฒŒ ๋ณ€ํ™˜.

Confusion matrix

์‹๋ณ„ ๊ฒฐ๊ณผ ์–‘์„ฑ ์‹๋ณ„ ๊ฒฐ๊ณผ ์Œ์„ฑ ํ•ฉ๊ณ„
์‹ค์ œ ์–‘์„ฑ TP(True Positive) FN(False Negative) TP + FN
์‹ค์ œ ์Œ์„ฑ FP(False Positive) TN(True Negative) FP + TN
ํ•ฉ๊ณ„ TP + FP FN + TN ALL
- TP / ( TP + FN ) = ์ง„์–‘์„ฑ๋ฅ  = ๋ฏผ๊ฐ๋„  
- TP / ( TP + FP ) = ์ •๋ฐ€๋„  
- TP / ( TP + FN ) = ์žฌํ˜„์œจ   
- FN / ( TP + FN ) = ๊ฑฐ์ง“์Œ์„ฑ๋ฅ   
- FP / ( FP + TN ) = ๊ฑฐ์ง“์–‘์„ฑ๋ฅ   
- TN / ( FP + TN ) = ์ง„์Œ์„ฑ๋ฅ  = ํŠน์ด๋„   
- ๋ฏผ๊ฐ๋„ + ๊ฑฐ์ง“์Œ์„ฑ๋ฅ  = 1  
- ํŠน์ด๋„ + ๊ฑฐ์ง“์–‘์„ฑ๋ฅ  = 1  
- Accuracy = ( TP + TN ) / ALL  
- F measure = 2 * (์ •๋ฐ€๋„ * ์žฌํ˜„์œจ) / (์ •๋ฐ€๋„ + ์žฌํ˜„์œจ)  

Receiver Operating Characteristic curve(ROC curve)

- ์‹๋ณ„ ๊ฒฐ๊ณผ๊ฐ€ (0, 1) ์‚ฌ์ด๋กœ ๋‚˜์˜จ ๊ฒฝ์šฐ ์‹๋ณ„ ๊ฒฐ๊ณผ์™€ ์ •๋‹ต ์„ธํŠธ๋ฅผ ์‹๋ณ„ ๊ฒฐ๊ณผ์˜ ์ ์ˆ˜ ์ˆœ์„œ๋กœ ์ •๋ ฌํ•˜์—ฌ ์ž„๊ณ„์น˜๋ฅผ ์„ค์ •ํ•˜๊ณ , ์ž„๊ณ„์น˜๋ณด๋‹ค ์œ„๋ฅผ ์–‘์„ฑ์œผ๋กœ ํ•˜์—ฌ ํ˜ผ๋™ํ–‰๋ ฌ๋กœ ๋‚˜ํƒ€๋‚ธ๋‹ค๋ฉด ์ง„์–‘์„ฑ๋ฅ ๊ณผ ๊ฑฐ์ง“์–‘์„ฑ๋ฅ ์„ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์Œ.   
- x์ถ•์„ ๊ฑฐ์ง“์–‘์„ฑ๋ฅ (1-ํŠน์ด๋„, False Positive Rate), y์ถ•์„ ์ง„์–‘์„ฑ๋ฅ (๋ฏผ๊ฐ๋„, True Positive Rate)๋กœ ํ•˜์—ฌ ์ž„๊ณ„์น˜๋ฅผ ๋ณ€ํ™”์‹œํ‚ค๋ฉด ROC curve ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ.  
- ๊ธฐ์ค€ ๋ผ์ธ NIR(No Information Rate) - ๋ฉ์ฒญํ•œ ๋ชจ๋ธ๋กœ ๋งŒ๋“  ๊ฒฝ์šฐ์˜ ๊ณก์„   
- AUC(Area Under Curve): ROC ๊ณก์„ ์˜ ์•„๋žซ๋ถ€๋ถ„ ๋ฉด์  ๊ฐ’, 0.9 ์ด์ƒ์ด๋ฉด ์ •ํ™•๋„(accuracy)๊ฐ€ ๋†’์Œ.  
- Youden Index - AUC ๊ฐ’๊ณผ ๊ธธ์ด 0.5์˜ ๋Œ€๊ฐ์„  ์‚ฌ์ด ๊ฑฐ๋ฆฌ b๊ฐ€ ๊ฐ€์žฅ ๋ฉ€ ๋•Œ์˜ ์ง„์–‘์„ฑ๋ฅ  + ๊ฑฐ์ง“์–‘์„ฑ๋ฅ , ํด ์ˆ˜๋ก ์ข‹์€ ๋ชจ๋ธ  

Confusion Matrix Example

Model 1

์‹๋ณ„ ๊ฒฐ๊ณผ ๊ฐœ ์‹๋ณ„ ๊ฒฐ๊ณผ ๊ณ ์–‘์ด ํ•ฉ๊ณ„
์‹ค์ œ ๊ฐœ TP = 5000 FN = 5000 10000
์‹ค์ œ ๊ณ ์–‘์ด FP = 5000 TN = 5000 10000
ํ•ฉ๊ณ„ 10000 10000 20000

์‹ค์ œ ๊ฐœ ์ค‘ ๊ฐœ๋ผ๊ณ  ๋Œ€๋‹ตํ•  ํ™•๋ฅ  -> ๋ฏผ๊ฐ๋„ = 5000 / 10000 = 0.5
๊ฐœ๋ผ๊ณ  ๋Œ€๋‹ตํ•  ๋•Œ ๊ฐœ์ผ ํ™•๋ฅ  -> ์ •๋ฐ€๋„ = 5000 / 10000 = 0.5
์‹ค์ œ ๊ณ ์–‘์ด ์ค‘ ๊ณ ์–‘์ด๋ผ๊ณ  ๋Œ€๋‹ตํ•  ํ™•๋ฅ  -> ํŠน์ด๋„ = 5000 / 10000 = 0.5
์ „์ฒด ์ •๋‹ต ์ค‘ ๊ฐœ์˜ ๋น„์œจ -> ์žฌํ˜„์œจ = 5000 / 10000 = 0.5
๊ณ ์–‘์ด๋ผ๊ณ  ๋Œ€๋‹ตํ•  ๋•Œ ๊ณ ์–‘์ด๊ฐ€ ์žˆ์„ ํ™•๋ฅ  - 5000 / 10000 = 0.5
Accuracy = 10000 / 20000 = 0.5
F = 2 * (0.5 * 0.5) / (0.5 + 0.5) = 0.5

Model 2

์‹๋ณ„ ๊ฒฐ๊ณผ ๊ฐœ ์‹๋ณ„ ๊ฒฐ๊ณผ ๊ณ ์–‘์ด ํ•ฉ๊ณ„
์‹ค์ œ ๊ฐœ TP = 9000 FN = 1000 10000
์‹ค์ œ ๊ณ ์–‘์ด FP = 9000 TN = 1000 10000
ํ•ฉ๊ณ„ 18000 2000 20000

์‹ค์ œ ๊ฐœ ์ค‘ ๊ฐœ๋ผ๊ณ  ๋Œ€๋‹ตํ•  ํ™•๋ฅ  -> ๋ฏผ๊ฐ๋„ = 9000 / 10000 = 0.7
๊ฐœ๋ผ๊ณ  ๋Œ€๋‹ตํ•  ๋•Œ ๊ฐœ์ผ ํ™•๋ฅ  -> ์ •๋ฐ€๋„ = 9000 / 18000 = 0.5
์‹ค์ œ ๊ณ ์–‘์ด ์ค‘ ๊ณ ์–‘์ด๋ผ๊ณ  ๋Œ€๋‹ตํ•  ํ™•๋ฅ  -> ํŠน์ด๋„ = 1000 / 10000 = 0.1
์ „์ฒด ์ •๋‹ต ์ค‘ ๊ฐœ์˜ ๋น„์œจ -> ์žฌํ˜„์œจ = 9000 / 10000 = 0.9
๊ณ ์–‘์ด๋ผ๊ณ  ๋Œ€๋‹ตํ•  ๋•Œ ๊ณ ์–‘์ด๊ฐ€ ์žˆ์„ ํ™•๋ฅ  - 5000 / 10000 = 0.5
Accuracy = 10000 / 20000 = 0.5
F = 2 * ( 0.5 * 0.9 ) / ( 0.5 + 0.9 ) = 0.64285

Model 3

์‹๋ณ„ ๊ฒฐ๊ณผ ๊ฐœ ์‹๋ณ„ ๊ฒฐ๊ณผ ๊ณ ์–‘์ด ํ•ฉ๊ณ„
์‹ค์ œ ๊ฐœ TP = 7000 FN = 3000 10000
์‹ค์ œ ๊ณ ์–‘์ด FP = 1000 TN = 9000 10000
ํ•ฉ๊ณ„ 8000 12000 20000

์‹ค์ œ ๊ฐœ ์ค‘ ๊ฐœ๋ผ๊ณ  ๋Œ€๋‹ตํ•  ํ™•๋ฅ  -> ๋ฏผ๊ฐ๋„ = 7000 / 10000 = 0.7
๊ฐœ๋ผ๊ณ  ๋Œ€๋‹ตํ•  ๋•Œ ๊ฐœ์ผ ํ™•๋ฅ  -> ์ •๋ฐ€๋„ = 7000 / 8000 = 0.875
์‹ค์ œ ๊ณ ์–‘์ด ์ค‘ ๊ณ ์–‘์ด๋ผ๊ณ  ๋Œ€๋‹ตํ•  ํ™•๋ฅ  -> ํŠน์ด๋„ = 9000 / 10000 = 0.9
์ „์ฒด ์ •๋‹ต ์ค‘ ๊ฐœ์˜ ๋น„์œจ -> ์žฌํ˜„์œจ = 7000 / 10000 = 0.7
๊ณ ์–‘์ด๋ผ๊ณ  ๋Œ€๋‹ตํ•  ๋•Œ ๊ณ ์–‘์ด๊ฐ€ ์žˆ์„ ํ™•๋ฅ  -> 9000 / 12000 = 0.75
Accuracy = 16000 / 20000 = 0.8
F = 2 * ( 0.875 * 0.7 ) / (0.875 + 0.7 )= 0.77778

Model 4

์‹๋ณ„ ๊ฒฐ๊ณผ ๊ฐœ ์‹๋ณ„ ๊ฒฐ๊ณผ ๊ณ ์–‘์ด ํ•ฉ๊ณ„
์‹ค์ œ ๊ฐœ TP = 9000 FN = 1000 10000
์‹ค์ œ ๊ณ ์–‘์ด FP = 3000 TN = 7000 10000
ํ•ฉ๊ณ„ 12000 8000 20000

์‹ค์ œ ๊ฐœ ์ค‘ ๊ฐœ๋ผ๊ณ  ๋Œ€๋‹ตํ•  ํ™•๋ฅ  -> ๋ฏผ๊ฐ๋„ = 9000 / 10000 = 0.9
๊ฐœ๋ผ๊ณ  ๋Œ€๋‹ตํ•  ๋•Œ ๊ฐœ์ผ ํ™•๋ฅ  -> ์ •๋ฐ€๋„ = 9000 / 12000 = 0.75
์‹ค์ œ ๊ณ ์–‘์ด ์ค‘ ๊ณ ์–‘์ด๋ผ๊ณ  ๋Œ€๋‹ตํ•  ํ™•๋ฅ  -> ํŠน์ด๋„ = 7000 / 10000 = 0.7
์ „์ฒด ์ •๋‹ต ์ค‘ ๊ฐœ์˜ ๋น„์œจ -> ์žฌํ˜„์œจ = 9000 / 10000 = 0.9
๊ณ ์–‘์ด๋ผ๊ณ  ๋Œ€๋‹ตํ•  ๋•Œ ๊ณ ์–‘์ด๊ฐ€ ์žˆ์„ ํ™•๋ฅ  - 7000 / 8000 = 0.875
Accuracy = 16000 / 20000 = 0.8
F = 2 * ( 0.75 * 0.9) / (0.75 + 0.9) = 0.81818

Model 5

์‹๋ณ„ ๊ฒฐ๊ณผ ๊ฐœ ์‹๋ณ„ ๊ฒฐ๊ณผ ๊ณ ์–‘์ด ํ•ฉ๊ณ„
์‹ค์ œ ๊ฐœ TP = 0 FN = 10000 10000
์‹ค์ œ ๊ณ ์–‘์ด FP = 0 TN = 10000 10000
ํ•ฉ๊ณ„ 0 20000 20000

์‹ค์ œ ๊ฐœ ์ค‘ ๊ฐœ๋ผ๊ณ  ๋Œ€๋‹ตํ•  ํ™•๋ฅ  -> ๋ฏผ๊ฐ๋„ = 0 / 10000 = 0
๊ฐœ๋ผ๊ณ  ๋Œ€๋‹ตํ•  ๋•Œ ๊ฐœ์ผ ํ™•๋ฅ  -> ์ •๋ฐ€๋„ = 0 / 0 = 0
์‹ค์ œ ๊ณ ์–‘์ด ์ค‘ ๊ณ ์–‘์ด๋ผ๊ณ  ๋Œ€๋‹ตํ•  ํ™•๋ฅ  -> ํŠน์ด๋„ = 10000 / 10000 = 1.0
์ „์ฒด ์ •๋‹ต ์ค‘ ๊ฐœ์˜ ๋น„์œจ -> ์žฌํ˜„์œจ = 0/ 10000 = 0
๊ณ ์–‘์ด๋ผ๊ณ  ๋Œ€๋‹ตํ•  ๋•Œ ๊ณ ์–‘์ด๊ฐ€ ์žˆ์„ ํ™•๋ฅ  - 10000 / 20000 = 0.5
Accuracy = 10000 / 20000 = 0.5
F = 2 * ( 0 * 0) / (0 + 0) = 0

Model 6

์‹๋ณ„ ๊ฒฐ๊ณผ ๊ฐœ ์‹๋ณ„ ๊ฒฐ๊ณผ ๊ณ ์–‘์ด ํ•ฉ๊ณ„
์‹ค์ œ ๊ฐœ TP = 10000 FN = 0 10000
์‹ค์ œ ๊ณ ์–‘์ด FP = 10000 TN = 0 10000
ํ•ฉ๊ณ„ 20000 0 20000

์‹ค์ œ ๊ฐœ ์ค‘ ๊ฐœ๋ผ๊ณ  ๋Œ€๋‹ตํ•  ํ™•๋ฅ  -> ๋ฏผ๊ฐ๋„ = 10000 / 10000 = 1.0
๊ฐœ๋ผ๊ณ  ๋Œ€๋‹ตํ•  ๋•Œ ๊ฐœ์ผ ํ™•๋ฅ  -> ์ •๋ฐ€๋„ = 10000 / 20000 = 0.5
์‹ค์ œ ๊ณ ์–‘์ด ์ค‘ ๊ณ ์–‘์ด๋ผ๊ณ  ๋Œ€๋‹ตํ•  ํ™•๋ฅ  -> ํŠน์ด๋„ = 0 / 10000 = 0
์ „์ฒด ์ •๋‹ต ์ค‘ ๊ฐœ์˜ ๋น„์œจ -> ์žฌํ˜„์œจ = 10000 / 10000 = 1.0
๊ณ ์–‘์ด๋ผ๊ณ  ๋Œ€๋‹ตํ•  ๋•Œ ๊ณ ์–‘์ด๊ฐ€ ์žˆ์„ ํ™•๋ฅ  - 0 / 0 = 0
Accuracy = 10000 / 20000 = 0.5
F = 2 * ( 1 * 0.5) / (1 + 0.5) = 0.66667

Model 7

์‹๋ณ„ ๊ฒฐ๊ณผ ๊ฐœ ์‹๋ณ„ ๊ฒฐ๊ณผ ๊ณ ์–‘์ด ํ•ฉ๊ณ„
์‹ค์ œ ๊ฐœ TP = 10000 FN = 0 10000
์‹ค์ œ ๊ณ ์–‘์ด FP = 0 TN = 10000 10000
ํ•ฉ๊ณ„ 10000 10000 20000

์‹ค์ œ ๊ฐœ ์ค‘ ๊ฐœ๋ผ๊ณ  ๋Œ€๋‹ตํ•  ํ™•๋ฅ  -> ๋ฏผ๊ฐ๋„ = 10000 / 10000 = 1.0
๊ฐœ๋ผ๊ณ  ๋Œ€๋‹ตํ•  ๋•Œ ๊ฐœ์ผ ํ™•๋ฅ  -> ์ •๋ฐ€๋„ = 10000 / 10000 = 1.0
์‹ค์ œ ๊ณ ์–‘์ด ์ค‘ ๊ณ ์–‘์ด๋ผ๊ณ  ๋Œ€๋‹ตํ•  ํ™•๋ฅ  -> ํŠน์ด๋„ = 10000 / 10000 = 1.0
์ „์ฒด ์ •๋‹ต ์ค‘ ๊ฐœ์˜ ๋น„์œจ -> ์žฌํ˜„์œจ = 10000 / 10000 = 1.0
๊ณ ์–‘์ด๋ผ๊ณ  ๋Œ€๋‹ตํ•  ๋•Œ ๊ณ ์–‘์ด๊ฐ€ ์žˆ์„ ํ™•๋ฅ  - 10000 / 10000 = 1.0
Accuracy = 20000 / 20000 = 1.0
F = 2 * ( 1.0 * 1.0) / (1.0 + 1.0) = 1.0

AIC(Akaike Information criterion) & BIC(Bayesian information criterion) //

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published