๐Ÿฌ ML & Data/๐Ÿ“˜ ๋…ผ๋ฌธ & ๋ชจ๋ธ ๋ฆฌ๋ทฐ

[Model Review] TadGAN(Time series Anomaly Detection GAN)

darly213 2023. 5. 17. 10:38
728x90

์ด๋ฒˆ์— ๊ณ ์žฅ์ง„๋‹จ์— ๊ด€ํ•œ ๊ณผ์ œ๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด์„œ LSTM AE๋‚˜ CNN ๋ณด๋‹ค ์ตœ๊ทผ ๋ชจ๋ธ์„ ์ ์šฉํ•ด๋ณด๊ณ  ์‹ถ์–ด์„œ TadGAN์„ ๊ณจ๋ž๋‹ค. ์•„์ง ์™„์ „ํžˆ ์ดํ•ดํ–ˆ๋Š”์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์œผ๋‚˜ ์•Œ๊ฒŒ๋œ๋Œ€๋กœ ์กฐ๊ธˆ ์ ์–ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. 

TadGAN(Time series Anomaly Detection GAN)

TadGAN์€ 2020๋…„ ๋ฐœํ‘œ๋œ ๋ชจ๋ธ๋กœ, ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ์˜ ์ด์ƒ ํƒ์ง€์šฉ GAN ๋ชจ๋ธ์ด๋‹ค. GAN ๋ชจ๋ธ์€ ๋ณต์›, ์ด๋ฏธ์ง€ ์ƒ์„ฑ ๋“ฑ์— ํŠนํ™”๋˜์–ด ์žˆ๋Š”๋ฐ, ์ด ์„ฑ์งˆ์„ ์ด์šฉํ•˜์—ฌ LSTM Auto Encoder์ฒ˜๋Ÿผ ํŒจํ„ด์„ ๋ณต์›ํ•˜๋ฉฐ ํ•™์Šตํ•˜๊ณ , ์ดํ›„์— ๋“ค์–ด์˜ค๋Š” ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์˜ˆ์ธกํ–ˆ์„ ๋•Œ ์—๋Ÿฌ๊ฐ€ ํฐ ๋ถ€๋ถ„์„ ์ด์ƒ์น˜๋กœ ํƒ์ง€ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์ด๋ฏธ์ง€ ์ถœ์ฒ˜ - Smilegate ai

TadGAN์˜ ๊ตฌ์กฐ

TadGAN์€ 2๊ฐœ์˜ Generator์™€ 2๊ฐœ์˜ Critic ์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. 

  • Generator E : time series sequence to latent space
  • Generator G : latent space to time series sequence
  • Critic X : ์›๋ณธ ๋ฐ์ดํ„ฐ์™€ ์ƒ์„ฑ๋œ ๊ฒฐ๊ณผ ์ค‘ ์›๋ณธ ํŒ๋ณ„
  • Critic Z : Generator E๊ฐ€ latent space๋ฅผ ์ž˜ ์ƒ์„ฑํ–ˆ๋Š”์ง€ ํŒ๋ณ„

 

TadGAN ๋™์ž‘ ๋ฐฉ์‹

TadGAN์€ ์ด 4๊ฐœ์˜ ๋‹จ๊ณ„๋ฅผ ๊ฑธ์ณ ๋™์ž‘ํ•œ๋‹ค. 

Phase 1

Generator G๋ฅผ ํ•™์Šต์‹œํ‚ค๋Š” ๊ณผ์ •์ด๋‹ค. Generator G์—์„œ ์ฃผ์–ด์ง„ ๋žœ๋ค ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์‹œ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋กœ ๋ณต์›ํ•œ ๋’ค, Critic X์—์„œ ์‹ค์ œ ๋ฐ์ดํ„ฐ์™€ ์–ด๋–ค ๊ฒƒ์ด ์›๋ณธ์ธ์ง€ ๋น„๊ตํ•˜๊ฒŒ ๋œ๋‹ค. G๊ฐ€ ๋ณต์›ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์‹ค์ œ ๋ฐ์ดํ„ฐ์™€ ๊ฐ™์•„์งˆ ์ˆ˜๋ก Critic X์˜ ์˜ค๋‹ต๋ฅ ์ด ๋†’์•„์ง„๋‹ค. 

 

