ReservoirPy (v0.3.12) ??
โค้ดที่ง่ายและยืดหยุ่นสำหรับสถาปัตยกรรม Reservoir Computing เช่น Echo State Networks (ESN)
ข่าวที่น่าตื่นเต้น! เราเพิ่งเปิดตัวเครื่องมือเบต้าใหม่ตามโมเดลภาษาขนาดใหญ่! คุณสามารถแชทกับ "ReservoirChat" ของเราและถามอะไรก็ได้เกี่ยวกับ Reservoir Computing หรือการเข้ารหัสอ่างเก็บน้ำ! - อย่าพลาด มีจำหน่ายในระยะเวลาจำกัด! ⏳ https://chat.reservoirpy.inria.fr
จากอ่างเก็บน้ำpy.nodes นำเข้าอ่างเก็บน้ำ, สันเขา, Inputdata = Input(input_dim=1)อ่างเก็บน้ำ = อ่างเก็บน้ำ(100, lr=0.3, sr=1.1)readout = Ridge(ridge=1e-6)esn = data >> อ่างเก็บน้ำ >> readoutforecast = esn.fit(X, y).run(อนุกรมเวลา)
ReservoirPy เป็นไลบรารี่ที่ใช้งานง่ายซึ่งใช้โมดูลทางวิทยาศาสตร์ของ Python โดยมี อินเทอร์เฟซที่ยืดหยุ่นเพื่อใช้สถาปัตยกรรม Reservoir Computing (RC) ที่มีประสิทธิภาพ โดยเน้นที่ Echo State Networks (ESN) โดยเฉพาะ คุณสมบัติขั้นสูงของ ReservoirPy ช่วยให้สามารถปรับปรุงประสิทธิภาพเวลาในการคำนวณบนแล็ปท็อปธรรมดาเมื่อเปรียบเทียบกับการใช้งาน Python ขั้นพื้นฐานด้วยชุดข้อมูลทุกขนาด
คุณสมบัติบางประการ ได้แก่: การฝึกอบรมออฟไลน์และออนไลน์ การใช้งานแบบขนาน การคำนวณเมทริกซ์แบบกระจาย การเริ่มต้นสเปกตรัมอย่างรวดเร็ว กฎการเรียนรู้ขั้นสูง (เช่น Intrinsic Plasticity ) ฯลฯ นอกจากนี้ยังทำให้สามารถ สร้างสถาปัตยกรรมที่ซับซ้อนได้อย่างง่ายดายด้วยแหล่งสำรองหลายแห่ง (เช่น แหล่งเก็บน้ำลึก ) การอ่านข้อมูลและ ลูปป้อนกลับที่ซับซ้อน นอกจากนี้ยังมีเครื่องมือกราฟิกเพื่อ ให้สำรวจไฮเปอร์พารามิเตอร์ได้อย่างง่ายดาย ด้วยความช่วยเหลือของไลบรารี Hyperopt สุดท้ายนี้ประกอบด้วยบทช่วยสอนหลายบทเกี่ยวกับสถาปัตยกรรมที่แปลกใหม่และตัวอย่างการทำซ้ำเอกสารทางวิทยาศาสตร์
ไลบรารีนี้ใช้งานได้กับ Python 3.8 และสูงกว่า
ติดตามการอัพเดต @reservoirpy และข่าวออกใหม่บน Twitter
ดูเอกสารอย่างเป็นทางการของ ReservoirPy เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับคุณสมบัติหลักของ ReservoirPy, API และกระบวนการติดตั้ง หรือคุณสามารถเข้าถึงคู่มือผู้ใช้ได้โดยตรงพร้อมบทช่วยสอน
pip ติดตั้งอ่างเก็บน้ำ
(ดูด้านล่างสำหรับตัวเลือกการติดตั้งขั้นสูงเพิ่มเติม)
ขั้นตอนที่ 1: โหลดชุดข้อมูล
ReservoirPy มาพร้อมกับตัวสร้างข้อมูลที่มีประโยชน์ซึ่งสามารถสร้างอนุกรมเวลาสังเคราะห์สำหรับงานที่รู้จักกันดี เช่น การพยากรณ์อนุกรมเวลา Mackey-Glass
จากอ่างเก็บน้ำpy.datasets นำเข้า mackey_glassX = mackey_glass(n_timesteps=2000)
ขั้นตอนที่ 2: สร้างเครือข่าย Echo State...
...หรือโมเดลใดๆ ที่คุณต้องการใช้เพื่อแก้ปัญหางานของคุณ ในกรณีการใช้งานที่เรียบง่ายนี้ เราจะลองใช้ Echo State Networks (ESN) ซึ่งเป็นหนึ่งในสถาปัตยกรรมขั้นต่ำสุดของเครื่อง Reservoir Computing
ESN สร้างขึ้นจาก แหล่งเก็บข้อมูล ซึ่งเป็นเครือข่ายที่เกิดซ้ำแบบสุ่มที่ใช้ในการเข้ารหัสอินพุตของเราในพื้นที่มิติสูง (ไม่ใช่เชิงเส้น) และ การอ่านข้อมูล ซึ่งเป็นเลเยอร์เซลล์ประสาทฟีดไปข้างหน้าอย่างง่ายที่มี หน้าที่อ่าน เอาท์พุตที่ต้องการ จากการเปิดใช้งานอ่างเก็บน้ำ
จากอ่างเก็บน้ำ py.nodes นำเข้าอ่างเก็บน้ำ Ridgereservoir = อ่างเก็บน้ำ (หน่วย = 100, lr = 0.3, sr = 1.25) readout = Ridge (output_dim = 1, ridge = 1e-5)
เราได้รับแหล่งกักเก็บที่มีเซลล์ประสาท 100 เซลล์ รัศมีสเปกตรัม 1.25 และ อัตราการรั่วไหล 0.3 (คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับไฮเปอร์พารามิเตอร์เหล่านี้ได้โดยผ่านบทช่วยสอน ทำความเข้าใจและเพิ่มประสิทธิภาพไฮเปอร์พารามิเตอร์) ในที่นี้ ชั้นการอ่านข้อมูลของเราเป็นเพียงหน่วยเดียวที่เราจะได้รับการเชื่อมต่อจาก (ทุกหน่วย) อ่างเก็บน้ำ โปรดทราบว่ามีการฝึกอบรมเฉพาะการเชื่อมต่อเลเยอร์การอ่านข้อมูลเท่านั้น นี่เป็นหนึ่งในรากฐานสำคัญของเทคนิค Reservoir Computing ทั้งหมด ในกรณีของเรา เราจะฝึกการเชื่อมต่อเหล่านี้โดยใช้การถดถอยเชิงเส้น โดยมีค่าสัมประสิทธิ์การทำให้เป็นมาตรฐานอยู่ที่ 10 -5
ตอนนี้ เรามาเชื่อมต่อทุกอย่างโดยใช้โอเปอเรเตอร์ >>
esn = อ่างเก็บน้ำ >> การอ่านข้อมูล
แค่นั้นแหละ! ขั้นตอนถัดไป: ปรับน้ำหนักการอ่านข้อมูลให้พอดีเพื่อทำงานที่เราต้องการ เราจะฝึกอบรม ESN เพื่อคาดการณ์อนุกรมเวลาของเราล่วงหน้าหนึ่งก้าว
ขั้นตอนที่ 3: ติดตั้งและเรียกใช้ ESN
เราฝึก ESN ของเราใน 500 ก้าวแรกของอนุกรมเวลา โดยมี 100 ขั้นตอนที่ใช้ในการอุ่นเครื่องในสถานะอ่างเก็บน้ำ
esn.fit(X[:500], X[1:501], วอร์มอัพ=100)
ESN ของเราได้รับการฝึกอบรมและพร้อมใช้งานแล้ว เรามารันมันกับช่วงเวลาที่เหลือ:
การทำนาย = esn.run(X[501:-1])
ทางลัด การดำเนินการทั้งสองสามารถทำได้ในบรรทัดเดียว!
การคาดคะเน = esn.fit(X[:500], X[1:501]).run(X[501:-1])
ตอนนี้เรามาประเมินประสิทธิภาพของมันกันดีกว่า
ขั้นตอนที่ 4: ประเมิน ESN
จากอ่างเก็บน้ำpy.observables นำเข้า rmse, rsquareprint ("RMSE:", rmse (X [502:], การคาดการณ์), "คะแนน R ^ 2:", rsquare (X [502:], การคาดการณ์))
เรียกใช้และวิเคราะห์ไฟล์แบบง่ายนี้ (ในโฟลเดอร์ "บทช่วยสอน/ตัวอย่างแบบง่ายด้วย Mackey-Glass") เพื่อดูตัวอย่างที่สมบูรณ์ของการทำนายอนุกรมเวลาด้วย ESN:
simple_example_MackeyGlass.py (ใช้คลาส ESN)
หลาม simple_example_MackeyGlass.py
หากคุณมีปัญหาในการทดสอบตัวอย่าง โปรดดูข้อกำหนดแพ็คเกจเพิ่มเติมใน ReadTheDocs
หากต้องการติดตั้ง ให้ใช้คำสั่งใดคำสั่งหนึ่งต่อไปนี้:
pip ติดตั้งอ่างเก็บน้ำ
หรือ
pip ติดตั้งอ่างเก็บน้ำ py==0.3.12
หากคุณต้องการเรียกใช้ Python Notebooks ของ โฟลเดอร์บทช่วย สอน ให้ติดตั้งแพ็คเกจในไฟล์ข้อกำหนด (คำเตือน: สิ่งนี้อาจดาวน์เกรดเวอร์ชันของ Hyperopt ที่ติดตั้ง):
pip install -r บทช่วยสอน/requirements.txt
หากคุณต้องการใช้เวอร์ชันก่อนหน้า 0.2.4 คุณสามารถติดตั้ง ReservoirPy โดยใช้:
pip ติดตั้งอ่างเก็บน้ำ py==0.2.4
หากคุณต้องการเปิดใช้งาน hyper
แพ็คเกจและตัวช่วยเพิ่มประสิทธิภาพไฮเปอร์พารามิเตอร์โดยใช้ไฮเปอร์ออปต์ ให้ใช้:
pip ติดตั้งอ่างเก็บน้ำ [ไฮเปอร์]
ไปที่โฟลเดอร์บทช่วยสอนเพื่อดูบทช่วยสอนใน Jupyter Notebooks
ไปที่โฟลเดอร์ตัวอย่างเพื่อดูตัวอย่างและเอกสารที่มีรหัส รวมถึงใน Jupyter Notebooks
สามารถดูบทช่วยสอนสำหรับ ReservoirPy (v0.2) ได้ในเอกสารนี้ (Trouvain et al. 2020)
คุณสามารถดูบทแนะนำสั้นๆ เกี่ยวกับวิธีสำรวจไฮเปอร์พารามิเตอร์ด้วย ReservoirPy และ Hyperopt ได้ในบทความนี้ (Trouvain et al. 2020)
ดู คำแนะนำและวิธีการของเราในการสำรวจไฮเปอร์พารามิเตอร์ สำหรับแหล่งกักเก็บในรายงานล่าสุดของเรา: (Hinaut et al 2021) HTML HAL
บทช่วยสอนและสมุดบันทึก Jupyter สำหรับการสำรวจไฮเปอร์พารามิเตอร์
ข้อมูลเพิ่มเติมเกี่ยวกับ Hyperopt: เว็บไซต์อย่างเป็นทางการ
หากคุณต้องการให้รายงานของคุณปรากฏที่นี่ โปรดติดต่อเรา (ดูลิงก์ติดต่อด้านล่าง)
เลเกอร์ และคณะ (2024) การพัฒนาอ่างเก็บน้ำเพื่อการเรียนรู้การเสริมเมตาดาต้า รหัส PDF EvoAPPS 2024 HAL
Chaix-Eichel และคณะ (2022) จากการเรียนรู้โดยปริยายไปจนถึงการนำเสนอที่ชัดเจน arXiv พิมพ์ล่วงหน้า arXiv:2204.02484 arXiv PDF
Trouvain & Hinaut (2021) ตัวถอดรหัสเพลง Canary: การถ่ายโอนและการแบ่งส่วนโดยนัยด้วย ESN และ LTSM ICANN 2021 HTML HAL PDF
พาเกลียรินี และคณะ (2021) โมเดลมอเตอร์เซ็นเซอร์เสียงร้อง Canary พร้อมตัวถอดรหัส RNN และเครื่องกำเนิด GAN มิติต่ำ ICDL 2021. HTML
พาเกลียรินี และคณะ (2021) นกขมิ้นพูดว่าอะไร? GAN มิติต่ำนำไปใช้กับ Birdsong HAL พิมพ์ล่วงหน้า ฮาล PDF
โฆษณาใดสำหรับงานใหม่ของฉัน? คำแนะนำและการค้นหาแบบสุ่มสำหรับไฮเปอร์พารามิเตอร์ของ Echo State Networks ICANN 2021 HTML HAL PDF
หากคุณมีคำถามเกี่ยวกับห้องสมุด โปรดเปิดประเด็น หากคุณมีคำถามหรือข้อเสนอแนะทั่วไปเพิ่มเติม คุณสามารถติดต่อเราได้ทาง Twitter หรือทางอีเมลไปที่ xavier dot hinaut สัญลักษณ์บ้านอันโด่งดัง inria dot fr
Trouvain, N., Pedrelli, L., Dinh, TT, Hinaut, X. (2020) Reservoirpy: ห้องสมุดที่มีประสิทธิภาพและใช้งานง่ายในการออกแบบเครือข่ายรัฐสะท้อน ในการประชุมนานาชาติเรื่องโครงข่ายประสาทเทียม (หน้า 494-505) สปริงเกอร์, จาม. HTML HAL PDF
หากคุณใช้ ReservoirPy ในงานของคุณ โปรดอ้างอิงแพ็คเกจของเราโดยใช้รายการ bibtex ต่อไปนี้:
@incollection{Trouvain2020, doi = {10.1007/978-3-030-61616-8_40}, url = {https://doi.org/10.1007/978-3-030-61616-8_40}, year = {2020}, publisher = {Springer International Publishing}, pages = {494--505}, author = {Nathan Trouvain and Luca Pedrelli and Thanh Trung Dinh and Xavier Hinaut}, title = {{ReservoirPy}: An Efficient and User-Friendly Library to Design Echo State Networks}, booktitle = {Artificial Neural Networks and Machine Learning {textendash} {ICANN} 2020} }
แพ็คเกจนี้ได้รับการพัฒนาและสนับสนุนโดย Inria ที่ Bordeaux ประเทศฝรั่งเศส ในกลุ่ม Mnemosyne Inria เป็นสถาบันวิจัยฝรั่งเศสในสาขาวิทยาศาสตร์ดิจิทัล (วิทยาศาสตร์คอมพิวเตอร์ คณิตศาสตร์ หุ่นยนต์ ...)