KR20220065773A - 정상 데이터로의 데이터 샘플 변환 - Google Patents

정상 데이터로의 데이터 샘플 변환 Download PDF

Info

Publication number
KR20220065773A
KR20220065773A KR1020227009033A KR20227009033A KR20220065773A KR 20220065773 A KR20220065773 A KR 20220065773A KR 1020227009033 A KR1020227009033 A KR 1020227009033A KR 20227009033 A KR20227009033 A KR 20227009033A KR 20220065773 A KR20220065773 A KR 20220065773A
Authority
KR
South Korea
Prior art keywords
vector
input
input vector
autoencoder
reconstructed
Prior art date
Application number
KR1020227009033A
Other languages
English (en)
Inventor
다비 드엔
오리엘 프리고
세바스띠앙 꽁브렉셀
피에르 엘린
Original Assignee
언아더 브레인
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 언아더 브레인 filed Critical 언아더 브레인
Publication of KR20220065773A publication Critical patent/KR20220065773A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/80Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
    • G06V10/803Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level of input or preprocessed data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Multimedia (AREA)
  • Probability & Statistics with Applications (AREA)
  • Image Analysis (AREA)

Abstract

본 발명은 입력 데이터 샘플을 나타내는 입력 벡터를 획득하는 것; 중지 기준이 충족될 때까지, 레퍼런스 벡터의 세트를 사용해 훈련된 오토인코더를 사용하여 입력 벡터를 압축된 벡터로 인코딩하고 압축된 벡터를 재구성된 벡터로 디코딩하는 것; 재구성된 벡터와 입력 벡터 사이의 재구성 손실 및 재구성 손실의 구배를 계산하는 것; 상기 구배를 사용하여 후속 반복을 위해 상기 입력 벡터를 업데이트하는 것의 연속적 반복을 수행하는 것을 위해 구성된 적어도 하나의 처리 로직을 포함하는 디바이스를 개시한다.

Description

