๐Ÿ“š Study/AI

[๋”ฅ๋Ÿฌ๋‹๊ณผ ์„ค๊ณ„] Autoencoder & Anomaly Detection

์œฐ๊ฐฑ 2024. 7. 10. 17:36

๋ณธ ๊ธ€์€ ๋‹ค์Œ ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.

https://www.youtube.com/watch?v=9mf4maQU7UY&list=PLQASD18hjBgyLqK3PgXZSp5FHmME7elWS&index=7

 

 

 

 


# Autoencoder

 

Autoencoder์€ input๊ณผ output์ด ๋™์ผํ•œ ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ์ด๊ณ ,

Encoding์€ ๊ณ ์ฐจ์›์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์ฐจ์›์œผ๋กœ ์••์ถ•ํ•˜๋Š” ๊ณผ์ •์„ ์˜๋ฏธํ•œ๋‹ค. (ex. ์œ„์˜ ๊ทธ๋ฆผ, 100์ฐจ์› -> 2์ฐจ์›)

๊ทธ๋ฆฌ๊ณ  ์••์ถ•ํ•œ ๊ฒƒ์„ ๋‹ค์‹œ ์›๋ž˜์˜ input ํ˜•ํƒœ์˜ ํฌ๊ธฐ๋กœ ๋ณต์›ํ•˜๋Š” Decoding์ด ์žˆ๋‹ค.

 

์••์ถ•ํ•œ ๋ถ€๋ถ„์„ ์˜๋ฏธํ•˜๋Š” $z$๋Š” code, latent variable, feature, hidden representation ๋“ฑ ๋‹ค์–‘ํ•˜๊ฒŒ ๋ถ€๋ฅธ๋‹ค.

 

๋ถ„๋ช… ๋ณธ ์ฐจ์›์„ ์ค„์—ฌ latent variable๋ฅผ ๋งŒ๋“ค์—ˆ์œผ๋ฉด, ๋งŽ์€ ์ •๋ณด๋“ค์ด ์†์‹ค์ด ๋˜์—ˆ์„ํ…๋ฐ

๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  decoding์„ ํ–ˆ์„ ๋•Œ input๊ณผ ๋น„์Šทํ•œ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ผ๊นŒ?

๋ฐ”๋กœ latent variable์—๋Š” 'ํ•ต์‹ฌ ์ •๋ณด'๋งŒ์„ ์ €์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

์•ž์„œ ๋ฐฐ์šด, ์ฐจ์› ์ถ•์†Œ์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์˜ˆ๊ฐ€ Autoencoder์ด๋‹ค.

 

 

 

 

input ์ด๋ฏธ์ง€ $x$์™€ output ์ด๋ฏธ์ง€ $y$์˜ ์‚ฌ์ด์ฆˆ๋Š” ๋™์ผํ•˜๊ณ ,

์ด ๋‘˜ ์‚ฌ์ด์˜ ์ฐจ์ด๊ฐ’์ธ loss $L(x,y)$์„ ์ค„์—ฌ๋‚˜๊ฐ€๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•™์Šต์ด ๋œ๋‹ค.

(์—ฌ๊ธฐ์„œ๋Š” $x$์™€ $y$์˜ ์ฐจ์ด๋ฅผ ํ”ฝ์…€๋‹น MSE๋กœ ๋น„๊ต)

 

์‚ฌ์‹ค label์€ ์ฃผ์–ด์ง€์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— unsupervised๊ฐ€ ๋งž์ง€๋งŒ,

์ž…๋ ฅ ์ด๋ฏธ์ง€ ์ž์ฒด๊ฐ€ label ์—ญํ• ์„ ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— supervised์ฒ˜๋Ÿผ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ๋‹ค.

 

Autoencoder์˜ ๋ชฉ์ ์€ encoder์ด๊ธฐ ๋•Œ๋ฌธ์— ์ž˜ ์••์ถ•ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

 

 

 

 

์ดˆ๋ฐ˜์— Encoder๊ณผ Decoder์˜ ๊ตฌ์กฐ๋Š” NN์ด์—ˆ์ง€๋งŒ,

์ตœ๊ทผ์—์„œ๋Š” CNN ๊ตฌ์กฐ๋„ ๋งŽ์ด ์“ฐ์ด๊ณ  ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ Convolutional AE (CAE)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

