초보자를 위한 오토인코더 소개

소스 노드 : 1246080

개요

오토인코더는 표현 학습 작업을 수행하기 위해 신경망의 성능을 활용하는 구조화되지 않은 학습 모델입니다. 기계 학습의 맥락에서 표현 학습은 의미 있는 정보를 더 잘 이해하고 시각화하고 추출하기 위해 원본 데이터의 구성 요소와 기능을 일부 저차원 구조에 포함시키는 것을 의미합니다. 이러한 저차원 벡터는 데이터세트의 두 인스턴스가 얼마나 가까운지, 데이터세트에서 구조와 패턴을 찾는 등 데이터에 대한 놀라운 정보를 얻는 데 도움이 될 수 있습니다.

차례

  1. 업계의 현재 시나리오
  2. 라벨이 지정되지 않은 데이터로 학습
  3. 오토인코더 소개
  4. 논문에서의 오토인코더의 역사
  5. Variational Autoencoder 소개
  6. VAE 변형
  7. 오토인코더 적용
  8. 결론

업계의 현재 시나리오

선도적인 소셜 네트워킹 사이트와 전자상거래 거대 기업이 페타바이트 규모의 데이터를 생성하고 처리하는 빅데이터 시대에 우리는 데이터가 풍부한 세상에 살고 있습니다. 우리의 기계 학습 알고리즘은 희귀하고 비용이 많이 드는 레이블이 지정된 데이터 세트만 주로 활용했습니다. 생성된 대부분의 데이터는 구조화되지 않고 레이블이 지정되지 않으므로 기계 학습 커뮤니티는 AI와 기계 학습의 진정한 잠재력을 활용하기 위해 지도 학습뿐만 아니라 비지도 학습 알고리즘에 집중해야 할 때입니다.

"지능이 케이크라면 비지도 학습은 케이크 위의 장식이 될 것이고, 지도 학습은 케이크 위의 장식이 될 것이며 강화 학습은 케이크 위의 체리가 될 것입니다." - Yann LeCunn

그렇다면 케이크 전체를 먹으면 어떨까요?

라벨이 지정되지 않은 데이터로 학습

데이터 표현은 실제로 매핑입니다. 데이터 포인트 x ∈ X가 있고 일부 데이터 공간 Z에 대해 함수 f: X → Z가 있는 경우 f는 표현입니다. 새로운 점 f(x) = z ∈ Z는 때때로 x의 표현이라고 불립니다. 좋은 표현은 다운스트림 작업을 더 쉽게 만듭니다.

오토인코더 소개

오토인코더는 셀프 인코더라고도 알려져 있으며 자체 입력을 재현하도록 훈련된 네트워크입니다. 그들은 비지도 학습 알고리즘의 범주에 속합니다. 실제로 일부 연구자들은 훈련 예제 x에 대해 자동 인코더를 자기 감독 알고리즘으로 제안하며 레이블은 x 자체입니다. 그러나 일반적으로 분류 또는 회귀 레이블이 없으므로 감독되지 않은 것으로 간주됩니다.

오토인코더 소개