정상 데이터로의 데이터 샘플 변환
본 발명은 정상 및 비정상 데이터 관리 분야에 관한 것이다. 보다 구체적으로, 본 발명은 입력 샘플을 정상으로 간주되는 데이터에 가능한 한 가까운 샘플로 변환하는 것에 관한 것이다.
정상 데이터와 비정상 데이터의 구별은 다양한 응용을 갖는 성장하는 연구 분야이다.
그 중 하나는 이상 (anomaly) 검출 및 위치 결정(localization)이다. 그 목적은 데이터 샘플이 "정상"인지 "비정상" 인지를 자동으로 검출하고 이상이 검출되면 이를 위치 결정하는 것이다. 이것의 구체적인 응용은 생산 라인에서 정상 또는 비정상 제품을 검출하는 것이다. 이는 각 제품의 사진을 촬영하고 사진이 정상 및 비정상 제품에 해당하는지를 자동으로 검출하여 행해질 수 있다.
무엇이 "정상"이고 무엇이 "비정상"인지를 자동으로 검출하는 것은 매우 어려운 문제로, 일반적으로 하나 이상의 데이터 모델을 학습하고 생성하는 데 의존하는 다양한 방식으로 다루어졌다.
이 문제를 해결하기 위한 제 1 접근법은 지도 학습(supervised learning)을 수행하는 것이다. 지도 학습은 레이블이 지정된 입력 데이터로부터 모델을 학습하는 것으로 구성되며: 각 학습 샘플은 샘플이 정상 및 비정상인지를 나타내는 레이블과 연관된다. 비정상 샘플은 또한 이상 유형을 나타내는 레이블과 연관될 수도 있다. 모델이 훈련되면, 이는 새 샘플을 정상 또는 비정상으로 분류하는 데 사용될 수 있다. 이러한 접근법의 문제는 모델이 이미 직면한 이상만을 학습할 수 있다는 것이다. 따라서, 이는 비정상이지만 이상이 이전에 학습되지 않은 샘플이 정상으로 분류될 위험이 높다.
반면, 비지도 학습은 레이블이 지정된 비정상 학습 데이터를 필요로 함이 없이 이상을 검출할 수 있다. 그렇게 하기 위해, 일부 솔루션은 정상 데이터를 나타내는 학습 샘플 세트를 사용하여 데이터의 생성 모델을 학습하고; 이러한 모델의 목적은 일부 압축 데이터 공간에서 입력이 주어지면 원래 데이터 분포의 일부로 간주될 수 있는 샘플을 출력하는 것이다. 이미지 처리에서, 통상적인 값은 64 차원 압축 데이터 공간으로부터 256*256 픽셀 이미지를 생성하는 것일 수 있다. 이러한 모델은 주로 GAN(generative adversarial network), VAE(variational auto encoder), PixelCNN 및 이러한 모델의 하이브리드이다. 샘플이 주어지면, 이상을 검출하기 위해, 기존 솔루션은 샘플을 그 압축된 데이터 공간으로 인코딩한 다음, 압축된 표현을 디코딩하여 새로운, 생성된, 샘플을 얻고 본 발명자들은 이것을 "재구성" (reconstruction) 이라고 칭한다. 또한, 이들은, 재구성을 입력 샘플과, 예를 들어, 픽셀 단위 (pixel per pixel) 로, 비교하거나, 또는 더 많은 전역 필터를 사용하고, 재구성과 상이한 샘플 구역이 이상의 위치 결정이라고 간주하는 것에 의해, 이상을 위치 결정할 수 있다.
그러나, 이러한 방법을 사용한 이상 위치 결정은 여전히 불확실하다. 실제로, 이상은 본질적으로 학습 정상 데이터의 일부가 아니므로, 재구성된 샘플은 비정상의 정확한 위치 결정뿐만 아니라 많은 다른 위치에서 비정상 입력 샘플과 상이할 수도 있다.
따라서 비정상 샘플을 검출하고 이상의 정확한 위치를 제공하기 위한 디바이스 및 방법이 필요하다. 이는 기존의 방법이 비정상 샘플과 정상 샘플의 차이가 어디에 있는지 실제로 검출하지 못하기 때문이다.
정상/비정상 데이터를 사용하는 또 다른 응용은 인페인팅(inpainting)이다. 인페인팅은 사진의 마스킹되지 않은 부분으로부터, 사진에 마스킹된 데이터를 재구성하는 것으로 구성된다. 예를 들어, 이것은 워터마킹을 제거하거나 또는 이미지 전면 너머의 풍경을 재구성하는 데 사용될 수 있다.
이 경우에도, 생성 모델은, 피처(feature)의 마스킹되지 않은 부분을 압축 공간으로 인코딩하고 압축된 이미지를 재구성된 이미지로 디코딩하여, 사진의 누락 부분을 재구성하는 데 사용될 수 있다. 그러나, 이러한 방법의 결과는 여전히 불완전한데, 왜냐하면 마스킹되었거나, 흐릿할 수 있거나 또는 약간 상이한 색상의 이미지 부분과 이미지의 다른 부분 사이에 명확한 차이가 남아 있기 때문이다. 따라서, 기존 방법은 실제로 원본 이미지를 "닮은" 이미지를 재구성하지 못한다.
이들 두 예에서 기존 방법의 한계는 일반적으로 비정상 샘플과 정상 샘플 사이의 차이가 정확히 무엇인지 검출할 수 없다는 점에서 비롯된다. 다르게 말하면, 이는 비정상 샘플을 비정상 샘플에 가능한 한 가까운 정상 샘플로 정확하게 변환하지 못한다.
위에 제공된 예는 디지털 이미징 분야에 있지만, 다른 종류의 멀티미디어 샘플(예: 오디오, 비디오 샘플), 그리고 더 일반적으로 물리적 측정(온도, 습도…), 컴퓨터 활동 측정(CPU, 메모리 사용량, 네트워크 대역폭…) 등과 같은 임의의 종류의 의미있는 데이터 샘플에 대해서 동일한 문제가 발생한다.
따라서, 정상 샘플인 것에 가능한 한 가까운 변환 데이터 샘플로의 비정상 데이터 샘플의 최저 가능한 영향을 갖는 변환을 제공할 수 있는 방법 및 디바이스가 필요하다.
본 발명의 개시
이런 취지로, 본 발명은 입력 데이터 샘플을 나타내는 입력 벡터를 획득하는 것; 중지 기준이 충족될 때까지, 레퍼런스 벡터의 세트를 사용해 이전에 훈련된 오토인코더를 사용하여 입력 벡터를 압축된 벡터로 인코딩하고 압축된 벡터를 재구성된 벡터로 디코딩하는 것; 재구성된 벡터와 입력 벡터 사이의 에너지, 및 상기 에너지의 구배를 계산하는 것으로서, 상기 에너지는 오토인코더의 손실 함수 또는 재구성 손실; 재구성된 샘플과 입력 샘플 사이의 거리의 가중 합 (weighted sum) 인, 상기 계산하는 것; 상기 입력 벡터의 각 요소에 대해 상기 구배를 사용하여 후속 반복을 위해 상기 입력 벡터를 업데이트하는 것의 연속적 반복을 수행하는 것을 위해 구성된 적어도 하나의 처리 로직을 포함하는 디바이스를 개시한다.
유리하게는, 오토인코더는 변분 오토인코더(variational autoencoder)이다.
유리하게는, 오토인코더의 재구성 손실은
Figure pct00001
로서 계산된다.
유리하게는, 상기 구배를 사용하여 상기 입력 벡터를 업데이트하는 것은 구배 하강법(gradient descent)을 적용하는 것으로 구성된다.
유리하게는, 구배는 오토인코더의 재구성 에러(reconstruction error)에 의해 요소 단위(element-wise)로 수정된다.
유리하게는, 미리 정의된 반복 횟수에 도달하면 중지 기준이 충족된다.
유리하게는, 중지 기준은: 에너지가 미리 정의된 임계치보다 낮은 경우, 또는 두 개의 연속적인 반복 사이의 에너지 차이가 미리 정의된 연속 반복 횟수에 대해 미리 정의된 임계치보다 낮은 경우에 충족된다.
유리하게는, 레퍼런스 벡터의 세트는 정상 샘플을 나타내고, 처리 로직은 또한, 레퍼런스 벡터의 세트를 고려하여 입력 벡터가 정상 또는 비정상 벡터인지를 결정하고; 입력 벡터가 비정상 벡터인 경우, 제 1 반복에 대한 입력 벡터의 요소와 마지막 반복에 대한 입력 벡터의 요소 사이의 차이를 사용하여 적어도 하나의 이상을 로케이팅하도록 구성된다.
유리하게는, 처리 로직은 제1 반복에 대한 입력 벡터와 제1 반복에 대한 재구성된 벡터 사이의 거리를 임계치와 비교하여 레퍼런스 벡터의 세트를 고려하여 입력 벡터가 정상 또는 비정상 벡터인지를 결정하도록 구성된다.
유리하게는, 처리 로직은 제1 반복에 대한 입력 벡터와 마지막 반복에 대한 입력 벡터 사이의 거리를 임계치와 비교하여 레퍼런스 벡터의 세트를 고려하여 입력 벡터가 정상 또는 비정상 벡터인지를 결정하도록 구성된다.
유리하게는, 레퍼런스 벡터의 세트는 완전한 샘플을 나타내고, 입력 샘플은 불완전한 샘플을 나타내고, 처리 로직은 또한: 입력 샘플의 누락 부분의 마스크를 획득하고; 각 반복에서, 상기 입력 벡터를 업데이트하기 전에 구배에 마스크를 곱하고; 중지 기준이 충족되면, 반복적으로 업데이트된 입력 벡터를 출력하도록 구성된다.
본 발명은 또한 입력 데이터 샘플을 나타내는 입력 벡터를 획득하는 단계; 중지 기준이 충족될 때까지, 레퍼런스 벡터의 세트를 사용해 이전에 훈련된 오토인코더를 사용하여 입력 벡터를 압축된 벡터로 인코딩하고 압축된 벡터를 재구성된 벡터로 디코딩하는 것; 재구성된 벡터와 입력 벡터 사이의 에너지, 및 상기 에너지의 구배를 계산하는 것으로서, 상기 에너지는 오토인코더의 손실 함수 또는 재구성 손실; 재구성된 샘플과 입력 샘플 사이의 거리의 가중 합인, 상기 계산하는 것; 상기 입력 벡터의 각 요소에 대해 상기 구배를 사용하여 후속 반복을 위해 상기 입력 벡터를 업데이트하는 것의 연속적 반복을 수행하는 단계를 포함하는 컴퓨터 구현 방법을 개시한다.
본 발명은 또한 입력 데이터 샘플을 나타내는 입력 벡터를 획득하고; 중지 기준이 충족될 때까지, 레퍼런스 벡터의 세트를 사용해 이전에 훈련된 오토인코더를 사용하여 입력 벡터를 압축된 벡터로 인코딩하고 압축된 벡터를 재구성된 벡터로 디코딩하는 것; 재구성된 벡터와 입력 벡터 사이의 에너지, 및 상기 에너지의 구배를 계산하는 것으로서, 상기 에너지는 오토인코더의 손실 함수 또는 재구성 손실; 재구성된 샘플과 입력 샘플 사이의 거리의 가중 합인, 상기 계산하는 것; 상기 입력 벡터의 각 요소에 대해 상기 구배를 사용하여 후속 반복을 위해 상기 입력 벡터를 업데이트하는 것의 연속적 반복을 수행하도록 구성된 컴퓨터 코드 명령을 포함하는 컴퓨터 프로그램 제품을 개시한다.
단지 예시 목적으로 제공된 다수의 예시적인 실시형태에 대한 다음의 설명 및 첨부 도면으로부터 본 발명이 더 잘 이해될 것이고, 그의 다양한 특징 및 이점이 나타날 것이며 첨부 도면 중:
- 도 1a, 1b 및 1c 는 본 발명의 다수의 실시형태에서 디바이스의 3개의 예를 나타낸다.
- 도 2 는 본 발명의 다수의 실시형태에서 방법의 예를 나타낸다.
- 도 3 은 본 발명의 다수의 실시형태에서 오토인코더의 예를 나타낸다.
- 도 4 는 이상 검출 및 위치 결정을 수행하기 위한, 본 발명의 다수의 실시형태에 따른 방법의 예를 나타낸다.
- 도 5a 및 5b는 본 발명의 실시 형태와 종래 기술에서 이상 검출의 출력을 비교하는 2개의 예를 나타낸다.
- 도 6 는 본 발명의 다수의 실시형태에서 샘플의 누락 부분의 재구성 방법의 예를 나타낸다.
- 도 7 은 본 발명의 실시형태와 종래 기술에서 인페인팅 태스크의 출력 비교의 예를 나타낸다.
본 발명의 상세한 설명
도 1a, 1b 및 1c 는 본 발명의 다수의 실시형태에서 디바이스의 3개의 예를 나타낸다.
도 1a는 본 발명의 다수의 실시형태에서 디바이스의 제 1 예를 나타낸다.
디바이스 (100a) 는 컴퓨팅 디바이스이다. 도 1a에 컴퓨터로 나타나 있지만, 디바이스 (100a) 는 서버와 같은 컴퓨팅 능력을 가진 임의의 종류의 디바이스, 또는 스마트폰, 태블릿, 랩톱과 같은 컴퓨팅 능력을 가진 이동 디바이스, 또는 전용 태스크를 달성하도록 특별히 맞추어진 컴퓨팅 디바이스일 수도 있다.
디바이스 (100a) 는 적어도 하나의 처리 로직 (110a) 을 포함한다. 본 발명의 다양한 실시형태에 따르면, 처리 로직은 소프트웨어 명령, 프로세서의 하드웨어 구성, 또는 이들의 조합에 따라 동작하는 프로세서일 수도 있다. 본 명세서에서 논의된 기능 중 일부 또는 전부는 순수한 하드웨어 구현으로 및/또는 소프트웨어 명령에 따라 작동하는 프로세서에 의해 구현될 수 있음을 이해해야 한다. 또한 일부 또는 모든 소프트웨어 명령이 비일시적 컴퓨터 판독 가능 매체에 저장될 수도 있음을 이해해야 한다. 단순화를 위해, 본 개시의 나머지 부분에서 하나 이상의 처리 로직은 "처리 로직"으로 칭해질 것이다. 그러나, 본 발명의 동작은 또한 단일 처리 로직, 또는 복수의 처리 로직, 예를 들어 복수의 프로세서에서 수행될 수도 있다는 점에 유의해야 한다.
처리 로직 (110a) 은 입력 데이터 샘플 (130a) 을 나타내는 입력 벡터를 획득하도록 구성된다. 입력 데이터 샘플은 의미있는 데이터를 나타내는 다양한 유형의 데이터 샘플에 속할 수도 있다: 그것은 멀티미디어 샘플 (이미지, 오디오, 비디오…), 다양한 센서로부터의 데이터 샘플(온도, 압력…), 컴퓨터 활동 측정 (CPU, 메모리 사용량, 네트워크 대역폭...) 또는 더 일반적으로 의미가 있는 숫자를 기반으로 하는 임의의 종류의 데이터일 수도 있다. 입력 데이터 샘플은 다양한 방식으로 획득될 수도 있다: 그것은 측정되거나, 인터넷 연결을 통해 검색되거나, 데이터베이스에서 읽혀지는 등일 수도 있다. 샘플은 임의의 적절한 방식으로 입력 벡터로 변환될 수 있다.
처리 로직 (110a) 은 오토인코더 (120a) 를 실행하도록 구성된다. 오토인코더는 샘플을 표현으로 인코딩하거나 또는 더 낮은 차원을 인코딩한 다음, 샘플을 재구성된 샘플로 디코딩하는 것으로 구성된 인공 신경망 유형이며, 예를 들어 Liou, C. Y., Cheng, W. C., Liou, J. W., & Liou, D. R. (2014). Autoencoder for words. Neurocomputing, 139, 84-96 에 기재되어 있다. 오토인코더의 원리는 도 3을 참조하여 보다 상세히 설명된다.
오토인코더 (120a) 는 입력 샘플과 동일한 종류의 정상 샘플을 나타내는 레퍼런스 벡터의 세트로 이전에 훈련되었다. 그러므로, 오토인코더는 입력 샘플을 압축 샘플로 인코딩하고 압축된 벡터를 재구성된 벡터로 디코딩할 수 있다.
처리 로직 (110a) 은 오토인코더 (120a) 를 사용하여 입력 벡터 (130a) 를 레퍼런스 벡터의 세트에 속하는 벡터인 것을 닮은 벡터로 변환하도록 구성된다. 따라서 수행되는 작업은 도 2를 참조하여 설명된다.
이것은 많은 다른 용도를 제공한다. 예를 들어, 디바이스 (100a) 는 이상 검출 및 위치 결정, 이상 수정, 인페인팅, 입력 디노이징, 또는 보다 일반적으로 벡터와 레퍼런스 벡터의 세트 간의 이상 또는 차이를 검출하거나 수정할 필요가 있는 임의의 목적을 위해 사용될 수 있다.
도 1b는 본 발명의 다수의 실시형태에서 디바이스의 제 2 예를 나타낸다.
디바이스 (100a) 와 마찬가지로, 디바이스 (100b) 는 오토인코더 (120b) 를 실행하도록 구성된, 적어도 하나의 처리 로직 (110b) 을 포함한다.
디바이스 (100b) 는 특히 이미지 처리를 수행하도록 구성된다. 따라서 디바이스 (100b) 의 입력 벡터는 디지털 이미지 (130b) 를 나타낸다. 디지털 이미지는 다양한 소스로부터 획득될 수도 있다. 예를 들어, 그것은 디지털 카메라 (140b) 에 의해 캡처될 수도 있다. 반대로, 오토인코더 (120b) 는 디바이스의 의도된 사용과 관련하여 정상 이미지로 간주되는 레퍼런스 이미지 세트를 사용하여 훈련되었다.
디바이스 (100b) 는 다수의 응용을 갖는다. 예를 들어, 그것은 이상 검출, 이미지 내 이상 위치 결정, 인페인팅, 워터마킹 제거, 또는 더 일반적으로 입력 이미지를 레퍼런스 세트에 있는 이미지인 것에 더 가까운 이미지로 변환하는 것에 의존하는 임의의 종류의 이미지 처리를 수행하는 데 사용될 수 있다.
따라서, 디바이스 (100b) 는 사용자, 퍼스널 컴퓨터 또는 포터블 디바이스에 의해 전송된 이미지를 처리하는 서버일 수도 있다. 예를 들어, 디바이스 (100b) 는, 생산 라인의 출력에서 제품의 사진을 수신하고, 이미지에 기초하여, 오토인코더 (120b) 가 정상 제품의 사진으로 훈련된 것을 조건으로, 제품이 정상인지 아닌지, 그리고, 있다면, 이상이 어디에 있는지를 결정하는 공장에 있는 서버일 수도 있다. 그것은 또한 제품의 사진을 찍고 동일한 기능을 수행하는 스마트폰 또는 카메라를 포함하는 다른 포터블 컴퓨팅 디바이스일 수도 있다. 따라서, 본 발명의 각각의 응용은 서버, 퍼스널 컴퓨터, 스마트폰 또는 특정 포터블 디바이스와 같은 매우 상이한 컴퓨팅 디바이스에 내장될 수도 있음을 이해할 수 있다.
도 1c 는 본 발명의 다수의 실시형태에서 디바이스의 제 2 예를 나타낸다.
디바이스 (100a) 와 마찬가지로, 디바이스 (100c) 는 오토인코더 (120c) 를 실행하도록 구성된, 적어도 하나의 처리 로직 (110c) 을 포함한다.
디바이스 (100c) 는 특히 사운드 처리를 수행하도록 구성된다. 따라서 디바이스 (100c) 의 입력 벡터는 디지털 오디오 트랙 (130c) 을 나타낸다. 디지털 오디오 트랙은 다양한 소스에 대해 획득될 수도 있다. 예를 들어, 그것은 디지털 마이크로폰 (140c) 에 의해 캡처될 수도 있다. 그것은 또한 저장장치(디지털 저장장치, CD 등)으로부터 취출될 수도 있다. 반대로, 오토인코더 (120c) 는 디바이스의 의도된 사용과 관련하여 정상 오디오 트랙으로 간주되는 레퍼런스 오디오 트랙 세트를 사용하여 훈련되었다.
디바이스 (100c) 는 다수의 응용을 갖는다. 예를 들어, 그것은 이상 검출, 사운드 내 이상 위치 결정, 사운드 재구성, 원하지 않는 사운드, 또는 원하지 않는 사운드 효과의 제거, 또는 더 일반적으로 레퍼런스 세트에 있는 오디오 트랙인 것에 더 가까운 오디오 트랙으로 입력 오디오 트랙을 변환하는 것에 의존하는 임의의 종류의 사운드 처리를 수행하는 데 사용될 수 있다.
따라서 디바이스 (100c) 는 제거할 원하지 않는 노이즈가 있는 오디오 트랙을 수신하는 서버일 수도 있다. 예를 들어, 오토인코더 (120c) 가 원치 않는 노이즈 없는 클래식 피아노를 나타내는 오디오 트랙으로 훈련된 경우, 처리 로직은, 본 발명의 다양한 응용에 따라, 이상이 있는 클래식 피아노의 오디오 트랙을 수신할 때, 입력 트랙을 수정하여 이상을 제거할 수 있을 것이다. 이것은, 예를 들어, 트랙의 작은 누락 부분을 재구성하거나, 또는 원하지 않는 노이즈를 로케이팅하고 제거하기 위해 행해질 수 있다. 디바이스 (100c) 는 상이한 유형의 디바이스일 수도 있다. 예를 들어, 디바이스 (100c) 는 서버일 수도 있다. 그것은 또한, 스마트폰, 또는 디지털 마이크로폰을 포함하는 다른 포터블 컴퓨팅 디바이스일 수도 있다. 따라서, 본 발명의 각각의 응용은 서버, 퍼스널 컴퓨터, 스마트폰 또는 특정 포터블 디바이스와 같은 매우 상이한 컴퓨팅 디바이스 내에 내장될 수도 있음을 이해할 수 있다.
도 2 는 본 발명의 다수의 실시형태에서 방법의 예를 나타낸다.
방법 (200) 은 입력 데이터 샘플을 나타내는 입력 벡터를 획득하는 제1 단계 (210) 를 포함한다.
위에서 언급했듯이, 벡터는 고려되는 데이터 유형에 따라 획득될 수 있다. 따라서, 입력 벡터는 이미지, 오디오 트랙, 비디오 시리즈, 온도 측정, 시계열의 CPU 사용량, 또는 더 일반적으로 숫자를 통해 나타낼 수 있는 임의의 의미있는 데이터를 나타낼 수도 있다.
아래에서 더 자세히 설명되는 바와 같이, 방법 (200) 은 입력 벡터가 압축되고, 재구성된 다음 수정되는 복수의 반복을 포함한다. 그 개시에서, 반복은 반복 횟수를 나타내는 인덱스 t = 1, 2, …로 표시될 것이며, 인덱스 t의 각 반복에 대해, 입력 벡터가
Figure pct00002
로 표기 되고 재구성된 벡터는
Figure pct00003
이다.
따라서, "입력 벡터"라는 용어는 여기서 일반적으로 반복 t에 대한 입력의 역할을 할 때 수정된 입력 벡터를 표시할 것이다는 점에 유의해야 한다. 따라서, 제1 단계 (210) 에서 초기에 수신되어, 제1 반복에서 입력 벡터 역할을 하는 입력 벡터는, "초기 입력 벡터" 또는 "제1 반복에 대한 입력 벡터"라는 용어로 구체적으로 표시될 수도 있다. 이 벡터는 또한,
Figure pct00004
또는
Figure pct00005
로 표기될 수도 있다. 실제로, 본 발명의 다수의 실시형태에서, 입력 벡터가 각 반복 t에서 반복적으로 수정되더라도, 초기 입력 벡터
Figure pct00006
는 아래에서 더 자세히 설명하는 것처럼 향후 사용을 위해 저장된다.
그 다음, 방법 (200) 은 오토인코더 (120a, 120b 또는 120c) 와 같은 오토인코더를 사용한다. 따라서 이것은 입력 벡터를 압축된 벡터로 인코딩하기 위한 제2 단계(220), 및 압축된 벡터를 재구성된 벡터로 디코딩하는 제3 단계(230)를 포함한다.
도 3 은 본 발명의 다수의 실시형태에서 오토인코더의 예를 나타낸다.
오토인코더는 예를 들어 Liou, Cheng-Yuan; Huang, Jau-Chi; Yang, Wen-Chie (2008). "Modeling word perception using the Elman network". Neurocomputing. 71 (16-18), 및 Liou, Cheng-Yuan; Cheng, Wei-Chen; Liou, Jiun-Wei; Liou, Daw-Ran (2014). "Autoencoder for words". Neurocomputing. 139: 84-96 에 설명되었다. 오토인코더는 비지도 방식으로 효율적인 데이터 코딩을 수행하도록 훈련된 유형의 신경망이다.
오토인코더는 입력 벡터
Figure pct00007
Figure pct00008
로 표기된 압축된 벡터로 인코딩하는 제1 신경망(320) (t 는 반복의 인덱스를 나타냄) 및 압축된 벡터
Figure pct00009
를 압축 해제 또는 재구성된 벡터
Figure pct00010
로 디코딩하는 제2 신경망으로 구성된다. 압축된 벡터
Figure pct00011
입력 벡터
Figure pct00012
및 재구성된 벡터
Figure pct00013
보다 낮은 차원수(dimensionality)를 갖는다: 이는 벡터의 본질적 피처를 나타내는 것으로 간주되는 잠재 변수라고 불리는 변수 세트를 사용하여 표현된다. 따라서, 재구성된 벡터
Figure pct00014
: 는 비슷하지만 일반적으로 입력 벡터
Figure pct00015
와 엄밀히 같지는 않다.
따라서, 디코딩의 출력에서, 재구성 에러, 또는 손실 함수와, 손실 함수의 구배 모두를 계산하는 것이 가능하다.
손실 함수는
Figure pct00016
로 표기되고 예를 들어 2차 함수일 수 있다:
Figure pct00017
(등식 1)
손실 함수의 구배는
Figure pct00018
로 표기될 수 있다.
오토인코더는, 훈련 페이즈(training phase)에서, 레퍼런스 벡터의 세트로 이전에 훈련되었다. 오토인코더의 훈련 페이즈는 훈련 세트에 대한 재구성 손실을 최소화하기 위해 신경망(320 및 330)의 가중치와 바이어스(bias)를 조정하는 것으로 구성된다. 그렇게 함으로써, 압축된 벡터 p의 잠재 변수는 훈련 세트의 두드러진 상위 수준 피처(salient high-level feature)를 나타내도록 훈련된다. 달리 말하면, 오토인코더의 훈련 페이즈는 훈련 샘플을 이들을 가장 잘 나타내는 적은 수의 잠재 변수로 압축하는 비지도 학습을 제공한다.
따라서, 정상 샘플의 훈련 세트로 오토인코더를 훈련하면 정상 샘플을 나타내도록 최적화된 잠재 피처가 생성된다. 따라서, 훈련 페이즈 후에, 오토인코더가 정상 샘플을 인코딩 및 디코딩할 때, 압축된 벡터는 샘플의 양호한 표현을 제공하고 재구성 에러가 작다. 반대로, 입력 벡터가 비정상 샘플, 또는 더 일반적으로 훈련, 세트의 샘플과 유사하지 않은 샘플을 나타내는 경우, 비유사성이 제대로 압축되지 않고, 재구성 에러가 훨씬 커질 것이다.
따라서, 레퍼런스 샘플의 훈련 세트는 의도된 훈련에 적합화될 수 있다. 예를 들어:
- 주어진 유형의 제품 사진으로부터 비정상 제품을 검출하기 위한 응용에서, 훈련 세트는 정상 제품 사진으로 구성되어야 한다;
- 인페인팅을 수행하기 위한 응용에서, 훈련 세트는 완전한 이미지로 구성되어야 한다;
- 사운드로부터 원치 않는 노이즈를 제거하기 위한 응용에서, 훈련 세트는 원치 않는 노이즈가 없는 사운드로 구성되어야 한다;
- 온도 측정의 누락 부분을 재구성하기 위한 응용에서, 훈련 세트는 측정 누락 없는 온도 측정으로 구성되어야 한다;
본 발명은 일반적으로 의도된 목적에 적합한 훈련 세트로 작동하지만, 처리할 샘플을 가능한 한 대표하는 훈련 샘플을 선택함으로써 결과를 더욱 개선할 수 있다는 점에 유의해야 한다. 예를 들어:
- 유리병 생산 라인에서 비정상 제품을 검출하기 위한 응용에서, 정상 유리병(즉, 결함이 없는 유리병)을 갖는 훈련 세트가 일반적으로 작동할 것이지만, 동일한 제조업자로부터의 정확히 동일한 모델의 유리병을 갖는 훈련 세트는 훨씬 더 나은 결과를 제공할 것으로 예상된다;
- 얼굴에 인페인팅을 수행하기 위한 응용에서, 완전한 사진으로 구성된 훈련 세트가 일반적으로 작동할 것이지만, 얼굴 이미지의 훈련 세트가 더 나은 결과를 제공할 것이다;
- 클래식 피아노 레코드로부터 원치 않는 노이즈를 제거하기 위한 응용에서, 노이즈가 없는 오디오 트랙으로 구성된 훈련 세트가 일반적으로 작동할 것이지만, 클래식 피아노 레코드로 구성된 훈련 세트가 더 나은 결과를 제공할 것이다;
- 온도 측정의 누락 부분을 재구성하기 위한 응용에서, 완전한 온도 측정으로 구성된 훈련 세트가 일반적으로 작동할 것이지만, 입력 샘플보다는 동일한 장소에서 및/또는 동일한 조건에서, 및/또는 동일한 종류의 온도계로 캡처된 완전한 온도 측정으로 구성된 훈련 세트가 더 나은 결과를 제공할 것으로 예상된다.
따라서 숙련자는 의도된 응용에 따라 그의 필요에 가장 적합한 훈련 세트를 선택할 수 있다. 그러나, 입력 벡터와 훈련 세트의 벡터는 동일한 유형일 필요가 있으며, 즉, 동일한 차원을 가질 필요가 있고, 벡터의 대응하는 요소는 동일한 의미를 가질 필요가 있다. 예를 들어, 입력 벡터, 및 훈련 세트의 벡터는 동일한 색상 표현 및 비트 깊이를 갖는 동일한 차원의 이미지, 동일한 비트 깊이를 갖는, 동일한 지속시간의 오디오 트랙 등을 나타낼 수 있다.
본 발명의 다수의 실시형태에서, 오토인코더는 변분 오토인코더(VAE)이다. 변분 오토인코더는 예를 들어 Kingma,, D. P., & Welling, M. (2013). Auto-encoding variational bayes. arXiv preprint arXiv:1312.6114, or Diederik P. Kingma and Volodymyr Kuleshov. Stochastic Gradient Variational Bayes and the Variational Autoencoder. In ICLR, pp. 1-4, 2014 에 의해 설명된다. 변분 오토인코더는 유리하게 특정 데이터 세트에 대해 정상 및 비정상 샘플의 매우 우수한 식별을 제공한다. 그러나 본 발명은 이러한 유형의 오토인코더에 제한되지 않으며, 다른 유형의 오토인코더가 본 발명의 과정에서 사용될 수도 있다.
본 발명의 다수의 실시형태에서, 변분 오토인코더의 손실은 다음과 같이 계산된다:
Figure pct00019
(등식 2)
Figure pct00020
항은 Kullbak-Leibler (KL) 발산을 나타낸다. KL 차이는 압축된 샘플의 발산을 나타낸다. 이 항의 최소화는 잠재 공간이 가우스 분포를 갖도록 보장하여, 관련 잠재 공간이 구해질 확률을 최적화한다. 따라서, 이 항은 잠재 공간이 최적의 가우스 분포에 가능한 한 가깝도록 보장한다. 따라서, 이 함수(function)는 생성 모델이 사용되도록, 즉, 모델이 훈련에 사용된 적이 없는 샘플을 생성할 수 있도록 보장할 수 있다.
VAE 에서, 디코더 모델은, p(z) (여기서
Figure pct00021
) 이전의 단순 잠재 변수를 갖는 데이터세트 분포, 및 디코더에 의해 출력된 조건 분포(conditional distribution)
Figure pct00022
를 근사하도록 시도한다. 이것은 본 발명자들이 데이터 세트에 대한 최대 우도 추정을 사용하여 최적화하기를 원하는 추정치
Figure pct00023
로 이어진다. 합리적인 분산을 갖는 확률적 구배 하강법 (SGD) 추정기로 다루기 쉽게 학습을 만들기 위해, 중요도 샘플링을 사용하여, 인코더 망에 의해 출력된 밀도 함수
Figure pct00024
및 Jensen의 부등식을 도입하여 변분 하한을 얻을 수 있다:
Figure pct00025
(등식 3)
따라서, VAE의 재구성은 x 를 인코딩, 인코딩된 분포
Figure pct00026
의 평균을 디코딩, 및 디코딩된 분포
Figure pct00027
의 평균을 다시 취하여 획득되는 결정론적 샘플
Figure pct00028
로 정의될 수 있다.
더 자세한 재구성을 생성하기 위해 Bin Dai and David P. Wipf. Diagnosing and enhancing VAE models. CoRR, abs/1903.05789, 2019 에 의해 제안된 바와 같은 디코딩된 분포
Figure pct00029
의 분산을 학습하는 것이 가능하다.
도 2로 돌아가면, 방법 (200) 은 재구성된 벡터
Figure pct00030
와 입력 벡터
Figure pct00031
사이의 에너지, 및 입력 벡터에 대한 에너지의 구배를 계산하는 제4 단계(240)를 더 포함한다.
본 발명의 다수의 실시예형태서, 손실 또는 에너지 함수는 두 항의 가중 합이다:
- 오토인코더의 손실 함수 또는 오토인코더의 재구성 에러인 첫번째 항;
- 입력 샘플과 초기 입력 샘플 사이의 거리인 두번째 항. 거리는 벡터의 유형에 따라 달라질 수도 있으며, 예를 들어 벡터가 이미지를 나타내는 경우 DSSIM 또는 L1 에러일 수도 있다. 이를 통해 오토인코더의 손실 함수와 고려되는 벡터 유형에 대한 목적에 따라 달라지는 거리를 모두 줄일 수 있다 (즉, 예를 들어, DSSIM을 사용하면 전역 수준의 비유사성이 줄어들 것인 한편, L1 거리를 사용하면 상이한 픽셀의 수가 줄어들 것이다).
따라서 에너지는 다음과 같이 표현되는
Figure pct00032
, 또는
Figure pct00033
로 표기될 수 있다:
Figure pct00034
(등식 4)
식 중:
-
Figure pct00035
는 단계 t에서 입력 벡터 xt 에 대한 오토인코더의 손실을 나타낸다;
-
Figure pct00036
는 정규화(regularization) 항이다;
-
Figure pct00037
는 단계 t 에서의 입력 벡터와 초기 입력 벡터 x1 사이의 거리이다. 따라서 에너지의 구배가 표기될 수 있다;
Figure pct00038
(등식 5)
정규화 항
Figure pct00039
의 값은 (단계 t 에서의 입력 벡터
Figure pct00040
와 레퍼런스 벡터 사이의 거리에 의존하는) 오토인코더의 손실 감소와, 단계 t 에서의 입력 벡터
Figure pct00041
와 초기 입력 벡터
Figure pct00042
사이의 거리의 감소간의 절충을 제공할 수 있다. 정규화 항
Figure pct00043
은 다양한 값을 가질 수 있으며 본 발명의 일부 실시형태에서는 0일 수도 있으며 - 이러한 경우, 에너지는 오토인코더의 손실과 동일할 것이다 정규화 항
Figure pct00044
은 예를 들어 0,01 또는 0,1과 같을 수 있다.
본 발명의 다양한 실시형태에 따르면, 상이한 거리가 사용될 수도 있다. 거리는 이미지 벡터에 대한 이미지 거리 메트릭, 오디오 트랙 벡터에 대한 오디오 거리 메트릭 등 벡터 유형에 따라 달라질 수도 있다. 예를 들어, 거리는 DSSIM (Structural DiSIMilarity) 일 수 있다. 그 경우 에너지는 다음과 같이 표현된다:
Figure pct00045
(등식 6)
본 발명의 다양한 실시형태에 따르면, 상이한 재구성 손실 및 구배가 사용될 수도 있다. 위에서 언급했듯이, 오토인코더가 변분 오토인코더인 경우, 재구성 손실은 다음과 같이 계산될 수 있다:
Figure pct00046
(등식 7)
필수는 아니지만, 오토인코더의 손실
Figure pct00047
은 훈련 페이즈와 입력 벡터의 수정 사이에 가능한 한 일관된 결과를 제공하기 위해 훈련 페이즈에서 사용된 손실과 동일할 수도 있다.
방법 (200) 은 구배를 사용하여 입력 벡터를 업데이트하는 제 5 단계 (250) 를 더 포함한다. 구배를 기반으로 하는 업데이트를 사용하면, 각 반복에서, 벡터를 훈련 세트의 벡터에 더 가까운 벡터로 수정할 수 있다. 예를 들어, 훈련 세트의 벡터가 정상 제품의 사진을 나타내고 초기 입력 벡터가 결함있는 제품의 사진을 나타내는 경우, 다음 반복에서 입력 벡터를 수정하기 위해 구배를 사용하면 입력 벡터로부터의 이상을 점진적으로 "제거"할 수 있다. 유사하게, 인페인팅 태스크에서, 각 반복에서 입력 벡터를 수정하면 이미지의 누락 부분을 점진적으로 재구성할 수 있다.
본 발명의 다수의 실시형태에서, 단계 t+1에서의 입력 벡터를 단계 t에서의 입력 벡터 빼기 단계 t에서의 구배 곱하기 포지티브 팩터(positive factor) α 로서 정의하는 것에 의해 구배 하강법을 적용할 수 있다.
Figure pct00048
(등식 8)
구배 하강법은 에너지를 최소화하는 입력 벡터, 즉 오토인코더에 의해 적절히 압축될뿐만 아니라 따라서 훈련 세트의 벡터에 가능한 한 유사한 입력 벡터로 반복적으로 수렴하는 한편, 입력 벡터로부터의 거리를 제한하며, 이들 2개의 요소 사이에 절충이 정규화 항
Figure pct00049
에 의해 정의되는, 효율적인 솔루션을 제공한다. 이러한 의미에서, 방법 (200) 의 반복은, t=1에서의 입력 벡터로부터 시작하여, 에너지의 국부 최소값을 구한다. 이 모든 것은 반복의 끝에서 훈련 세트의 벡터와의 비유사성이 제거된 벡터를 획득할 수 있게 한다.
계수 α의 값은 방법의 전환율을 수정할 수도 있다. 예를 들어, 0,05 또는 0,005와 동일한 α 값이 예를 들어 특히 효과적인 것으로 밝혀졌다.
본 발명의 다수의 실시형태에서, 에너지의 구배는 업데이트를 위한 오토인코더의 재구성 에러에 의해 요소 단위(element-wise) 곱해진다. 따라서 업데이트를 다음과 같이 표현될 수 있다:
Figure pct00050
(등식 9)
식중
Figure pct00051
는 Hadamard 곱이다.
이것은 양호한 재구성을 갖는 벡터의 입력 요소의 변경을 방지하면서 입력 벡터의 업데이트 속도를 높인다. 따라서, 이것은 양호한 입력 벡터를 얻는 데 필요한 반복 횟수를 줄일 수 있다. 반복 횟수가 감소되면 계산 속도가 높아지고 방법을 실행하는 데 필요한 계산 리소스가 줄어든다. 이것은 또한 0,05 또는 0,5 와 같은 α 의 더 높은 값, 및 따라서 더 빠른 수렴을 가능하게 한다.
업데이트 단계 (250) 후에, 단계 (260) 에서 중지 기준이 확인된다. 중지 기준이 충족되지 않으면, 단계 (250) 의 출력에서 업데이트된 벡터
Figure pct00052
를 입력으로 취하여 단계 (220, 230, 240, 250) 의 새로운 반복이 수행된다.
본 발명의 다양한 실시형태에 따르면, 중지 기준은 상이한 유형일 수도 있다.
예를 들어, 미리 정의된 반복 횟수 후에 중지 기준이 충족될 수도 있다. 예를 들어, 이는 t = 100, t = 200 등일 때 충족될 수도 있다. 미리 정의된 숫자는 입력 벡터가 에너지의 국부 최소값에 충분히 가깝게 보장하도록 선택될 수 있다.
중지 기준은 또한 에너지의 함수로도 충족될 수 있다. 이를 통해 반복 종료시 벡터가 훈련 세트와 충분히 유사하도록 보장할 수 있다. 예를 들어, 중지 기준은 미리 정의된 임계치와 에너지의 비교일 수도 있다: 반복 종료 시 재구성이 임계치 미만인 경우, 그리고 따라서, 입력 벡터가 훈련 세트의 벡터와 충분히 유사한 한편, 정규화 항이 초기 입력 벡터와 너무 비유사하지 않은 것에 따르는 경우, 기준이 충족된다.
또 다른 옵션은 반복 t 와 t-1 사이의 에너지 사이의 차이를 계산하는 것으로 구성되며, 단일 반복 또는 몇 번의 연속 반복에 대해, 그 차이가 임계치 미만인 경우, 중지 기준이 충족된다. 이렇게 하면, 반복이 입력 벡터를 현저히 수정하는 것을 중지할 때, 반복을 중지할 수 있다.
중지 기준이 충족되면, 방법 (200) 은 출력 단계 (270) 를 포함한다. 수 N 의 반복이 수행되었다. 다음으로, 방법 (200) 의 출력은 벡터
Figure pct00053
, 즉 반복적으로 수정된 입력 벡터이다. 대안적으로, 방법의 출력은 벡터
Figure pct00054
, 즉 추가 반복의 입력이 된 벡터일 수 있다.
이미 위에서 언급한 바와 같이, 방법 (200) 의 단계는 초기 입력 벡터를 에너지의 국부 최소값으로 수정하는 것, 즉 입력 벡터의 제한된 수정을 수행하면서 훈련 세트에 의해 훈련된 오토인코더에 의해 열악하게 인코딩 및 디코딩된 입력 벡터의 요소들을 제거하는 것을 가능하게 한다. 이를 통해 오토인코더에 의해 열악하게 인코딩된 요소만을 입력 벡터로부터 제거하여, 오토인코더의 훈련 세트의 벡터로부터 낮은 거리를 갖는 벡터를 출력으로 획득할 수 있다.
도 4 는 이상 검출 및 위치 결정을 수행하기 위한, 본 발명의 다수의 실시형태에 따른 방법의 예를 나타낸다.
여기에서 레퍼런스 벡터의 세트는 정상 샘플을 나타낸다. 예를 들어, 방법 (400) 이 제품의 사진에 기초하여 제품이 정상인지 아닌지를 결정하도록 의도된 경우, 레퍼런스 샘플 세트는 동일한 종류의 정상 제품의 이미지로 형성될 것이다.
방법 (400) 은 방법 (200) 의 모든 단계를 포함한다. 위에서 언급한 바와 같이, 방법 (200) 의 단계들의 출력은 단계 (220, 230, 240, 250) 의 N-1 반복에 의해 수정된 입력 벡터
Figure pct00055
또는 N 반복에 의해 수정된 입력 벡터
Figure pct00056
이다.
방법 (400) 은 입력 벡터가 정상 또는 비정상 벡터인지를 결정하는 제1 추가 단계 (470) 를 포함한다. 이는 임의의 적절한 이상 검출 기술을 사용하여 수행될 수 있다.
예를 들어, 제1 반복
Figure pct00057
에서의 재구성 손실은 훈련 세트의 벡터의 재구성 손실에 따라 임계치와 비교될 수 있다: 그것이 레퍼런스 벡터의 재구성 손실보다 현저히 높으면, 벡터는 비정상으로 간주될 것이다. 이 솔루션은 오토인코더를 사용한 비지도 이상 검출에 매우 적합하다. 그러나 이는 단지 예로서 제공되며, 입력 벡터가 정상 또는 비정상인지 여부를 검출하기 위해 임의의 적절한 방법을 사용할 수 있다. 더 일반적으로, 제1 반복에서 입력과 재구성된 벡터 사이의 거리가 계산되어 임계치와 비교될 수 있다. 이 테스트는 다음과 같이 표현될 수 있다:
Figure pct00058
또 다른 옵션은 초기 입력 벡터
Figure pct00059
,
Figure pct00060
또는
Figure pct00061
중 하나일 수 있는, 마지막 반복에 대한 입력 벡터를 비교하는 것이다: 만약
Figure pct00062
또는
Figure pct00063
Figure pct00064
와 매우 상이하면, 이는 벡터가 레퍼런스 벡터와 유사하도록 많이 수정되었음을 의미하며, 이는 입력 벡터가 비정상임을 나타낸다. 이것은 거리 표시자를 임계치와 비교하여 수행될 수 있다. 거리 표시자는 유클리드(Euclidian) 거리와 같은 일반 표시자이거나 또는 벡터 유형에 따라 달라질 수도 있다. 예를 들어, PSNR 또는 SSIM이 이미지 벡터에 사용될 수도 있다. 이를 통해 테스트되는 벡터 유형에 대해 이상 테스트를 맞출 수 있다.
벡터의 정상성 조건이 충족되면, 단계 (480) 에서 대응하는 샘플을 정상으로 분류할 것이다.
그렇지 않으면, 벡터는 비정상으로 분류되고, 적어도 하나의 이상을 로케이팅하기 위해 단계(490)이 수행된다. 이상 검출은 본 발명의 실시형태에 따라 초기 입력 벡터 (즉, 처음 수신된 제1 반복에 대한 입력 벡터,
Figure pct00065
) 와
Figure pct00066
또는
Figure pct00067
중 일방일 수도 있는 마지막 벡터에 대한 입력 벡터 사이의 차이에 기초한다.
실제로, 이러한 차이는 초기 입력 벡터
Figure pct00068
를 레퍼런스 벡터에 더 유사한 벡터
Figure pct00069
또는
Figure pct00070
로 변환하기 위해 수정된 벡터의 요소를 나타낸다. 따라서, 벡터
Figure pct00071
, 및
Figure pct00072
또는
Figure pct00073
의 대응하는 요소 사이의 큰 차이는 이러한 요소에 이상이 존재함을 나타낸다.
방법(200)의 단계가 레퍼런스 벡터와 더 일치하도록 벡터의 요소의 정확하고 위치 결정된 수정을 제공했다면,
Figure pct00074
또는
Figure pct00075
사이의 차이는 에러의 위치 결정에 대한 매우 정확한 표시를 제공한다.
이를 통해 다양한 유형의 벡터, 예를 들어, 이미지 영역, 오디오 트랙 시간 등 에 대한 에러를 검출할 수 있다.
벡터가 이미지 벡터인 경우, DSSIM(Structural DiSIMilarity)을 계산하고 DSSIM이 미리 정의된 임계값을 초과하는, 이상의 위치인 것으로 간주되는, 픽셀을 결정하여, 이상을 검출할 수 있다.
도 5a 및 5b는 본 발명의 실시 형태와 종래 기술에서 이상 검출의 출력을 비교하는 2개의 예를 나타낸다.
사진 (500a 및 500b) 은 각각 헤이즐넛과 텍스처를 나타낸다. 이미지는 Bergmann, P., Fauser, M., Sattlegger, D., & Steger, C. (2019). MVTec AD--A Comprehensive Real-World Dataset for Unsupervised Anomaly Detection. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (pp. 9592-9600) 에 의해 제공되는 데이터세트에서 나온다. 레퍼런스에 비해, 헤이즐넛은 흰색 기호(501a)로 인해 비정상이며 텍스처는 어두운 부분(501b)으로 인해 비정상이다. 모든 경우에, 이상 검출 및 위치 결정은 정상 사진(각각 정상 헤이즐넛, 정상 텍스처)을 나타내는 레퍼런스 샘플에 대해 훈련된 변분 오토인코더 (VAE) 에 의존한다.
종래 기술 시스템에서, 다음에 의해 이상을 검출하고 로케이팅할 수 있다:
- 훈련된 VAE를 사용하여 사진(500a)을 인코딩 및 디코딩하는 것. 디코딩의 출력은 각각 사진 (510a 및 510b) 이다;
- 재구성된 사진과 입력 사진 사이의 DSSIM: 각각 사진(510a 및 500a) 사이의 DSSIM(520a) 및 사진(510b 및 500b) 사이의 DSSIM(520b)을 계산하는 것;
- DSSIM이 미리 정의된 임계치를 초과하는 픽셀에서 이상을 로케이팅하기 위해 DSSIM을 픽셀 단위 (pixel by pixel)로 임계화(thresholding)하는 것. 이상은 사진(530a 및 530b)의 밝은 부분에 로케이팅된다.
본 발명의 실시형태에서, 이상 검출 및 위치 결정은 사진(510a 및 510b)이 방법(200)에 의해 수정된 입력 벡터(벡터
Figure pct00076
또는
Figure pct00077
)에 대응하는 사진(511a, 511b) 에 의해 대체되는 것을 제외하고는, 종래 기술의 접근법과 유사하다. 그런 다음 DSSIM(521a, 521b)이 초기 입력 벡터
Figure pct00078
, 그리고 수정된 입력 벡터
Figure pct00079
또는
Figure pct00080
사이에서 계산된 후, DSSIM(521a, 521b)은 이상(531a, 531b)을 로케이팅하기 위해 픽셀 단위로 임계화된다.
이러한 예는 본 발명이 이상의 훨씬 더 정확한 위치 결정을 제공한다는 것을 보여준다. 이는 방법(200)이, 이상이 종래 기술의 방법(510a, 510b)에서보다 훨씬 더 정확한 방식으로 방법(200)에 의해 제거된 사진(511a, 511b)을 생성하기 때문이다.
- 따라서, 픽셀 단위(pixel-wise) DSSIM(521a, 521b)은 이상의 위치에서만 높은 값을 갖는 반면, 그것은 종래 기술 시스템(520a, 520b)에서 훨씬 더 많은 확산 값을 가진다;
- 따라서, 본 발명을 사용하여, 임계화된 DSSIM은 이상이 로케이팅되는 픽셀(531a, 531b)만을 유지하는 반면, 종래 기술 시스템에서 그것은 DSSIM이 또한 높은 다른 많은 픽셀을 유지하므로, 결과적으로 더 불량한 이상 위치 결정을 초래한다.
이들 실시예는 본 발명이 이상 검출 및 위치 결정의 정확성을 향상시킨다는 것을 입증한다. 예들은 이미지 이상 검출 및 위치 결정과 관련하여 제공되지만, 오디오 트랙 또는 온도 측정과 같은 다른 종류의 입력에서도 유사한 결과를 얻을 수 있다.
도 6 는 본 발명의 다수의 실시형태에서 샘플의 누락 부분의 재구성 방법의 예를 나타낸다.
다수의 실시형태에서, 본 발명은 샘플에서 누락 데이터를 재구성하는 데 사용될 수 있다. 이것은, 예를 들어, 사진의 일부가 누락 인페인팅 태스크의 경우일 수도 있지만, 오디오 레코딩, 온도 측정 등의 누락 부분을 재구성하기 위한 태스크일 수도 있다. 이것은 또한 샘플의 특정 부분을 "제거"하는 데 사용될 수도 있다. 예를 들어, 이 방법은 사진에서 워터마킹을 제거하여 워터마킹에 의해 마스킹된 부분으로 교체하거나 또는 유사하게 이미지의 전경 요소를 제거하고 숨겨진 배경을 재구성하는 데 사용될 수도 있다.
방법 (600) 에서, 레퍼런스 벡터의 세트는 완전한 샘플을 나타내고, 입력 벡터는 불완전한 샘플을 나타낸다. 예를 들어, 레퍼런스 벡터는 완전한 얼굴을 나타낼 수 있는 반면 입력 벡터는 재구성할 요소(예: 인페인팅 태스크의 마스크, 재구성된 배경으로 교체할 전경을 나타내는 픽셀 등)를 포함한다. 보다 일반적으로, 방법(600)은 레퍼런스 벡터보다는 동일한 유형의 입력 벡터에 적용 가능하며, 여기서 레퍼런스 벡터는 완전한 데이터를 나타내고 입력 벡터는 불완전 데이터를 나타낸다.
이를 위해, 방법 (400) 은 방법 (200) 의 단계들에 추가하여 재구성할 입력 벡터의 요소들을 나타내는 마스크를 획득하는 단계(610)를 포함한다. 마스크는 상이한 방식으로 표현될 수 있다. 예를 들어, 그것은 입력 벡터의 각 요소에 대해, 재구성할 요소인지 여부를 나타내는 동일한 차원의 벡터일 수 있다. 예를 들어, 마스크는 0과 1 로 형성될 수 있으며, 재구성할 각 요소에 대해 값 "1"을 갖고 수정되지 않을 각 요소에 대해 "0" 값을 갖는다.
단계 (240) 의 출력에서, 그리고 단계 (250) 에서 입력 벡터의 업데이트 이전에, 방법 (600) 은 구배에 마스크를 곱하는 단계 (620) 를 포함한다. 따라서, 업데이트된 구배는 재구성되지 않을 입력 벡터의 각 요소에 대한 널 값을 포함하고, 구배의 값은 재구성할 입력 벡터의 각 요소에 대해 보존된다.
따라서 단계 (250) 에서 입력 벡터가 업데이트될 때, 재구성할 요소만 수정된다. 따라서, 연속적인 반복 시에, 재구성할 요소가 점진적으로 수정되어, 전체 벡터가 레퍼런스 벡터와 더 유사하게 되어, 요소가 레퍼런스 벡터에 따라 되는 것을 자동으로 재구성하는 것을 초래한다.
중지 기준이 충족되면, 연속적인 반복을 통해 업데이트된 입력 벡터가 단계 (230) 에서 출력된다. 따라서, 출력된 벡터는 누락 부분이 재구성된 벡터이다.
도 7 은 본 발명의 실시형태와 종래 기술에서 인페인팅 태스크의 출력 비교의 예를 나타낸다.
얼굴(710)은 누락 부분이 있는 손상된 얼굴을 나타낸다.
얼굴(720)은, 변분 오토인코더를 사용하는 종래 기술의 방법에 의해 재구성된, 대응하는 얼굴이다.
얼굴(730)은, 본 발명에 따른 방법(600)에 의해 재구성된 대응하는 얼굴이다.
얼굴(740)은 손상되기 전의 원래 얼굴이다.
도 7에서 볼 수 있는 바와 같이, 방법(700)은 얼굴의 훨씬 더 깨끗한 재생을 제공한다. 손상된 부분은 종래 기술 방법에서 분명하게 남아 있지만, 본 발명은 훨씬 더 자연스러운 결과를 제공한다.
이 예는 인페인팅 및 보다 일반적으로 재구성 태스크에서 좋은 결과를 얻을 수 있는 본 발명의 능력을 입증한다.
위에서 설명된 실시예는 본 발명의 실시형태의 비제한적인 예시로서 주어진다. 이들은 다음 청구항에 의해 정의되는 본 발명의 범위를 어떤 식으로든 제한하지 않는다.

