๐Ÿšฉ๋”ฅ๋Ÿฌ๋‹ ๊ธฐ์ดˆ - part17. ์ด์ƒ ์ƒํ™ฉ ํƒ์ง€ Anomaly Detection

vincaยท2022๋…„ 12์›” 14์ผ
0

๐ŸŒ“ AI/DL - theory

๋ชฉ๋ก ๋ณด๊ธฐ
18/24
post-thumbnail

Introduction

์ด์ƒํƒ์ง€(๊ฐ์ง€)๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

  • ์˜ˆ์ƒ๋˜์ง€ ์•Š์€ ใ…ํ„ด์„ ๋ฐ์ดํ„ฐ์—์„œ ์ฐพ์•„๋‚ด๋Š” ๊ฒƒ
  • ์ •์ƒ๊ณผ ๋น„์ •์ƒ์„ ๊ตฌ๋ถ„ํ•ด๋‚ด๋Š” ๊ฒƒ
  • ๋น„์ •์ƒ, ํŠน์ด, ์ด์ƒ์น˜ ๋ผ๋Š” ์šฉ์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

์ด์ƒ ๋ฐ์ดํ„ฐ์˜ ์ข…๋ฅ˜

Global outlier

  • ์ง๊ด€์ ์œผ๋กœ ๋– ์˜ค๋ฅด๋Š” ์ •์ƒ ์ƒํƒœ์™€ ๊ตฌ๋ถ„๋˜๋Š” ํŠน์ดํ•œ ๊ฐ’
  • ์ผ๋ฐ˜์ ์ธ ๊ด€์ธก์น˜๋“ค๊ณผ ์ƒ๋‹นํžˆ ๋™๋–จ์–ด์ง„ ๊ด€์ธก์น˜๋“ค์„ ์˜๋ฏธ
  • ์–ผ๋งˆ๋‚˜ ๋–จ์–ด์ ธ ์žˆ๋Š”๊ฐ€๋ฅผ ์–ด๋–ป๊ฒŒ ์ธก์ •ํ•  ๊ฒƒ์ธ๊ฐ€๊ฐ€ ๋ฌธ์ œ

Contextual outlier (local outlier)

  • ํŠน์ • ๋ถ€๋ถ„์—์„œ ๋‹ค๋ฅธ ๋ถ€๋ถ„๊ณผ๋Š” ๋‹ค๋ฅธ ์–‘์ƒ์„ ๋„๋Š” ์ด์ƒ์น˜
  • ex.) ์•Œ๋ ˆ์Šค์นด์˜ ๊ธฐ์˜จ 30๋„, ์‚ฌํ•˜๋ผ์˜ ๊ธฐ์˜จ 30๋„
  • ๊ด€์ธก๋œ ๊ฐ’๋“ค์˜ Context๋ฅผ ์–ด๋–ป๊ฒŒ ์„ค์ •ํ•˜๋Š”์ง€๊ฐ€ ์ค‘์š”

Collective outlier

  • ๋ฐ์ดํ„ฐ๋ฅผ ์ „์ฒด ์ง‘๋‹จ์ (Collective)์œผ๋กœ ๋ณด์•˜์„ ๋•Œ, outlier(์ด์ƒ์น˜)๋ผ๋Š” ๊ฒƒ.
  • ๊ฐ€์žฅ ์ฐพ๊ธฐ๊ฐ€ ์–ด๋ ค์šด abnormal data์ด๋‹ค.

์ด์ƒ ํƒ์ง€๊ฐ€ ์–ด๋ ค์šด ์ด์œ 

1. ์ •์ƒ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์–ด๋ ต๋‹ค.

  • ์ด์ƒ ์—ฌ๋ถ€๋ฅผ ์ •ํ™•ํžˆ ํŒ๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋งŽ์€ ์–‘์˜ ์ „๋ฌธ์ ์ธ ์ง€์‹์ด ํ•„์š”.
  • ์ด์— ๋”ฐ๋ฅธ ์‹œ๊ฐ„๊ณผ ๋น„์šฉ์˜ ์†Œ๋ชจ๊ฐ€ ํผ
  • ์ •์ƒ๊ณผ ์ด์ƒ์˜ ๊ฒฝ๊ณ„๊ฐ€ ๋ถˆ๋ถ„๋ช…ํ•œ ๋ถ€๋ถ„์ด ์žˆ์Œ.

2. ๋ฐ์ดํ„ฐ์˜ ๋ถˆ๊ท ํ˜•

  • ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ์ด์ƒ๋ฐ์ดํ„ฐ๊ฐ€ ์ •์ƒ ๋ฐ์ดํ„ฐ๋ณด๋‹ค ํ›จ์”ฌ ๋ถ€์กฑํ•˜๋‹ค.

3. ๋ฐ์ดํ„ฐ๋งˆ๋‹ค ์ด์ƒ/์ •์ƒ์˜ ๊ตฌ๋ถ„์ด ๋‹ค๋ฆ„

  • ๊ฐ ๋„๋ฉ”์ธ(data pool)๋งˆ๋‹ค ์ด์ƒ ๋ฐ์ดํ„ฐ์˜ ํŒจํ„ด, ์„ฑํ–ฅ์ด ๋‹ค๋ฅด๊ณ  ์ •์˜ ๋˜ํ•œ ๋‹ค๋ฆ„

