본문 바로가기
Lap

180709 딥러닝/머신러닝 프레임워크 6종 비교 분석

by matters_ 2018. 7. 9.

오늘은 딥러닝/머신러닝 프레임워크에 대해 알아보기로 했다.

관련자료를 찾던중 좋은 자료가 있어 소개한다.



지금은 인공 지능의 시대입니다. 머신러닝 및 예측 분석은 이제 거의 모든 현대 비즈니스에 수립되고 필수적이지만 인공 지능은 해당 분야에서 가능한 규모를 확장합니다. 이것은 딥러닝이 가능하도록 만드는 것입니다. 

딥러닝이 보다 복잡한 문제를 해결하고보다 정교한 작업을 수행 할 수 있다면 이를 구축하는 것이 자연스럽게 데이터 과학자 및 엔지니어에게 큰 과제가됩니다. 다행히도 복잡성이 심화된 딥러닝 솔루션을 쉽게 구축 할 수 있도록 프레임워크가 다양해지고 있습니다. 모든 프레임워크는 다른 목적으로 제작되었으며 고유한 기능을 제공합니다. 

 

1. TensorFlow

가장 인기있는 딥러닝 라이브러리 중 하나인  Tensorflow는 Google Brain 팀에서 개발했으며 2015년 오픈소스로 공개되었습니다. '2세대 머신러닝 시스템'으로 불리는 Tensorflow는 Python 기반 라이브러리로, 여러 CPU 및 GPU와 모든 플랫폼, 데스크톱 및 모바일에서 사용할 수 있습니다. 또한 C++ 및 R과 같은 다른 언어도 지원하며 딥러닝 모델을 직접 작성하거나 Keras와 같은 래퍼 라이브러리를 사용하여 직접 작성할 수 있습니다.

 

 2. Theano

최초의 딥러닝 라이브러리 중 하나인 Theano는 Python 기반이며 CPU 및 GPU의 수치 계산에 매우 유용합니다. Tensorflow와 마찬가지로 Theano는 저수준 라이브러리로, 딥러닝 모델을 직접 만들거나 그 위에 래퍼 라이브러리를 사용하여 프로세스를 단순화 할 수 있습니다. 그러나 다른 확장 학습 프레임워크와 달리 확장성이 뛰어나지 않으며 다중 GPU 지원이 부족합니다. 그러나 범용적으로 딥러닝을 할 때 전 세계의 많은 개발자가 여전히 선택하고 있습니다.

 

 3. Keras

Theano와 Tensorflow는 매우 훌륭한 딥러닝 라이브러리이지만 직접 사용하여 모델을 만드는 것은 매우 저급 수준이기 때문에 어려울 수 있습니다. 이러한 문제를 해결하기 위해  Keras는 효율적인 신경망 구축을 위한 단순화 된 인터페이스로 개발되었습니다. Kerans는 Theano 또는 Tensorflow에서 작동하도록 구성 할 수 있습니다. Python으로 작성되었으며, 매우 가볍고 배우기 쉽습니다. 비교적 새로운 라이브러리임에도 불구하고 아주 좋은 문서를 가지고 있으며 몇 줄의 코드에서 Keras를 사용하여 신경망을 만들 수 있습니다.

 

4. Caffe

표현, 속도 및 모듈성을 염두에 두고  개발된 Caffe는 Berkeley Vision and Learning Center (BVLC)에서 주로 개발한 최초의 딥러닝 라이브러리 중 하나입니다. 이것은 또한 Python 인터페이스를 가지고 있는 C++ 라이브러리이며, CNN(Convolutional Neural Networks)을 모델링 할 때 기본 애플리케이션으로 찾습니다. 이 라이브러리를 사용하면 얻을 수 있는 주요 이점 중 하나는 바로 Caffe Model Zoo에서 미리 훈련된 여러 네트워크를 바로 사용할 수 있다는 것입니다. CNN 모델링이나 이미지 처리 문제 해결에 관심이 있으면 이 라이브러리를 고려해보십시오.

Caffe를 페이스북은 최근 고성능 개방형 학습 모델을 구축 할 수 있는 유연성을 제공하는 새로운 가벼운 모듈 식 딥러닝 프레임 워크인 Caffe2를 공개했습니다.

 

 5. Torch

Torch는 Lua 기반의 딥러닝 프레임워크로서 페이스 북, 트위터, 구글과 같은 거물들이 사용하고 개발했습니다. CUDA는 GPU 처리를 위해 C / C ++ 라이브러리와 CUDA를 사용합니다. 토치는 최대한의 유연성을 달성하고 모델을 제작하는 과정을 매우 간단하게 만드는 것을 목표로 만들어졌습니다. 최근 PyTorch라고 불리는 Torch의 Python 구현은 인기를 얻었고 빠른 채택을 얻고 있습니다.

 

 4. Deeplearning4j

