Danh sách Deep Learning Tools nổi bật

torch

torch

Deep Learning đang là chủ đề “hot” trong ngành Trí tuệ nhân tạo và Machine learning với nhiều thành tựu đạt được trong thời gian qua. Như chủ trương của blog này, từ thực nghiệm, quan sát và đánh giá ta sẽ có thêm kĩ năng làm việc cũng như thấu hiểu hơn về mô hình Deep Learning. Trong bài viết này, tôi mượn kết quả khảo sát của KDnuggets Software Poll (2015) để liệt kê ra danh sách Deep Learning Tools nổi bật nhất.

  • Pylearn2 (55 users)
  • Theano (50)
  • Caffe (29)
  • Torch (27)
  • Cuda-convnet (17)
  • Deeplearning4j (12)
  • Other Deep Learning Tools (106)

Danh sách trên, có một vài công cụ tôi chưa sử dụng qua. Tuy nhiên, tôi sẽ cố gắng tổng hợp lại thông tin dựa trên trang chủ mà họ cung cấp.

Theano & Pylearn2

Theano và Pylearn2 đều được phát triển bởi nhóm LISA do Yoshua Bengio dẫn dắt tại Đại học Montreal. Theano là một thư viện Python giúp bạn biểu diễn các công thức toán học dễ dàng. Nhờ vậy, bạn có thể cài đặt các thuật toán ngay từ đầu (from scratch). Bạn có thể bắt đầu lập trình Deep Learning với Theano với bài viết này.

Nếu bạn muốn sử dụng các thuật toán chuẩn, bạn có thể viết các plugin Pylearn2 như các biểu thức Theano. Theano sẽ optimize và stabilize các biểu thức này. Pylearn2 chứa đựng tất cả những gì cần thiết cho việc cài đặt multilayer perceptron/RBM/Stacked Denoting Autoencoder/ConvNets. Bạn có thể tiếp cận Pylearn2 đơn giản qua bài viết này.

Caffe

Caffe được phát triển bởi Berkeley Vision và Learning Center, được viết bởi Yangqing Jia và được dẫn dắt bởi Evan Shelhamer. Đây là một bản cài đặt khá dễ hiểu giúp cài đặt nhanh ConvNets bằng C++. Đánh giá hiệu suất ở trang chủ cho thấy, Caffe có thể xử lý hơn 60 triệu bức ảnh mỗi ngày chỉ với một card đồ họa NVIDIA K40 với AlexNet. Ta có thể sử dụng nó như một toolkit cho tác vụ phân lớp ảnh. Tuy nhiên, toolkit này khó áp dụng cho các bài toán bên xử lý văn bản và tiếng nói.

Torch & OverFeat

Torch được viết bằng ngôn ngữ Lua, được sử dụng tại NYU, Facebook AI lab và Google DeepMind. Công cụ này cung cấp một môi trường lập trình tương tự như MATLAB chuyên dùng cho các thuật toán machine learning. Tại sao họ lại sử dụng Lua/LuaJIT để phát triển thay vì Python? Trong bài báo về Torch7 họ cho rằng “Lua dễ dàng tích hợp với C. Do đó, chỉ trong vài giờ, bất kì thư viện C hay C++ nào cũng đều trở thành thư viện Lua.” Với Lua được viết thuần theo ANSI C, mã nguồn có thể dễ dàng được biên dịch cho bất kì đối tượng nào.

OverFeat là một feature extractor được huấn luyện trên tập dữ liệu ImageNet với Torch7 và dễ dàng để bắt đầu sử dụng.

Cuda

Không có gì đáng ngạc nhiên khi GPU đã và đang là công cụ thúc đẩy hiệu suất tính toán trong các nghiên cứu về deep learning ngày nay. Cuda-convnet/CuDNN hỗ trợ hầu hết các thư viện như Caffe, Torch hay Theano và được kích hoạt một cách dễ dàng.

Deeplearning4j

Không như các package được nêu ở trên, Deeplearning4j được thiết kế để sử dụng trong môi trường doanh nghiệp hơn là một công cụ để nghiên cứu thực nghiệm. Như tên gọi của thư viện này, DL4J là một deep learning framework được viết bằng Java, tập trung vào sản suất công nghiệp và hỗ trợ việc thương mại hóa sản phẩm phần mềm.

So sánh

Các công cụ trên so tài với nhau thông qua tốc độ xử lý và tính dễ cài đặt.

Các developer của Caffe  cho rằng “Caffe là thư viện có tốc độ tính toán convnet nhanh nhất hiện nay.”

Torch7 được chứng minh có tốc độ xử lý nhanh hơn Theano trong hầu hết các benchmark được trình bày trong bài báo này.

Soumith cũng cho chúng ta quan sát hiệu suất giữa các thư viện về convnet như bảng biểu bên dưới.

Original Library Class/Function Benchmarked Time (ms) forward (ms) backward (ms)
fbfft SpatialConvolutionCuFFT 256 101 155
cuda-convnet2 * ConvLayer 977 201 776
cuda-convnet** pylearn2.cuda_convnet 1077 312 765
CuDNN R2 * cudnn.SpatialConvolution 1019 269 750
Theano CorrMM 1225 407 818
Caffe ConvolutionLayer 1231 396 835
Torch-7 SpatialConvolutionMM 1265 418 877
DeepCL ConvolutionLayer 6280 2648 3632
cherry-picking**** best per layer 235 79 155

Trong bài báo về Caffe, ta cũng có thể quan sát được sự khác biệt về hiệu suất giữa các công cụ này.

caffe comparison

caffe comparison

Ngoài ra, bạn có thể tham khảo thêm các thảo luận trên reddit về “best framework for deep neural nets”. DL4J cũng có một phép so sánh giữa DL4J vs. Torch vs. Theano vs. Caffe trên trang web của họ.

Tham khảo thêm:

Advertisements

2 thoughts on “Danh sách Deep Learning Tools nổi bật

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s