PyBrain - Tổng quan
Pybrain là một thư viện mã nguồn mở dành cho Học máy được triển khai bằng python. Thư viện cung cấp cho bạn một số thuật toán đào tạo dễ sử dụng cho mạng, bộ dữ liệu, trình đào tạo để đào tạo và kiểm tra mạng.
Định nghĩa về Pybrain theo tài liệu chính thức của nó như sau:
PyBrain là một Thư viện học máy mô-đun cho Python. Mục tiêu của nó là cung cấp các thuật toán linh hoạt, dễ sử dụng nhưng vẫn mạnh mẽ cho các Nhiệm vụ học máy và nhiều môi trường được xác định trước để kiểm tra và so sánh các thuật toán của bạn.
PyBrain là viết tắt của Python-based Reinforcement Learning, Artificial Intelligence và Neural Network Library. Trên thực tế, chúng tôi đã nghĩ ra cái tên đầu tiên và sau đó được thiết kế ngược lại "Từ viết tắt" khá mô tả này.
Đặc điểm của Pybrain
Sau đây là các tính năng của Pybrain -
Mạng
Mạng bao gồm các mô-đun và chúng được kết nối bằng các kết nối. Pybrain hỗ trợ các mạng thần kinh như Mạng chuyển tiếp nguồn cấp dữ liệu, Mạng lặp lại, v.v.
feed-forward networklà một mạng nơ-ron, nơi thông tin giữa các nút di chuyển theo hướng thuận và sẽ không bao giờ đi lùi. Mạng chuyển tiếp nguồn cấp dữ liệu là mạng đầu tiên và đơn giản nhất trong số các mạng có sẵn trong mạng nơ-ron nhân tạo.
Thông tin được chuyển từ các nút đầu vào, bên cạnh các nút ẩn và sau đó đến nút đầu ra.
Recurrent Networkstương tự như Mạng chuyển tiếp nguồn cấp dữ liệu; sự khác biệt duy nhất là nó phải nhớ dữ liệu ở mỗi bước. Lịch sử của mỗi bước phải được lưu.
Bộ dữ liệu
Tập dữ liệu là dữ liệu được cung cấp để kiểm tra, xác nhận và đào tạo trên mạng. Loại tập dữ liệu được sử dụng tùy thuộc vào các tác vụ mà chúng ta sẽ thực hiện với Học máy. Các bộ dữ liệu được sử dụng phổ biến nhất mà Pybrain hỗ trợ làSupervisedDataSet và ClassificationDataSet.
SupervisedDataSet - Nó bao gồm các trường input và target. Đây là dạng đơn giản nhất của tập dữ liệu và chủ yếu được sử dụng cho các nhiệm vụ học tập có giám sát.
ClassificationDataSet- Nó chủ yếu được sử dụng để giải quyết các vấn đề phân loại. Nó mất tronginput, targetvà một trường bổ sung được gọi là "lớp" là một bản sao lưu tự động của các mục tiêu đã cho. Ví dụ: đầu ra sẽ là 1 hoặc 0 hoặc đầu ra sẽ được nhóm lại với nhau với các giá trị dựa trên đầu vào đã cho, tức là nó sẽ nằm trong một lớp cụ thể.
Huấn luyện viên
Khi chúng ta tạo một mạng, tức là mạng nơ-ron, nó sẽ được huấn luyện dựa trên dữ liệu huấn luyện được cung cấp cho nó. Bây giờ mạng có được đào tạo đúng cách hay không sẽ phụ thuộc vào dự đoán của dữ liệu thử nghiệm được kiểm tra trên mạng đó. Khái niệm quan trọng nhất trong Đào tạo Pybrain là sử dụng BackpropTrainer và TrainUntilConvergence.
BackpropTrainer - Đây là người huấn luyện đào tạo các tham số của mô-đun theo tập dữ liệu được giám sát hoặc phân loại (có khả năng tuần tự) bằng cách sao chép các lỗi (theo thời gian).
TrainUntilConvergence − Nó được sử dụng để huấn luyện mô-đun trên tập dữ liệu cho đến khi nó hội tụ.
Công cụ
Pybrain cung cấp các mô-đun công cụ có thể giúp xây dựng mạng bằng cách nhập gói: pybrain.tools.shortcuts.buildNetwork
Hình dung
Dữ liệu thử nghiệm không thể được trực quan hóa bằng pybrain. Nhưng Pybrain có thể làm việc với các framework khác như Mathplotlib, pyplot để trực quan hóa dữ liệu.
Ưu điểm của Pybrain
Ưu điểm của Pybrain là -
Pybrain là một thư viện mã nguồn mở miễn phí để học Máy học. Đó là một khởi đầu tốt cho bất kỳ người mới nào quan tâm đến Học máy.
Pybrain sử dụng python để triển khai nó và điều đó giúp nó phát triển nhanh so với các ngôn ngữ như Java / C ++.
Pybrain hoạt động dễ dàng với các thư viện khác của python để trực quan hóa dữ liệu.
Pybrain cung cấp hỗ trợ cho các mạng phổ biến như Mạng chuyển tiếp nguồn cấp dữ liệu, Mạng định kỳ, Mạng thần kinh, v.v.
Làm việc với .csv để tải tập dữ liệu rất dễ dàng trong Pybrain. Nó cũng cho phép sử dụng bộ dữ liệu từ một thư viện khác.
Dễ dàng đào tạo và kiểm tra dữ liệu bằng cách sử dụng trình đào tạo Pybrain.
Hạn chế của Pybrain
Pybrain cung cấp ít trợ giúp hơn cho bất kỳ vấn đề nào gặp phải. Có một số câu hỏi chưa được trả lời trênstackoverflow và hơn thế nữa Google Group.
Quy trình làm việc của Pybrain
Theo tài liệu của Pybrain, luồng học máy được thể hiện trong hình sau:
Lúc đầu, chúng tôi có dữ liệu thô mà sau khi xử lý trước có thể được sử dụng với Pybrain.
Luồng của Pybrain bắt đầu với các bộ dữ liệu được chia thành dữ liệu được đào tạo và kiểm tra.
mạng được tạo, tập dữ liệu và mạng được trao cho người huấn luyện.
người huấn luyện đào tạo dữ liệu trên mạng và phân loại kết quả đầu ra là lỗi được đào tạo và lỗi xác thực có thể được trực quan hóa.
dữ liệu đã kiểm tra có thể được xác thực để xem liệu đầu ra có khớp với dữ liệu được đào tạo hay không.
Thuật ngữ
Có những điều khoản quan trọng cần được xem xét khi làm việc với Pybrain về máy học. Chúng như sau:
Total Error- Nó đề cập đến lỗi hiển thị sau khi mạng được huấn luyện. Nếu lỗi tiếp tục thay đổi trên mỗi lần lặp, điều đó có nghĩa là nó vẫn cần thời gian để giải quyết, cho đến khi nó bắt đầu hiển thị lỗi liên tục giữa các lần lặp. Khi nó bắt đầu hiển thị các số lỗi không đổi, điều đó có nghĩa là mạng đã hội tụ và sẽ giữ nguyên bất kể có áp dụng bất kỳ khóa đào tạo bổ sung nào.
Trained data - Đó là dữ liệu được sử dụng để huấn luyện mạng Pybrain.
Testing data - Đây là dữ liệu được sử dụng để kiểm tra mạng Pybrain đã được đào tạo.
Trainer- Khi chúng ta tạo một mạng, tức là mạng nơ-ron, nó sẽ được huấn luyện dựa trên dữ liệu huấn luyện được cung cấp cho nó. Bây giờ mạng có được đào tạo đúng cách hay không sẽ phụ thuộc vào dự đoán của dữ liệu thử nghiệm được kiểm tra trên mạng đó. Khái niệm quan trọng nhất trong Đào tạo Pybrain là sử dụng BackpropTrainer và TrainUntilConvergence.
BackpropTrainer - Đây là người huấn luyện đào tạo các tham số của mô-đun theo tập dữ liệu được giám sát hoặc phân loại (có khả năng tuần tự) bằng cách sao chép các lỗi (theo thời gian).
TrainUntilConvergence - Nó được sử dụng để huấn luyện mô-đun trên tập dữ liệu cho đến khi nó hội tụ.
Layers - Lớp về cơ bản là một tập hợp các chức năng được sử dụng trên các lớp ẩn của mạng.
Connections- Một kết nối hoạt động tương tự như một lớp; một điểm khác biệt duy nhất là nó chuyển dữ liệu từ nút này sang nút khác trong mạng.
Modules - Mô-đun là mạng bao gồm bộ đệm đầu vào và đầu ra.
Supervised Learning- Trong trường hợp này, chúng ta có một đầu vào và đầu ra, và chúng ta có thể sử dụng một thuật toán để ánh xạ đầu vào với đầu ra. Thuật toán được thực hiện để học trên dữ liệu huấn luyện được cung cấp và lặp lại trên đó và quá trình lặp lại dừng lại khi thuật toán dự đoán dữ liệu chính xác.
Unsupervised- Trong trường hợp này, chúng ta có đầu vào nhưng không biết đầu ra. Vai trò của việc học không giám sát là được đào tạo càng nhiều càng tốt với dữ liệu được đưa ra.