DeepLearning4j  (또는 DL4J)는 Java로 개발된 인기있는 딥러닝 프레임워크이며 다른 JVM 언어도 지원합니다. 상업, 산업 중심의 분산 딥러닝 플랫폼으로 널리 사용됩니다. DL4j를 사용하면 Apache Hadoop 및 Apache Spark와 같은 널리 사용되는 Big Data 도구를 기반으로 구현할 수 있으므로 전체 Java 생태계의 힘을 결합하여 효율적인 딥러닝을 수행 할 수 있다는 장점이 있습니다.

 

 7.MxNet

MXNet은 R, Python, C++ 및 Julia와 같은 언어를 지원하는 딥러닝 프레임워크 중 하나입니다. 이것은 이 언어들 중 어느 것을 알고 있다면, 편안하게 학습 영역을 쉽게 접근할 수 있기 때문에 유용합니다. 백엔드는 C++과 cuda로 작성되었으며 Theano와 같이 자체 메모리를 관리 할 수 ​​있습니다. MXNet은 확장성이 좋고 다중 GPU와 컴퓨터로 작업 할 수 있기 때문에 대중적입니다. 기업용으로 매우 유용합니다. 이것이 아마존이 MXNet을 딥러닝을 위한 참조 라이브러리로 사용한 이유 중 하나이기도합니다.

 

 8. Microsoft Cognitive Toolkit (CNTK)

CNTK라는 약어로 알려져있는 Microsoft Cognitive Toolkit 은 딥러닝 모델을 교육하기 위한 오픈소스 딥러닝 도구입니다. 고도로 최적화되었으며 Python 및 C++와 같은 언어를 지원합니다. 효율적인 리소스 활용으로 알려진 Cognitive Toolkit을 사용하여 효율적인 강화학습 모델 또는 Generative Adversarial Networks (GAN)를 쉽게 구현할 수 있습니다. 높은 확장성과 성능을 발휘하도록 설계되었으며 여러 시스템에서 실행될 때 Theano 및 Tensorflow와 같은 다른 툴킷과 비교할 때 높은 성능을 제공합니다.

 

 9. Lasagne

Lasagne는 Theano의 최상위에서 실행되는 고급 학습 라이브러리입니다. 꽤 오래 전부터 있었으며 Theano의 복잡성을 추상화하고 신경망을 구축하고 훈련시키는 데 보다 친숙한 인터페이스를 제공하기 위해 개발되었습니다. Python이 필요하며, Keras와 많은 공통점이 있습니다. 그러나 둘 사이의 차이점은 Keras는 더 빠르며 더 나은 문서화가 이루어집니다.

 

 10. BigDL

BigDL 은 아파치 스파크 (Apache Spark)에 대한 딥러닝 라이브러리로 배포되어 있으며 확장성 이 뛰어납니다. BigDL의 도움을 받아 Spark 또는 Hadoop 클러스터에서 Spark 프로그램으로 직접 작성하여 딥러닝 애플리케이션을 직접 실행할 수 있습니다. 풍부한 학습 지원을 제공하며 인텔의 수학 커널 라이브러리 (MKL)를 사용하여 고성능을 보장합니다. BigDL을 사용하여 사전 훈련된 Torch 또는 Caffe 모델을 Spark에 로드 할 수도 있습니다. 클러스터에 저장된 대규모 데이터세트에 딥러닝 기능을 추가하려는 경우 사용할 수 있는 매우 유용한 라이브러리입니다.

 

 

위의 목록은 매우 흥미로운 질문을 제시합니다. 당신의 필요에 가장 적합한 딥러닝 틀은 무엇입니까? 그것은 여러 가지 요인에 달려 있습니다. 딥러닝을 시작하려면 Tensorflow 또는 Theano와 같이 Python 기반 프레임 워크를 사용하는 것이 안전 할 것입니다. 노련한 전문가의 경우, 훈련된 모델의 효율성, 사용 용이성, 속도 및 자원 활용도가 가장 중요한 학습 프레임 워크를 선택하기 위한 몇가지 중요한 고려 사항입니다.

 

 

원문 : 

https://www.packtpub.com/books/content/top-10-deep-learning-frameworks/?utm_source=twitter&utm_medium=social&utm_campaign=blog

Image


위의 그래프는 구글에서 조사한 딥러닝 프레임워크 관심도 순위이다.

댓글