<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>코딩하는나데시코</title>
    <link>https://codingnade.tistory.com/</link>
    <description>AI &amp;amp; Data Analysis</description>
    <language>ko</language>
    <pubDate>Mon, 21 Sep 2026 18:38:15 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>coding_nadeshiko</managingEditor>
    <image>
      <title>코딩하는나데시코</title>
      <url>https://tistory1.daumcdn.net/tistory/8947971/attach/697211c2d5c642ac9691582e6a9a93b1</url>
      <link>https://codingnade.tistory.com</link>
    </image>
    <item>
      <title>[anomaly detection] Long Short Term Memory Networks for Anomaly Detection in Time Series (2015)</title>
      <link>https://codingnade.tistory.com/4</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script&gt; MathJax = { tex: {inlineMath: [['$', '$'], ['\(', '\)']]} };  &lt;/script&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;I. 문헌 정보&amp;nbsp;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 포스팅에서는 대표적인 예측(prediction) 기반 이상 탐지 방법인 LSTM을 활용한 이상 탐지에 대해 알아본다. LSTM 기반 이상 탐지의 대표적인 논문인 Long Short Term Memory Networks for Anomaly Detection in Time Series (2015)의 내용을 참고하였으며, 그 외 참고 문헌은 글 아래에 남겨둔다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;(PDF) Long Short Term Memory Networks for Anomaly Detection in Time Series&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;PDF | Long Short Terma Memory (LSTM) Networks have been demonstrated to be particularly useful for learning sequences containing longer term patterns of... | Find, read and cite all the research you need on ResearchGate&quot; data-og-host=&quot;www.researchgate.net&quot; data-og-source-url=&quot;https://www.researchgate.net/publication/304782562_Long_Short_Term_Memory_Networks_for_Anomaly_Detection_in_Time_Series&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cI1Uyh/dJMb84YetZZ/gADTzjXp3USLF008sHKU61/img.png?width=850&amp;amp;height=1203&amp;amp;face=0_0_850_1203&quot; data-og-url=&quot;https://www.researchgate.net/publication/304782562_Long_Short_Term_Memory_Networks_for_Anomaly_Detection_in_Time_Series&quot;&gt;&lt;a href=&quot;https://www.researchgate.net/publication/304782562_Long_Short_Term_Memory_Networks_for_Anomaly_Detection_in_Time_Series&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.researchgate.net/publication/304782562_Long_Short_Term_Memory_Networks_for_Anomaly_Detection_in_Time_Series&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cI1Uyh/dJMb84YetZZ/gADTzjXp3USLF008sHKU61/img.png?width=850&amp;amp;height=1203&amp;amp;face=0_0_850_1203');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;(PDF) Long Short Term Memory Networks for Anomaly Detection in Time Series&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;PDF | Long Short Terma Memory (LSTM) Networks have been demonstrated to be particularly useful for learning sequences containing longer term patterns of... | Find, read and cite all the research you need on ResearchGate&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.researchgate.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;II. 이상 탐지 파이프라인&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;누적합 &amp;middot; 지수가중평균과 같은 확률적 통계치를 활용하는 전통적인 이상 탐지 기법에는 두 가지 문제점이 존재한다. 통계량 계산에 참조하는 타임 윈도우(time window, 이전에 말했던 구간 부분)의 길이를 사전에 정해줘야 한다는 점과, &lt;b&gt;해당 매개변수를 어떻게 설정해주느냐에 따라서 이상 탐지의 결과가 크게 달라진다&lt;/b&gt;는 점이다&lt;sup class=&quot;footnote&quot;&gt;&lt;a href=&quot;#footnote_4_1&quot; id=&quot;footnote_link_4_1&quot; onmouseover=&quot;tistoryFootnote.show(this, 4, 1)&quot; onmouseout=&quot;tistoryFootnote.hide(4, 1)&quot; style=&quot;color:#f9650d; font-family: Verdana, Sans-serif; display: inline;&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;[각주:&lt;/span&gt;1&lt;span style=&quot;display: none;&quot;&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;저자는 이러한 한계점을 극복하기 위해, 과거 입력 정보를 현재 입력과 함께 사용하여 시간적 관계를 학습할 수 있는 예측 모델인 순환 신경망(RNN)의 일종인 LSTM(Long Short Term Memory)의 순환 은닉층을 쌓은 적층 네트워크를 사용할 것을 제안하며, 이를 통해 사전에 고정된 윈도우나 전처리 없이도 정확한 이상탐지가 가능함을 보이고자 한다. LSTM은 과거 정보 가운데 필요한 정보는 유지하고 불필요한 정보는 제거하는 선택적 기억 구조를 통해 장기 상관관계를 학습할 수 있는 순환신경망 모델이다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;저자는 다음과 같은 이상 탐지 파이프라인을 제안한다. 정상 데이터로 LSTM 예측 모델을 학습시킨 뒤, 정상 데이터에서 발생한 예측 오차를 다변량 가우시안 분포로 모델링한다. 이후 테스트 데이터의 예측 오차가 정상 오차 분포에서 나타날 가능성이 임계값보다 낮으면 이상으로 판정하는 방식이며, 비교할 Baseline은 일반적인 RNN을 활용한 이상 탐지 결과이다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1780&quot; data-origin-height=&quot;818&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/y5xNJ/dJMcacYANz3/31BVfjifMmT8KHAsK8GkKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/y5xNJ/dJMcacYANz3/31BVfjifMmT8KHAsK8GkKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/y5xNJ/dJMcacYANz3/31BVfjifMmT8KHAsK8GkKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fy5xNJ%2FdJMcacYANz3%2F31BVfjifMmT8KHAsK8GkKk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1780&quot; height=&quot;818&quot; data-origin-width=&quot;1780&quot; data-origin-height=&quot;818&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;III. 데이터 분할&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원본 시계열을 다음과 같이 정상 &lt;span style=&quot;color: #333333;&quot;&gt;&amp;middot;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt; &lt;/span&gt;이상 시퀀스로 분할하고, 다시 6가지 범주로 분할한다&lt;sup class=&quot;footnote&quot;&gt;&lt;a href=&quot;#footnote_4_2&quot; id=&quot;footnote_link_4_2&quot; onmouseover=&quot;tistoryFootnote.show(this, 4, 2)&quot; onmouseout=&quot;tistoryFootnote.hide(4, 2)&quot; style=&quot;color:#f9650d; font-family: Verdana, Sans-serif; display: inline;&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;[각주:&lt;/span&gt;2&lt;span style=&quot;display: none;&quot;&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;. 분할 결과는 다음과 같다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 144px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 16.2791%; height: 97px; text-align: center;&quot; rowspan=&quot;5&quot;&gt;정상 시퀀스&lt;/td&gt;