오토인코더가 이를 완벽하게 수행하면 출력 벡터 x`는 입력 벡터 x와 같습니다. 오토인코더는 인코더와 디코더라는 특별한 두 부분으로 구성된 구조로 설계되었습니다.

파이썬의 인코더와 디코더

AE = 디코더(인코더(x))

x와 x' 사이의 차이를 최소화하는 것을 목표로 하는 재구성 손실을 사용한 모델 훈련입니다. 입력이 실수 값인 경우 재구성 손실을 MSE(x, x')와 같은 것으로 정의할 수 있습니다. z의 차원은 일반적으로 x보다 작습니다. 이것이 바로 오토인코더를 병목 신경망이라고도 부르는 이유입니다. 우리는 압축된 지식 표현을 강제하고 있습니다.

압축된 오토인코더

인코더는 보이지 않는 데이터를 저차원 Z에 매핑하는 데 사용되며 좋은 표현은 항상 압축 중에 중요한 정보가 손실되지 않았다는 점에 중점을 둡니다. 오토인코더는 그 자체가 차원 축소 알고리즘인 PCA(Principle Component Analysis)와 비슷하지만 차이점은 PCA가 본질적으로 선형인 반면 오토인코더는 신경망 기반 아키텍처로 인해 본질적으로 비선형이라는 것입니다. 잠재 공간을 더 잘 이해하기 위해 관찰된 변수 x가 (해변에 있는 사람 수, 아이스크림 판매, 일일 기온) 같은 것일 수 있는 반면 잠재 공간 z는 기울기와 같은 것일 수 있는 예를 사용할 수 있습니다. Eath의 축(즉, 올해의 계절)은 계절 정보를 사용하여 해변 방문객 수, 아이스크림 판매 등을 거의 예측할 수 있기 때문입니다.

논문에서의 오토인코더의 역사

다음은 기계 학습 세계에서 AE를 처음으로 소개한 연구 논문입니다.

  • Boltzmann 기계를 위한 학습 알고리즘, DH Ackley, GEHinton, TJ Sejnowski. 인지 과학, 1985. 자기 감독을 통해 훈련된 간단한 신경망을 설명합니다.
  • 역전파 오류를 통한 표현 학습, D. Rumelhart, Geoffrey E. Hinton, RJ Williams. Nature, 1986. "우리는 뉴런과 유사한 단위 네트워크에 대한 새로운 학습 절차인 역전파를 설명합니다."
  • 연결주의 학습 절차, GE Hinton. 기계 학습, 1990. "자기 감독" 병목 신경망을 설명합니다.

Variational Autoencoder 소개

Variational Autoencoder는 샘플링 기술과 Kullback-Leiber 정규화를 활용하는 자동 인코더입니다. Variational Autoencoders는 잠재 공간을 더 매끄럽게 만드는 것을 목표로 합니다. 즉, x의 작은 변화는 잠재 공간 z의 작은 변화로 이어지고, z의 작은 변화는 x의 작은 변화로 이어집니다. 잠재 공간은 보다 효과적이고 정확하기 위해 그럴듯한 점으로 매끄러워야 하며 이것이 VAE가 달성하려고 하는 것입니다. VAE에서 인코더는 z뿐만 아니라 mu시그마. 그 후 샘플링 작업은 이러한 매개변수에서 z를 선택하고 평소와 같이 디코더는 이전과 같이 z를 사용합니다.

좋은 샘플링 기술은 데이터 포인트를 잘 재구성하고 데이터 포인트 근처의 포인트도 잘 재구성합니다. 이 프로세스는 [입력 x, 즉 z 평균]을 인코딩한 잠재 위치에 가까운 모든 지점이 [x]와 유사한 것으로 디코딩될 수 있도록 보장하므로 잠재 공간이 지속적으로 의미가 있게 됩니다. 잠재 공간에 있는 두 개의 가까운 지점은 매우 유사한 이미지를 디코딩합니다. 잠재 공간의 낮은 차원성과 결합된 연속성은 잠재 공간의 모든 방향이 데이터의 의미 있는 변형 축을 인코딩하도록 강제하여 잠재 공간을 매우 구조화하여 개념 벡터를 통한 조작에 매우 적합하게 만듭니다. 샘플링을 위한 의사 코드는 다음과 같습니다.

z_mean, z_log_variance = 인코더(x) z = z_mean + exp(z_log_variance) * 엡실론 x_hat = 디코더(z) model = Model(x, x_hat)

VAE에서는  우리는 데이터가 정규 분포로 분산되기를 원합니다. 𝑧-공간. 특히, 표준 다변량 정규, 𝑁(0,1). 디코더를 사용할 때 우리는 그러한 모든 사항이 다음과 같다고 확신할 수 있습니다. 전형적인 𝑥 포인트에 해당합니다. 인코더가 있기 때문에 "구멍"이 없습니다. 데이터를 압축하기 위해 열심히 노력하므로 공간이 낭비되지 않습니다.

정규화

"VAE의 매개변수는 두 가지 손실 함수를 통해 훈련됩니다. 즉, 디코딩된 샘플이 초기 입력과 일치하도록 강제하는 재구성 손실과 잘 구성된 잠재 공간을 학습하고 훈련 데이터에 대한 과적합을 줄이는 데 도움이 되는 정규화 손실입니다." – 촐렛.

정규화 손실은 인코더에게 데이터를 잠재 공간의 정규 분포에 배치하도록 요청합니다.

Kullback-Leibler 분기

Kullback-Leibler 발산 KL(𝑝||𝑞)은 분포 쌍 𝑝 및 𝑞 간의 차이점을 통계적으로 측정한 것입니다. 따라서 𝑝과 𝑞가 서로 다를 때는 크고, 비슷할 때는 XNUMX에 가까운 숫자입니다.

KL 손실은 VAE 손실의 정규화 용어입니다. 언제나 그렇듯이 KL을 곱하여 정규화를 조정할 수 있습니다. 스칼라로. 너무 강하면 모델이 무너지고, 너무 약하면 클래식 AE와 동일해집니다.

기억하세요: VAE = AE + 샘플링 + KL 손실

1. 샘플링 절차는 각 점 z를 얻기 위해 다변량 정규 𝑁(𝜇, 𝛴)에서 샘플링합니다.

2. 정규화 절차는 잠재성을 밀어내기 위해 손실을 추가합니다. 분포는 표준 다변량 정규 𝑁(0,1)과 유사합니다.

3. 보통,  희미한(𝑧)은 일반적으로 희미한(𝑥)에 비해 작습니다. 얼마나 작습니까?  재구성 오류도 증가시키지 않고 "가능한 한 작게". 항상 그렇듯이 이는 다운스트림 작업에 따라 다릅니다.  Dim(𝑧) = 2이면 쉽게 시각화할 수 있습니다. 그러나 이는 일반적으로 너무 극단적입니다. 훈련 데이터를 제대로 재구성할 수 없습니다 많은. Dim(𝑧) > 2이면 시각화를 위해 𝑡-SNE 또는 UMAP를 사용할 수 있습니다.

VAE 변형

  1. BetaVAE(풀린 표현을 위한 더 강력한 정규화).
  2. 수축적 AE(다른 정규화로 원활함을 목표로 함)

  3. 조건부 VAE(디코더 맵(𝑧, 𝑐) → 𝑥, 여기서 𝑐가 선택됩니다. 예를 들어 𝑐는 생성할 숫자를 지정하고 𝑧는 스타일을 지정합니다.

참조 :  케라스 오토인코더

오토인코더의 응용

  1. 이미지 노이즈 제거(Conv AE)
  2. 시계열에 대한 이상 탐지(1D Conv AE)
  3. 이상 탐지를 통한 네트워크 침입 탐지(VAE 인코더만 해당)

  4. 비디오 게임 레벨 및 음악 생성(Conv VAE 디코더에만 해당)

결론

마침내 저는 Autoencoder와 Variational Autoencoder가 모든 데이터 과학자가 알아야 할 가장 강력한 비지도 학습 기술 중 하나라고 생각합니다. 이러한 모델에는 훈련 등을 위해 상대적으로 더 큰 데이터 세트가 필요하다는 등 자체적인 한계가 있습니다.

이 기사에 표시된 미디어는 Analytics Vidhya의 소유가 아니며 작성자의 재량에 따라 사용됩니다.

출처: https://www.analyticsvidhya.com/blog/2021/10/an-introduction-to-autoencoders-for-beginners/

타임 스탬프 :

더보기 분석 Vidhya