29 weergaven (laatste 30 dagen)
Toon oudere opmerkingen
Marco Pizzoli op 30 mei 2024 om 17:44
Becommentarieerd: Marco Pizzoli ongeveer 24 uur geleden
Geaccepteerd antwoord: Zeker
Hallo iedereen,
Ik heb een LSTM-neuraal netwerk getraind om te functioneren als een verminderd ordermodel (ROM) binnen een Simulink-model van een gekoppeld-fysica-systeem.In het bijzonder zal dit neurale netwerk interageren met de andere dynamische component (de andere fysiek van het gekoppelde probleem) in een gesloten-lusconfiguratie.Tijdens de simulatie zullen de uitgangen van het neurale netwerk zich voeden in het andere dynamische blok, en de ingangen uit dat blok zullen op zijn beurt worden teruggevoerd in het neurale netwerk.
De training van het neurale netwerk lijkt succesvol te zijn geweest.De prestaties in termen van voorspelling tegen testgegevens zijn bevredigend.Dit wordt zowel bereikt door Matlab's te gebruikenvoorspellenfunctie en door het netwerk te implementeren in Simulink met deStateful voorspellenblok.
Het netwerk lijkt echter niet in staat te stellen outputs in de eerste instanties adequaat te voorspellen.Daarom kwam ik tijdens het onderzoek naar de kwestie van het resetten van de LSTM -staat.
De referentiepagina(Stateful voorspellen)stelt voor om het stateful voorspellende blok in een hervestbaar subsysteem te plaatsen.Ik las de referentiepagina's op herstelbare systemen, maar kon niet achterhalen hoe het signaal te definiëren dat de reset voor mijn specifieke geval activeert.Als ik het concept in kwestie correct begrijp, moet de status van het LSTM -netwerk worden gereset aan het begin van de simulatie van mijn gekoppelde systeem.Dus de trigger moet optreden bij t = 0. Bedenk dat de simulatie van het systeem een algemene reactie moet bieden die erg lijkt op die van een gedempte harmonische oscillator.Dus een reactie die in de loop van de tijd harmonisch afneemt.
Kun je me helpen mijn twijfel in dit opzicht te verduidelijken?
Hartelijk dank voor uw steun bij voorbaat.
Marco
0 reacties Toon -2 oudere commentshide -2 oudere opmerkingen
Toon -2 oudere commentshide -2 oudere opmerkingen
Log in om commentaar te geven.
Log in om deze vraag te beantwoorden.
Geaccepteerd antwoord
Zeker op 17 juni 2024 om 7:30
Open in Matlab online
Ik markeer,
Om uw bezorgdheid over het resetten van de LSTM-status aan het begin van de simulatie in een gekoppeld-fysica-systeem in Simulink aan te pakken, kunt u het concept van een herbevestig subsysteem gebruiken met een specifieke trigger voor het resetten.Omdat u wilt dat de reset opkomt op (t = 0), kunt u de simulatietijd gebruiken als voorwaarde voor het reset -signaal.Hier is een algemene benadering om dit te bereiken:
Stap 1: Maak een resetsignaal
- Gebruik een MATLAB -functieblok: U kunt een eenvoudig MATLAB -functieblok maken dat een triggersignaal uitvoert op basis van de simulatietijd.De functie kan uitvoeren WAAR (of 1) wanneer de simulatietijd op of heel dicht bij nul ligt, en vals (of 0) anders.Hier is een voorbeeldfunctie die u in het MATLAB -functieblok kunt gebruiken:
functiereset = triggerreset (t)
% Activeert een reset aan het begin van de simulatie
alst <= 1e-5% Pas deze drempel aan indien nodig
reset = 1;
anders
reset = 0;
einde
einde
Sluit de simulatietijd aan op dit blok.U kunt de simulatietijd krijgen met een Klok Blokkeren van de Simulink/Sources -bibliotheek.
Stap 2: Implementeer het hervestbare subsysteem
- Maak een subsysteem:Inkapselen het stateful voorspellende blok in een subsysteem.U kunt dit doen door het blok te selecteren en vervolgens de Simulink -editoropties te gebruiken om een subsysteem uit de selectie te maken.
- Schakel resetten in: Maak het subsysteem hervestbaar door de blokparameters te configureren.Klik met de rechtermuisknop op het subsysteem, ga naar Blokparameters (subsysteem)en dan onder de Staten Tab, controleer de optie om het resetten van de status in te schakelen.Hierdoor kan het subsysteem luisteren naar een resetsignaal.
- Sluit het reset -signaal aan:Sluit de uitvoer van het MATLAB -functieblok aan dat u hebt gemaakt met de reset -ingang van het subsysteem.Dit zorgt ervoor dat het subsysteem de reset -trigger ontvangt aan het begin van de simulatie.
Stap 3: Configureer de simulatie
- Zorg ervoor dat uw simulatie is ingesteld om te beginnen met (t = 0).Dit is meestal de standaardinstelling, maar het is goed om te verifiëren.
- Als uw simulatie meerdere runs omvat of moet worden gereset met specifieke intervallen na de eerste start, moet u mogelijk de logica aanpassen in het MATLAB -functieblok om deze voorwaarden aan te passen.
Laatste opmerking
Deze opstelling zorgt ervoor dat uw LSTM -netwerk binnen het hervestbare subsysteem wordt gereset aan het begin van de simulatie, waarbij het eerste voorspellingsprobleem wordt aangepakt.Het gebruik van een kleine drempel ((1E-5) in het voorbeeld) in plaats van exact (0) helpt om mogelijke problemen te voorkomen met de initialisatiefase van de simulatie waarbij de exacte vergelijking met (0) mogelijk niet werkt zoals verwacht vanwege de simulatietijdwordt intern behandeld.
Vergeet niet dat de drempel en logica voor het reset -signaal kunnen worden aangepast op basis van de specifieke vereisten van uw simulatie, zoals het resetten op andere specifieke tijden of onder bepaalde omstandigheden buiten de eerste start.
1 reactie Show -1 oudere commentshide -1 oudere opmerkingen
Show -1 oudere commentshide -1 oudere opmerkingen
Marco Pizzoli ongeveer 24 uur geleden
Directe link naar deze opmerking
https://jmaab.mathworks.com/matlabcentral/answers/2124146-how-to-reset-the-state-of-a-lstm-neural-network-to-its-initial-state-in-simulink#comment_3189376
Heel erg bedankt voor je antwoord!Het heeft me veel geholpen :)
Log in om commentaar te geven.
Meer antwoorden (0)
Log in om deze vraag te beantwoorden.
Zie ook
Categorieën
AI, Data Science en StatisticsDeep Learning ToolboxVolgorde en numerieke functiegegevens workflows
Vind meer overVolgorde en numerieke functiegegevens workflowsinHelpcentrumEnBestandsuitwisseling
Tags
- Diep leren
- stateful voorspellen
- neuraal netwerk
- LSTM
- hervestbare subsystemen
- simulink
Community Treasure Hunt
Vind de schatten in Matlab Central en ontdek hoe de gemeenschap u kan helpen!
Begin met jagen!
Er is een fout opgetreden
Kan de actie niet voltooien vanwege wijzigingen in de pagina.Laad de pagina opnieuw om de bijgewerkte status te zien.
Selecteer een website
Kies een website om vertaalde inhoud te krijgen waar beschikbaar en zie lokale evenementen en aanbiedingen.Op basis van uw locatie raden we u aan te selecteren:.
U kunt ook een website selecteren in de volgende lijst
Amerika
- Latijns Amerika(Español)
- Canada(Engels)
- Verenigde Staten(Engels)
Europa
- België(Engels)
- Denemarken(Engels)
- Deutschland(Deutsch)
- Ruimte(Español)
- Finland(Engels)
- Frankrijk(Frans)
- Ierland(Engels)
- Italië(Italiaans)
- Luxemburg(Engels)
- Nederland(Engels)
- Noorwegen(Engels)
- Oostenrijk(Deutsch)
- Portugal(Engels)
- Zweden(Engels)
- Zwitserland
- Deutsch
- Engels
- Frans
- Verenigd Koninkrijk(Engels)
Neem contact op met uw plaatselijke kantoor