Tag Archives: Theano

Theano 1.0 and No More

몬트리올 대학 밀라MILA 연구소의 요수아 벤지오Yoshua Bengio 교수가 씨아노Theano 구글 유저 그룹에 씨아노 1.0이 몇 주내로 릴리즈된 다는 것과 그 이후에 더 이상 개발이 지속되지 않는다는 내용을 공개하였습니다. 뉴럴 네트워크와 딥러닝의 온라인 강좌로 유명한 neuralnetworksanddeeplearning.com은 씨아노 라이브러리로 예제가 만들어져 있는데 씨아노의 래퍼인 Lasagne와 함께 한 풀 인기가 줄어들 것 같습니다.

구글, 페이스북이 서포팅하는 텐서플로TensorFlow나 파이토치PyTorch 같은 프레임워크와 경쟁한다는 것은 쉽지 않은 일입니다. 그렇지만 씨아노의 개발 중단은 아쉬워할 수 밖에 없습니다. 하지만 씨아노가 딥러닝과 연구 커뮤니티에 미친 영향은 오랫동안 기억될 것 같습니다.

Thanks Theano!

(업데이트) 역시 Lasagne도 씨아노와 함께 역사속에 남을 것 같습니다. Lasagne의 백엔드를 다른 씨아노말고 다른 것으로 대체할 수도 있겠지마 다른 라이브러리들은 이미 고수준 API를 갖추고 있고 기존의 Lasagne의 API도 일관성을 유지하기 힘들 거라고 하네요. Lasagne의 개발자 Jan Schlüter가 구글 그룹에 남긴 포스트를 참고하세요.

Torchnet: dl framework wrapper

오늘 페이스북이 ICML 2016에 맞추어 토치(Torch)를 기반으로 한 딥러닝 프레임워크의 래퍼(wrapper)인 토치넷(Torchnet)을 깃허브 레파지토리페이퍼와 함께 공개했습니다. 토치넷은 루아로 작성되었으며 좀 더 쉽고 빠르게 뉴럴 네트워크를 구축하기 위해 머신러닝을 위한 코드와 로직을 재사용할 수 있도록 만들어 줍니다. 토치넷의 역할은 씨아노(Theano)의 블럭(blocks)이나 퓨얼(fuel)과 유사하다고 합니다. 재미있는 점은 토치넷의 깃허브 레파지토리가 ‘github.com/torch/’ 에 있지 않고 ‘github.com/torchnet/’ 에 위치한다는 점 입니다. 페이스북은 토치넷이 토치를 넘어서 자체적인 생태계를 구축하길 원하는 것 같습니다. 페이퍼에도 토치넷은 토치 뿐만 아니라 텐서플로우(TensorFlow)나 카페(Caffe)도 지원할 수 있다고 언급하고 있습니다.

딥러닝 패키지 비교

comparison_of_deep_learning_package

위키피디아에 딥러닝 패키지를 비교하는 페이지가 있어 소개해 드립니다. 현재 비교하고 있는 소프트웨어는 Caffe, CNTK, Deeplearning4j, MXNet, Neural Designer, OpenNN, SINGA, SystemML, TensorFlow, Theano, Torch 입니다. 이외에도 더 많은 패키지들이 있지만 점차 추가되지 않을까 합니다. 대표적인 툴들을 한 눈에 볼수 있어 참고자료로 사용하시면 좋을 것 같습니다.

Deep Learning with Python

deeplearningwithpython-400Keras는 텐서플로우와 Theano를 이용하여 딥러닝 모델을 구축할 수 있는 래퍼(Wrapper) 라이브러리 입니다. Keras, Theano, TensorFlow 를 이용한 딥러닝 책이 새로 출간되었습니다. 이 책의 저자는 machinelearningmastery.com 을 운영하고 있는 Jason Brownlee 입니다.

아마도 이 책은 온라인으로 출간된 ‘First Contact with TensorFlow‘ 다음으로 나온 두번째 텐서플로우 책이 아닌가 싶습니다.

170여 페이지로 구성되어 있으며 PDF 버전으로 구매하실 수 있습니다. 가격은 $37 입니다. 가능하면 조만간 구입하여 읽어보고 리뷰를 올리도록 하겠습니다. 아래는 책에 실린 14개의 레슨과 7개의 프로젝트 목록입니다.

