PyBrain - ภาพรวม

Pybrain เป็นไลบรารีโอเพ่นซอร์สสำหรับการเรียนรู้ของเครื่องที่ดำเนินการโดยใช้ python ห้องสมุดมีอัลกอริทึมการฝึกอบรมที่ใช้งานง่ายสำหรับเครือข่ายชุดข้อมูลผู้ฝึกสอนเพื่อฝึกอบรมและทดสอบเครือข่าย

คำจำกัดความของ Pybrain ตามเอกสารอย่างเป็นทางการมีดังนี้ -

PyBrain เป็นไลบรารีการเรียนรู้ของเครื่องแบบแยกส่วนสำหรับ Python เป้าหมายคือการนำเสนออัลกอริทึมที่ยืดหยุ่นใช้งานง่าย แต่ยังคงมีประสิทธิภาพสำหรับงานการเรียนรู้ของเครื่องและสภาพแวดล้อมที่กำหนดไว้ล่วงหน้าที่หลากหลายเพื่อทดสอบและเปรียบเทียบอัลกอริทึมของคุณ

PyBrain ย่อมาจาก Python-based Reinforcement Learning, Artificial Intelligence และ Neural Network Library ในความเป็นจริงเราคิดชื่อนี้ขึ้นมาก่อนและต่อมาได้สร้างวิศวกรรมย้อนกลับที่อธิบายได้ค่อนข้างชัดเจนนี้

คุณสมบัติของ Pybrain

ต่อไปนี้เป็นคุณสมบัติของ Pybrain -

เครือข่าย

เครือข่ายประกอบด้วยโมดูลและเชื่อมต่อโดยใช้การเชื่อมต่อ Pybrain รองรับเครือข่ายประสาทเช่น Feed-Forward Network, Recurrent Network เป็นต้น

feed-forward networkเป็นโครงข่ายประสาทที่ข้อมูลระหว่างโหนดเคลื่อนที่ไปในทิศทางไปข้างหน้าและจะไม่เดินทางย้อนกลับ เครือข่าย Feed Forward เป็นเครือข่ายแรกและง่ายที่สุดในบรรดาเครือข่ายที่มีอยู่ในเครือข่ายประสาทเทียม

ข้อมูลจะถูกส่งผ่านจากโหนดอินพุตถัดจากโหนดที่ซ่อนอยู่และต่อมาไปยังโหนดเอาต์พุต

Recurrent Networksคล้ายกับ Feed Forward Network ข้อแตกต่างเพียงอย่างเดียวคือต้องจำข้อมูลในแต่ละขั้นตอน ประวัติของแต่ละขั้นตอนจะต้องถูกบันทึกไว้

ชุดข้อมูล

ชุดข้อมูลคือข้อมูลที่จะให้เพื่อทดสอบตรวจสอบและฝึกอบรมบนเครือข่าย ประเภทของชุดข้อมูลที่จะใช้ขึ้นอยู่กับงานที่เราจะทำด้วย Machine Learning ชุดข้อมูลที่ใช้บ่อยที่สุดที่ Pybrain สนับสนุนคือSupervisedDataSet และ ClassificationDataSet.

SupervisedDataSet - ประกอบด้วยช่องของ input และ target. เป็นชุดข้อมูลรูปแบบที่ง่ายที่สุดและส่วนใหญ่ใช้สำหรับงานการเรียนรู้ภายใต้การดูแล

ClassificationDataSet- ส่วนใหญ่จะใช้เพื่อจัดการกับปัญหาการจำแนกประเภท ใช้เวลาในinput, targetฟิลด์และฟิลด์พิเศษที่เรียกว่า "คลาส" ซึ่งเป็นการสำรองข้อมูลอัตโนมัติของเป้าหมายที่กำหนด ตัวอย่างเช่นเอาต์พุตจะเป็น 1 หรือ 0 หรือเอาต์พุตจะถูกจัดกลุ่มพร้อมกับค่าตามอินพุตที่กำหนดกล่าวคือจะตกอยู่ในคลาสใดคลาสหนึ่ง