&lt;td style=&quot;width: 20.4942%; height: 17px;&quot;&gt;normal train ($s_N$)&lt;/td&gt;
&lt;td style=&quot;width: 29.6803%; height: 17px;&quot;&gt;LSTM 학습&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 20.4942%; height: 42px;&quot; rowspan=&quot;2&quot;&gt;normal validation-1 ($v_{N1}$)&lt;/td&gt;
&lt;td style=&quot;width: 29.6803%; height: 21px;&quot;&gt;LSTM 학습의 조기멈춤 조건&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 29.6803%; height: 21px;&quot;&gt;가우시안 분포 모델링&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 20.4942%; height: 21px;&quot;&gt;normal validation-2 ($v_{N2}$)&lt;/td&gt;
&lt;td style=&quot;width: 29.6803%; height: 21px;&quot;&gt;임계값 $\tau$ 조정&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 20.4942%; height: 17px;&quot;&gt;normal test ($t_N$)&lt;/td&gt;
&lt;td style=&quot;width: 29.6803%; height: 17px;&quot;&gt;최종 평가&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 26px;&quot;&gt;
&lt;td style=&quot;width: 16.2791%; height: 47px; text-align: center;&quot; rowspan=&quot;2&quot;&gt;이상 시퀀스&lt;sup class=&quot;footnote&quot;&gt;&lt;a href=&quot;#footnote_4_3&quot; id=&quot;footnote_link_4_3&quot; onmouseover=&quot;tistoryFootnote.show(this, 4, 3)&quot; onmouseout=&quot;tistoryFootnote.hide(4, 3)&quot; style=&quot;color:#f9650d; font-family: Verdana, Sans-serif; display: inline;&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;[각주:&lt;/span&gt;3&lt;span style=&quot;display: none;&quot;&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20.4942%; height: 26px;&quot;&gt;anomalous validation ($v_A$)&lt;/td&gt;
&lt;td style=&quot;width: 29.6803%; height: 26px;&quot;&gt;임계값 $\tau$ 조정&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 20.4942%; height: 21px;&quot;&gt;anomalous test ($t_A$)&lt;/td&gt;
&lt;td style=&quot;width: 29.6803%; height: 21px;&quot;&gt;최종 평가&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;IV. 모델 학습 및 예측, 오차 분포 생성&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1840&quot; data-origin-height=&quot;658&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dmSBaI/dJMcabrPNjO/KxTbspAjUVakA1NyH42yEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dmSBaI/dJMcabrPNjO/KxTbspAjUVakA1NyH42yEK/img.png&quot; data-alt=&quot;$d$차원 데이터에 대한 미래의 $l$개 값을 예측하는 것이 목표.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dmSBaI/dJMcabrPNjO/KxTbspAjUVakA1NyH42yEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdmSBaI%2FdJMcabrPNjO%2FKxTbspAjUVakA1NyH42yEK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1840&quot; height=&quot;658&quot; data-origin-width=&quot;1840&quot; data-origin-height=&quot;658&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;$d$차원 데이터에 대한 미래의 $l$개 값을 예측하는 것이 목표.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;매 시점 $d$차원&lt;sup class=&quot;footnote&quot;&gt;&lt;a href=&quot;#footnote_4_4&quot; id=&quot;footnote_link_4_4&quot; onmouseover=&quot;tistoryFootnote.show(this, 4, 4)&quot; onmouseout=&quot;tistoryFootnote.hide(4, 4)&quot; style=&quot;color:#f9650d; font-family: Verdana, Sans-serif; display: inline;&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;[각주:&lt;/span&gt;4&lt;span style=&quot;display: none;&quot;&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;의 데이터를 입력받아, 다음 $l$길이를 예측하는 LSTM 모델을 학습시킨다. 저자는 예측에 사용하는 적층 LSTM 모델의 구조를 아래와 같이 제시한다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;945&quot; data-origin-height=&quot;565&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cB1lTP/dJMcagUevhS/OzryatQDzSP2gY02Jj67ek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cB1lTP/dJMcagUevhS/OzryatQDzSP2gY02Jj67ek/img.png&quot; data-alt=&quot;[1] 입력층에는 최대 차원에 해당하는 $m$개의 유닛이, 출력층에는 예측 길이에 해당하는 $d*l$개의 유닛이 배치된다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cB1lTP/dJMcagUevhS/OzryatQDzSP2gY02Jj67ek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcB1lTP%2FdJMcagUevhS%2FOzryatQDzSP2gY02Jj67ek%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;945&quot; height=&quot;565&quot; data-origin-width=&quot;945&quot; data-origin-height=&quot;565&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[1] 입력층에는 최대 차원에 해당하는 $m$개의 유닛이, 출력층에는 예측 길이에 해당하는 $d*l$개의 유닛이 배치된다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모델의 학습이 완료되었다면, 검증&amp;nbsp;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;middot;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt; &lt;/span&gt;테스트 데이터의 각 시점에 대해 예측을 수행하고, 실제 관측값과의 오차 벡터를 계산한다. 특정 시점 $x^{(t)}$에 대한 오차 벡터 $e^{(t)}$는 다음과 같이 얻어진다. 오차 벡터를 구성하는 $e_{ij}^{(t)}$는 해당 시점/차원에서의 실측 값인 $x_i^t$과 $t-j$시점에서의 예측 값 사이의 차이를 나타낸다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;$e^{(t)}=[e_{11}^{(t)},...,e_{1l}^{(t)},...,e_{d1}^{(t)},...,e_{dl}^{(t)}]$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;V. 이상 탐지 및 임계값 $\tau$ 조정&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;본 논문에서는 오차 벡터를 다변량 가우시안 분포로 모델링하고, 오차 벡터 $e^{(t)}$가 가우시안 분포 내에서 발견될 가능성 $p^{(t)}$를 가우시안 확률밀도 값으로 정의한다. 즉, 해당 논문에서는 $p^{(t)}$가 이상 점수(anomaly score)를 의미한다고 보면 된다. 허나 저자는 모든 검증 &lt;span style=&quot;color: #333333;&quot;&gt;&amp;middot;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt; 테스트 데이터로 얻어낸 오차 벡터가 아닌, 정상적인 검증 데이터인 $v_{N1}$으로 얻어낸 오차 벡터만을 이용하여 가우시안 분포의 매개변수를 추정한다. 이는 정상 데이터에서 구한 오차 벡터의 분포를 기준으로 삼아, 새로운 오차 벡터가 기존 분포에서 얼마나 이례적인지를 평가하기 위함으로 추정된다.&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;새로운 관측 결과 $x^{(t)}$의 이상치 여부는 확률밀도함수 $p^{(t)}$와 임계값 $\tau$사이의 대소 관계로 판단한다. $p^{(t)}&amp;lt;\mu$일 경우 이상(anomalous)으로, 그렇지 않을 경우에는 정상(normal)으로 판단하게 된다. &lt;/span&gt;이때, 최종적인 이상치 판정에 사용되는 $\tau$는 임의로 고정된(Fixed) 값이 아니다. $v_{N2}$와 $v_{A}$에서 계산한 $F_\beta-score$가 최대가 되도록 $\tau$를 최적화한 뒤, 이를 최종적인 이상 판정에 사용한다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;$F_\beta = \frac{(1+\beta^2)*precision*recall}{(\beta^2*precision)+recall}$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;$F_\beta-score$는 정밀도(Precision)와 재현율(Recall)을 동시에 고려하는 예측 성능 측정 지표로, $\beta$에 따라 정밀도와 재현율 중 하나에 더 높은 가중치를 부여할 수 있다&lt;sup class=&quot;footnote&quot;&gt;&lt;a href=&quot;#footnote_4_5&quot; id=&quot;footnote_link_4_5&quot; onmouseover=&quot;tistoryFootnote.show(this, 4, 5)&quot; onmouseout=&quot;tistoryFootnote.hide(4, 5)&quot; style=&quot;color:#f9650d; font-family: Verdana, Sans-serif; display: inline;&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;[각주:&lt;/span&gt;5&lt;span style=&quot;display: none;&quot;&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;. 본 논문에서는 $\beta=0.1$로 설정하여, 실제 양성으로 예측한 결과에 대한 정확도를 나타내는 정밀도&lt;sup class=&quot;footnote&quot;&gt;&lt;a href=&quot;#footnote_4_6&quot; id=&quot;footnote_link_4_6&quot; onmouseover=&quot;tistoryFootnote.show(this, 4, 6)&quot; onmouseout=&quot;tistoryFootnote.hide(4, 6)&quot; style=&quot;color:#f9650d; font-family: Verdana, Sans-serif; display: inline;&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;[각주:&lt;/span&gt;6&lt;span style=&quot;display: none;&quot;&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;에 집중하는 모습을 보였다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;VI. 결과&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저자는 총 4가지 데이터셋 (ECGs&lt;sup class=&quot;footnote&quot;&gt;&lt;a href=&quot;#footnote_4_7&quot; id=&quot;footnote_link_4_7&quot; onmouseover=&quot;tistoryFootnote.show(this, 4, 7)&quot; onmouseout=&quot;tistoryFootnote.hide(4, 7)&quot; style=&quot;color:#f9650d; font-family: Verdana, Sans-serif; display: inline;&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;[각주:&lt;/span&gt;7&lt;span style=&quot;display: none;&quot;&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;, Space Shuttle Marmotta&lt;sup class=&quot;footnote&quot;&gt;&lt;a href=&quot;#footnote_4_8&quot; id=&quot;footnote_link_4_8&quot; onmouseover=&quot;tistoryFootnote.show(this, 4, 8)&quot; onmouseout=&quot;tistoryFootnote.hide(4, 8)&quot; style=&quot;color:#f9650d; font-family: Verdana, Sans-serif; display: inline;&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;[각주:&lt;/span&gt;8&lt;span style=&quot;display: none;&quot;&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;, Power demand&lt;sup class=&quot;footnote&quot;&gt;&lt;a href=&quot;#footnote_4_9&quot; id=&quot;footnote_link_4_9&quot; onmouseover=&quot;tistoryFootnote.show(this, 4, 9)&quot; onmouseout=&quot;tistoryFootnote.hide(4, 9)&quot; style=&quot;color:#f9650d; font-family: Verdana, Sans-serif; display: inline;&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;[각주:&lt;/span&gt;9&lt;span style=&quot;display: none;&quot;&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;, Multi-sensor engine&lt;sup class=&quot;footnote&quot;&gt;&lt;a href=&quot;#footnote_4_10&quot; id=&quot;footnote_link_4_10&quot; onmouseover=&quot;tistoryFootnote.show(this, 4, 10)&quot; onmouseout=&quot;tistoryFootnote.hide(4, 10)&quot; style=&quot;color:#f9650d; font-family: Verdana, Sans-serif; display: inline;&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;[각주:&lt;/span&gt;10&lt;span style=&quot;display: none;&quot;&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;)에 대해서 이상 탐지 파이프라인을 수행하였으며, 그 결과를 다음과 같이 그래프와 표로 시각화하였다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1435&quot; data-origin-height=&quot;1126&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b8U5Ic/dJMcafnyqRD/Ng6bxDmakwK0SRLuqdMaGK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b8U5Ic/dJMcafnyqRD/Ng6bxDmakwK0SRLuqdMaGK/img.png&quot; data-alt=&quot;[1] 파란색으로 강조된 구간이 실제 이상(anomaly) 구간에 해당되며, 빨간색 점선이 최종적으로 조정된 임계값 $\tau$에 해당된다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b8U5Ic/dJMcafnyqRD/Ng6bxDmakwK0SRLuqdMaGK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb8U5Ic%2FdJMcafnyqRD%2FNg6bxDmakwK0SRLuqdMaGK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1435&quot; height=&quot;1126&quot; data-origin-width=&quot;1435&quot; data-origin-height=&quot;1126&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[1] 파란색으로 강조된 구간이 실제 이상(anomaly) 구간에 해당되며, 빨간색 점선이 최종적으로 조정된 임계값 $\tau$에 해당된다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;(f) Power Consumption 은 평일 5일(고점) + 주말 2일(저점)이 매주 나타나는 형태이다. 여기서 (f.1, f.2)는 적층 LSTM의 하위 &amp;middot; 상위 은닉층에서 각각 네 개씩 선택된 은닉 유닛의 활성화 값을 나타낸다. (f.2)의 $w_1$, $w_2$를 보면 평일에는 높은 활성화 값을, 주말에는 낮은 활성화 값을 보이는 것을 확인할 수 있는데, 이는 주(week) 단위의 장기적 특징을 잘 학습한 것으로 보인다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1704&quot; data-origin-height=&quot;435&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kWwmL/dJMcacK8YPu/LyLKtVhHvth1X2daiynEP0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kWwmL/dJMcacK8YPu/LyLKtVhHvth1X2daiynEP0/img.png&quot; data-alt=&quot;[1] LSTM과 RNN은 '장기 의존성' 면에서의 성능 차이가 크다. Space Shuttle 데이터셋이 단기 의존성과 장기 의존성을 모두 포함하는 데이터셋임을 알아두자.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kWwmL/dJMcacK8YPu/LyLKtVhHvth1X2daiynEP0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkWwmL%2FdJMcacK8YPu%2FLyLKtVhHvth1X2daiynEP0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1704&quot; height=&quot;435&quot; data-origin-width=&quot;1704&quot; data-origin-height=&quot;435&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[1] LSTM과 RNN은 '장기 의존성' 면에서의 성능 차이가 크다. Space Shuttle 데이터셋이 단기 의존성과 장기 의존성을 모두 포함하는 데이터셋임을 알아두자.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;위 Table.1 에서 볼 수 있듯이, 장기적인 시간 의존성이 없는 Engine 데이터셋에서는 LSTM의 장기 기억 능력이 빛을 발하기 어렵기에, 두 모델이 비슷한 성능을 보였다. 하지만 장기 &amp;middot; 단기 의존성을 모두 포함하는 Space Shuttle &amp;middot; Power Demand 데이터셋에서는, LSTM 기반 모델이 RNN에 비해 &lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;$F_\beta-score$측면에서 각각 18% &amp;middot; 30% 향상된 성능을 보여주었다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;$LR^+=\frac{sensitivity}{1-specificity}=\frac{True Positive Rate}{False Positive Rate}$&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;또한, 별도의 시각화 자료가 존재하지는 않으나, 위와 같은 양성 가능도비(postivve likelihood ratio, $LR^+$)&lt;sup class=&quot;footnote&quot;&gt;&lt;a href=&quot;#footnote_4_11&quot; id=&quot;footnote_link_4_11&quot; onmouseover=&quot;tistoryFootnote.show(this, 4, 11)&quot; onmouseout=&quot;tistoryFootnote.hide(4, 11)&quot; style=&quot;color:#f9650d; font-family: Verdana, Sans-serif; display: inline;&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;[각주:&lt;/span&gt;11&lt;span style=&quot;display: none;&quot;&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;를 모든 데이터셋에 대해 측정한 결과, 그 수치가 34.0 이상으로 높게 나타났다. $LR^+$값이 높다는 것은, 이상으로 판정한 관측값이 실제로 이상일 가능성이 높다는 것을 의미한다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;VIII. 결론&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;4192&quot; data-origin-height=&quot;2356&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDOFIf/dJMcaaGyXeH/1UlaraonM2Eh6sBjWjlh1k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDOFIf/dJMcaaGyXeH/1UlaraonM2Eh6sBjWjlh1k/img.jpg&quot; data-alt=&quot;입 삐죽 나온 것도 귀엽다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDOFIf/dJMcaaGyXeH/1UlaraonM2Eh6sBjWjlh1k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDOFIf%2FdJMcaaGyXeH%2F1UlaraonM2Eh6sBjWjlh1k%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;4192&quot; height=&quot;2356&quot; data-origin-width=&quot;4192&quot; data-origin-height=&quot;2356&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;입 삐죽 나온 것도 귀엽다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;본 연구는 장기 의존성이 존재할 가능성을 배제할 수 없는 시계열의 이상치를 탐지하기 위한 방법으로, 순환 신경망의 일종인 LSTM을 활용한 논문이다. 정상 시계열의 단기 &lt;span style=&quot;color: #333333;&quot;&gt;&amp;middot; 장기 시간적 패턴을 학습하여, 일반적인 RNN보다 우수하거나 유사한 성능으로 이상을 탐지할 수 있음을 확인하였다&lt;sup class=&quot;footnote&quot;&gt;&lt;a href=&quot;#footnote_4_12&quot; id=&quot;footnote_link_4_12&quot; onmouseover=&quot;tistoryFootnote.show(this, 4, 12)&quot; onmouseout=&quot;tistoryFootnote.hide(4, 12)&quot; style=&quot;color:#f9650d; font-family: Verdana, Sans-serif; display: inline;&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;[각주:&lt;/span&gt;12&lt;span style=&quot;display: none;&quot;&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;.&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;다만 예측(prediction) 기반 이상 탐지 방법에는 이와 같은 예보(Forecasting) 기반 방법 뿐만 아니라, 복원(Reconstruction) 기반 방법 또한 존재한다. 따라서 다음 포스팅에서는 LSTM을 활용한 복원 기반 이상 탐지 방법을 알아보고자 한다.&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&amp;lt;References&amp;gt;&lt;br /&gt;[1] &lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;Malhotra, Pankaj, et al. &quot;Long short term memory networks for anomaly detection in time series.&quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;Esann&lt;/i&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;. Vol. 2015. No. 89. 2015.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;[2] &lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/F-score&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;https://en.wikipedia.org/wiki/F-score&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt; (2026.08.23)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;[3] &lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://www.openlayer.com/blog/precision-recall-machine-learning&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;https://www.openlayer.com/blog/precision-recall-machine-learning&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt; (2026.08.23)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;[4] &lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://statisticsbyjim.com/glossary/positive-likelihood-ratio/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;https://statisticsbyjim.com/glossary/positive-likelihood-ratio/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt; (2026.08.24)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;
  &lt;ol class=&quot;footnotes&quot;&gt;
    &lt;li id=&quot;footnote_4_1&quot;&gt;윈도우가 너무 짧으면 노이즈에 민감해지고, 반대로 윈도우가 너무 길어지면 이상값이 다수의 정상 관측값에 희석되는 문제가 발생할 수 있다. &lt;a href=&quot;#footnote_link_4_1&quot;&gt;[본문으로]&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;footnote_4_2&quot;&gt;[1] 2절 참조. &lt;a href=&quot;#footnote_link_4_2&quot;&gt;[본문으로]&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;footnote_4_3&quot;&gt;정확히 말하자면, 이상이 '포함된' 시퀀스를 뜻함. &lt;a href=&quot;#footnote_link_4_3&quot;&gt;[본문으로]&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;footnote_4_4&quot;&gt;예측할 특징의 수에 해당한다. &lt;a href=&quot;#footnote_link_4_4&quot;&gt;[본문으로]&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;footnote_4_5&quot;&gt;[2] F-score &lt;a href=&quot;#footnote_link_4_5&quot;&gt;[본문으로]&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;footnote_4_6&quot;&gt;[3] Precision and Recall in Machine Learning (Jan 2026) &lt;a href=&quot;#footnote_link_4_6&quot;&gt;[본문으로]&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;footnote_4_7&quot;&gt;심전도 데이터셋. 이상치가 단 하나만 존재하는 관계로, 해당 데이터셋에 대해서는 $\tau$와 $F_\beta-score$를 계산하지 않고, 이상치 시점에서의 $p^{(t)}$가 정상 구간보다 현저히 낮다는 것만 보여주고 있다. &lt;a href=&quot;#footnote_link_4_7&quot;&gt;[본문으로]&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;footnote_4_8&quot;&gt;우주왕복선 엔진의 밸브 시계열 데이터셋. &lt;a href=&quot;#footnote_link_4_8&quot;&gt;[본문으로]&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;footnote_4_9&quot;&gt;전력 수요 데이터셋. &lt;a href=&quot;#footnote_link_4_9&quot;&gt;[본문으로]&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;footnote_4_10&quot;&gt;12개 센서의 측정값으로 구성되는 데이터셋. 엔진의 제어 입력을 측정하는 센서와, 온도를 비롯한 종속 변수를 측정하는 센서들로 이루어진다. 본 논문에서는 제어(Control)센서 하나와 종속 변수 하나를 함께 선택하였다. &lt;a href=&quot;#footnote_link_4_10&quot;&gt;[본문으로]&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;footnote_4_11&quot;&gt;[4] Positive Likelihood Ratio [LR+] &lt;a href=&quot;#footnote_link_4_11&quot;&gt;[본문으로]&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;footnote_4_12&quot;&gt;[1] 4절 참조 &lt;a href=&quot;#footnote_link_4_12&quot;&gt;[본문으로]&lt;/a&gt;&lt;/li&gt;
  &lt;/ol&gt;