์‹ค์ œ๋กœ ์ด๋ฏธ์ง€๋ฅผ ์••์ถ•ํ•  ๋•Œ, NN๋ณด๋‹ค CNN์„ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ ํ€„๋ฆฌํ‹ฐ๊ฐ€ ๋” ์ข‹์•˜๋˜ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

์‹ค์ œ๋กœ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด ๋ณด๋ฉด, ๊ธฐ์กด ๋‹ค๋ฅธ ์ฝ”๋“œ์—์„œ model.fit(x,y)ํ•œ ๊ฒƒ๊ณผ ๋‹ฌ๋ฆฌ

autoencoder์—์„œ๋Š” ์ž๊ธฐ ์ž์‹ ์„ label์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ model.fit(x_train, x_train)์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์“ด ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 


 

# Autoencoder Application 1 - Supervised Learning

 

autoencoder์€ transfer learning์—๋„ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค.

 

unlabeled ์ด๋ฏธ์ง€๋“ค์„ autoencoder๋กœ ํ•™์Šต์„ ํ•˜๊ณ  decoder ๋ถ€๋ถ„์„ ๋—€๋‹ค.

์ดํ›„ encoder ๋ถ€๋ถ„์€ frozen์‹œํ‚ค๊ณ  classifier๋ฅผ ๋ถ™์—ฌ label์ด ์žˆ๋Š” data์— ๋Œ€ํ•ด์„œ finetuning์„ ํ•˜์—ฌ ํ•™์Šต์„ ํ•˜๋Š” ๊ณผ์ •์ด๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๊ธฐ์กด์˜ ์‚ฌ์ง„์—์„œ๋Š” ๋ง, ๊ณ ์–‘์ด, ์‚ฌ์ž ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ์…‹์ด ์žˆ๋‹ค ํ•˜๋”๋ผ๋„

์˜ค๋ฅธ์ชฝ ๊ฒฝ์šฐ์—์„œ๋Š” label์ด ์žˆ๋Š” ๊ณ ์–‘์ด๋งŒ ๋‹ค์‹œ ํ•™์Šต์„ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

์ด๋ ‡๊ฒŒ encoder๋ฅผ ์ด์šฉํ•˜๋ฉด supervised learning์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

 

 

# Autoencoder Application 2 - Anomaly Detection

 

์ด์ƒ์น˜ ํƒ์ง€์—๋„ ๋งŽ์ด ์‚ฌ์šฉ์ด ๋œ๋‹ค.

์ •์ƒ์ธ data์— ๋Œ€ํ•ด์„œ๋งŒ autoencoder๋ฅผ ํ•™์Šต์‹œํ‚จ ํ›„

์ด์ƒ์น˜์ธ data๊ฐ€ ๋“ค์–ด์™”์„ ๋•Œ reconstruction error๊ฐ€ ์ปค์ง€๋Š” ๊ฒƒ์„ ์‚ฌ์šฉํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค.

 

์ฆ‰, reconstruction error๊ฐ€ ํŠน์ • threshold ์ด์ƒ์ด ๋‚˜์˜จ๋‹ค๋ฉด anomaly ์ด์ƒ์น˜๋กœ ๋ถ„๋ฅ˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

 

 

๊ฒฝ์šฐ์— ๋”ฐ๋ผ Type1์ด ๋” ํฐ ์—๋Ÿฌ์ผ ์ˆ˜๋„, Type2๊ฐ€ ๋” ํฐ ์—๋Ÿฌ์ผ ์ˆ˜๋„ ์žˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด positive๊ฐ€ ์•”์ด๋ผ๊ณ  ํŒ๋‹จ์„ ํ•œ๋‹ค๋ฉด, ์•”์ด ๊ฑธ๋ ธ๋Š”๋ฐ ์ •์ƒ์ด๋ผ๊ณ  ํŒ๋‹จํ•œ Type2๊ฐ€ ๋” ํฐ ์—๋Ÿฌ์ด๋‹ค.

๊ทธ์™€๋Š” ๋ฐ˜๋Œ€๋กœ positive๊ฐ€ ์œ ์ฃ„๋ผ๊ณ  ํ•œ๋‹ค๋ฉด, ๋ฌด์ฃ„์ธ๋ฐ ์œ ์ฃ„๋ผ๊ณ  ํŒ๋‹จํ•œ Type1์ด ๋” ํฐ ์—๋Ÿฌ์ผ ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 

๊ฐ๊ฐ์˜ case์— ๋งž๊ฒŒ ์„ฑ๋Šฅ ์ง€ํ‘œ๋ฅผ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ๋‹ค.