희소 코딩은 입력 벡터를 나타 내기 위해 과도하게 완료된 기본 벡터 세트를 학습하는 것으로 정의됩니다 (<-왜 우리가 이것을 원합니까?). 스파 스 코딩과 자동 인코더의 차이점은 무엇입니까? 스파 스 코딩 및 자동 인코더는 언제 사용합니까?
희소 코딩은 입력 벡터를 나타 내기 위해 과도하게 완료된 기본 벡터 세트를 학습하는 것으로 정의됩니다 (<-왜 우리가 이것을 원합니까?). 스파 스 코딩과 자동 인코더의 차이점은 무엇입니까? 스파 스 코딩 및 자동 인코더는 언제 사용합니까?
답변:
모델을 보면 차이를 찾을 수 있습니다. 스파 스 코딩을 먼저 살펴 보자.
희소 코딩은 목표를 최소화 여기서 W 는 염기 행렬), H는 코드 행렬, X 는 우리가 표현하고자하는 데이터의 행렬입니다. λ 는 희소성과 재구성 사이의 거래를 구현합니다. H 가 주어지면 W의 추정은 최소 제곱을 통해 쉽습니다.
또한, 다른 정규화 방법은 다른 특성을 가진 표현을 산출합니다. 노이즈 제거 자동 엔코더는 특정 형태의 RBM 등과 동등한 것으로 나타났습니다.
예측 문제를 해결 하려면 레이블이 지정된 데이터와 레이블이없는 데이터가 많지 않으면 자동 인코더가 필요하지 않습니다 . 그러면 일반적으로 딥 자동 엔코더를 훈련하고 딥 신경망을 훈련하는 대신 선형 SVM을 위에 배치하는 것이 좋습니다.
그러나 분포의 특성을 캡처하는 데 매우 강력한 모델입니다. 이것은 모호하지만, 이것을 어려운 통계 사실로 바꾸는 연구가 현재 진행되고 있습니다. 깊은 잠재 가우시안 모델 일명 Variational Auto 엔코더 또는 생성 확률 론적 네트워크는 기본 데이터 분포를 추정 할 수있는 자동 엔코더를 얻는 흥미로운 방법입니다.
신경 과학에서 신경 코딩이라는 용어는 자극에 의해 유도 된 뉴런의 전기적 활동 패턴을 나타내는 데 사용됩니다. 그 차례의 스파 스 코딩은 일종의 패턴입니다. 이미지와 같은 자극이 비교적 적은 수의 뉴런의 활성화를 유발할 때 코드가 희박한 것으로 알려져 있으며, 그 결합은 희소 한 방식으로 그것을 나타냅니다. 기계 학습에서 희소 코드 모델을 생성하는 데 사용 된 것과 동일한 최적화 제약 조건을 사용하여 희소 제약 조건으로 훈련 된 일반 자동 엔코더 인 Sparse Autoencoder를 구현할 수 있습니다. 각 질문에 대한 자세한 설명이 아래에 나와 있습니다.
희소 코딩은 입력 벡터를 표현하기 위해 완전 벡터의 기초 벡터를 학습하는 것으로 정의됩니다
첫째, V1 영역에는 가장자리와 같은 자극에 최대로 반응하는 특정 세포가 있다는 것이 알려져있다 (Hubel & Wiesel, 1968 ). 스파 스 코딩은이 시스템의 많은 관찰 된 특성을 설명하는 모델입니다. 자세한 내용은 (Olshausen & Field, 1996) 를 참조하십시오.
둘째, 스파 스 코딩을 설명하는 모델은 머신 러닝의 기능 추출에 유용한 기술이며 전송 학습 작업에서 좋은 결과를 산출합니다. Raina et al. (2007) 은 필기 문자로 구성된 학습 세트로 학습 한 "기본 벡터"(펜 스트로크 및 모서리와 같은 기능) 세트가 필기 숫자 인식 작업의 분류를 향상시키는 것으로 나타났습니다. 이후의 스파 스 코딩 기반 모델은 "딥"네트워크를 훈련시키는 데 사용되었으며, 스파 스 피처 검출기 층을 쌓아서 "스파 스 깊은 신망"을 생성했습니다 (Lee et al., 2007).. 최근에는 이미지 인식에서 놀라운 결과가 희박한 코딩 기반 모델을 사용하여 순수하게 감독되지 않은 방식으로 고양이의 이미지를 구별 할 수있는 여러 계층 (유명한 "Google Brain")으로 네트워크를 구성했습니다 (Le et al. , 2013) .
셋째, 학습 된 기초를 사용하여 압축을 수행하는 것이 가능할 수 있습니다. A는 실제로 그것을하는 사람을 보지 못했습니다.
스파 스 코딩과 자동 인코더의 차이점은 무엇입니까?
자동 인코더는 일반적으로 일종의 제약 조건을 사용하여 입력을 재구성하려고 시도하는 모델입니다. Wikipedia에 따르면 "효율적인 코딩 학습에 사용되는 인공 신경망"입니다. 희소성을 요구하는 자동 인코더 정의에는 아무것도 없습니다. 희소 코딩 기반 제약은 사용 가능한 기술 중 하나이지만, 예를 들어 노이즈 제거 자동 인코더, 계약 자동 인코더 및 RBM 등이 있습니다. 모두 네트워크가 입력을 잘 표현할 수있게합니다 (일반적으로 "희소"임).
스파 스 코딩과 자동 인코더는 언제 사용합니까?
기능 추출 및 / 또는 딥 네트워크의 사전 훈련을 위해 자동 인코더를 사용하는 데 관심이있을 것입니다. 희소성 제약 조건으로 자동 인코더를 구현하면 두 가지를 모두 사용하게됩니다.
희소 코더는 자동 인코더의 절반과 같습니다. 자동 인코더는 다음과 같이 작동합니다.
input => neural net layer => hidden outputs => neural net layer => output
역 전파의 경우, 오류 신호, 손실은 다음과 같습니다. 입력-출력
숨겨진 출력에 희소성 제약을 적용하면 대부분 0이되고, 일부는 1이됩니다. 그런 다음 두 번째 레이어는 본질적으로 선형 기본 함수 세트이며 숨겨진 출력 중 어느 것이 1인지에 따라 함께 추가됩니다.
드문 드문 코딩에서는 후반부 만 있습니다.
codes => neural net layer => output
'코드'는 신경망 계층의 가중치로 표시되는 기본 함수를 선택하는 많은 실수입니다. Olshausen의 논문에서 그들은 코드에 희소성 제약을 적용하고 있기 때문에, 코드는 희소 자동 인코더에서와 같이 희소합니다. 대부분의 숫자는 0입니다.
우리가 지금 분명하게 볼 수있는 차이점 : 드문 코딩의 경우 신경망의 전반이 없습니다. 코드는 신경망에 의해 자동으로 제공되지 않습니다.
희소 코딩에서 코드를 어떻게 얻습니까? 입력 이미지와 일치하는 출력을 가장 잘 제공하는 코드 세트를 찾으려면 그라디언트 디센트 (gradient descent) 등을 사용하여 우리 자신을 최적화해야합니다. 매번 모든 테스트 이미지를 포함하여 모든 이미지에 대해이 작업을 수행해야합니다.
이 동일한 주제에 대한 최신 논문 https://arxiv.org/abs/1708.03735v2 를 읽으십시오 . 이 논문에서 저자들은 실제 진리 사전이 그 오토 인코더의 제곱 손실 함수의 중요한 포인트가되도록 오토 인코더를 설정할 수 있음을 보여줍니다.