Tag Archives: Apache Mahout

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를 활용하는 것입니다.

구글 머신러닝 솔루션 텐서플로(Google Machine Learning – TensorFlow) 오픈소스 공개에 따른 현재와 미래의 비젼

2015년 11월, 구글은 머신러닝(Machine Learning)이라는 기술을 공개했습니다.

사실 머신러닝은 구글이 최초로 만든 기술은 아닙니다, 구글이 그들의 소프트웨어를 공개하면서, 그들의 제품 이름이 아닌 대중이 알아듣기 좋은 적절한 이름으로 이미 업계에서 통용되고 있는 단어(머신러닝;Machine Learning)를 사용했습니다.

구글 머신러닝은 텐서플로(TensorFlow)라는 이름으로 오픈소스로 공개되었습니다.

구글 머신러닝 솔루션 텐서플로(Google Machine Learning - TensorFlow) 오픈소스 공개에 따른 현재와 미래의 비젼

구글의 머신러닝은 공부한 시간을 데이터로 인풋(input)하면 컴퓨터는 성적이라는 결과를 아웃풋(output)으로 도출하게 되는데, 이 과정의 상관관계를 학습시키는 것이라고 합니다.

구글 머신러닝 솔루션 텐서플로(Google Machine Learning - TensorFlow) 오픈소스 공개에 따른 현재와 미래의 비젼

구글은 머신러닝을 쉽게 이해시키기 위해 로켓도 동원했는데, “머신러닝은 로켓엔진과 비슷하다”면서 “로켓엔진의 중간 부분이 머신러닝이며 로켓의 연료가 데이터, 뿜어져 나오는 연기는 그 결과물”이라고 설명했는데, 아래의 로켓 엔진은 위에 그려진 머신 러닝 컨셉 다이어그램과 유사합니다.

구글 머신러닝 솔루션 텐서플로(Google Machine Learning - TensorFlow) 오픈소스 공개에 따른 현재와 미래의 비젼

또한 구글은 인공지능 소프트웨어 시스템인 ‘텐서플로(TensorFlow)’를 무상으로 공개한다고 발표했는데, “이를 통해 개발자들은 CPU, GPU, 모바일 등 실제 제품에 접목할 수 있다”면서 “머신러닝의 표준화를 통해 미래제품 출시에도 도움이 된다”고 강조하면서 머신러닝의 보급에 최우선 순위를 두고 있다는 뜻을 내비쳤습니다.

구글 머신러닝 솔루션 텐서플로(Google Machine Learning - TensorFlow) 오픈소스 공개에 따른 현재와 미래의 비젼

이 머신러닝 적용 사례로는 구글검색, 구글포토, 구글번역, 지메일(Gmail) 등 자사 제품이 있습니다. 구글앱을 통해 음성검색을 이용하면 그 음성을 인식한 뒤 분석한 내용을 바탕으로 검색어를 생성한다고 합니다. 또 구글 포토를 이용하면 스마트폰으로 찍은 사진을 인물, 장소, 사물별로 분류해 저장하고, 클라우드에 보관된 위치 정보가 없는 사진도 촬영 장소의 특징을 분석해 그 위치를 찾아낸다고 합니다.

구글 머신러닝 솔루션 텐서플로(Google Machine Learning - TensorFlow) 오픈소스 공개에 따른 현재와 미래의 비젼

슈미트 회장은 “내가 볼 때 구글은 이 분야(머신러닝)에서 월드 리더다”라고 강조하면서 “구글은 머신러닝을 통해 더욱 스마트해질 것”이라고 언급했다고 합니다.

구글 머신러닝 솔루션 텐서플로(Google Machine Learning - TensorFlow) 오픈소스 공개에 따른 현재와 미래의 비젼

텐서플로(TensorFlow)는 오픈소스로 공개되어졌으며, 다음의 URL에서 관련 정보를 얻으실 수 있습니다.

http://tensorflow.org/

 

참고로 텐서플로(TensorFlow) 외에도 아파치 머하웃(Apache Mahout)이라는 Scalable Machine Learning기술이 예전부터 공개되어져 있었고, 이 기술은 글로벌한 소프트웨어/서비스 기업에서 사용 중인데요, 관련정보는 http://mahout.apache.org/ 에서 얻으실 수 있습니다.

구글 머신러닝 솔루션 텐서플로(Google Machine Learning - TensorFlow) 오픈소스 공개에 따른 현재와 미래의 비젼

 

마지막으로 머신러닝의 응용 사례에 대해 언급해보고자 합니다.

1) 넷플릭스는 머신러닝을 활용하여 개인화된 페이지를 구성하였습니다. (출처: 넷플릭스 블로그)

이를 통해 고객의 선호를 만족시키고 동시에 다양한 콘텐츠를 구매할 수 있도록 유도하는 전략을 펼쳤습니다.

구글 머신러닝 솔루션 텐서플로(Google Machine Learning - TensorFlow) 오픈소스 공개에 따른 현재와 미래의 비젼

구글 머신러닝 솔루션 텐서플로(Google Machine Learning - TensorFlow) 오픈소스 공개에 따른 현재와 미래의 비젼

참고로 CF 알고리즘이 적용되었습니다.

 

2) 페이스북은 머신러닝을 활용하여 이미지 분석 진행

98%의 정확성을 가지고 있고, 8억건의 사진을 5초 이내에 확인할 수 있었다고 합니다.

구글 머신러닝 솔루션 텐서플로(Google Machine Learning - TensorFlow) 오픈소스 공개에 따른 현재와 미래의 비젼

참고로 구글포토에서도 비슷한 기술이 적용되어져 있다고 합니다.

 

3) 구글은 스팸메일 필터시 메일의 패턴을 학습시켜 스팸메일을 거르는 확률을 높였다고.

 

이제 서비스를 전제로 하는 소프트웨어는 보다 많은 빅 데이터를 쌓아 이를 응용하여 미래를 예측하는 기술을 전보다 더 많이 활용하게 될 것으로 보입니다. 보다 편리하고 살기 좋은 미래… 어떻게 다가 올지 궁금합니다.