제퍼넷 로고

2022년 AutoEncoder에 대해 알아야 할 모든 것

시간

이 기사는 데이터 과학 Blogathon.

on

머신러닝의 발달로 세상이 빠르게 발전함에 따라 인공 지능, 우리는 곧 통제할 수 없는 데이터 증강의 상황에 직면하게 될 것입니다. GPU, TPU 및 기타 더 빠른 저장 및 처리 메커니즘은 지금까지 가능한 한 최단 시간에 방대한 양의 데이터를 성공적으로 처리했지만 더 적은 공간에서 데이터를 처리할 수 있습니다. 압축하고 저장하는 방법도 고려해야 합니다. 그리고 그것은 우리를 오늘 토론의 주제인 autoencoder, 사용 가능한 정보를 압축할 수 있게 해주는 기술로 인도합니다.

Autoencoder는 입력을 출력으로 복사하도록 훈련된 신경망 프레임워크를 기반으로 하는 비지도 학습 기술입니다. 신경망은 네트워크에 병목 현상을 생성하도록 설계되었습니다. 내부적으로 은닉층 h는 입력을 나타내는 데 사용되는 코드를 설명합니다. 오토인코더 네트워크는 세 부분으로 구성됩니다. 먼저 인코더는 이미지를 압축하고 인코더 함수 h = f(x)를 사용하여 코드를 생성합니다. 그런 다음 원래 입력에 대한 압축된 지식 표현이 있는 병목 현상이 발생하고 그 뒤에 재구성 r = g(h)를 형성하는 디코더가 따릅니다. 자동 인코더 체계는 그림 1에 나와 있습니다. 데이터는 아키텍처를 통해 이동하면서 압축되고 재구성됩니다. 이 압축 및 재구성 프로세스는 입력 기능이 독립적인 경우 복잡합니다. 그러나 입력 데이터 내에서 일부 상관 관계가 있기 전에는 입력이 네트워크 병목 현상을 통해 강제될 때 기존 종속성을 학습하고 사용할 수 있습니다.

그림 1 - 일반적인 Autoencoder의 개략도를 보여주는 다이어그램 

다음 하위 섹션에서는 네트워크 아키텍처와 Autoencoder의 해당 하이퍼파라미터에 대해 자세히 살펴보겠습니다.

AutoEncoder의 아키텍처

오토인코더가 어떤 모습일지 이미 희미한 아이디어가 있어야 합니다. 이 섹션에서 우리는 당신의 이해에 더 깊이를 더할 것입니다. 오토인코더를 설계하는 동안 처리해야 하는 하이퍼파라미터에 특히 관심이 있습니다.

앞서 언급했듯이 자동 인코더는 인코더, 코드 및 디코더의 세 부분으로 구성됩니다. 인코더와 디코더는 모두 단순한 피드포워드 신경망입니다. 코드는 선택한 차원이 있는 ANN의 단일 레이어입니다. 입력 및 출력 레이어의 경우 노드 수는 입력 데이터 X에 의해 결정됩니다. 따라서 입력 및 출력 레이어의 노드 수는 동일하며 둘 다 고차원 표현에 해당합니다. 노드가 가장 적은 중간 은닉층은 저차원 표현에 해당합니다. 훈련 과정의 목표는 네트워크의 입력과 출력 사이의 제곱 재구성 오류를 최소화하는 것입니다. 학습 알고리즘의 경우 가장 일반적으로 사용되는 전략은 역전파입니다. 네트워크의 초기 가중치는 인코더가 좋은 솔루션을 찾는 데 중요합니다. 역전파는 초기 가중치가 최적 솔루션에 가까울 때 더 효과적으로 작동합니다. 좋은 초기 가중치를 찾기 위해 많은 알고리즘이 개발되었습니다.

오토인코더를 훈련하기 전에 XNUMX개의 하이퍼파라미터를 설정해야 합니다.

  1. 중간 계층, 즉 코드 계층의 노드 수입니다. 코드 레이어의 크기가 작을수록 더 많은 압축이 발생합니다.
  2. 그런 다음 인코더 및 디코더 아키텍처의 레이어 수가 나옵니다. 아키텍처의 깊이는 완벽하게 미세 조정할 수 있으며 깊은 아키텍처는 외부 네트워크에 비해 장점이 있습니다.
  3. 레이어당 노드 수는 조정해야 하는 세 번째 하이퍼파라미터입니다. 일반적으로 인코더와 디코더는 계층 구조 측면에서 대칭이며 인코더의 각 후속 계층에 있는 노드의 수는 코드 계층에 도달할 때까지 계속 감소한 다음 디코더 아키텍처에서 유사하게 계속 증가합니다.
  4. 손실 함수의 선택은 네 번째 하이퍼파라미터입니다. 가장 자주 사용되는 손실 함수에는 평균 제곱 오차 또는 이진 교차 엔트로피가 포함됩니다.

autoencoder에서 가장 중요한 tradeoff는 bias-variance tradeoff입니다. 동시에, 자동 인코더 아키텍처는 낮은 표현을 의미 있는 것으로 일반화하면서 입력 우물을 재구성해야 합니다(재구성 오류 감소). 따라서 이 속성을 달성하기 위해 이 절충점을 해결하기 위해 개발된 다양한 아키텍처를 살펴보겠습니다.