Claims (13)

  1. - 입력 데이터 샘플 (130a, 130b, 130c) 을 나타내는 입력 벡터 (
    Figure pct00081
    ) 를 획득하는 것 (210);
    - 중지 기준 (260) 이 충족될 때까지,
    o 레퍼런스 벡터의 세트를 사용해 이전에 훈련된 오토인코더 (120a, 120b, 120c) 를 사용하여 상기 입력 벡터 (
    Figure pct00082
    ) 를 압축된 벡터로 인코딩 (220) 하고 상기 압축된 벡터를 재구성된 벡터 (
    Figure pct00083
    ) 로 디코딩 (230) 하는 것 ;
    o 상기 재구성된 벡터와 상기 입력 벡터 사이의 에너지, 및 상기 에너지의 구배를 계산하는 것 (240) 으로서, 상기 에너지는
    Figure pct00084
    상기 오토인코더의 손실 함수 또는 재구성 손실;
    Figure pct00085
    재구성된 샘플과 입력 샘플 사이의 거리
    의 가중 합인, 상기 계산하는 것 (240);
    o 상기 입력 벡터의 각 요소에 대해 상기 구배를 사용하여 후속 반복 (
    Figure pct00086
    ) 을 위해 상기 입력 벡터를 업데이트하는 것 (250)
    의 연속적 반복 (t = 1, … N) 을 수행하는 것
    을 위해 구성된 적어도 하나의 처리 로직 (110a, 110b, 110c) 을 포함하는, 디바이스 (100a, 100b, 100c).
  2. 제 1 항에 있어서,
    상기 오토인코더는 변분 오토인코더인, 디바이스 (100a, 100b, 100c).
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 오토인코더의 재구성 손실은
    Figure pct00087
    로서 계산되는, 디바이스 (100a, 100b, 100c).
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 구배를 사용하여 상기 입력 벡터를 업데이트하는 것은 구배 하강법을 적용하는 것으로 구성되는, 디바이스 (100a, 100b, 100c).
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 구배가 상기 오토인코더의 재구성 에러에 의해 요소 단위(element-wise)로 수정되는, 디바이스 (100a, 100b, 100c).
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    미리 정의된 반복 횟수에 도달하면 상기 중지 기준이 충족되는, 디바이스 (100a, 100b, 100c).
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 중지 기준은
    - 상기 에너지가 미리 정의된 임계치보다 낮은 경우, 또는
    - 두 개의 연속적인 반복 사이의 에너지 차이가, 미리 정의된 연속 반복 횟수에 대해, 미리 정의된 임계치보다 낮은 경우
    에 충족되는, 디바이스 (100a, 100b, 100c).
  8. 제 1 항 내지 제 7 항 중 어느 한 항에 있어서,
    상기 레퍼런스 벡터의 세트는 정상 샘플을 나타내고, 상기 처리 로직은 또한
    - 상기 입력 벡터 (
    Figure pct00088
    ) 가 상기 레퍼런스 벡터의 세트를 고려하여 정상 또는 비정상 벡터인지 결정하고;
    - 상기 입력 벡터가 비정상 벡터인 경우, 제1 반복에 대한 상기 입력 벡터 (
    Figure pct00089
    ), 및 마지막 반복에 대한 상기 입력 벡터 (
    Figure pct00090
    또는
    Figure pct00091
    ) 의 요소 사이의 차이를 사용하여 적어도 하나의 이상을 로케이팅 (490)
    하도록 구성되는, 디바이스 (100a, 100b, 100c).
  9. 제 8 항에 있어서,
    상기 처리 로직은 상기 제1 반복에 대한 상기 입력 벡터 (
    Figure pct00092
    ) 와 상기 제1 반복에 대한 상기 재구성된 벡터 (
    Figure pct00093
    ) 사이의 거리를 임계치와 비교하여 상기 레퍼런스 벡터의 세트를 고려하여 상기 입력 벡터가 정상 또는 비정상 벡터인지를 결정하도록 구성되는, 디바이스 (100a, 100b, 100c).
  10. 제 8 항에 있어서,
    상기 처리 로직은 상기 제1 반복에 대한 상기 입력 벡터 (
    Figure pct00094
    ) 와 마지막 반복에 대한 입력 벡터 (
    Figure pct00095
    또는
    Figure pct00096
    ) 사이의 거리를 임계치와 비교하여 상기 레퍼런스 벡터의 세트를 고려하여 상기 입력 벡터가 정상 또는 비정상 벡터인지를 결정하도록 구성되는, 디바이스 (100a, 100b, 100c).
  11. 제 1 항 내지 제 10 항 중 어느 한 항에 있어서,
    상기 레퍼런스 벡터의 세트는 완전한 샘플을 나타내고, 상기 입력 샘플은 불완전한 샘플을 나타내고, 상기 처리 로직은 또한
    - 상기 입력 샘플의 누락 부분의 마스크를 획득하는 것 (610);
    - 각 반복에서, 상기 입력 벡터를 업데이트하기 전에 상기 구배에 상기 마스크를 곱하는 것 (620);
    - 상기 중지 기준이 충족되면, 반복적으로 업데이트된 상기 입력 벡터를 출력하는 것 (630)
    을 위해 구성되는, 디바이스 (100a, 100b, 100c).
  12. - 입력 데이터 샘플 (130a, 130b, 130c) 을 나타내는 입력 벡터 (
    Figure pct00097
    ) 를 획득하는 단계 (210);
    - 중지 기준 (260) 이 충족될 때까지,
    o 레퍼런스 벡터의 세트를 사용해 이전에 훈련된 오토인코더 (120a, 120b, 120c) 를 사용하여 상기 입력 벡터 (
    Figure pct00098
    ) 를 압축된 벡터로 인코딩 (220) 하고 상기 압축된 벡터를 재구성된 벡터 (
    Figure pct00099
    ) 로 디코딩 (230) 하는 것;
    o 상기 재구성된 벡터와 상기 입력 벡터 사이의 에너지, 및 상기 에너지의 구배를 계산하는 것 (240) 으로서, 상기 에너지는
    Figure pct00100
    상기 오토인코더의 손실 함수 또는 재구성 손실;
    Figure pct00101
    재구성된 샘플과 입력 샘플 사이의 거리
    의 가중 합인, 상기 계산하는 것 (240);
    o 상기 입력 벡터의 각 요소에 대해 상기 구배를 사용하여 후속 반복 (
    Figure pct00102
    ) 을 위해 상기 입력 벡터를 업데이트하는 것 (250)
    의 연속적 반복 (t = 1, … N) 을 수행하는 단계
    를 포함하는, 컴퓨터 구현 방법.
  13. - 입력 데이터 샘플을 나타내는 입력 벡터를 획득하고;
    - 중지 기준이 충족될 때까지,
    o 레퍼런스 벡터의 세트를 사용해 이전에 훈련된 오토인코더를 사용하여 상기 입력 벡터를 압축된 벡터로 인코딩하고 상기 압축된 벡터를 재구성된 벡터로 디코딩하는 것;
    o 상기 재구성된 벡터와 상기 입력 벡터 사이의 에너지, 및 상기 에너지의 구배를 계산하는 것으로서, 상기 에너지는
    Figure pct00103
    상기 오토인코더의 손실 함수 또는 재구성 손실;
    Figure pct00104
    재구성된 샘플과 입력 샘플 사이의 거리
    의 가중 합인, 상기 계산하는 것;
    o 상기 입력 벡터의 각 요소에 대해 상기 구배를 사용하여 후속 반복을 위해 상기 입력 벡터를 업데이트하는 것
    의 연속적 반복을 수행하도록 구성된 컴퓨터 코드 명령을 포함하는 컴퓨터 프로그램 제품.