Phase 2

Generator E๋ฅผ ํ•™์Šต์‹œํ‚ค๋Š” ๊ณผ์ •์ด๋‹ค. Generator E๊ฐ€ latent space๋ฅผ ์ž˜ ์ƒ์„ฑํ•˜๋„๋ก ํ•™์Šต์‹œํ‚จ๋‹ค. ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ E๋ฅผ ๊ฑฐ์ณ latent space๋กœ ๋งŒ๋“ค๊ณ , ๋žœ๋ค ๋ฐ์ดํ„ฐ์™€์˜ ์˜ค์ฐจ๋ฅผ Critic์—์„œ ๊ณ„์‚ฐํ•œ๋‹ค. E๊ฐ€ ์ž˜ ํ•™์Šต๋  ์ˆ˜๋ก Critic Z์˜ ์˜ค๋‹ต๋ฅ ์ด ๋‚ฎ์•„์ง„๋‹ค.

 

Phase 3

Generator E๋กœ ์ƒ์„ฑํ•œ latent space๋ฅผ Generator G๋กœ ๋ณต์›ํ•œ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ์™€ ๋žœ๋ค latent space๋ฅผ Generator G๋กœ ๋ณต์›ํ•œ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด Critic X์—์„œ ์˜ค์ฐจ๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. ์ตœ๋Œ€ํ•œ Critic X๋ฅผ ์†์ด๋Š” ๋ฐฉํ–ฅ์œผ๋กœ(์˜ค๋‹ต๋ฅ ์ด ๋†’์•„์ง€๊ฒŒ) ํ•™์Šต์„ ์ง„ํ–‰ํ•˜๋ฉฐ, ๋žœ๋ค ๋ฐ์ดํ„ฐ๋กœ ์ƒ์„ฑํ•œ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ์˜ Critic X ์ ์ˆ˜๋ฅผ loss function ์— ์ถ”๊ฐ€ํ•ด์„œ Decoder์˜ ํ•™์Šต์ด ์–ผ๋งˆ๋‚˜ ์ง„ํ–‰๋˜์—ˆ๋Š”์ง€์— ๋”ฐ๋ผ ์†๋„๋ฅผ ์กฐ์ ˆํ•œ๋‹ค. 

Phase 4

์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ Generator E๋ฅผ ๊ฑฐ์ณ ์ƒ์„ฑํ•œ latent space๋ฅผ Generator G๋กœ ๋ณต์›ํ•œ ๋ฐ์ดํ„ฐ์™€ ์‹ค์ œ ๋ฐ์ดํ„ฐ x๋ฅผ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ์›๋ณธ ๋ฐ์ดํ„ฐ์˜ latent space์™€ random latent space์˜ Cz์˜ score๋“ค์„ loss function์— ์ถ”๊ฐ€ํ•ด Phase3 ์ฒ˜๋Ÿผ Encoder์˜ ํ•™์Šต์˜ ์ง„ํ–‰์— ๋”ฐ๋ผ ํ•™์Šต ์†๋„๋ฅผ ์กฐ์ ˆํ•œ๋‹ค. 

 

PyTorch ๊ตฌํ˜„ Github ์ฃผ์†Œ

 

GitHub - arunppsg/TadGAN: Code for the paper "TadGAN: Time Series Anomaly Detection Using Generative Adversarial Networks"

Code for the paper "TadGAN: Time Series Anomaly Detection Using Generative Adversarial Networks" - GitHub - arunppsg/TadGAN: Code for the paper "TadGAN: Time Series Anomaly Detection...

github.com

Orion TadGAN

 

GitHub - sintel-dev/Orion: A machine learning library for detecting anomalies in signals.

A machine learning library for detecting anomalies in signals. - GitHub - sintel-dev/Orion: A machine learning library for detecting anomalies in signals.

github.com

 

์ดํ›„์— ์ง์ ‘ ์ˆ˜์ง‘ํ•œ ์ง„๋™ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•™์Šต์‹œ์ผœ๋ณธ ๊ธฐ๋ก์„ ํฌ์ŠคํŒ…ํ•˜๋„๋ก ํ•˜๊ฒ ๋‹ค. 

728x90