유용한 딥러닝/머신러닝 프로젝트들
인공지능은 여러 분야에서 훌륭한 성과를 내고 있으며, 오픈소스 진영에서도 아이디어가 바로 실현할 수 있도록 도움을 줄 수 있는 많은 프로젝트가 진행되고 있습니다. George Seif님이 뽑은 2018년도 유용한 머신러닝 프로젝트를 소개합니다. 원문 글은 Medium을 참고하세요.
Magenta
마젠타는 미술과 음악을 창조하는 인공지능 알고리즘을 설계하는 프로젝트입니다. 재미있고 다양한 데모와 함께 인공지능의 창작 가능성을 보실 수 있습니다. 이 프로젝트의 궁극적인 목적은 사람들이 좋아하는 새로운 악기를 만들어내는 것이라고 하네요. 창작 AI에 관심을 가지시는 분들은 마젠타 프로젝트와 함께 시작해보시는 것은 어떨까요?
Fast.ai
Pytorch를 기반으로 만들어진 Fast.ai 라이브러리는 복잡한 구현 없이 딥러닝 모델을 생성하고 학습시킬 수 있도록 개발되었습니다. 문제 정의, 모델 아키텍처, 전처리 및 학습 등 모두 사용하기 쉽게 간결한 방식을 제공하기 때문에 딥러닝 입문 및 교육용으로 적합합니다. 문서화도 잘되어 있다고 하네요.
Detectron
Facebook AI의 객체 검출 및 인식을 위한 플랫폼입니다. Mask R-CNN, RetinaNet, Fast R-CNN이 포함되어 있습니다. COCO 데이터 세트에서 사전에 훈련된 모델을 제공합니다. 객체 검출 및 인식을 하시는 분들이라면 Detectron도 참고해보시는 것이 어떨까요?
fastText
Facebook AI의 자연어처리 라이브러리입니다. 150개 이상의 언어에 대한 사전 학습 된 단어 벡터 모델이 제공됩니다. 이러한 단어 벡터는 텍스트 분류, 요약 및 번역 등 많은 작업에 사용될 수 있습니다. 자연어처리를 하시는 분들이라면 Word2Vec을 잘 아실텐데요, 이 모델과 차이점은 하나의 단어 안에도 여러 단어들이 존재하는 것으로 간주하여 처리됩니다. “딥러닝”을 “딥” + “러닝”으로 구분하여 고려한다고 하니 그 성능이 더 좋겠죠?
AutoKeras
자동화된 머신러닝인 AutoML을 위한 오픈소스 라이브러리 입니다. 즉 데이터셋만 주어지면 해당 데이터셋에 최적회된 네트워크 아키텍처 및 하이퍼파라미터 튜닝을 하게 됩니다. 그래서 fit() 함수 인자에 시간이 들어갑니다. ‘이 시간 내에서 최적 모델을 찾아라’라는 뜻이겠죠? 이름은 케라스이지만, API만 케라스이고, 엔진은 PyTorch로 되어 있답니다.
Dopamine
구글에서 강화학습 연구를 위한 프레임워크이며 알고리즘을 빠르고 반복적으로 프로토타이핑을 할 수 있습니다. 프레임워크 내부에서 생성된 강화학습 에이전트를 생성 및 학습하고, 벤치마킹까지 할 수 있다고 하니 협업에서도 유용할 것 같습니다. 코랩(colab)에서 구동할 수 있는 예제도 있으니 따라해보세요~ 바로가기
vid2vid
NVIDIA와 MIT 연구팀에서 비디오를 입력하여 비디오를 생성하는 모델을 개발했습니다. pix2pix을 이용하면 각 프레임별로는 잘 변환이 된다고 하더라고 변환된 프레임을 합쳐서 보면 일관성이 떨어집니다. 시공간적 적대적 목표 함수(a spatio-temporal adversarial objective)와 함께 세심하게 설계된 generator와 discriminator 아키텍처를 통해 segmentation 마스크, 스케치 그리고 포즈 등의 다양한 셋에 대해서 고해상도의 진짜 같은 시간적으로도 일관된 비디오 결과를 내보입니다. 비디오나 시계열 이미지를 다루는 분야라면 관심가져보는 것이 좋을 것 같습니다.
ChatterBot
대화의 모음을 학습하여 사용자 대화에 대응하는 대화 엔진입니다. 파이썬 기반으로 되어 있고, 언어에 종속적이지 않아 어떤 언어든지 학습시킬 수 있다고 합니다. 아래는 실제 동작하는 예제이라네요.
user: Good morning! How are you doing?
bot: I am doing very well, thank you for asking.
user: You're welcome.
bot: Do you like hats?
Kubeflow
머신러닝에 필요한 학습, 하이퍼파라미터 튜닝, 서빙, 노트북을 올 패키지로 제공하고, TensorFlow, PyTorch, CXNet등 다양한 딥러닝 프레임워크를 제공하므로, 개발자는 인프라에 대해서 깊게 알 필요없이 머신러닝을 쉽게 사용할 수 있도록 합니다. 도커 관리 솔루션인 쿠버네티스(Kubernetes)라는 것이 있는 데, 쿠브플로우(Kubeflow)는 이 쿠버네티스 위에서 동작합니다. (조대협님이 설명해주신 것을 기반으로 작성하였습니다. 감사합니다~)
imgaug
이미지를 다루는 딥러닝 모델이라면 데이터 부풀리기(data augmentation)가 필수인데요, 이 데이터 부풀리기를 쉽게 할 수 있는 파이썬 라이브러리 입니다.
imbalanced-learn
분류 문제에서 데이터의 클래스 비율이 너무 차이가 나면, 모델 학습은 물론 성능 평가도 쉽지가 않습니다. 각 클래스에 해당하는 데이터 수의 차이가 큰 것을 비대칭 데이터 문제(imbalanced data problem)라고 합니다. imbalanced-learn는 이러한 문제를 해결하기 위해 다양한 샘플링 방법을 제공하는 파이썬 패키지 입니다.
mlflow
실험, 재현성 및 배포를 포함한 머신러닝의 라이프사이클을 관리하기 위한 오픈 소스 플랫폼입니다. 크게 3가지를 제공합니다.
- MLflow Tracking: 코드, 데이터, 환경, 결과 등 실험을 기록하고 검색합니다.
- MLflow Projects: 플랫폼에 상관없이 동작 가능하도록 만들어줍니다.
- MLflow Models: 다양한 배포툴로 모델을 전공하기 위한 포멧을 제공합니다.
본 프로젝트는 아파치 스파크 프로젝트를 주도하는 기업 개발자들인 데이터브릭스(Databricks)에서 제공하고 있다.
AirSim
Microsoft AI & Research 팀이 개발한 AirSim은 자율주행 시스템에 사용되는 오픈소스 시뮬레이터로, AI, 딥러닝, 강화 학습과 컴퓨터 비전 테스트가 지원되는 사실적인 환경과 자동차 역학으로 구성된 플랫폼입니다. Unreal Engine와 Unity를 지원합니다. 자율주행차와 드론의 개발 역량을 대중화하는 데 기여를 할 것으로 기대되네요.
같이 보기
책 소개
[추천사]
- 하용호님, 카카오 데이터사이언티스트 - 뜬구름같은 딥러닝 이론을 블록이라는 손에 잡히는 실체로 만져가며 알 수 있게 하고, 구현의 어려움은 케라스라는 시를 읽듯이 읽어내려 갈 수 있는 라이브러리로 풀어준다.
- 이부일님, (주)인사아트마이닝 대표 - 여행에서도 좋은 가이드가 있으면 여행지에 대한 깊은 이해로 여행이 풍성해지듯이 이 책은 딥러닝이라는 분야를 여행할 사람들에 가장 훌륭한 가이드가 되리라고 자부할 수 있다. 이 책을 통하여 딥러닝에 대해 보지 못했던 것들이 보이고, 듣지 못했던 것들이 들리고, 말하지 못했던 것들이 말해지는 경험을 하게 될 것이다.
- 이활석님, 네이버 클로바팀 - 레고 블럭에 비유하여 누구나 이해할 수 있게 쉽게 설명해 놓은 이 책은 딥러닝의 입문 도서로서 제 역할을 다 하리라 믿습니다.
- 김진중님, 야놀자 Head of STL - 복잡했던 머릿속이 맑고 깨끗해지는 효과가 있습니다.
- 이태영님, 신한은행 디지털 전략부 AI LAB - 기존의 텐서플로우를 활용했던 분들에게 바라볼 수 있는 관점의 전환점을 줄 수 있는 Mild Stone과 같은 책이다.
- 전태균님, 쎄트렉아이 - 케라스의 특징인 단순함, 확장성, 재사용성을 눈으로 쉽게 보여주기 위해 친절하게 정리된 내용이라 생각합니다.
- 유재준님, 카이스트 - 바로 적용해보고 싶지만 어디부터 시작할지 모를 때 최선의 선택입니다.