์ด๋ฒ์ ๊ณ ์ฅ์ง๋จ์ ๊ดํ ๊ณผ์ ๋ฅผ ํ๊ฒ ๋๋ฉด์ LSTM AE๋ CNN ๋ณด๋ค ์ต๊ทผ ๋ชจ๋ธ์ ์ ์ฉํด๋ณด๊ณ ์ถ์ด์ TadGAN์ ๊ณจ๋๋ค. ์์ง ์์ ํ ์ดํดํ๋์ง๋ ๋ชจ๋ฅด๊ฒ ์ผ๋ ์๊ฒ๋๋๋ก ์กฐ๊ธ ์ ์ด๋ณด๋ ค๊ณ ํ๋ค.
TadGAN(Time series Anomaly Detection GAN)
TadGAN์ 2020๋ ๋ฐํ๋ ๋ชจ๋ธ๋ก, ์ด๋ฆ ๊ทธ๋๋ก ์๊ณ์ด ๋ฐ์ดํฐ์ ์ด์ ํ์ง์ฉ GAN ๋ชจ๋ธ์ด๋ค. GAN ๋ชจ๋ธ์ ๋ณต์, ์ด๋ฏธ์ง ์์ฑ ๋ฑ์ ํนํ๋์ด ์๋๋ฐ, ์ด ์ฑ์ง์ ์ด์ฉํ์ฌ LSTM Auto Encoder์ฒ๋ผ ํจํด์ ๋ณต์ํ๋ฉฐ ํ์ตํ๊ณ , ์ดํ์ ๋ค์ด์ค๋ ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ธกํ์ ๋ ์๋ฌ๊ฐ ํฐ ๋ถ๋ถ์ ์ด์์น๋ก ํ์งํ๋ ๊ฒ์ด๋ค.
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 ์ฃผ์
Orion TadGAN
์ดํ์ ์ง์ ์์งํ ์ง๋ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ต์์ผ๋ณธ ๊ธฐ๋ก์ ํฌ์คํ ํ๋๋ก ํ๊ฒ ๋ค.