ReservoirPy (v0.3.12) ??
ESN(Echo State Networks)과 같은 저수지 컴퓨팅 아키텍처를 위한 간단하고 유연한 코드입니다.
흥미로운 소식! 우리는 방금 대규모 언어 모델을 기반으로 한 새로운 베타 도구를 출시했습니다! "ReservoirChat"과 채팅을 통해 Reservoir Computing이나 Coding Reservoir에 대해 무엇이든 물어보세요! ? 놓치지 마세요. 한정된 기간 동안 이용 가능합니다! ⏳ https://chat.reservoirpy.inria.fr
Reservoirpy.nodes 가져오기 저수지, 능선, 입력 데이터 = 입력(input_dim=1)reservoir = 저수지(100, lr=0.3, sr=1.1)readout = 능선(ridge=1e-6)esn = 데이터 >> 저수지 >> readoutforecast = esn.fit(X, y).run(시계열)
ReservoirPy는 Python 과학 모듈을 기반으로 하는 간단하고 사용자 친화적인 라이브러리입니다. 특히 ESN( 에코 상태 네트워크 )에 중점을 두고 효율적인 RC(저수지 컴퓨팅) 아키텍처를 구현하기 위한 유연한 인터페이스를 제공합니다. ReservoirPy의 고급 기능을 사용하면 모든 크기의 데이터 세트를 사용하여 기본 Python 구현에 비해 간단한 노트북에서 계산 시간 효율성을 향상시킬 수 있습니다.
그 기능 중 일부는 다음과 같습니다: 오프라인 및 온라인 교육 , 병렬 구현 , 희소 행렬 계산 , 빠른 스펙트럼 초기화, 고급 학습 규칙 (예: 고유 가소성 ) 등. 또한 여러 저장소(예: 깊은 저장소 ) 가 있는 복잡한 아키텍처를 쉽게 생성 할 수 있습니다. 판독 및 복잡한 피드백 루프 . 또한 hyperopt 라이브러리의 도움으로 하이퍼파라미터를 쉽게 탐색할 수 있는 그래픽 도구가 포함되어 있습니다. 마지막으로 이국적인 건축물을 탐구하는 여러 튜토리얼과 과학 논문 복제 사례가 포함되어 있습니다.
이 라이브러리는 Python 3.8 이상에서 작동합니다.
Twitter에서 @reservoirpy 업데이트와 새 릴리스를 팔로우하세요.
ReservoirPy의 주요 기능, API 및 설치 프로세스에 대해 자세히 알아보려면 ReservoirPy 공식 문서를 참조하세요. 또는 튜토리얼이 포함된 사용자 가이드에 직접 액세스할 수 있습니다.
pip 설치 Reservoirpy 설치
(고급 설치 옵션은 아래를 참조하세요)
1단계: 데이터세트 로드
ReservoirPy에는 Mackey-Glass 시계열 예측과 같은 잘 알려진 작업을 위한 합성 시계열을 생성할 수 있는 편리한 데이터 생성기가 함께 제공됩니다.
Reservoirpy.datasets에서 import mackey_glassX = mackey_glass(n_timesteps=2000)
2단계: 에코 상태 네트워크 생성...
...또는 작업을 해결하는 데 사용하려는 모든 종류의 모델이 있습니다. 이 간단한 사용 사례에서는 저수지 컴퓨팅 시스템의 가장 최소 아키텍처 중 하나인 ESN(Echo State Network)을 사용해 보겠습니다.
ESN은 고차원 (비선형) 공간에서 입력을 인코딩하는 데 사용되는 무작위 순환 네트워크인 저장소와 원하는 출력을 읽는 역할을 담당하는 간단한 피드포워드 뉴런 계층인 판독 으로 구성됩니다. 저수지의 활성화로부터.
Reservoirpy.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 장착 및 실행
우리는 저수지 상태를 예열하는 데 사용되는 100단계를 포함하여 시계열의 처음 500개 시간 단계에 대해 ESN을 훈련합니다.
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 평가
Reservoirpy.observables에서 import rmse, rsquareprint("RMSE:", rmse(X[502:], 예측), "R^2 점수:", rsquare(X[502:], 예측))
ESN을 사용한 시계열 예측의 전체 예를 보려면 이 간단한 파일("tutorials/Simple 예제 with Mackey-Glass" 폴더에 있음)을 실행하고 분석하세요.
simple_example_MackeyGlass.py(ESN 클래스 사용)
파이썬 simple_example_MackeyGlass.py
일부 예제를 테스트하는 데 문제가 있는 경우 ReadTheDocs의 확장 패키지 요구 사항을 살펴보세요.
설치하려면 다음 명령 중 하나를 사용하십시오.
pip 설치 Reservoirpy 설치
또는
pip 설치 저수지py==0.3.12
tutorials 폴더의 Python Notebooks를 실행하려면 요구 사항 파일에 패키지를 설치하세요(경고: 설치된 hyperopt 버전이 다운그레이드될 수 있음).
pip install -r tutorials/requirements.txt
이전 버전 0.2.4를 사용하려면 다음을 사용하여 ReservoirPy를 설치할 수 있습니다.
pip 설치 저수지py==0.2.4
hyperopt를 사용하여 hyper
패키지와 해당 하이퍼 매개변수 최적화 도우미를 활성화하려면 다음을 사용하세요.
pip install Reservoirpy[하이퍼]
Jupyter Notebook의 튜토리얼을 보려면 튜토리얼 폴더로 이동하세요.
Jupyter 노트북에서도 코드가 포함된 예제와 문서를 보려면 예제 폴더로 이동하세요.
ReservoirPy(v0.2)에 대한 튜토리얼은 이 논문(Trouvain et al. 2020)에서 찾을 수 있습니다.
ReservoirPy 및 Hyperopt를 사용하여 하이퍼파라미터를 탐색하는 방법에 대한 빠른 튜토리얼은 이 문서에서 찾을 수 있습니다(Trouvain et al. 2020).
최근 논문(Hinaut et al 2021) HTML HAL에서 저수지에 대한 하이퍼파라미터를 탐색하기 위한 조언과 방법을 살펴보세요.
하이퍼 매개변수 탐색을 위한 튜토리얼 및 Jupyter Notebook
hyperopt에 대한 추가 정보: 공식 웹사이트
귀하의 논문이 여기에 게재되기를 원하시면 당사에 연락해 주십시오(아래 연락처 링크 참조).
Legeret al. (2024) 메타 강화 학습을 위한 진화하는 저장소. EvoAPPS 2024 HAL PDF 코드
Chaix-Eichelet al. (2022) 암시적 학습에서 명시적 표현까지. arXiv 사전 인쇄 arXiv:2204.02484. arXiv PDF
Trouvain & Hinaut(2021) Canary Song 디코더: ESN 및 LTSM을 사용한 변환 및 암시적 분할. ICANN 2021 HTML HAL PDF
Pagliariniet al. (2021) RNN 디코더 및 저차원 GAN 생성기를 갖춘 카나리아 음성 감각운동 모델. ICDL 2021. HTML
Pagliariniet al. (2021) 카나리아는 무엇을 말하나요? 새소리에 저차원 GAN을 적용했습니다. HAL 사전 인쇄. 할 PDF
내 새 작업에 대해 어떤 과대광고가 있나요? 에코 상태 네트워크 하이퍼파라미터에 대한 힌트 및 무작위 검색. 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: 에코 상태 네트워크를 설계하기 위한 효율적이고 사용자 친화적인 라이브러리입니다. 인공 신경망에 관한 국제 컨퍼런스(pp. 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} }
이 패키지는 Mnemosyne 그룹의 프랑스 보르도에 있는 Inria에서 개발하고 지원합니다. Inria는 디지털 과학(컴퓨터 과학, 수학, 로봇 공학 등) 분야의 프랑스 연구소입니다.