Có phải TensorFlow là một Thư viện Máy học hoàn chỉnh?


10

Tôi chưa quen với TensorFlow và tôi cần hiểu các khả năng và thiếu sót của TensorFlow trước khi tôi có thể sử dụng nó. Tôi biết rằng đó là một khung học tập sâu, nhưng ngoài những thuật toán học máy khác mà chúng ta có thể sử dụng với dòng chảy căng. Ví dụ: chúng ta có thể sử dụng các SVM hoặc các khu rừng ngẫu nhiên bằng cách sử dụng TensorFlow không? (Tôi biết điều này nghe có vẻ điên rồ)

Nói tóm lại, tôi muốn biết Thuật toán học máy nào được hỗ trợ bởi TensorFlow. Nó chỉ là học sâu hay một cái gì đó nhiều hơn?


1
Máy vectơ hỗ trợ được triển khai trong TensorFlow: github.com/AidanGG/tensorflow_tmva/wiki/Support-Vector-Machine
Neil Slater

3
Chỉ cần chắc chắn: TensorFlow KHÔNG phải là một thư viện học tập sâu. Keras (có thể sử dụng TensorFlow như Backend) là một thư viện như vậy. TensorFlow là một cách thông minh để xử lý các tính toán nặng (sử dụng biểu đồ tính toán) để thực hiện chúng trên nhiều phần cứng (CPU, GPU và các phần mềm khác).
Robin

Câu trả lời:


15

Đây là một sự đơn giản hóa lớn, nhưng về cơ bản có hai loại thư viện máy học hiện nay:

  1. Học sâu (CNN, RNN, lưới kết nối đầy đủ, mô hình tuyến tính)
  2. Mọi thứ khác (SVM, GBM, Rừng ngẫu nhiên, Vịnh Naive, K-NN, v.v.)

Lý do cho điều này là việc học sâu chuyên sâu hơn về mặt tính toán so với các phương pháp đào tạo truyền thống khác, và do đó đòi hỏi sự chuyên môn hóa cao của thư viện (ví dụ: sử dụng GPU và khả năng phân tán). Nếu bạn đang sử dụng Python và đang tìm kiếm một gói có độ rộng lớn nhất của thuật toán, hãy thử scikit-learn. Trong thực tế, nếu bạn muốn sử dụng phương pháp học sâu và các phương pháp truyền thống hơn, bạn sẽ cần sử dụng nhiều hơn một thư viện. Không có gói "hoàn thành".


1
Là câu trả lời này vẫn còn hiệu lực hai năm sau? Có vẻ như TensorFlow đã phát triển rất nhiều kể từ đó.
john sullivan

7

TensorFlow đặc biệt được chỉ định để học sâu, tức là mạng lưới thần kinh với rất nhiều lớp và cấu trúc liên kết kỳ lạ.

Đó là nó. Nó là một thay thế cho Theano , nhưng được phát triển bởi Google.

Trong cả TensorFlow và Theano, bạn lập trình một cách tượng trưng. Bạn xác định mạng thần kinh của mình dưới dạng các phép toán đại số (các nút này được nhân với các trọng số này và sau đó một phép biến đổi phi tuyến tính được áp dụng, bla bla bla), được biểu thị bên trong bằng một biểu đồ (trong trường hợp của TensorFlow, nhưng không phải Theano, bạn thực sự có thể nhìn thấy để gỡ lỗi mạng thần kinh của bạn).

Sau đó, TensorFlow (hoặc Theano) cung cấp các thuật toán tối ưu hóa, công việc nặng nhọc để tìm ra trọng số nào giảm thiểu bất kỳ chức năng chi phí nào bạn muốn giảm thiểu. Nếu mạng nơ ron của bạn có nghĩa là để giải quyết vấn đề hồi quy, bạn có thể muốn giảm thiểu tổng số chênh lệch bình phương giữa các giá trị dự đoán và giá trị thực. TensorFlow thực hiện công việc nặng nề để phân biệt chức năng chi phí của bạn và tất cả những thứ đó.

EDIT: Quên đề cập rằng, tất nhiên, các SVM có thể được xem như là một loại mạng thần kinh , vì vậy rõ ràng, bạn có thể đào tạo một SVM bằng cách sử dụng các công cụ tối ưu hóa TensorFlow. Nhưng TensorFlow chỉ đi kèm với các trình tối ưu hóa dựa trên độ dốc, hơi ngu ngốc khi sử dụng để huấn luyện một SVM trừ khi bạn có nhiều quan sát, vì có các trình tối ưu hóa cụ thể cho SVM không bị kẹt trong cực tiểu cục bộ.

Ngoài ra, có lẽ đáng nói, rằng TensorFlow và Theano là các khung công tác cấp thấp. Hầu hết mọi người sử dụng các khung được xây dựng trên đầu trang của họ và dễ sử dụng hơn. Tôi sẽ không đề xuất ở đây, bởi vì điều đó sẽ tạo ra cuộc thảo luận của riêng nó. Xem ở đây gợi ý cho các gói dễ sử dụng.


1
Theano không được phát triển bởi Google. Theo trang web của họ , đó là chủ yếu được phát triển bởi các học giả. Tensorflow được phát triển bởi Google .
dantiston

1
@dantiston vâng, tôi biết. Tôi muốn nói "TensorFlow là một thay thế cho Theano và TensorFlow được phát triển bởi Google". Tôi đã đề cập đến TensorFlow, không phải Theano. Từ ngữ xấu, xin lỗi.
Ricardo Cruz

5

Ryan Zotti cung cấp một câu trả lời tốt, nhưng điều này đang thay đổi. Với việc bổ sung các phương pháp Random Forest , Gradient Boosting và Bayesian TensorFlow, nó đang đi theo hướng trở thành một giải pháp một cửa. Nhiều thuật toán truyền thống được liệt kê ở đây . TensorFlow có lời hứa đặc biệt, vì nó được thiết kế để mở rộng quy mô và hỗ trợ các hoạt động của GPU. Tuy nhiên, scikit learnlà cửa hàng một cửa truyền thống nơi bạn có thể tìm thấy nhiều thuật toán tiêu chuẩn. Chúng thường không phải là mới nhất và lớn nhất, vì vậy bạn cũng có thể muốn có các thư viện chuyên ngành.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.