Lessons

Lesson 01: Theano 라이브러리 소개
Lesson 02: TensorFlow 라이브러리 소개
Lesson 03: Keras 라이브러리 소개
Lesson 04: 멀티레이어 퍼셉트론 속성 코스
Lesson 05: Keras를 사용한 첫번째 뉴럴 네트워크
Lesson 06: 딥러닝 모델 성능 평가
Lesson 07: scikit-learn과 함께 Keras 모델 사용하기
Lesson 08: 모델 직렬화(Serialization)
Lesson 09: 훈련과정에서 최적 모델 찾기
Lesson 10: 훈련과정에서 모델 변화 이해하기
Lesson 11: 드롭아웃(Dropout) 정규화(Regularization)로 오퍼피팅 피하기
Lesson 12: 학습속도 스케줄링으로 성능 강화
Lesson 13: 콘볼루션(Convolution) 뉴럴 네트워크 속성 코스
Lesson 14: 이미지 증강(Augmentation)을 이용하여 모델 성능 향상

Projects

Project 01: 클라우드를 사용하여 저렴하게 GPU에서 대규모 모델 개발
Project 02: 꽃의 종(Species)에 대한 다중(Multiclass) 분류
Project 03: 수중음파 탐지 데이터를 이용한 이진 분류
Project 04: 보스톤 주택 가격 회귀분석
Project 05: 손글씨 숫자 인식
Project 06: 사진속의 물체 인식
Project 07: 영화 리뷰를 사용한 감성(Sentiment) 예측

Theano 0.8 릴리즈

GPU를 이용하여 인공신경망 알고리즘을 구현한 라이브러리인 Theano 의 0.8 버전이 릴리즈 되었습니다. 0.7 버전에서 거의 1년만의 업데이트 입니다. 아마도 알파고나 텐서플로우, 페이스북, 마이크로소프트 등 인공지능 분야의 환경이 빠르게 발전하고 있는 것이 Theano 개발에도 박차를 가하는 원동력이 될 것 같습니다.

자세한  업데이트 내용은 아래 릴리즈 노트를 참고하세요.

http://deeplearning.net/software/theano/NEWS.html

텐서플로우 vs 테아노(Theano) vs 토치(Torch)

텐서플로우가 나오면서 기존의 딥러닝 프레임워크인 테아노(Theano)와 토치(Torch)와 비교하는 글이 있어 소개합니다.

텐서플로우는 테아노와 유사하게 네트워크 기반의 심볼릭 그래프를 사용합니다. 파이썬과 C/C++ 모두 사용이 가능하지만 주력은 파이썬인 것 같습니다. 모바일과 서버 환경 모두를 고려하고 있습니다. 부가적으로 텐서보드(TensorBoard)를 통해 비주얼라이제이션을 지원합니다.  단점은 이전 포스트에서도 언급되었지만 성능상에서 다른 경쟁자들에 비해 다소 뒤떨어집니다.  그리고 테아노의 scan 같은 네트워크에 있는 심볼릭들을 루핑(loop)할 수 있는 기능은 없습니다.

테아노는 심볼릭 텐서 그래프를 사용하는 최초의 프레임워크로 토치 같은 프레임워크보다 더 유연합니다. 테아노를 기반으로 하는 고수준 프레임워크들도 존재하고 있고 텐서플로우나 토치에서는 지원되지 않는 윈도우즈 환경에서도 사용할 수 있습니다. 반면 텐서플로우에는 없는 컴파일 프로세스로 인한 오버헤드는 단점으로 꼽을 수 있습니다. 파이썬 모듈을 로딩하는 import theano 명령이 느리고 확장이나 개선이 어려운 복잡한 구조를 가지고 있습니다.

토치는 컨볼루션(합성곱 신경망) 부분에서 좋은 성능을 보이고 있고 여러가지 컨볼루션 알고리즘을 구현하고 있습니다. 페이스북에서 토치 기반의 머신러닝 패키지 몇가지를 공개했습니다. 인터페이스는 직관적이어서 좋지만 파이썬 인터페이스가 없습니다. ㅠ.ㅠ 텐서플로우나 토치와 같은 그래프 방식대신 레이어 구조입니다.