제한된 Boltzmann 기계 대 다층 신경망


22

내가 직면하고있는 분류 문제에 대해 신경망을 실험하고 싶었습니다. 나는 RBM에 대해 이야기하는 논문을 접했다. 그러나 내가 이해할 수있는 것은 다층 신경망을 갖는 것과 다르지 않습니다. 이것이 정확합니까?

또한 R로 작업하고 RBM에 대한 통조림 패키지가 보이지 않습니다. 나는 기본적으로 RBM이 쌓여있는 딥 러닝 네트워크에 관해 이야기하는 문헌을 보았지만 R에서 그것들을 구현하려는 노력의 가치가 있는지 확실하지 않습니다. 감사


3
그들은 이다 backprop 훈련 다층 네트워크와는 다른. 다음은 모든 종류의 신경망에 대한 자료입니다 : stats.stackexchange.com/a/36257/13669
Stumpy Joe Pete

답변:


21

우선 모든 RBM은 일반 신경망과 확실히 다르며 올바르게 사용하면 훨씬 더 나은 성능을 얻을 수 있습니다. 또한 RBM의 일부 레이어를 학습 한 다음, 발견 된 가중치를 Mulitlayer NN의 시작점으로 사용하면 종종 멀티 레이어 NN을 사용하는 것보다 더 나은 결과를 얻을 수 있습니다.

내가 생각할 수있는 가장 좋은 방법은 RBM을 담당하는 사람 중 한 명인 Geoffrey Hinton이 강의 한 Coursera 코스입니다.

https://class.coursera.org/neuralnets-2012-001/class/index

RBM 및 Denoising Autoencoders에 관한 비디오는 주제에 관심이있는 모든 사람에게 유용한 학습 자료입니다.

R의 구현에 관해서는 어느 것도 모릅니다. 그러나 그것을 구현하려면 순수한 R을 사용하지 않는 것이 좋습니다 (데이터가 크지 않은 한). RBM 교육에는 시간이 오래 걸리며 C 대신 R 대신 순수한 R을 사용하면 크게 성장할 수 있습니다.


1
RBM을 작성 했으므로 R의 성능 문제에 대해 이야기 할 수 있습니다. 대부분의 계산 시간은 행렬 곱셈에 소비되는데, 이는 다른 언어 (아마도 3 또는 5의 계수)보다 R에서 느리게 진행되는 경향이 있습니다. 맞춤형 BLAS (선형 대수 라이브러리)를 사용하여 자신의 시스템에 맞게 R을 다시 컴파일하면 느린 부분을 Rcpp를 사용하여 C ++로 변환 할 수 있으므로 도움이됩니다. 1 계층 RBM을 작성하는 것은 실제로 속도가 빠르기 전에 가장 편한 언어로 코딩하는 것이 타당 할 정도로 빠릅니다.
David J. Harris

@David J. Harris R에서 구현 한 내용을 공유 했습니까? 나는 그들을보고 싶습니다.
Zach

1
@Zach 지금은 꽤 바쁘지만, 앞으로 오픈 소스로 할 수있는 일을 보게 될 것입니다. 문서화되지 않은 프로젝트 / 완료되지 않은 프로젝트를 정렬하는 것이 마음에 들지 않으면 내가 가지고있는 사본을 내 프로필의 주소로 이메일로 보내실 수도 있습니다.
David J. Harris

8

R에서는 사용할 수 neuralnetRSNNS 합니다 (에 대한 인터페이스를 제공하는 스투 트가 르트 신경망 시뮬레이터를 표준 다층 신경망에 맞게), 그러나 RBM에 차이가 있습니다.

R에서 딥 신경망을 구현하는 것과 관련하여 기존의 FOSS 구현을 인터페이스하는 것이 유일한 가치있는 전략이라고 생각합니다. 이것은 일반적으로 물건을 다시 구현하는 것보다 훨씬 더 나은 솔루션입니다. R은이를 위해 많은 기능을 제공하며 기존 솔루션의 속도 및 즉시 사용 가능한 측면에서 R의 데이터 처리를 활용할 수 있습니다. 예를 들어, MDP를 Python / R 인터페이스 기능과 인터페이스 할 수 있습니다 (예 : 이 백서 참조) .

편집 : 통계적으로 유의 한 Andrew Landgraf는 RBM에 대한 일부 R 코드를 제공합니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.