절충안을 해결하기 위한 오토인코더 유형

1. 희소 자동 인코더

이러한 네트워크는 노드 수를 줄이지 않고도 병목 현상을 일으키는 대체 방법을 제공합니다. 숨겨진 활성화에 희소성을 강제하여 트레이드 오프를 처리합니다. 병목 현상 위에 추가하거나 병목 위치에 추가할 수 있습니다. 희소 정규화를 적용하는 두 가지 방법이 있습니다. 첫 번째는 L1 정규화를 사용하는 것이고 두 번째는 KL 발산을 구현하는 것입니다. 정규화 기술에 대한 수학적 세부 사항은 다루지 않겠지만 이 블로그에서는 간단한 개요로 충분합니다.

스파 스 오토 인코더

그림 2 - Sparse Autoencoder의 도식적 표현

2. 자동 인코더 잡음 제거

Autoencoder는 입력과 출력이 동일한 신경망으로 간주되어 왔습니다. 주요 목표는 정보 병목 현상을 피하면서 가능한 한 정확하게 입력을 재생산하는 것입니다. 그러나 자동 인코더를 설계하는 또 다른 방법은 입력 데이터를 약간 교란하되 순수한 데이터를 대상 출력으로 유지하는 것입니다. 이 접근 방식을 사용하면 모델이 더 이상 유사하지 않기 때문에 입력 데이터에서 출력 데이터로의 매핑을 단순히 생성할 수 없습니다. 따라서 이 정규화 옵션을 사용하면 자동 인코더가 입력의 깨끗한 버전을 재구성할 것으로 예상되는 동안 입력에 약간의 노이즈가 발생합니다.

노이즈 제거
그림 3 - 노이즈 제거 자동 인코더의 도식 표현 

이전의 경우 인코더가 일부 입력 섭동에 대해 더 탄력적으로 만드는 데 중점을 두었지만 이러한 유형의 아키텍처에서는 특징 추출을 작은 섭동에 덜 민감하게 만드는 데 중점을 둡니다. 이렇게 적혀있다. 이것은 인코더가 디코더에 의한 재구성에 중요하지 않은 입력의 변경을 무시하도록 함으로써 달성됩니다. 이 정규화 기술의 기본 아이디어는 재구성에 중요하지 않은 잠재적 표현이 정규화 요소에 의해 감소된다는 것입니다. 대조적으로 중요한 변이는 재구성 오류에 큰 영향을 미치기 때문에 남아 있다.

개략도

그림 4 - Contractive Autoencoder의 도식적 표현

오토인코더의 응용

If 읽기 멀리, 당신 영상을 오토인코더에 대해 알아야 할 이론적 배경이 있습니다. 이러한 구조가 어디에 적용되는지 궁금할 것입니다. 거짓 기계 학습에서. 섹션에 있어야 합니다. 해명 이러한 응용 프로그램에 대한 조명 구조.

  • 차원 축소는 표현 학습의 첫 번째 응용 프로그램 중 하나였습니다. 치수를 줄이면 여러 경우에 모델 성능을 향상시키는 데 도움이 될 수 있습니다.
  • 차원 축소보다 더 나은 또 다른 작업은 정보 검색입니다.
  • 자동 인코더의 다른 응용 프로그램에는 이상 감지, 이미지 처리, 데이터 노이즈 제거, 약물 발견, 인기도 예측 및 기계 번역이 포함됩니다.

결론

그래서 오늘 블로그에서 오토인코더에 대해 이야기했습니다. Autoencoder는 원래 차원 축소를 돕기 위해 설계된 아키텍처입니다. 그러나 그 응용 프로그램은 시간이 지남에 따라 여러 번 증가했습니다. 먼저 autoencoder의 구조와 코드 계층에서 데이터 압축이 이루어지는 방법을 간략하게 소개했습니다. 그런 다음 다양한 유형의 자동 인코더와 각 자동 인코더가 편향-분산 트레이드오프를 처리하는 데 어떻게 도움이 되는지 논의했습니다. 마지막으로 오늘날의 세계에서 오토인코더가 적용되는 시나리오에 대한 논의를 마쳤습니다. 따라서 이 기사의 주요 내용은 다음과 같습니다.

  1. 오토인코더에 대한 일반적인 아키텍처 접근 방식
  2. 오토인코더가 직면한 편향-분산 트레이드오프
  3. 서로 다른 정규화 기술을 적용하면 트레이드오프를 처리할 수 있습니다. 이를 통해 더 많은 알고리즘을 생각하고 새로운 아키텍처를 개발할 수 있습니다.
  4. 이러한 유형의 아키텍처가 적용 가능한 영역입니다.

블로그의 이 토론에서 Autoencoder의 아키텍처와 사용 사례에 대한 깊은 이론적 이해를 남길 수 있다고 생각합니다. 이 기사가 당신을 흥분시킨다면, 나는 당신이 직접 그러한 아키텍처를 개발할 것을 촉구합니다. 당신과 함께하기 좋은 프로젝트입니다.

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

spot_img

최신 인텔리전스

spot_img

우리와 함께 채팅

안녕하세요! 어떻게 도와 드릴까요?