&lt;/div&gt;</description>
      <category>지식창고/anomaly detection (이상치 탐지)</category>
      <category>Anomaly</category>
      <category>anomaly detection</category>
      <category>detection</category>
      <category>time series</category>
      <category>딥러닝</category>
      <category>시계열</category>
      <category>이상치</category>
      <category>이상치탐지</category>
      <category>이상탐지</category>
      <category>컴퓨터</category>
      <author>coding_nadeshiko</author>
      <guid isPermaLink="true">https://codingnade.tistory.com/4</guid>
      <comments>https://codingnade.tistory.com/4#entry4comment</comments>
      <pubDate>Mon, 24 Aug 2026 17:26:20 +0900</pubDate>
    </item>
    <item>
      <title>[anomaly detection] 시계열 이상 탐지란?</title>
      <link>https://codingnade.tistory.com/2</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script&gt; MathJax = { tex: {inlineMath: [['$', '$'], ['\(', '\)']]} };  &lt;/script&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;I. 이상 탐지의 정의와 특징&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이상치(Anomaly)는 명확하게 정의된 정상적인 행동의 개념에 부합하지 않는 데이터 내의 패턴&lt;sup class=&quot;footnote&quot;&gt;&lt;a href=&quot;#footnote_2_1&quot; id=&quot;footnote_link_2_1&quot; onmouseover=&quot;tistoryFootnote.show(this, 2, 1)&quot; onmouseout=&quot;tistoryFootnote.hide(2, 1)&quot; style=&quot;color:#f9650d; font-family: Verdana, Sans-serif; display: inline;&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;[각주:&lt;/span&gt;1&lt;span style=&quot;display: none;&quot;&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;을 뜻한다. 즉, 예상되는 행동에서 벗어난 관측값 또는 패턴으로 보면 된다. 이러한 비정상 패턴은 응용 분야에 따라 outlier, exception 등 다양한 용어로 불리지만, 본 포스팅에서는 anomaly로 통일하여 지칭한다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;앞으로 이어질 포스팅에서는 관련 연구 사례를 바탕으로 시계열 데이터의 이상 탐지 방법에 대해 살펴볼 예정이다. 첫 글인 이번 포스팅에서는 이상치의 정의와 주요 특성을 정리하고, 시계열 이상 탐지의 핵심 개념에 대해 알아본다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참조한 주요 문헌은 이상 탐지에 대한 전반적인 조사(survey) 논문인 [1]&lt;sup class=&quot;footnote&quot;&gt;&lt;a href=&quot;#footnote_2_2&quot; id=&quot;footnote_link_2_2&quot; onmouseover=&quot;tistoryFootnote.show(this, 2, 2)&quot; onmouseout=&quot;tistoryFootnote.hide(2, 2)&quot; style=&quot;color:#f9650d; font-family: Verdana, Sans-serif; display: inline;&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;[각주:&lt;/span&gt;2&lt;span style=&quot;display: none;&quot;&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;, 그리고 시계열 이상 탐지 분야에 대한 리뷰 논문인 [3]&lt;sup class=&quot;footnote&quot;&gt;&lt;a href=&quot;#footnote_2_3&quot; id=&quot;footnote_link_2_3&quot; onmouseover=&quot;tistoryFootnote.show(this, 2, 3)&quot; onmouseout=&quot;tistoryFootnote.hide(2, 3)&quot; style=&quot;color:#f9650d; font-family: Verdana, Sans-serif; display: inline;&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;[각주:&lt;/span&gt;3&lt;span style=&quot;display: none;&quot;&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;이다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1101&quot; data-origin-height=&quot;703&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/59Qhm/dJMcah6vLNO/nBx9VUxV8KkU3aOlUL4VJ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/59Qhm/dJMcah6vLNO/nBx9VUxV8KkU3aOlUL4VJ0/img.png&quot; data-alt=&quot;[1] 2차원 공간에서의 이상치 예시. 점 $o_1, o_2$, 영역 $O_3$내부의 점이 이상치에 해당된다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/59Qhm/dJMcah6vLNO/nBx9VUxV8KkU3aOlUL4VJ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F59Qhm%2FdJMcah6vLNO%2FnBx9VUxV8KkU3aOlUL4VJ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1101&quot; height=&quot;703&quot; data-origin-width=&quot;1101&quot; data-origin-height=&quot;703&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[1] 2차원 공간에서의 이상치 예시. 점 $o_1, o_2$, 영역 $O_3$내부의 점이 이상치에 해당된다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;이상치는 다음과 같이 세 종류로 분류된다&lt;sup class=&quot;footnote&quot;&gt;&lt;a href=&quot;#footnote_2_4&quot; id=&quot;footnote_link_2_4&quot; onmouseover=&quot;tistoryFootnote.show(this, 2, 4)&quot; onmouseout=&quot;tistoryFootnote.hide(2, 4)&quot; style=&quot;color:#f9650d; font-family: Verdana, Sans-serif; display: inline;&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;[각주:&lt;/span&gt;4&lt;span style=&quot;display: none;&quot;&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;점 이상(Point Anomalies)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특정 데이터포인트가 나머지 데이터와 비교했을 때 현저하게 동떨어져 있는 경우를 의미한다. 가장 단순한 형태의 이상이며, 이상 탐지 연구에서 가장 널리 다루어져온 유형이기도 하다. Fig.1 에서 &lt;span style=&quot;color: #000000;&quot;&gt;점 $o_1, o_2$과 영역 $O_3$내부의 점이 Point Anomaly에 해당된다. 시계열 도메인에서는 시점(time point)의 관측값이 정상적인 범위를 벗어나는 경우를 의미한다. 어느날 오후, 평균적으로 10명 내외의 손님이 방문하는 식당에 30명이 넘는 손님이 왔다던가 말이다.&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;맥락 이상(Contextual Anomalies)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추세나 계절성과 같은 맥락 정보를 고려하였을 때, 동일한 맥락에 속한 다른 데이터와 비교하여 현저히 다른 데이터포인트를 뜻한다. 예를 들어 연평균 기온이 12.5℃인 지역에서 한겨울에 13℃가 관측되었다고 가정하자. 이 값은 전체 데이터의 평균과 크게 차이 나지 않으므로 Point Anomaly로 분류되지 않을 가능성이 높다. 그러나, 영하를 넘나드는 겨울철의 일반적인 기온 분포와 비교하면 이례적으로 높은 값이므로, 계절적 맥락을 고려하였을 때 Contextual Anomaly에 해당된다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;집단 이상(Collective Anoamlies)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개별 데이터 포인트만으로는 이상으로 판단하기 어렵지만, 연속된 데이터가 형성하는 패턴 전체를 고려했을때 비정상적인 경우를 의미한다. 예를 들어 맥박 측정값이 일시적으로 0을 나타내는 경우 센서 오류나 측정 누락으로 인한 결과일 가능성이 있어 정상으로 판단할 여지가 남아있지만, 이러한 값이 일정 시간 동안 연속적으로 나타난다면 측정 장치의 고장이나 심각한 이상 상태를 나타내는 Collective Anomaly로 판단될 수 있다.&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;II. 시계열 이상 탐지 파이프라인&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1551&quot; data-origin-height=&quot;713&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BTvEy/dJMcafOqOWM/qKgB6589XpOOvQxPzi6bgk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BTvEy/dJMcafOqOWM/qKgB6589XpOOvQxPzi6bgk/img.png&quot; data-alt=&quot;[3] 시계열 이상 탐지의 일반적인 파이프라인. 다음과 같은 4-Step 을 거친다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BTvEy/dJMcafOqOWM/qKgB6589XpOOvQxPzi6bgk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBTvEy%2FdJMcafOqOWM%2FqKgB6589XpOOvQxPzi6bgk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1551&quot; height=&quot;713&quot; data-origin-width=&quot;1551&quot; data-origin-height=&quot;713&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[3] 시계열 이상 탐지의 일반적인 파이프라인. 다음과 같은 4-Step 을 거친다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;이제 시계열 도메인에서의 이상 탐지로 넘어가보자. 시계열 이상 탐지는 보통 다음과 같은 4-Step을 거치게 되는데&lt;sup class=&quot;footnote&quot;&gt;&lt;a href=&quot;#footnote_2_5&quot; id=&quot;footnote_link_2_5&quot; onmouseover=&quot;tistoryFootnote.show(this, 2, 5)&quot; onmouseout=&quot;tistoryFootnote.hide(2, 5)&quot; style=&quot;color:#f9650d; font-family: Verdana, Sans-serif; display: inline;&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;[각주:&lt;/span&gt;5&lt;span style=&quot;display: none;&quot;&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;, 시계열 데이터는 개별 관측값뿐만 아니라 시간적 순서와 주변 맥락을 함께 고려해야 하므로, 전처리 단계에서 연속된 관측값을 구간 단위로 변환하는 과정이 필요하다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;1. 전처리(Pre-Processing)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구간 단위의 이상 탐지가 가능하도록 원본 시계열을 여러 부분 구간(sub-sequences)으로 잘라내는 윈도우 변환(window transformation)작업을 수행한다. 통계적 특징 추출이나 예측 모델 학습과 같은 기타 작업 또한 포함한다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;2. 이상 탐지 방법 적용(Anomaly Detection Model)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처리된 데이터에 다양한 이상 탐지 방법을 적용한다. 여기서 적용되는 방법론에 대해서는 후술.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;3. 점수화(Scoring)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이상 탐지로 만들어진 결과를 &lt;b&gt;이상 점수(anomaly score)&lt;/b&gt;로 변환한다. 이상 점수는 각 부분 구간이 얼마나 이상치에 가까운지를 실수 값으로 나타내는 평가 함수로, 각자의 방법론에 따라 다르게 정의된다. 얻어낸 이상 점수를 활용하여 개별 시점의 이상 점수를 추론하게 되며, 이상 점수화 된 시계열은 원본 시계열과 길이가 동일하다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;4. 후처리(Post-Processing)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이상 점수화된 시계열에서 이상 시점/구간을 추출한다. 주된 방법으로는 &lt;b&gt;임계점(임계값, threshold)&lt;/b&gt;를 활용하는 방법이 있는데, 이는 임계점으로 지정한 이상 점수를 초과하는 시점들을 이상으로 간주하는 방식이다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1819&quot; data-origin-height=&quot;784&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b7hZuB/dJMcahrVaHe/DexwySahsRMhCW1SSSrY3k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b7hZuB/dJMcahrVaHe/DexwySahsRMhCW1SSSrY3k/img.png&quot; data-alt=&quot;[3] 처리 과정 중심의 이상 탐지 방법은 크게 거리/밀도/예측 세 갈래로 나뉜다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b7hZuB/dJMcahrVaHe/DexwySahsRMhCW1SSSrY3k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7hZuB%2FdJMcahrVaHe%2FDexwySahsRMhCW1SSSrY3k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1819&quot; height=&quot;784&quot; data-origin-width=&quot;1819&quot; data-origin-height=&quot;784&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[3] 처리 과정 중심의 이상 탐지 방법은 크게 거리/밀도/예측 세 갈래로 나뉜다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;상술한 파이프라인의 Step.2 에서 적용되는 이상 탐지 방법은 크게 세 범주로 나뉜다&lt;sup class=&quot;footnote&quot;&gt;&lt;a href=&quot;#footnote_2_6&quot; id=&quot;footnote_link_2_6&quot; onmouseover=&quot;tistoryFootnote.show(this, 2, 6)&quot; onmouseout=&quot;tistoryFootnote.hide(2, 6)&quot; style=&quot;color:#f9650d; font-family: Verdana, Sans-serif; display: inline;&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;[각주:&lt;/span&gt;6&lt;span style=&quot;display: none;&quot;&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;. 원본 시계열에 거리 척도를 그대로 적용하여 이상을 탐지하는 &lt;b&gt;거리 기반(distance-based) &lt;/b&gt;방식과, 분포와 같이 데이터의 밀도를 측정할 수 있도록 구성된 표현을 바탕으로 드물게 발견되는 패턴을 탐지하는 &lt;b&gt;밀도 기반(density-based) &lt;/b&gt;방식, 그리고 주어진 부분 구간을 학습 데이터로 활용하여 정상 시계열을 예측함으로써 이상을 탐지하는 &lt;b&gt;예측 기반(prediction-based) &lt;/b&gt;방식으로 말이다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;한 가지 유의할 점은, 세 범주에서 파생되는 9가지 하위 범주가 서로 배타적이지 않다는 것이다. 실제 이상 탐지 방법은 여러 처리 전략을 결합할 수 있으므로, 하나의 방법이 둘 이상의 하위 범주에 동시에 해당될 수 있다. 예를 들어, 예측 오차를 가우시안 분포로 모델링하여 이상을 판별하는 과정은 밀도/예측 기반 처리 방식을 결합한 사례이다. 해당 방법이 사용된 예시&lt;sup class=&quot;footnote&quot;&gt;&lt;a href=&quot;#footnote_2_7&quot; id=&quot;footnote_link_2_7&quot; onmouseover=&quot;tistoryFootnote.show(this, 2, 7)&quot; onmouseout=&quot;tistoryFootnote.hide(2, 7)&quot; style=&quot;color:#f9650d; font-family: Verdana, Sans-serif; display: inline;&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;[각주:&lt;/span&gt;7&lt;span style=&quot;display: none;&quot;&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;에 대해서는 다음 포스팅에서 알아본다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;거리/밀도/예측 세 가지 방법 중에서도 가장 주목 받는 것은 예측 기반 방법이다. 논문 [3]에 따르면 2016년 이후, 제안된 이상 탐지 방법론의 수가 크게 증가하였으며&lt;sup class=&quot;footnote&quot;&gt;&lt;a href=&quot;#footnote_2_8&quot; id=&quot;footnote_link_2_8&quot; onmouseover=&quot;tistoryFootnote.show(this, 2, 8)&quot; onmouseout=&quot;tistoryFootnote.hide(2, 8)&quot; style=&quot;color:#f9650d; font-family: Verdana, Sans-serif; display: inline;&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;[각주:&lt;/span&gt;8&lt;span style=&quot;display: none;&quot;&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;, 그 대부분이&lt;b&gt; 예측 기반 접근법&lt;/b&gt;에서 비롯되었다고 제시한다. 저자들은 CV분야에서 딥러닝이 거둔 성공과 다양한 오픈소스 딥러닝 라이브러리의 등장이 이러한 추세에 영향을 미쳤다고 설명한다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;따라서, 앞으로 알아볼 시계열 이상 탐지 방법은 예측 기반 접근법에 집중하도록 하겠다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;III. 예측 기반 접근법을 통한 시계열 이상 탐지&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예측(prediction)이라고 하면, 정답 라벨을 학습에 활용하는 지도학습을 떠올리기 쉽다. 주어진 정상/이상 라벨을 이용해서 학습시키고, 모델로 하여금 직접 이상 여부를 직접 예측하도록 하는 방식을 말이다. 그러나 이러한 지도학습 방식을 이상 탐지에 적용하기에는 분명한 한계가 있다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;지도학습을 적용하기 위해서는 전문가가 탐지하려는 패턴의 유형을 정확히 알고 있고, 이상 구간이 라벨링된 시계열 데이터가 확보되어 있어야한다. 하지만, &lt;span style=&quot;color: #333333;&quot;&gt;이상 탐지 전반에서는 일반적으로 이상 데이터가 정상 데이터보다&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;희소&lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;하다는 가정이 전제된다&lt;sup class=&quot;footnote&quot;&gt;&lt;a href=&quot;#footnote_2_9&quot; id=&quot;footnote_link_2_9&quot; onmouseover=&quot;tistoryFootnote.show(this, 2, 9)&quot; onmouseout=&quot;tistoryFootnote.hide(2, 9)&quot; style=&quot;color:#f9650d; font-family: Verdana, Sans-serif; display: inline;&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;[각주:&lt;/span&gt;9&lt;span style=&quot;display: none;&quot;&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;. 이상 사례 자체가 적은 데다 전문가가 데이터를 일일이 검토해야 하므로, 충분한 라벨 데이터를 확보하는 데에는 상당한 비용이 발생한다&lt;sup class=&quot;footnote&quot;&gt;&lt;a href=&quot;#footnote_2_10&quot; id=&quot;footnote_link_2_10&quot; onmouseover=&quot;tistoryFootnote.show(this, 2, 10)&quot; onmouseout=&quot;tistoryFootnote.hide(2, 10)&quot; style=&quot;color:#f9650d; font-family: Verdana, Sans-serif; display: inline;&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;[각주:&lt;/span&gt;10&lt;span style=&quot;display: none;&quot;&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;이러한 이유로 예측 기반 이상 탐지는 주로 비지도 또는 준지도 방식으로 수행된다. 실제로, 논문 [3]이 검토한 예측 기반 방법들은 모두 비지도 또는 준지도 방식에 해당한다&lt;sup class=&quot;footnote&quot;&gt;&lt;a href=&quot;#footnote_2_11&quot; id=&quot;footnote_link_2_11&quot; onmouseover=&quot;tistoryFootnote.show(this, 2, 11)&quot; onmouseout=&quot;tistoryFootnote.hide(2, 11)&quot; style=&quot;color:#f9650d; font-family: Verdana, Sans-serif; display: inline;&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;[각주:&lt;/span&gt;11&lt;span style=&quot;display: none;&quot;&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;. 비지도/반지도 기반 이상 탐지 방식의 차이점은 다음과 같다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;비지도(Unsupervised)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정상 여부를 모르는 혼합 데이터에서 정상이 대부분이라고 가정하고 이상을 탐지하는 방식으로, 별도의 정상 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;middot;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;이상 학습 데이터를 요구하지 않는다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;준지도(Semi-supervised)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전문가가 정상이라고 표시한 부분만 학습하는 방식으로, &lt;b&gt;대부분의 이상 탐지 방법이 사용하는 전형적인 방법&lt;/b&gt;이다.이상 라벨은 사용하지 않지만, 정상으로 라벨된 데이터만 사용했다는 점에서 준지도학습이라 불리운다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt; ※ 준지도 이상 탐지 방법도 문헌에서는 종종 'Unsupervised' 로 표기된다. 이는 정상/이상 라벨을 학습 목표로 직접 사용하지 않는다는 관행적 표현으로, [1,3]의 분류 기준과는 다르다는 것을 알아두자.&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;결국, 예측 기반 방법은 이상이 포함되어 있을 수도 있고 포함되어 있지 않을 수도 있는 데이터를 바탕으로, 예상되는 정상 행동을 예측하여 이상을 탐지하는 방법이다&lt;sup class=&quot;footnote&quot;&gt;&lt;a href=&quot;#footnote_2_12&quot; id=&quot;footnote_link_2_12&quot; onmouseover=&quot;tistoryFootnote.show(this, 2, 12)&quot; onmouseout=&quot;tistoryFootnote.hide(2, 12)&quot; style=&quot;color:#f9650d; font-family: Verdana, Sans-serif; display: inline;&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;[각주:&lt;/span&gt;12&lt;span style=&quot;display: none;&quot;&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;. 다만, 정상 데이터는 비교적 쉽게 예측할 수 있지만 이상 데이터는 예상이 어렵다는 가정 하에 가능한 방법이기 때문에... 학습 데이터에 이상이 없거나 매우 적을 때 성립하는 방법이라는 것은 알아두도록 하자.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1830&quot; data-origin-height=&quot;1047&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bEsI2Y/dJMcaccZ2Qg/M5b43zrtadlt4kkfkQeXc0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bEsI2Y/dJMcaccZ2Qg/M5b43zrtadlt4kkfkQeXc0/img.png&quot; data-alt=&quot;[3] prediction 에서 이상 점수 산출로 이어지는 과정. 이상 탐지의 대상이 되는 $T_{i,l}$을 언제 사용하느냐에 따라서 Forecasting/Data First 로 갈린다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bEsI2Y/dJMcaccZ2Qg/M5b43zrtadlt4kkfkQeXc0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEsI2Y%2FdJMcaccZ2Qg%2FM5b43zrtadlt4kkfkQeXc0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1830&quot; height=&quot;1047&quot; data-origin-width=&quot;1830&quot; data-origin-height=&quot;1047&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[3] prediction 에서 이상 점수 산출로 이어지는 과정. 이상 탐지의 대상이 되는 $T_{i,l}$을 언제 사용하느냐에 따라서 Forecasting/Data First 로 갈린다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;예측 기반 방법은 다시 두 가지 하위 범주인 예보(forecast)와 복원(reconstruction)으로 나뉜다&lt;sup class=&quot;footnote&quot;&gt;&lt;a href=&quot;#footnote_2_13&quot; id=&quot;footnote_link_2_13&quot; onmouseover=&quot;tistoryFootnote.show(this, 2, 13)&quot; onmouseout=&quot;tistoryFootnote.hide(2, 13)&quot; style=&quot;color:#f9650d; font-family: Verdana, Sans-serif; display: inline;&quot;&gt;&lt;span style=&quot;display: none;&quot;&gt;[각주:&lt;/span&gt;13&lt;span style=&quot;display: none;&quot;&gt;]&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;. 두 범주에 대한 자세한 내용은 추후 포스팅에서 다루도록 하고, 간단하게 정의만 짚고 넘어가도록 하겠다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;예보 기반(forecasting-based)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특정 시점 이전의 구간 $T_{i-1,l}$을 입력받아, 다음 구간 $T_{i,l}$을 예측한다. 예측 값과 실제 값의 차이인 &lt;b&gt;예측오차&lt;/b&gt;를 이상 점수로 사용하며, 오차가 클 수록 과거 패턴으로 예상하기 어려운 값으로 이상일 가능성이 크다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;복원 기반(reconstruction-based)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특정 시점의 구간 $T_{i,l}$을 입력받아 더 작은 잠재 공간으로 압축한 뒤, 다시 원본으로 복원하도록 학습한다. 입력값과 복원값의 차이인 &lt;b&gt;복원오차&lt;/b&gt;를 이상점수로 사용, 학습하지 않은 이상 패턴은 제대로 복원하지 못할 것이라고 가정한다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;위 사진은, 예측 기반 방법에서 실측 값을 언제 사용하는지에 따라 Forecasting First 와 Data First 로 구분한 것이다. 예보 기반 방법은 미리 예측한 값을 기반으로 실제 값과의 차이를 보기 때문에 Forecasting First에, 복원 기반 방법은 실제 값을 입력받아 압축 및 복원하는 작업이기 때문에 Data First에 가깝다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2096&quot; data-origin-height=&quot;1179&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Y9A3v/dJMcag7v9oH/I5C5ym2qsnDx6mbZlyUie0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Y9A3v/dJMcag7v9oH/I5C5ym2qsnDx6mbZlyUie0/img.jpg&quot; data-alt=&quot;귀엽다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Y9A3v/dJMcag7v9oH/I5C5ym2qsnDx6mbZlyUie0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FY9A3v%2FdJMcag7v9oH%2FI5C5ym2qsnDx6mbZlyUie0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2096&quot; height=&quot;1179&quot; data-origin-width=&quot;2096&quot; data-origin-height=&quot;1179&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;귀엽다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;이번 포스팅에서는 이상치의 정의와 특성, 그리고 시계열 이상 탐지의 핵심 개념을 살펴보았다. 다음 포스팅에서는 대표적인 준지도 &amp;middot; 예보 기반 이상 탐지 방법인 LSTM-based Anomaly Detection을 알아본다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;References&amp;gt;&lt;br /&gt;[1] &lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;Chandola, Varun, Arindam Banerjee, and Vipin Kumar. &quot;Anomaly detection: A survey.&quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;ACM computing surveys (CSUR)&lt;/i&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;41.3 (2009): 1-58.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;[2] &lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://www.lancaster.ac.uk/stor-i-student-sites/harini-jayaraman/anomaly-detection/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;https://www.lancaster.ac.uk/stor-i-student-sites/harini-jayaraman/anomaly-detection/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt; (2026.08.04)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;[3] &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;Boniol, Paul, et al. &quot;Dive into time-series anomaly detection: A decade review.&quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;i&gt;arXiv preprint arXiv:2412.20512&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;(2024).&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;[4] &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;Malhotra, Pankaj, et al. &quot;Long short term memory networks for anomaly detection in time series.&quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;&lt;i&gt;Esann&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;. Vol. 2015. No. 89. 2015.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;
  &lt;ol class=&quot;footnotes&quot;&gt;
    &lt;li id=&quot;footnote_2_1&quot;&gt;[1] 1.1 참조. &lt;a href=&quot;#footnote_link_2_1&quot;&gt;[본문으로]&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;footnote_2_2&quot;&gt;[1] &lt;span style=&quot;background-color: #ffffff; color: #222222; text-align: start;&quot;&gt;Anomaly detection: A survey.&lt;/span&gt; (2009) &lt;a href=&quot;#footnote_link_2_2&quot;&gt;[본문으로]&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;footnote_2_3&quot;&gt;[3] &lt;span style=&quot;background-color: #ffffff; color: #222222; text-align: start;&quot;&gt;Dive into time-series anomaly detection: A decade review.&lt;/span&gt; (2024) &lt;a href=&quot;#footnote_link_2_3&quot;&gt;[본문으로]&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;footnote_2_4&quot;&gt;[2] Types of Anomalies &lt;a href=&quot;#footnote_link_2_4&quot;&gt;[본문으로]&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;footnote_2_5&quot;&gt;[3] 2.5 Anomaly Detection Pipelines 참조. &lt;a href=&quot;#footnote_link_2_5&quot;&gt;[본문으로]&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;footnote_2_6&quot;&gt;[3] 3 Anomaly Detection Taxomonmy 참조. &lt;a href=&quot;#footnote_link_2_6&quot;&gt;[본문으로]&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;footnote_2_7&quot;&gt;[4] &lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #222222;&quot;&gt;Long short term memory networks for anomaly detection in time series (2015)&lt;/span&gt;&lt;/span&gt; &lt;a href=&quot;#footnote_link_2_7&quot;&gt;[본문으로]&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;footnote_2_8&quot;&gt;[3] &lt;span&gt;9 Evolution of Methods over Time: A Meta-Analysis&lt;/span&gt; 참조. &lt;a href=&quot;#footnote_link_2_8&quot;&gt;[본문으로]&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;footnote_2_9&quot;&gt;[1] &lt;/span&gt;하지만, 항상 희귀한 것은 아니라고 덧붙이고 있음. &lt;a href=&quot;#footnote_link_2_9&quot;&gt;[본문으로]&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;footnote_2_10&quot;&gt;[1] 1.1 참조. &lt;a href=&quot;#footnote_link_2_10&quot;&gt;[본문으로]&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;footnote_2_11&quot;&gt;[3] 28p, Table 3 참조 &lt;a href=&quot;#footnote_link_2_11&quot;&gt;[본문으로]&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;footnote_2_12&quot;&gt;[3] 3 Anomaly Detection Taxomonmy 참조. &lt;a href=&quot;#footnote_link_2_12&quot;&gt;[본문으로]&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;footnote_2_13&quot;&gt;[3] 3.0.3 Prediction-based. 참조. &lt;a href=&quot;#footnote_link_2_13&quot;&gt;[본문으로]&lt;/a&gt;&lt;/li&gt;
  &lt;/ol&gt;
&lt;/div&gt;</description>
      <category>지식창고/anomaly detection (이상치 탐지)</category>
      <category>Anomaly</category>
      <category>anomaly detection</category>
      <category>detection</category>
      <category>time series</category>
      <category>시계열</category>
      <category>이상치</category>
      <category>이상치탐지</category>
      <category>이상탐지</category>
      <category>컴퓨터</category>
      <author>coding_nadeshiko</author>
      <guid isPermaLink="true">https://codingnade.tistory.com/2</guid>
      <comments>https://codingnade.tistory.com/2#entry2comment</comments>
      <pubDate>Fri, 7 Aug 2026 13:39:11 +0900</pubDate>
    </item>
  </channel>
</rss>