KR1020227009033A 2019-09-24 2020-09-22 정상 데이터로의 데이터 샘플 변환 KR20220065773A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP19306185.0A EP3798916A1 (en) 2019-09-24 2019-09-24 Transformation of data samples to normal data
EP19306185.0 2019-09-24
PCT/EP2020/076404 WO2021058466A1 (en) 2019-09-24 2020-09-22 Transformation of data samples to normal data

Publications (1)

Publication Number Publication Date
KR20220065773A true KR20220065773A (ko) 2022-05-20

Family

ID=69024225

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227009033A KR20220065773A (ko) 2019-09-24 2020-09-22 정상 데이터로의 데이터 샘플 변환

Country Status (6)

Country Link
US (1) US20220318623A1 (ko)
EP (1) EP3798916A1 (ko)
JP (1) JP2022549031A (ko)
KR (1) KR20220065773A (ko)
CN (1) CN114667522A (ko)
WO (1) WO2021058466A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201718756D0 (en) * 2017-11-13 2017-12-27 Cambridge Bio-Augmentation Systems Ltd Neural interface
US11849118B2 (en) 2021-04-30 2023-12-19 Tencent America LLC Content-adaptive online training with image substitution in neural image compression
WO2022250253A1 (en) * 2021-05-25 2022-12-01 Samsung Electro-Mechanics Co., Ltd. Apparatus and method with manufacturing anomaly detection
KR102609153B1 (ko) * 2021-05-25 2023-12-05 삼성전기주식회사 딥러닝 기반 제조 영상의 이상 탐지 장치 및 방법
CN113487521A (zh) * 2021-09-08 2021-10-08 苏州浪潮智能科技有限公司 自编码器训练方法及组件,异常图像检测方法及组件
CN114513374B (zh) * 2022-04-21 2022-07-12 浙江御安信息技术有限公司 一种基于人工智能的网络安全威胁识别方法及系统