Classificatin VS. Anomaly Detection

Classification


์ •์ƒ ๋ฐ์ดํ„ฐ, ์ด์ƒ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ํ•™์Šต์‹œํ‚จ ๋’ค, ์ด ๋‘˜์„ ๋ถ„๋ฅ˜ํ•ด๋‚ธ๋‹ค.

Anmaly Detection

์ •์ƒ ๋ฐ์ดํ„ฐ๋งŒ์„ ๊ฐ€์ง€๊ณ  ํ•™์Šต์‹œํ‚ค๊ณ , ๋งŒ์ผ ์ •์ƒ ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹Œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ ‘๊ทผ ์‹œ, Abnormalํ•จ์„ ๊ฐ์ง€ํ•ด๋‚ธ๋‹ค.

์–ด๋–ค ๊ฑธ ์‚ฌ์šฉํ•ด์•ผํ• ๊นŒ?

  1. ๋ฐ์ดํ„ฐ ์…‹์˜ ํด๋ž˜์Šค๊ฐ€ ๋ถˆ๊ท ํ˜•ํ•œ๊ฐ€?
    -> ๋ถˆ๊ท ํ˜•ํ•˜์ง€ ์•Š๊ณ  ๊ณ ๋ฅด๋‹ค๋ฉด Classification

  2. ๋ถˆ๋Ÿ‰ ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ถฉ๋ถ„ํ•œ๊ฐ€?
    -> ๋ถˆ๋Ÿ‰ ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋ช‡๊ฐœ ์—†๋‹ค๋ฉด, Anomaly detection

๊ทธ๋ฆผ์œผ๋กœ ๋ณด๋Š” ๋‘˜์˜ ์ฐจ์ด


๋”ฐ๋ผ์„œ ์ด์ƒ ํƒ์ง€๋ž€ ์ •์ƒ ๋ฐ์ดํ„ฐ๋งŒ์œผ๋กœ ํ•™์Šตํ•˜์—ฌ, ์ •์ƒ๋ฐ์ดํ„ฐ์˜ ์˜์—ญ์„ ๊ตฌ์„ฑํ•˜๊ณ  ์ด๋ฅผ ๋ฒ—์–ด๋‚˜๋ฉด ๋น„์ •์ƒ์œผ๋กœ ๋ถ„๋ฅ˜ํ•œ๋‹ค.

์ด์ƒ ํƒ์ง€๋ฅผ ํ•™์Šตํ•˜๋Š” ๋ฐฉ๋ฒ•

1. Supervised Learning

์ฃผ์–ด์ง„ ํ•™์Šต ๋ฐ์ดํ„ฐ ์…‹์— ์ •์ƒ sample๊ณผ ๋น„์ •์ƒ sample์˜ data์™€ label์ด ๋ชจ๋‘ ์กด์žฌ.

2. Semi-Supervised Learning

  • Supervised Learning์˜ ํด๋ž˜์Šค ๋ถˆ๊ท ํ˜•์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋‚˜์˜จ ๋ฐฉ๋ฒ•
  • ์˜ค์ง ์ •์ƒ sample์„ ํ†ตํ•ด์„œ๋งŒ ๋ชจ๋ธ์„ ํ•™์Šตํ•˜๋Š” ๋ฐฉ์‹

3. Unsupervised Learning

  • Labeling์ด ๋˜์–ด์žˆ์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ์—์„œ, ๋Œ€๋ถ€๋ถ„์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ •์ƒ์ด๋ผ๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ํ•™์Šต์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•.

ํ•™์Šต ํ›„ ์ด์ƒ ํƒ์ง€๋ฅผ ํ•˜๋Š” ๋ฐฉ๋ฒ•

1. PCA

์ฐจ์› ์ถ•์†Œ ํ›„ ๋ณต์›๊ณผ์ •์„ ํ†ตํ•ด์„œ ๋น„์ •์ƒ Sample์„ ๊ฒ€์ถœํ•œ๋‹ค.

2. Autoencoder

encoder๋กœ ์ถ•์•ฝ์‹œํ‚ค๊ณ  ์ •์ƒ์ฒ˜๋Ÿผ ์žฌ ๋ณต์›(decoder)์‹œ์ผฐ์„ ๋•Œ ๊ฒฐ๊ณผ์˜ ์ฐจ์ด๊ฐ€ ์–ด๋Š์ •๋„ ๋‚˜๋Š”๊ฐ€?

encoding๋Š” ํ”ํžˆ๋งํ•ด ์••์ถ•์ด๋‹ค. decoding์€ ๋ณต์› ์ฆ‰ ์••์ถ•ํ•ด์ œ๋ผ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.
Autoencoder๋Š” ์ •์ƒ ๋ฐ์ดํ„ฐ๋งŒ์„ ์ด์šฉํ•ด์„œ ํ•™์Šต์„ ์ง„ํ–‰ํ•œ๋‹ค๋Š” ๊ฒƒ์ด ํŠน์ง•์ด๋‹ค.

