خزان باي (v0.3.12) ؟؟
كود بسيط ومرن لبنيات حوسبة الخزانات مثل Echo State Networks (ESN).
أخبار مثيرة! لقد أطلقنا للتو أداة تجريبية جديدة تعتمد على نموذج لغة كبير! يمكنك الدردشة مع "ReservoirChat" الخاص بنا والاستفسار عن أي شيء حول حوسبة الخزان أو ترميز الخزانات! ؟ لا تفوت الفرصة، فهي متاحة لفترة محدودة! ⏳ https://chat.reservoirpy.inria.fr
من Reservoirpy.nodes import Reservoir، Ridge، Inputdata = Input(input_dim=1)reservoir = Reservoir(100, lr=0.3, sr=1.1)readout = Ridge(ridge=1e-6)esn = data >> الخزان >> توقعات القراءة = esn.fit(X, y).run(السلاسل الزمنية)
ReservoirPy هي مكتبة بسيطة سهلة الاستخدام تعتمد على وحدات Python العلمية. فهو يوفر واجهة مرنة لتنفيذ بنيات حوسبة الخزانات (RC) الفعالة مع التركيز بشكل خاص على شبكات حالة الصدى (ESN). تسمح الميزات المتقدمة لـ ReservoirPy بتحسين كفاءة وقت الحساب على جهاز كمبيوتر محمول بسيط مقارنة بتطبيق Python الأساسي، مع مجموعات البيانات من أي حجم.
بعض ميزاته هي: التدريب دون الاتصال بالإنترنت أو عبر الإنترنت ، والتنفيذ المتوازي ، وحساب المصفوفة المتفرقة ، والتهيئة الطيفية السريعة، وقواعد التعلم المتقدمة (مثل اللدونة الجوهرية ) وما إلى ذلك. كما أنه يجعل من الممكن بسهولة إنشاء بنيات معقدة تحتوي على خزانات متعددة (مثل الخزانات العميقة )، القراءات، وحلقات ردود الفعل المعقدة . علاوة على ذلك، تم تضمين الأدوات الرسومية لاستكشاف المعلمات الفائقة بسهولة بمساعدة مكتبة Hyperopt . وأخيرًا، يتضمن العديد من البرامج التعليمية التي تستكشف البنى الغريبة وأمثلة على إعادة إنتاج الأوراق العلمية.
تعمل هذه المكتبة مع Python 3.8 والإصدارات الأحدث.
تابع تحديثات @reservoirpy والإصدارات الجديدة على Twitter.
راجع وثائق ReservoirPy الرسمية لمعرفة المزيد حول الميزات الرئيسية لـ ReservoirPy وواجهة برمجة التطبيقات (API) الخاصة به وعملية التثبيت. أو يمكنك الوصول مباشرة إلى دليل المستخدم من خلال البرامج التعليمية.
نقطة تثبيت Reserverpy
(انظر أدناه للحصول على خيارات التثبيت الأكثر تقدمًا)
الخطوة 1: تحميل مجموعة البيانات
يأتي ReservoirPy مزودًا بمولد بيانات مفيد قادر على إنشاء سلاسل زمنية اصطناعية للمهام المعروفة مثل التنبؤ بالسلاسل الزمنية لـ Mackey-Glass.
من Reserverpy.datasets import mackey_glassX = mackey_glass(n_timesteps=2000)
الخطوة 2: إنشاء شبكة حالة الصدى...
...أو أي نوع من النماذج ترغب في استخدامه لحل مهمتك. في حالة الاستخدام البسيطة هذه، سنجرب شبكات Echo State Networks (ESNs)، وهي واحدة من أبسط هندسة أجهزة حوسبة الخزانات.
يتكون ESN من خزان ، وهو شبكة متكررة عشوائية تستخدم لتشفير مدخلاتنا في مساحة عالية الأبعاد (غير خطية)، وقراءة ، وهي طبقة تغذية بسيطة من الخلايا العصبية المسؤولة عن قراءة المخرجات المطلوبة من تفعيل الخزان .
من Reservoir.nodes import Reservoir، Ridgereservoir = Reservoir(units=100, lr=0.3, sr=1.25)readout = Ridge(output_dim=1, ridge=1e-5)
حصلنا هنا على خزان يحتوي على 100 خلية عصبية ونصف قطر طيفي قدره 1.25 ومعدل تسرب قدره 0.3 (يمكنك معرفة المزيد عن هذه المعلمات الفائقة من خلال البرنامج التعليمي فهم المعلمات الفائقة وتحسينها). هنا، طبقة القراءة الخاصة بنا هي مجرد وحدة واحدة، حيث سنتلقى اتصالات من (جميع وحدات) الخزان. لاحظ أنه يتم تدريب اتصالات طبقة القراءة فقط. يعد هذا أحد حجر الزاوية في جميع تقنيات حوسبة الخزانات. في حالتنا، سوف نقوم بتدريب هذه الاتصالات باستخدام الانحدار الخطي، مع معامل انتظام قدره 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
من Reserverpy.observables import rmse, rsquareprint("RMSE:"، rmse(X[502:]، توقعات)، "R^2 Score:"، rsquare(X[502:]، توقعات))
قم بتشغيل هذا الملف البسيط وتحليله (في مجلد "البرامج التعليمية/الأمثلة البسيطة باستخدام Mackey-Glass") لرؤية مثال كامل للتنبؤ بالسلاسل الزمنية باستخدام ESNs:
simple_example_MackeyGlass.py (باستخدام فئة ESN)
بيثون simple_example_MackeyGlass.py
إذا كانت لديك بعض المشكلات في اختبار بعض الأمثلة، فقم بإلقاء نظرة على متطلبات الحزم الموسعة في ReadTheDocs.
لتثبيته استخدم أحد الأوامر التالية:
نقطة تثبيت Reserverpy
أو
نقطة تثبيت الخزان ==0.3.12
إذا كنت تريد تشغيل دفاتر Python الخاصة بمجلد البرامج التعليمية ، فقم بتثبيت الحزم في ملف المتطلبات (تحذير: قد يؤدي هذا إلى تقليل إصدار Hyperopt المثبت):
دروس تثبيت النقطة -r/requirements.txt
إذا كنت تريد استخدام الإصدار السابق 0.2.4، فيمكنك تثبيت ReservoirPy باستخدام:
نقطة تثبيت الخزان == 0.2.4
إذا كنت تريد تمكين الحزمة hyper
ومساعديها في تحسين المعلمات الفائقة باستخدام Hyperopt، فاستخدم:
نقطة تثبيت الخزان[فرط]
انتقل إلى مجلد البرنامج التعليمي للحصول على البرامج التعليمية في Jupyter Notebooks.
انتقل إلى مجلد الأمثلة للحصول على الأمثلة والأبحاث التي تحتوي على رموز، وكذلك في Jupyter Notebooks.
يمكن العثور على البرنامج التعليمي لـ ReservoirPy (الإصدار 0.2) في هذه الورقة (Trouvain et al. 2020).
يمكن العثور على برنامج تعليمي سريع حول كيفية استكشاف المعلمات الفائقة باستخدام ReservoirPy وHyperopt في هذه الورقة (Trouvain et al. 2020).
ألقِ نظرة على نصائحنا وطريقتنا لاستكشاف المعلمات الفائقة للخزانات في ورقتنا الحديثة: (Hinaut et al 2021) HTML HAL
البرنامج التعليمي وJupyter Notebook لاستكشاف المعلمات الفائقة
مزيد من المعلومات حول Hyperopt: الموقع الرسمي
إذا كنت تريد أن تظهر ورقتك هنا، يرجى الاتصال بنا (انظر رابط الاتصال أدناه).
ليجر وآخرون. (2024) الخزانات المتطورة للتعلم المعزز. EvoAPPS 2024 HAL كود PDF
تشايكس-إيشيل وآخرون. (2022) من التعلم الضمني إلى التمثيلات الصريحة. arXiv الطباعة المسبقة arXiv:2204.02484. أرشيف بي دي إف
Trouvain & Hinaut (2021) وحدة فك ترميز أغنية الكناري: التحويل والتجزئة الضمنية باستخدام ESNs وLTSMs. ICANN 2021 HTML HAL PDF
باجلياريني وآخرون. (2021) نموذج كناري صوتي حركي مع وحدة فك ترميز RNN ومولد GAN منخفض الأبعاد. الرخصة الدولية لقيادة الحاسب الآلي 2021.HTML
باجلياريني وآخرون. (2021) ماذا يقول الكناري؟ تم تطبيق GAN منخفض الأبعاد على Birdsong. طبعة هال. هال بي دي اف
ما الضجيج لمهمتي الجديدة؟ تلميحات وبحث عشوائي عن المعلمات الفائقة لشبكات حالة الصدى. ICANN 2021 HTML HAL PDF
إذا كان لديك سؤال بخصوص المكتبة، برجاء فتح مشكلة. إذا كان لديك أسئلة أو تعليقات أكثر عمومية، يمكنك الاتصال بنا على تويتر أو عبر البريد الإلكتروني إلى xavier dot hinaut the-famous-home-symbol inria dot fr.
Trouvain، N.، Pedrelli، L.، Dinh، TT، Hinaut، X. (2020) Reservoirpy: مكتبة فعالة وسهلة الاستخدام لتصميم شبكات حالة الصدى. في المؤتمر الدولي للشبكات العصبية الاصطناعية (ص 494-505). سبرينغر، تشام. إتش تي إم إل هال بي دي إف
إذا كنت تستخدم 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 في بوردو، فرنسا في مجموعة Mnemosyne. إنريا هو معهد أبحاث فرنسي في العلوم الرقمية (علوم الكمبيوتر، الرياضيات، الروبوتات، ...).