Also Published As

Publication number Publication date
CN114667522A (zh) 2022-06-24
JP2022549031A (ja) 2022-11-22
US20220318623A1 (en) 2022-10-06
WO2021058466A1 (en) 2021-04-01
EP3798916A1 (en) 2021-03-31

Similar Documents

Publication Publication Date Title
KR20220065773A (ko) 정상 데이터로의 데이터 샘플 변환
US11809975B2 (en) System and method for end-to-end-differentiable joint image refinement and perception
US10909419B2 (en) Abnormality detection device, learning device, abnormality detection method, and learning method
Wang et al. Exploring DCT coefficient quantization effects for local tampering detection
US20230018848A1 (en) Anomaly detector, method of anomaly detection and method of training an anomaly detector
US11062210B2 (en) Method and apparatus for training a neural network used for denoising
CN114746895A (zh) 用于图像去噪的噪声重构
CN113473149A (zh) 用于无线图像传输的语义信道联合编码方法及装置
CN116664450A (zh) 基于扩散模型的图像增强方法、装置、设备及存储介质
CN115375589A (zh) 一种去除图像阴影模型及其构建方法、装置及应用
GB2600808A (en) Denoising images rendered using Monte Carlo renderings
Pooja et al. Adaptive sparsity through hybrid regularization for effective image deblurring
Xiao et al. Fast ℓ 1-minimization algorithm for robust background subtraction
CN111726592B (zh) 获取图像信号处理器的架构的方法和装置
US20230148384A1 (en) Method, apparatus and system for adaptating a machine learning model for optical flow map prediction
CN114841870A (zh) 图像处理方法、相关装置和系统
Wei et al. Image denoising with deep unfolding and normalizing flows
CN116113952A (zh) 用于图像的属于分布内度量的分布之间的距离
Ramamurthy et al. Boosted dictionaries for image restoration based on sparse representations
CN111914920A (zh) 一种基于稀疏编码的相似性图像检索方法及系统
CN115937020B (zh) 图像处理方法、装置、设备、介质和程序产品
Ertan et al. Enhancement of underwater images with artificial intelligence
US20230412825A1 (en) Video size reduction by reconstruction
KR102627176B1 (ko) 가상 객체의 폐색을 구현하기 위한 방법
US20230186432A1 (en) Method and apparatus for image restoration based on burst image