เทรนเนอร์

เมื่อเราสร้างเครือข่ายเช่นเครือข่ายประสาทเทียมเครือข่ายจะได้รับการฝึกอบรมตามข้อมูลการฝึกอบรมที่ให้ไว้ ตอนนี้เครือข่ายได้รับการฝึกฝนอย่างเหมาะสมหรือไม่นั้นขึ้นอยู่กับการคาดคะเนของข้อมูลทดสอบที่ทดสอบบนเครือข่ายนั้น แนวคิดที่สำคัญที่สุดใน Pybrain Training คือการใช้ BackpropTrainer และ TrainUntilConvergence

BackpropTrainer - เป็นผู้ฝึกสอนที่ฝึกพารามิเตอร์ของโมดูลตามชุดข้อมูลภายใต้การดูแลหรือ ClassificationDataSet (อาจเป็นลำดับต่อเนื่อง) โดย backpropagating ข้อผิดพลาด (ตามเวลา)

TrainUntilConvergence − ใช้เพื่อฝึกโมดูลบนชุดข้อมูลจนกว่าจะบรรจบกัน

เครื่องมือ

Pybrain มีโมดูลเครื่องมือที่สามารถช่วยในการสร้างเครือข่ายโดยการนำเข้าแพ็คเกจ: pybrain.tools.shortcuts.buildNetwork

การแสดงภาพ

ข้อมูลการทดสอบไม่สามารถมองเห็นได้โดยใช้ pybrain แต่ Pybrain สามารถทำงานร่วมกับเฟรมเวิร์กอื่น ๆ เช่น Mathplotlib, pyplot เพื่อแสดงภาพข้อมูล

ข้อดีของ Pybrain

ข้อดีของ Pybrain คือ -

  • Pybrain เป็นไลบรารีฟรีแบบโอเพนซอร์สเพื่อเรียนรู้ Machine Learning ถือเป็นการเริ่มต้นที่ดีสำหรับผู้มาใหม่ที่สนใจ Machine Learning

  • Pybrain ใช้ python เพื่อใช้งานและทำให้การพัฒนาเป็นไปอย่างรวดเร็วเมื่อเทียบกับภาษาเช่น Java / C ++

  • Pybrain ทำงานร่วมกับไลบรารี python อื่น ๆ ได้อย่างง่ายดายเพื่อแสดงภาพข้อมูล

  • Pybrain ให้การสนับสนุนเครือข่ายยอดนิยมเช่น Feed-Forward Network, Recurrent Networks, Neural Networks เป็นต้น

  • การทำงานกับ. csv เพื่อโหลดชุดข้อมูลนั้นง่ายมากใน Pybrain นอกจากนี้ยังอนุญาตให้ใช้ชุดข้อมูลจากไลบรารีอื่น

  • การฝึกอบรมและการทดสอบข้อมูลทำได้ง่ายโดยใช้ผู้ฝึกสอน Pybrain

ข้อ จำกัด ของ Pybrain

Pybrain ให้ความช่วยเหลือน้อยลงสำหรับปัญหาที่ต้องเผชิญ มีบางคำถามที่ยังไม่ได้รับคำตอบstackoverflow และใน Google Group.

เวิร์กโฟลว์ของ Pybrain

ตามเอกสารของ Pybrain ขั้นตอนการเรียนรู้ของเครื่องแสดงดังรูปต่อไปนี้ -

ในตอนเริ่มต้นเรามีข้อมูลดิบซึ่งหลังจากการประมวลผลล่วงหน้าสามารถใช้กับ Pybrain ได้

การไหลของ Pybrain เริ่มต้นด้วยชุดข้อมูลซึ่งแบ่งออกเป็นข้อมูลที่ฝึกฝนและทดสอบ

  • เครือข่ายถูกสร้างขึ้นและมอบชุดข้อมูลและเครือข่ายให้กับผู้ฝึกสอน

  • ผู้ฝึกสอนฝึกอบรมข้อมูลบนเครือข่ายและจำแนกผลลัพธ์เป็นข้อผิดพลาดที่ได้รับการฝึกอบรมและข้อผิดพลาดในการตรวจสอบความถูกต้องซึ่งสามารถมองเห็นได้

  • ข้อมูลที่ทดสอบสามารถตรวจสอบความถูกต้องเพื่อดูว่าผลลัพธ์ตรงกับข้อมูลที่ฝึกฝนหรือไม่

