Machine Learning Tool의 종류와 용도

Machine Learning Tool의 종류는 어떤 것이 있고, 그 용도는 어떤 것으로 설계되었는지 살펴봅니다.

1. Tensorflow
Google Brain Team에서 개발했고, Neural Network 및 Machine Learning에 대한 연구에 사용되고 있습니다.
Gmail, 음성 인식, Google 포토 및 Google 검색과 같이 일상적으로 사용하는 인기있는 Google 서비스에는 Tensorflow가 탑재되어 있다고 합니다.
Tensorflow는 Data Flow Graph를 사용하여 복잡한 수치 작업을 수행하는데, 수학적 계산은 엣지와 노드가 포함된 그래프를 사용하여 정교화됩니다. 이 노드는 조작을 구현하는 데 사용되며 데이터가 공급되는 엔드 포인트로 작동 할 수도 있습니다. 엣지는 또한 다른 노드 간의 입/출력 연관을 나타냅니다.

2. Caffe
Machine Learning Framework로 CNN (Convolutional Neural Networks)을 활용하여 컴퓨터 비전/이미지 분류용으로 개발되었습니다.
텍스트, 사운드 또는 시계열 데이터가있는 응용 프로그램을 다루는 경우 Caffe는 컴퓨터 비전 이외의 용도로 사용되지 않습니다.
그러나 여러 호스트에서 동적으로 실행될 수 있으며 단일 플래그를 사용하여 CPU와 GPU간에 전환하는 작업을 잘 수행합니다.

3. Amazon Machine Learning
Amazon은 AML이라는 자체 머신러닝 서비스를 개발했습니다. AML을 사용하면 사용하기 쉬운 API를 통해 응용 프로그램에 필요한 예측을 파생시킬 수 있습니다. AML은 Amazon S3, RDS 또는 Redshift에 저장된 데이터에 연결하여 바이너리 분류, 회귀 또는 다중 클래스 분류와 같은 작업을 수행하여 새 모델을 생성 할 수 있습니다.

4. Apache Singa
Apache Singa는 주로 모델 파티셔닝을 사용하여 분산된 딥러닝과 학습 프로세스의 병렬화에 중점을 두는데 주로 이미지 인식 및 자연어 처리(NLP)를 하는데 사용됩니다.
Singa의 기술 스택은 IO, Model 및 Core라는 세가지 중요한 구성 요소로 이루어져 있는데, IO 구성 요소에는 네트워크 및 디스크에 데이터를 읽거나 쓰는 데 사용되는 클래스가 들어 있으며, Core에서는 텐서 연산과 메모리 관리 함수를 처리하고, Model은 기머신러닝 모델에 사용되는 알고리즘 및 데이터 구조를 포함합니다.

5. Microsoft CNTK
CNTK (Cognitive Toolkit)는 Microsoft의 오픈소스 Machine Learning Framework입니다. CNTK는 음성인식 영역에서 더 많이 사용되지만 텍스트 및 이미지 Training에도 사용할 수 있습니다.
AS CNN, LSTM, RNN, Sequence-to-Sequence 및 Feed Forward와 같은 다양한 머신러닝 알고리즘을 지원하며, 다양한 CPU 및 GPU를 포함한 여러 하드웨어 유형을 지원합니다.
CNTK에서 C ++ 및 Python과 같은 언어로 작업하고 내장된 교육 모델을 사용하거나 직접 빌드 할 수 있습니다.

6. Torch
2002년 NYU에서 개발된 Torch는 Twitter 및 Facebook과 같은 글로벌 서비스 업체에서 주로 쓰며, Torch는 루아(Lua)라는 언어로 코딩되어 있는 것이 특징입니다. Torch의 장점은 역시 참고문헌(?)이 많다는 것입니다.

7. Accord.NET
.NET을 기반으로하는 오픈소스 시스템 학습 Framework이며, 패턴 인식, 인공 신경망, 통계 데이터 처리, 선형 대수, 이미지 처리 등과 같은 응용 프로그램에 사용할 수있는 다양한 라이브러리로 구성됩니다.
Framework는 설치 프로그램, NuGet 패키지 및 소스 코드로 사용할 수 있는 라이브러리로 구성됩니다.
Accord.NET에는 코드 재사용과 점진적인 알고리즘 변경을 용이하게하는 매트릭스 라이브러리가 있습니다.

8. Apache Mahout
Apache Software Foundation의 무료 오픈소스 프로젝트인 Apache Mahout은 클러스터링, 분류 및 협업 필터링과 같은 애플리케이션을 위해 무료 분산 또는 확장 가능한 ML 프레임 워크를 개발하려는 목표로 구축되었습니다. Apache Mahout은 MapReduce 패러다임을 사용하여 Hadoop 위에 배포되는데, Hadoop에 저장된 Big Data 가 연결되면 Mahout은 의미있는 패턴을 찾는 데 도움을 줄 수 있습니다.

9. Theano
Theano는 2007 년 몬트리올 대학에서 개발한 것으로 저가형 머신러닝 프레임워크로 알려졌습니다.  Theano는 API 래퍼를 보낼 하이엔드 추상화 시스템을 위한 기본 플랫폼으로 주로 사용되고 있는데,  몇가지 인기있는 라이브러리의 예로는 Lasagne, Blocks 및 Keras가 있습니다. Theano를 사용하는 한가지 단점은 다중 GPU를 지원하기 위해 몇 가지 해결 방법을 모색해야한다는 것입니다.

10. Brainstorm
Python으로 작성된 Brainstorm은 여러 백엔드 시스템에서 원활하게 실행되도록 제작되었습니다. Brainstorm은 Python을 사용하여 두개의 Data API를 제공합니다. 하나는 Numpy 라이브러리의 CPU 용이고 다른 하나는 CUDA를 사용하여 GPU를 활용하는 것입니다.