How?

์ •์ƒ ๋ฐ์ดํ„ฐ๋งŒ์„ ์ด์šฉํ•ด์„œ ํ•™์Šต์„ ์ง„ํ–‰ํ•˜๋ฉด ์˜คํ† ์ธ์ฝ”๋”๋Š” data๊ฐ€ ๋“ค์–ด์™”์„ ๋•Œ, ์ •์ƒ์„ ๊ธฐ์ค€์œผ๋กœ ๋ณต์›ํ•˜๋„๋ก ๋˜์–ด์žˆ์„ ๊ฒƒ์ด๋‹ค.
๋”ฐ๋ผ์„œ ์ •์ƒ์„ ๋„ฃ๋Š” ๊ฒฝ์šฐ encoding ํ›„ decoding์„ ์ˆ˜ํ–‰ํ•˜๋”๋ผ๋„ ๊ทธ๋Œ€๋กœ ๋ณต์›์ด ๋œ๋‹ค.

ํ—ˆ๋‚˜ ์ด๋Ÿฌํ•œ Autoencoder์— ๋น„์ •์ƒ ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด๊ฐ€๊ฒŒ ๋˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ?
๋น„์ •์ƒ์€ ์–ด๋–ป๊ฒŒ ๋ณต์›ํ•ด์•ผํ•˜๋Š” ์ง€ ํ•™์Šต๋˜์ง€์•Š์•˜๋‹ค. ๋”ฐ๋ผ์„œ ๋น„์ •์ƒ ๋˜ํ•œ ๋งˆ์น˜ ์ •์ƒ"์ฒ˜๋Ÿผ" ๋””์ฝ”๋”ฉ ๋˜์–ด ๋‚˜์˜ฌ ๊ฒƒ์ด๋‹ค.
๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด ๊ฒฐ๊ณผ์ ์œผ๋กœ encoding์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „ Input์˜์ƒ xx์™€ encoding ์ดํ›„ decoding๋˜์–ด ๋‚˜์˜จ ๊ฒฐ๊ณผ ์˜์ƒ xโ€ฒx'๋Š” ์„œ๋กœ ์ฐจ์ด๋ฅผ ๋ณด์ผ ๊ฒƒ์ด๋‹ค.
์ด๋ ‡๊ฒŒ ๋น„์ •์ƒ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ถœํ•ด๋‚ด๋Š” ๊ฒƒ์„ Autoencoder๋ผ๊ณ  ํ•œ๋‹ค.

์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ

์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ž€?

๊ด€์ธก์น˜๊ฐ€ ์‹œ๊ฐ„์  ์ˆœ์„œ๋ฅผ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ ์…‹์˜ ์ง‘ํ•ฉ

  • ์„ผ์„œ, edge devices๋“ฑ ์‚ฐ์—… ์ „๋ฐ˜์˜ ๋‹ค์–‘ํ•œ ๋„๋ฉ”์ธ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฐ์ดํ„ฐ
  • ์ตœ๊ทผ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ฆ๊ฐ€๋กœ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ์˜ ์ด์ƒ ํƒ์ง€์— ๋Œ€ํ•œ ์ˆ˜์š”๊ฐ€ ์ฆ๊ฐ€.

์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ์˜ ์ด์ƒ ํ˜„์ƒ ์ •์˜

  • ์‹œ์  ์ด์ƒ : ๋น„์ •์ƒ์ ์ธ ๊ฐ’์— ๋„๋‹ฌํ•˜๋Š” ๋‹จ์ผ ์‹œ์  ๋˜๋Š” ์—ฐ์†์ ์ธ ์‹œ์ 
  • ๊ธฐ๊ฐ„ ์ด์ƒ : ํŠน์ • ๊ตฌ๊ฐ„์—์„œ ์ด์ƒํ˜„์ƒ์ด ์ƒ๊ธฐ๋Š” ๊ฒฝ์šฐ

์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ด์ƒ ๊ฐ์ง€ ๋ฐฉ๋ฒ• ๊ตฌ๋ถ„

0. ์ด์ƒ ๊ฐ์ง€ -> 1. ์ง€๋„ํ•™์Šต OR 2. ๋น„์ง€๋„ ํ•™์Šต

1. ์ง€๋„ ํ•™์Šต -> ๋ถ„๋ฅ˜

  1. ๋น„์ง€๋„ ํ•™์Šต -> ์œ ์‚ฌ์„ฑ(KNN), ์˜ˆ์ธก(LSTM, RNN), ์žฌ๊ตฌ์„ฑ(Autoencoder, PCA)
profile
๋ถ‰์€ ๋ฐฐ ์˜ค์ƒ‰ ๋”ฑ๋‹ค๊ตฌ๋ฆฌ ๊ฐœ๋ฐœ์ž ๐ŸฆƒCloud & DevOps

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