최근에 저는 딥 러닝에 대해 읽었으며 용어 (또는 기술)에 대해 혼란스러워합니다. 차이점은 무엇입니까
- 컨볼 루션 신경망 (CNN)
- 제한된 볼츠만 기계 (RBM) 및
- 자동 인코더?
최근에 저는 딥 러닝에 대해 읽었으며 용어 (또는 기술)에 대해 혼란스러워합니다. 차이점은 무엇입니까
답변:
Autoencoder 는 출력 장치 가 입력 장치에 직접 연결 되는 간단한 3 계층 신경망 입니다. 예를 들어 다음과 같은 네트워크에서 :
output[i]
input[i]
모든 가장자리가 있습니다 i
. 일반적으로 숨겨진 단위의 수는 보이는 (입력 / 출력)의 수보다 훨씬 적습니다. 결과적으로 이러한 네트워크를 통해 데이터를 전달하면 먼저 입력 벡터를 더 작은 표현으로 "적합"하도록 압축 (인코딩) 한 다음 다시 재구성 (디코딩)하려고합니다. 훈련의 과제는 오류 또는 재구성을 최소화하는 것입니다. 즉, 입력 데이터에 가장 효율적인 컴팩트 표현 (인코딩)을 찾습니다.
RBM 은 비슷한 아이디어를 공유하지만 확률 론적 접근을 사용합니다. 결정적 (예 : 로지스틱 또는 ReLU) 대신 특정 (보통 가우스 이항) 분포를 가진 확률 적 단위를 사용합니다. 학습 절차는 여러 단계의 Gibbs 샘플링 (전파 : 가시적 샘플 숨겨진 표시, 재구성 : 숨겨진 숨겨진 샘플 표시, 반복) 및 재구성 오류를 최소화하기 위해 가중치 조정으로 구성됩니다.
RBM의 직관은 눈에 보이는 임의의 변수 (예 : 다른 사용자의 영화 리뷰)와 숨겨진 변수 (영화 장르 또는 기타 내부 기능)가 있으며 훈련의 임무는이 두 변수 세트가 실제로 어떻게 서로 연결되어 있습니다 (이 예제에 대한 자세한 내용은 here 참조 ).
Convolutional Neural Networks 는이 두 가지와 다소 유사하지만 두 레이어 사이에서 단일 전역 가중치 행렬을 배우는 대신 로컬로 연결된 뉴런 세트를 찾는 것을 목표로합니다. CNN은 주로 이미지 인식에 사용됩니다. 그들의 이름은 "컨볼 루션"연산자 또는 단순히 "필터" 에서 비롯됩니다 . 간단히 말해, 필터는 컨볼 루션 커널의 간단한 변경을 통해 복잡한 작업을 수행하는 쉬운 방법입니다. 가우시안 블러 커널을 적용하면 부드럽게됩니다. Canny 커널을 적용하면 모든 모서리를 볼 수 있습니다. 그라디언트 기능을 얻으려면 Gabor 커널을 적용하십시오.
( 여기 에서 이미지 )
컨볼 루션 신경망의 목표는 미리 정의 된 커널 중 하나를 사용하는 것이 아니라 데이터 별 커널 을 배우는 것 입니다. 이 아이디어는 자동 인코더 또는 RBM과 동일합니다. 많은 저수준 기능 (예 : 사용자 리뷰 또는 이미지 픽셀)을 압축 된 고수준 표현 (예 : 필름 장르 또는 가장자리)으로 변환하지만 이제 가중치는 뉴런에서만 학습됩니다. 공간적으로 서로 가깝습니다.
세 가지 모델 모두 유스 케이스, 장단점이 있지만 가장 중요한 특성은 다음과 같습니다.
UPD.
차원 축소
그런 다음 가장 중요한 구성 요소가 새로운 기준으로 사용됩니다. 이러한 각 구성 요소는 원래 축보다 데이터 벡터를 더 잘 나타내는 고급 기능으로 간주 될 수 있습니다.
심층 아키텍처
그러나 새로운 레이어 만 추가하는 것은 아닙니다. 각 계층에서 이전 계층의 데이터에 대한 최상의 표현을 배우려고합니다.
위의 이미지에는 그러한 딥 네트워크의 예가 있습니다. 우리는 일반 픽셀로 시작하여 간단한 필터로 진행 한 다음 얼굴 요소를 사용하여 마지막으로 전체 얼굴로 끝납니다! 이것이 딥 러닝 의 본질입니다 .
이제이 예에서 이미지 데이터로 작업하고 공간적으로 가까운 픽셀의 더 큰 영역을 순차적으로 가져 왔습니다. 비슷하지 않습니까? 예, 심층 컨볼 루션 네트워크 의 예이기 때문 입니다. 그것은 자동 엔코더 또는 RBM을 기반으로하기 때문에 회선의 중요성을 강조하기 위해 회선을 사용합니다. 이것이 CNN이 자동 인코더 및 RBM과 다소 다른 이유입니다.
분류
여기에 언급 된 모델은 분류 알고리즘 자체로는 작동하지 않습니다. 대신, 사전 훈련 에 사용됩니다 (예 : 픽셀과 같은 저수준 및 사용하기 어려운 표현에서 고급 수준으로의 변형 학습). 일단 심층 (또는 심층이 아닌) 네트워크가 사전 훈련되면, 입력 벡터는 더 나은 표현으로 변환되고 최종 벡터는 최종적으로 실제 분류 자 (예 : SVM 또는 로지스틱 회귀)로 전달됩니다. 위의 이미지에서 맨 아래에는 실제로 분류를 수행하는 구성 요소가 하나 더 있음을 의미합니다.
이러한 모든 아키텍처는 신경망으로 해석 될 수 있습니다. AutoEncoder와 Convolutional Network의 주요 차이점은 네트워크 하드와 이어링 수준입니다. 컨볼 루션 네트는 거의 고정되어 있습니다. 컨볼 루션 연산은 이미지 도메인에서 거의 로컬이므로 신경망보기의 연결 수가 훨씬 적습니다. 이미지 도메인에서의 풀링 (서브 샘플링) 동작은 또한 신경 도메인에서 고정 배선 된 신경 연결 세트이다. 네트워크 구조에 대한 이러한 토폴로지 제약. 이러한 제약 조건이 주어지면 CNN 교육은이 컨볼 루션 작업에 가장 적합한 가중치를 학습합니다 (실제로 여러 필터가 있음). CNN은 일반적으로 컨벌루션 제약 조건이 좋은 이미지 및 음성 작업에 사용됩니다.
반대로, 자동 인코더는 네트워크 토폴로지에 대해 거의 아무것도 지정하지 않습니다. 그들은 훨씬 더 일반적입니다. 아이디어는 입력을 재구성하기 위해 좋은 신경 변환을 찾는 것입니다. 인코더 (입력을 숨겨진 레이어로 투영) 및 디코더 (숨겨진 레이어를 출력으로 다시 투영)로 구성됩니다. 숨겨진 계층은 일련의 잠재 기능 또는 잠재 요소를 학습합니다. 선형 자동 인코더는 PCA와 동일한 부분 공간에 걸쳐 있습니다. 데이터 세트가 주어지면 데이터의 기본 패턴을 설명하기 위해 많은 기초를 배웁니다.
RBM도 신경망입니다. 그러나 네트워크에 대한 해석은 완전히 다릅니다. RBM은 네트워크를 피드 포워드가 아니라 숨겨진 변수와 입력 변수의 공동 확률 분포를 배우는 이분 그래프로 해석합니다. 그래픽 모델로 간주됩니다. AutoEncoder와 CNN은 결정적 기능을 학습합니다. 반면에 RBM은 생성 모델입니다. 학습 된 숨겨진 표현에서 샘플을 생성 할 수 있습니다. RBM을 훈련시키는 다른 알고리즘이 있습니다. 그러나 하루가 끝나면 RBM을 학습 한 후 네트워크 가중치를 사용하여 피드 포워드 네트워크로 해석 할 수 있습니다.
RBM에 대해 많이 말할 수는 없지만 자동 인코더와 CNN은 서로 다른 두 가지 종류입니다. 자동 인코더는 감독되지 않는 방식으로 훈련되는 신경망입니다. 오토 인코더의 목표는 데이터를 해당 컴팩트 표현으로 변환하는 인코더와 원래 데이터를 재구성하는 디코더를 학습하여 데이터의보다 컴팩트 한 표현을 찾는 것입니다. 자동 인코더의 인코더 부분 (및 원래 RBM)은 더 깊은 아키텍처의 초기 가중치를 배우는 데 사용되었지만 다른 응용 프로그램이 있습니다. 본질적으로, 자동 인코더는 데이터의 클러스터링을 학습합니다. 대조적으로, CNN이라는 용어는 컨볼 루션 연산자 (종종 이미지 처리 작업에 사용될 때 2D 컨볼 루션)를 사용하여 데이터에서 특징을 추출하는 신경망 유형을 나타냅니다. 이미지 처리에서 필터는 이미지와 관련이있는 분류 작업과 같이 현재 진행중인 작업을 해결하기 위해 자동으로 학습됩니다. 훈련 기준이 회귀 / 분류 (감독) 또는 재구성 (비 감독)인지 여부는 아핀 변환의 대안으로서 컨볼 루션의 아이디어와 관련이 없습니다. CNN 자동 인코더를 사용할 수도 있습니다.