Thư viện và Khuôn khổ
Trong chương này, chúng ta sẽ liên hệ học sâu với các thư viện và khuôn khổ khác nhau.
Học sâu và Theano
Nếu chúng ta muốn bắt đầu mã hóa một mạng nơ-ron sâu, tốt hơn là chúng ta nên có ý tưởng về cách hoạt động của các khung công tác khác nhau như Theano, TensorFlow, Keras, PyTorch, v.v.
Theano là thư viện python cung cấp một bộ chức năng để xây dựng mạng lưới sâu đào tạo nhanh chóng trên máy của chúng tôi.
Theano được phát triển tại Đại học Montreal, Canada dưới sự lãnh đạo của Yoshua Bengio, một nhà tiên phong mạng sâu sắc.
Theano cho phép chúng tôi xác định và đánh giá các biểu thức toán học với các vectơ và ma trận là các dãy số hình chữ nhật.
Về mặt kỹ thuật, cả mạng nơron và dữ liệu đầu vào đều có thể được biểu diễn dưới dạng ma trận và tất cả các hoạt động mạng tiêu chuẩn có thể được định nghĩa lại thành các phép toán ma trận. Điều này rất quan trọng vì máy tính có thể thực hiện các phép toán ma trận rất nhanh.
Chúng ta có thể xử lý song song nhiều giá trị ma trận và nếu chúng ta xây dựng mạng nơ-ron với cấu trúc cơ bản này, chúng ta có thể sử dụng một máy duy nhất có GPU để đào tạo các lưới lớn trong một khoảng thời gian hợp lý.
Tuy nhiên, nếu chúng ta sử dụng Theano, chúng ta phải xây dựng mạng lưới sâu từ mặt đất. Thư viện không cung cấp đầy đủ chức năng để tạo một loại mạng sâu cụ thể.
Thay vào đó, chúng tôi phải viết mã mọi khía cạnh của mạng lưới sâu như mô hình, các lớp, kích hoạt, phương pháp đào tạo và bất kỳ phương pháp đặc biệt nào để ngừng trang bị quá mức.
Tuy nhiên, tin tốt là Theano cho phép xây dựng việc triển khai của chúng tôi trên một loạt các chức năng được vector hóa cung cấp cho chúng tôi một giải pháp tối ưu hóa cao.
Có nhiều thư viện khác mở rộng chức năng của Theano. TensorFlow và Keras có thể được sử dụng với Theano làm phụ trợ.
Học sâu với TensorFlow
Googles TensorFlow là một thư viện python. Thư viện này là một lựa chọn tuyệt vời để xây dựng các ứng dụng học sâu cấp thương mại.
TensorFlow phát triển từ thư viện DistBelief V2 khác nằm trong Dự án bộ não của Google. Thư viện này nhằm mục đích mở rộng tính di động của học máy để các mô hình nghiên cứu có thể được áp dụng cho các ứng dụng cấp thương mại.
Giống như thư viện Theano, TensorFlow dựa trên đồ thị tính toán trong đó một nút biểu thị dữ liệu liên tục hoặc hoạt động toán học và các cạnh đại diện cho luồng dữ liệu giữa các nút, là một mảng hoặc tensor đa chiều; do đó có tên là TensorFlow
Đầu ra từ một hoạt động hoặc một tập hợp các hoạt động được đưa vào làm đầu vào cho hoạt động tiếp theo.
Mặc dù TensorFlow được thiết kế cho mạng nơ-ron, nhưng nó hoạt động tốt cho các mạng khác, nơi tính toán có thể được mô hình hóa dưới dạng biểu đồ luồng dữ liệu.
TensorFlow cũng sử dụng một số tính năng từ Theano như loại bỏ biểu thức chung và biểu thức phụ, tự động phân biệt, các biến được chia sẻ và biểu tượng.
Các loại lưới sâu khác nhau có thể được xây dựng bằng cách sử dụng TensorFlow như lưới chập, Mã tự động, RNTN, RNN, RBM, DBM / MLP, v.v.
Tuy nhiên, không hỗ trợ cấu hình siêu tham số trong TensorFlow, đối với chức năng này, chúng ta có thể sử dụng Keras.
Học sâu và Keras
Keras là một thư viện Python dễ sử dụng mạnh mẽ để phát triển và đánh giá các mô hình học sâu.
Nó có một thiết kế tối giản cho phép chúng ta xây dựng một mạng lưới từng lớp; đào tạo nó và chạy nó.
Nó bao bọc các thư viện tính toán số hiệu quả Theano và TensorFlow và cho phép chúng tôi xác định và đào tạo các mô hình mạng nơ-ron trong một vài dòng mã ngắn.
Nó là một API mạng thần kinh cấp cao, giúp tận dụng rộng rãi học sâu và trí tuệ nhân tạo. Nó chạy trên một số thư viện cấp thấp hơn bao gồm TensorFlow, Theano, v.v. Mã Keras có tính di động; chúng ta có thể triển khai mạng nơ-ron trong Keras bằng cách sử dụng Theano hoặc TensorFlow làm mặt sau mà không có bất kỳ thay đổi nào về mã.