복붙노트

[HADOOP] 병렬로 뉴럴 네트워크 교육, 하둡 또는 GPU를 사용하는 것이 더 좋습니까?

HADOOP

병렬로 뉴럴 네트워크 교육, 하둡 또는 GPU를 사용하는 것이 더 좋습니까?

2 ~ 4 개의 숨겨진 레이어가있는 신경망을 훈련해야합니다. 실제 네트워크의 구조는 아직 확실하지 않습니다. 나는 더 빠른 결과를 얻기 위해 Hadoop map reduce (12 pcs의 클러스터) 또는 gpu를 사용하여 그것을 훈련시키는 것을 생각하고 있었다. 그게 더 나아질 것이라고 생각하니? 또한 이미 구현 된 라이브러리가 있습니까? 감사

해결법

  1. ==============================

    1.운이 좋게 훈련 네트워크에서이 두 가지 방법을 다뤄 본 실험실에서 일하면서 계산적으로 비용이 많이 드는 설정에서 유용하지만 계산 병목 현상의 위치는 일반적으로 사용할 방법을 결정합니다.

    운이 좋게 훈련 네트워크에서이 두 가지 방법을 다뤄 본 실험실에서 일하면서 계산적으로 비용이 많이 드는 설정에서 유용하지만 계산 병목 현상의 위치는 일반적으로 사용할 방법을 결정합니다.

    분산 시스템 (예 : HADOOP)을 사용하여 네트워크 교육

    이것은 네트워크가 충분히 커서 전통적 PC에서 교육에 필요한 행렬 곱셈이 다루기 힘들 때 유용합니다. 이 문제는 가혹한 시간 제약 (예 : 온라인 교육)이있는 경우 특히 유행합니다. 그렇지 않으면 HADOOP 구현의 번거 로움이 그만한 가치가 없습니다. HADOOP에 대해 생각하고 있기 때문에 네트워크 매개 변수를 배우고 더 많은 시간을 기다릴 필요가 없기 때문에 (여러 번 실험실에서 자주 발생합니다), 여러 시스템에서 여러 매개 변수로 네트워크의 여러 인스턴스를 실행하면됩니다. 그렇게하면 실제 분산 계산을 처리하지 않고도 클러스터를 사용할 수 있습니다.

    예:

    이미지 네트워크에있는 사람들의 수를 찾기 위해 네트워크를 훈련하고 있습니다. 미리 정의 된 일련의 교육 사례 (이미지 - 인원 쌍) 대신 프로그램에서 Google의 임의 이미지를 가져 오도록 결정할 수 있습니다. 네트워크가 이미지를 처리하는 동안 이미지를보고 이미지에 실제로 얼마나 많은 사람들이 있는지에 대한 피드백을 제공해야합니다. 이미지 프로세싱이므로 네트워크 크기는 아마도 수백만 단위의 규모 일 것입니다. 실시간으로 피드백을 제공하기 때문에 네트워크의 계산 속도가 중요합니다. 따라서 분산 구현에 투자해야합니다.

    GPU로 네트워크 교육

    주요 계산 병목 현상이 네트워크 크기가 아니라 교육 집합의 크기 (네트워크가 여전히 일반적으로 상당히 크기는하지만) 인 경우 올바른 선택입니다. GPU는 많은 수의 데이터 세트에 대해 동일한 벡터 / 행렬 연산을 적용하는 데 이상적이므로 매우 큰 배치 크기의 배치 교육을 사용할 수있을 때 주로 사용됩니다.

    예:

    자연 언어로 제기 된 질문에 답변하기 위해 네트워크를 훈련하고 있습니다. 당신은 질문 - 답변 쌍의 거대한 데이터베이스를 가지고 있으며 네트워크는 10000 개의 질문마다 가중치를 업데이트하는 것에 신경 쓰지 않습니다. 이와 같이 큰 배치 크기와 다소 큰 네트워크가있는 경우 GPU 기반 구현이 좋은 아이디어 일 것입니다.

  2. from https://stackoverflow.com/questions/8250867/neural-network-training-in-parallel-better-to-use-hadoop-or-a-gpu by cc-by-sa and MIT license