คำศัพท์

มีคำศัพท์สำคัญที่ต้องพิจารณาขณะทำงานกับ Pybrain สำหรับการเรียนรู้ของเครื่อง มีดังนี้ -

Total Error- หมายถึงข้อผิดพลาดที่แสดงหลังจากการฝึกอบรมเครือข่าย หากข้อผิดพลาดยังคงเปลี่ยนแปลงในการทำซ้ำทุกครั้งหมายความว่ายังต้องใช้เวลาในการชำระจนกว่าจะเริ่มแสดงข้อผิดพลาดคงที่ระหว่างการวนซ้ำ เมื่อเริ่มแสดงหมายเลขข้อผิดพลาดคงที่หมายความว่าเครือข่ายได้มาบรรจบกันและจะยังคงเหมือนเดิมไม่ว่าจะมีการฝึกอบรมเพิ่มเติมใด ๆ ก็ตาม

Trained data - เป็นข้อมูลที่ใช้ในการฝึกอบรมเครือข่าย Pybrain

Testing data - เป็นข้อมูลที่ใช้ทดสอบเครือข่าย Pybrain ที่ได้รับการฝึกฝน

Trainer- เมื่อเราสร้างเครือข่ายเช่นเครือข่ายประสาทเทียมเครือข่ายจะได้รับการฝึกอบรมตามข้อมูลการฝึกอบรมที่กำหนดให้ ตอนนี้เครือข่ายได้รับการฝึกฝนอย่างเหมาะสมหรือไม่นั้นขึ้นอยู่กับการคาดคะเนของข้อมูลทดสอบที่ทดสอบบนเครือข่ายนั้น แนวคิดที่สำคัญที่สุดใน Pybrain Training คือการใช้ BackpropTrainer และ TrainUntilConvergence

BackpropTrainer - เป็นผู้ฝึกสอนที่ฝึกพารามิเตอร์ของโมดูลตามชุดข้อมูลภายใต้การดูแลหรือ ClassificationDataSet (อาจเป็นลำดับต่อเนื่อง) โดย backpropagating ข้อผิดพลาด (ตามเวลา)

TrainUntilConvergence - ใช้เพื่อฝึกโมดูลบนชุดข้อมูลจนกว่าจะบรรจบกัน

Layers - เลเยอร์เป็นชุดของฟังก์ชันที่ใช้กับเลเยอร์ที่ซ่อนอยู่ของเครือข่าย

Connections- การเชื่อมต่อทำงานคล้ายกับเลเยอร์ ข้อแตกต่างเพียงอย่างเดียวคือมันจะเปลี่ยนข้อมูลจากโหนดหนึ่งไปยังอีกโหนดหนึ่งในเครือข่าย

Modules - โมดูลคือเครือข่ายที่ประกอบด้วยบัฟเฟอร์อินพุตและเอาต์พุต

Supervised Learning- ในกรณีนี้เรามีอินพุตและเอาต์พุตและเราสามารถใช้อัลกอริทึมเพื่อแมปอินพุตกับเอาต์พุตได้ อัลกอริทึมถูกสร้างขึ้นเพื่อเรียนรู้เกี่ยวกับข้อมูลการฝึกอบรมที่กำหนดและทำซ้ำและกระบวนการของการทำซ้ำจะหยุดลงเมื่ออัลกอริทึมคาดการณ์ข้อมูลที่ถูกต้อง

Unsupervised- ในกรณีนี้เรามีอินพุต แต่ไม่ทราบเอาต์พุต บทบาทของการเรียนรู้ที่ไม่มีผู้ดูแลคือการได้รับการฝึกฝนให้มากที่สุดเท่าที่จะเป็นไปได้ด้วยข้อมูลที่ให้มา