16_Alexnet

ILSVRC(Imagenet Large Scale Visual Recognition Challenge, 이미지넷 이미지 인식 경진대회) 2012년 1위로 우승함. 캐나다 토론토 대학

Alexnet Structure

  • AlexNet Structure

  • LeNet5 Structure

GPU 병렬구조 분산처리

  • LeNet5와 비교하여 가장 다른 점은 멀티 GPU를 사용하 점이다.

  • 처음 컨볼루션에서 96개의 필터를 사용한다. GPU 1에서 48개의 필터를 사용하고, GPU 2에서 48개의 필터를 사용한다.

  • 과연, 지피유를 많이 쓰는게 좋은걸까? 그럼 얼만큼 써야하고 어떻게 써야하는가? 사례들..

  • Data Parallelism

    • tf.keras.utils.multi_gpu_model 를 사용하면, 모델이 사용가능한 지피유에 복제가 되어 데이터 배치를 지피유 수만큼 나누어 수행하므로 연산속도가 빨라짐.

MiniGoogLeNet on the CIFAR-10

a single GPU

multi-GPU

epoch

63 secs

16 secs

total training time

74m10s

19m3s

  • Model Parallelism

    • ...

  • CPU는 직렬 연산 방식으로 명령어를 한번에 하나씩 순서대로 처리하는 방식 , ALU가 많을 필요가 없다 (ALU적고, 캐쉬메모리 큼) 반면 GPU는 병렬 처리방식으로 ALU가 많다.

  • CPU는 고정소수점, GPU는 부동소수점, 즉 표현할 수 있는 수가 더 넓다.

  • Alexnet이 나온 2012년, 가장 빠른 NVIDIA GTX580 모델이었다. 3GB의 한정적인 메모리 자원으로 96개의 피처를 컬러와 연관된 피처 48개와 컬러와 무관한 피처 48개를 각각 다른 지피유에 할당하여, 학습시키었으며, 한 개의 지피유를 사용하였을 때보다 top-1 top-5 에러를 각각 1.7% 1.2% 절감하였다고 말한다.

  • 하지만 이후 연구자들은 지피유를 위 아래로 나누는 구조를 찾아볼 수 었다.

  • 연산을 나누어서 한다.

  • 속도가 빠르다.

(Input2ZeroPadding/stride)+1(Input-2*ZeroPadding / stride )+1

활성화함수의 선택

  • 연산이 빠르다

  • 렐루가 다른것보다 왜 좋은지 눈에 보여라

    • 같은 정확도를 보이면서 하이퍼볼릭 탄젠트보다 6배 빠름? 왜?

    • 그라디언트가 0이하인경우 leaky relu

http://paulrichmond.shef.ac.uk/teaching/COM4521/index_2018/

-multigpu

https://lambdalabs.com/blog/introduction-multi-gpu-multi-node-distributed-training-nccl-2-0/ https://jhui.github.io/2017/03/07/TensorFlow-GPU/ https://leimao.github.io/blog/Data-Parallelism-vs-Model-Paralelism/ https://medium.com/daangn/pytorch-multi-gpu-%ED%95%99%EC%8A%B5-%EC%A0%9C%EB%8C%80%EB%A1%9C-%ED%95%98%EA%B8%B0-27270617936b

https://timdettmers.com/2014/10/09/deep-learning-data-parallelism/

Last updated