Effektive kontrolpolitikker gør det muligt for industrivirksomheder at øge deres rentabilitet ved at maksimere produktiviteten og samtidig reducere uplanlagt nedetid og energiforbrug. At finde optimale kontrolpolitikker er en kompleks opgave, fordi fysiske systemer, såsom kemiske reaktorer og vindmøller, ofte er svære at modellere, og fordi afdrift i procesdynamikken kan få ydeevnen til at forringes over tid. Offline forstærkningslæring er en kontrolstrategi, der giver industrivirksomheder mulighed for at bygge kontrolpolitikker udelukkende ud fra historiske data uden behov for en eksplicit procesmodel. Denne tilgang kræver ikke interaktion med processen direkte i en udforskningsfase, hvilket fjerner en af barriererne for indførelse af forstærkende læring i sikkerhedskritiske applikationer. I dette indlæg vil vi bygge en ende-til-ende-løsning for at finde optimale kontrolpolitikker ved kun at bruge historiske data på Amazon SageMaker ved hjælp af Ray's RLlib bibliotek. For at lære mere om forstærkningslæring, se Brug Reinforcement Learning med Amazon SageMaker.
Brug sager
Industriel kontrol involverer styring af komplekse systemer, såsom produktionslinjer, energinet og kemiske anlæg, for at sikre effektiv og pålidelig drift. Mange traditionelle kontrolstrategier er baseret på foruddefinerede regler og modeller, som ofte kræver manuel optimering. Det er standardpraksis i nogle brancher at overvåge ydeevnen og justere kontrolpolitikken, når f.eks. udstyr begynder at blive nedbrudt, eller miljøforholdene ændrer sig. Genindstilling kan tage uger og kan kræve indsprøjtning af eksterne excitationer i systemet for at registrere dets respons i en trial-and-error-tilgang.
Forstærkende læring er dukket op som et nyt paradigme inden for processtyring for at lære optimale kontrolpolitikker gennem interaktion med omgivelserne. Denne proces kræver opdeling af data i tre kategorier: 1) målinger, der er tilgængelige fra det fysiske system, 2) det sæt af handlinger, der kan udføres på systemet, og 3) en numerisk metrik (belønning) af udstyrets ydeevne. En politik trænes til at finde den handling, ved en given observation, der sandsynligvis vil give de højeste fremtidige belønninger.
I offline forstærkningslæring kan man træne en politik om historiske data, før de implementeres i produktion. Algoritmen trænet i dette blogindlæg hedder "Konservativ Q-læring" (CQL). CQL indeholder en "skuespiller"-model og en "kritiker"-model og er designet til konservativt at forudsige sin egen præstation efter at have foretaget en anbefalet handling. I dette indlæg demonstreres processen med et illustrativt problem med vognstangskontrol. Målet er at træne en agent til at balancere en stang på en vogn og samtidig flytte vognen mod en udpeget målplacering. Træningsproceduren bruger offlinedataene, hvilket giver agenten mulighed for at lære af allerede eksisterende information. Dette casestudie med vognstang demonstrerer træningsprocessen og dens effektivitet i potentielle applikationer fra den virkelige verden.
Løsningsoversigt
Løsningen præsenteret i dette indlæg automatiserer implementeringen af en end-to-end workflow til offline forstærkningslæring med historiske data. Følgende diagram beskriver den arkitektur, der bruges i denne arbejdsgang. Måledata produceres ved kanten af et stykke industrielt udstyr (her simuleret af en AWS Lambda fungere). Dataene lægges ind i en Amazon Kinesis Data Firehose, som gemmer det i Amazon Simple Storage Service (Amazon S3). Amazon S3 er en holdbar, effektiv og billig lagringsløsning, der giver dig mulighed for at servere store mængder data til en maskinlæringsproces.
AWS Lim katalogiserer dataene og gør dem forespørgbare ved hjælp af Amazonas Athena. Athena transformerer måledataene til en form, som en forstærkningsindlæringsalgoritme kan indtage og læsser dem derefter tilbage til Amazon S3. Amazon SageMaker indlæser disse data i et træningsjob og producerer en trænet model. SageMaker serverer derefter denne model i et SageMaker-slutpunkt. Det industrielle udstyr kan derefter forespørge på dette slutpunkt for at modtage handlingsanbefalinger.
I dette indlæg vil vi nedbryde arbejdsgangen i følgende trin:
- Formuler problemet. Beslut hvilke handlinger der kan udføres, hvilke målinger der skal laves anbefalinger baseret på, og bestem numerisk, hvor godt hver handling udførte.
- Forbered dataene. Transformér måletabellen til et format, som maskinlæringsalgoritmen kan bruge.
- Træn algoritmen på disse data.
- Vælg det bedste træningsløb baseret på træningsmålinger.
- Implementer modellen til et SageMaker-slutpunkt.
- Evaluer modellens ydeevne i produktionen.
Forudsætninger
For at gennemføre denne gennemgang skal du have en AWS-konto og en kommandolinjegrænseflade med AWS SAM installeret. Følg disse trin for at implementere AWS SAM-skabelonen til at køre denne arbejdsgang og generere træningsdata:
- Download kodelageret med kommandoen
- Skift mappe til repoen:
- Byg repoen:
- Implementer repoen
- Brug følgende kommandoer til at kalde et bash-script, som genererer mock-data ved hjælp af en AWS Lambda-funktion.
sudo yum install jq
cd utils
sh generate_mock_data.sh
Gennemgang af løsning
Formuler problem
Vores system i dette blogindlæg er en vogn med en stang balanceret på toppen. Systemet fungerer godt, når stangen står oprejst, og vognens position er tæt på målpositionen. I det forudgående trin genererede vi historiske data fra dette system.
Følgende tabel viser historiske data indsamlet fra systemet.
Vognens position | Vognens hastighed | Polvinkel | Pol vinkelhastighed | Målposition | Ydre kraft | Beløn | Tid |
0.53 | -0.79 | -0.08 | 0.16 | 0.50 | -0.04 | 11.5 | 5: 37: 54 PM |
0.51 | -0.82 | -0.07 | 0.17 | 0.50 | -0.04 | 11.9 | 5: 37: 55 PM |
0.50 | -0.84 | -0.07 | 0.18 | 0.50 | -0.03 | 12.2 | 5: 37: 56 PM |
0.48 | -0.85 | -0.07 | 0.18 | 0.50 | -0.03 | 10.5 | 5: 37: 57 PM |
0.46 | -0.87 | -0.06 | 0.19 | 0.50 | -0.03 | 10.3 | 5: 37: 58 PM |
Du kan forespørge om historiske systemoplysninger ved hjælp af Amazon Athena med følgende forespørgsel:
Tilstanden af dette system er defineret af vognens position, vognens hastighed, stangvinkel, stangvinkelhastighed og målposition. Den handling, der udføres ved hvert tidstrin, er den ydre kraft, der påføres vognen. Det simulerede miljø udsender en belønningsværdi, der er højere, når vognen er tættere på målpositionen, og stangen er mere oprejst.
Forbered data
For at præsentere systeminformationen for forstærkningslæringsmodellen skal du transformere den til JSON-objekter med nøgler, der kategoriserer værdier i tilstandskategorier (også kaldet observation), handling og belønning. Gem disse objekter i Amazon S3. Her er et eksempel på JSON-objekter produceret fra tidstrin i den foregående tabel.
{“obs”:[[0.53,-0.79,-0.08,0.16,0.5]], “action”:[[-0.04]], “reward”:[11.5] ,”next_obs”:[[0.51,-0.82,-0.07,0.17,0.5]]} |
{“obs”:[[0.51,-0.82,-0.07,0.17,0.5]], “action”:[[-0.04]], “reward”:[11.9], “next_obs”:[[0.50,-0.84,-0.07,0.18,0.5]]} |
{“obs”:[[0.50,-0.84,-0.07,0.18,0.5]], “action”:[[-0.03]], “reward”:[12.2], “next_obs”:[[0.48,-0.85,-0.07,0.18,0.5]]} |
AWS CloudFormation-stakken indeholder et output kaldet AthenaQueryToCreateJsonFormatedData
. Kør denne forespørgsel i Amazon Athena for at udføre transformationen og gemme JSON-objekterne i Amazon S3. Forstærkningslæringsalgoritmen bruger strukturen af disse JSON-objekter til at forstå, hvilke værdier der skal baseres anbefalinger på, og resultatet af at foretage handlinger i de historiske data.
Togagent
Nu kan vi starte et træningsjob for at producere en trænet handlingsanbefalingsmodel. Amazon SageMaker lader dig hurtigt starte flere træningsjob for at se, hvordan forskellige konfigurationer påvirker den resulterende trænede model. Kald Lambda-funktionen navngivet TuningJobLauncherFunction
at starte et hyperparameterjusteringsjob, der eksperimenterer med fire forskellige sæt hyperparametre, når man træner algoritmen.
Vælg det bedste træningsløb
For at finde ud af, hvilket af træningsjob, der producerede den bedste model, skal du undersøge tabskurver produceret under træning. CQL's kritikermodel estimerer skuespillerens præstation (kaldet en Q-værdi) efter at have foretaget en anbefalet handling. En del af kritikerens tabsfunktion inkluderer den tidsmæssige forskelsfejl. Denne metrik måler kritikerens Q-værdis nøjagtighed. Se efter træningsløb med en høj gennemsnitlig Q-værdi og en lav tidsforskelfejl. Dette papir, En arbejdsgang til offline modelfri robotforstærkningslæring, detaljer om, hvordan du vælger det bedste træningsløb. Kodelageret har en fil, /utils/investigate_training.py
, der skaber en plottet html-figur, der beskriver det seneste træningsjob. Kør denne fil, og brug outputtet til at vælge det bedste træningsløb.
Vi kan bruge den gennemsnitlige Q-værdi til at forudsige den trænede models ydeevne. Q-værdierne trænes til konservativt at forudsige summen af diskonterede fremtidige belønningsværdier. For langvarige processer kan vi konvertere dette tal til et eksponentielt vægtet gennemsnit ved at gange Q-værdien med (1-"diskonteringsrente"). Det bedste træningsløb i dette sæt opnåede en gennemsnitlig Q-værdi på 539. Vores diskonteringsrente er 0.99, så modellen forudsiger mindst 5.39 gennemsnitlig belønning pr. tidstrin. Du kan sammenligne denne værdi med historisk systemydeevne for at få en indikation af, om den nye model vil overgå den historiske kontrolpolitik. I dette eksperiment var de historiske datas gennemsnitlige belønning pr. tidstrin 4.3, så CQL-modellen forudsiger 25 procent bedre ydeevne end systemet opnåede historisk.
Implementer model
Amazon SageMaker-slutpunkter giver dig mulighed for at betjene maskinlæringsmodeller på flere forskellige måder for at imødekomme en række forskellige brugssager. I dette indlæg vil vi bruge den serverløse endepunktstype, så vores endepunkt automatisk skalerer med efterspørgsel, og vi betaler kun for computerbrug, når endepunktet genererer en inferens. For at implementere et serverløst slutpunkt skal du inkludere et ProductionVariantServerlessConfig i produktionsvariant af SageMaker slutpunktskonfiguration. Følgende kodestykke viser, hvordan det serverløse slutpunkt i dette eksempel implementeres ved hjælp af Amazon SageMaker-softwareudviklingssættet til Python. Find eksempelkoden, der bruges til at implementere modellen på sagemaker-offline-forstærkning-læring-ray-cql.
De trænede modelfiler er placeret ved S3-modellens artefakter for hvert træningsløb. For at implementere maskinlæringsmodellen skal du finde modelfilerne for det bedste træningsløb og kalde Lambda-funktionen med navnet "ModelDeployerFunction
” med en hændelse, der indeholder disse modeldata. Lambda-funktionen vil lancere et SageMaker serverløst slutpunkt til at betjene den trænede model. Eksempelbegivenhed til brug, når du ringer til "ModelDeployerFunction
"
Evaluer trænet model ydeevne
Det er tid til at se, hvordan vores trænede model klarer sig i produktionen! For at kontrollere ydeevnen af den nye model skal du kalde Lambda-funktionen med navnet "RunPhysicsSimulationFunction
” med SageMaker-slutpunktets navn i begivenheden. Dette vil køre simuleringen ved hjælp af de handlinger, der anbefales af slutpunktet. Eksempelbegivenhed til brug, når du ringer til RunPhysicsSimulatorFunction
:
Brug følgende Athena-forespørgsel til at sammenligne ydeevnen af den trænede model med historisk systemydeevne.
Handlingskilde | Gennemsnitlig belønning pr. tidstrin |
trained_model |
10.8 |
historic_data |
4.3 |
Følgende animationer viser forskellen mellem en prøveepisode fra træningsdataene og en episode, hvor den trænede model blev brugt til at vælge, hvilken handling der skulle udføres. I animationerne er det blå felt vognen, den blå linje er stangen, og det grønne rektangel er målplaceringen. Den røde pil viser den kraft, der påføres vognen ved hvert tidstrin. Den røde pil i træningsdataene hopper en del frem og tilbage, fordi dataene blev genereret ved hjælp af 50 procent eksperthandlinger og 50 procent tilfældige handlinger. Den trænede model lærte en kontrolpolitik, der flytter vognen hurtigt til målpositionen, samtidig med at stabiliteten bevares, udelukkende ved at observere ikke-ekspert demonstrationer.
Ryd op
For at slette ressourcer, der bruges i denne arbejdsgang, skal du navigere til ressourcesektionen i Amazon CloudFormation-stakken og slette S3-buckets og IAM-rollerne. Slet derefter selve CloudFormation-stakken.
Konklusion
Offline forstærkningslæring kan hjælpe industrivirksomheder med at automatisere søgningen efter optimale politikker uden at gå på kompromis med sikkerheden ved at bruge historiske data. For at implementere denne tilgang i dine operationer, start med at identificere de målinger, der udgør et tilstandsbestemt system, de handlinger, du kan kontrollere, og målinger, der angiver den ønskede ydeevne. Derefter adgang dette GitHub -depot til implementering af en automatisk end-to-end-løsning ved hjælp af Ray og Amazon SageMaker.
Indlægget ridser bare overfladen af, hvad du kan gøre med Amazon SageMaker RL. Prøv det, og send os venligst feedback, enten i Amazon SageMaker diskussionsforum eller gennem dine sædvanlige AWS-kontakter.
Om forfatterne
Walt Mayfield er Solutions Architect hos AWS og hjælper energiselskaber med at operere mere sikkert og effektivt. Før han kom til AWS, arbejdede Walt som driftsingeniør for Hilcorp Energy Company. Han kan lide at have have og fluefiske i sin fritid.
Felipe Lopez er Senior Solutions Architect hos AWS med en koncentration inden for olie- og gasproduktion. Før han kom til AWS, arbejdede Felipe hos GE Digital og Schlumberger, hvor han fokuserede på modellering og optimeringsprodukter til industrielle applikationer.
Yingwei Yu er en anvendt videnskabsmand ved Generative AI Incubator, AWS. Han har erfaring med at arbejde med flere organisationer på tværs af brancher på forskellige proofs of concept inden for maskinlæring, herunder naturlig sprogbehandling, tidsserieanalyse og forudsigelig vedligeholdelse. I sin fritid nyder han at svømme, male, vandre og tilbringe tid med familie og venner.
Haozhu Wang er en forsker i Amazon Bedrock med fokus på at bygge Amazons Titan-fundamentmodeller. Tidligere arbejdede han i Amazon ML Solutions Lab som medansvarlig for Reinforcement Learning Vertical og hjalp kunder med at bygge avancerede ML-løsninger med den seneste forskning om forstærkningsindlæring, naturlig sprogbehandling og grafindlæring. Haozhu modtog sin ph.d. i elektro- og computerteknik fra University of Michigan.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk dig selv. Adgang her.
- PlatoAiStream. Web3 intelligens. Viden forstærket. Adgang her.
- PlatoESG. Automotive/elbiler, Kulstof, CleanTech, Energi, Miljø, Solenergi, Affaldshåndtering. Adgang her.
- PlatoHealth. Bioteknologiske og kliniske forsøgs intelligens. Adgang her.
- ChartPrime. Løft dit handelsspil med ChartPrime. Adgang her.
- BlockOffsets. Modernisering af miljømæssig offset-ejerskab. Adgang her.
- Kilde: https://aws.amazon.com/blogs/machine-learning/optimize-equipment-performance-with-historical-data-ray-and-amazon-sagemaker/
- :har
- :er
- :ikke
- :hvor
- $OP
- 07
- 08
- 1
- 10
- 100
- 11
- 12
- 13
- 14
- 16
- 17
- 25
- 32
- 39
- 50
- 51
- 54
- 7
- 8
- 84
- 9
- a
- Om
- adgang
- nøjagtighed
- opnået
- tværs
- Handling
- aktioner
- Derudover
- Vedtagelse
- fremskreden
- påvirke
- Efter
- Agent
- AI
- algoritme
- tillade
- tillader
- også
- Amazon
- Amazonas Athena
- Amazon ML Solutions Lab
- Amazon SageMaker
- Amazon Web Services
- an
- analyse
- ,
- Vinkelforskydning
- animationer
- applikationer
- anvendt
- tilgang
- arkitektur
- ER
- AS
- At
- automatisere
- automater
- Automatisk Ur
- automatisk
- til rådighed
- gennemsnit
- AWS
- AWS CloudFormation
- AWS Lambda
- tilbage
- Balance
- barrierer
- bund
- baseret
- bash
- BE
- fordi
- før
- BEDSTE
- Bedre
- mellem
- Bit
- Blog
- Blå
- Boks
- Pause
- Breaking
- bygge
- Bygning
- by
- ringe
- kaldet
- ringer
- CAN
- tilfælde
- casestudie
- tilfælde
- kataloger
- kategorier
- Årsag
- lave om
- kontrollere
- kemikalie
- Luk
- tættere
- kode
- Virksomheder
- selskab
- sammenligne
- fuldføre
- komplekse
- at gå på kompromis
- Compute
- computer
- Computer Engineering
- koncentration
- Konceptet
- betingelser
- konservativ
- forbruge
- forbrug
- kontakter
- indeholder
- kontrol
- konvertere
- skaber
- Critic
- Kunder
- data
- beslutte
- definerede
- Efterspørgsel
- demonstreret
- demonstrerer
- indsætte
- indsat
- implementering
- implementering
- udpeget
- konstrueret
- ønskes
- detaljer
- Bestem
- Udvikling
- forskel
- forskellige
- digital
- direkte
- Rabat
- diskonteret
- diskussion
- do
- gør
- gør
- ned
- nedetid
- i løbet af
- dynamik
- hver
- Edge
- effektivitet
- effektiv
- effektivt
- enten
- opstået
- muliggøre
- ende til ende
- Endpoint
- energi
- Energiforbrug
- ingeniør
- Engineering
- sikre
- helt
- Miljø
- miljømæssige
- episode
- udstyr
- fejl
- skøn
- begivenhed
- undersøge
- eksempel
- erfaring
- eksperiment
- eksperimenter
- ekspert
- udforskning
- eksponentielt
- ekstern
- familie
- tilbagemeldinger
- Figur
- File (Felt)
- Filer
- Finde
- finde
- Fisk
- fokuserede
- fokusering
- følger
- efter
- Til
- Tving
- formular
- format
- frem
- Foundation
- fire
- venner
- fra
- funktion
- fremtiden
- Have
- GAS
- indsamlede
- ge
- generere
- genereret
- genererer
- generere
- generative
- Generativ AI
- gif
- GitHub
- Giv
- given
- mål
- graf
- Grøn
- gruppe
- Hård Ost
- Have
- he
- hjælpe
- hjulpet
- hjælper
- link.
- Høj
- højere
- højeste
- hans
- historisk
- historisk
- Hvordan
- How To
- HTML
- HTTPS
- Tuning af hyperparameter
- identificere
- if
- gennemføre
- implementering
- in
- omfatter
- omfatter
- Herunder
- Forøg
- inkubator
- angiver
- tegn
- industrielle
- industrier
- oplysninger
- installere
- interaktion
- interaktion
- grænseflade
- ind
- IT
- ITS
- selv
- Job
- Karriere
- sammenføjning
- jpg
- json
- spring
- lige
- nøgler
- lab
- Sprog
- stor
- seneste
- lancere
- LÆR
- lærte
- læring
- mindst
- lad
- Lets
- Bibliotek
- Sandsynlig
- synes godt om
- GRÆNSE
- Line (linje)
- linjer
- belastninger
- placeret
- placering
- Se
- off
- Lav
- lave omkostninger
- maskine
- machine learning
- Vedligeholdelse
- vedligeholdelse
- lave
- maerker
- ledelse
- manuel
- Produktion
- mange
- maksimere
- Kan..
- betyde
- måling
- målinger
- foranstaltninger
- Mød
- metrisk
- Metrics
- Michigan
- ML
- model
- modellering
- modeller
- Overvåg
- mere
- bevæger sig
- flytning
- flere
- multiplicere
- navn
- Som hedder
- Natural
- Natural Language Processing
- Naviger
- Behov
- Ny
- nummer
- objekter
- of
- offline
- tit
- Olie
- on
- ONE
- kun
- betjene
- drift
- Produktion
- optimal
- optimering
- Optimer
- or
- ordrer
- organisationer
- vores
- Resultat
- udkonkurrerer
- output
- i løbet af
- egen
- maleri
- Papir
- paradigme
- del
- Betal
- per
- procent
- Udfør
- ydeevne
- udføres
- udfører
- phd
- fysisk
- pick
- stykke
- Planter
- plato
- Platon Data Intelligence
- PlatoData
- Vær venlig
- politikker
- politik
- position
- Indlæg
- potentiale
- praksis
- forudsige
- forudsige
- forudsigelse
- præsentere
- forelagt
- tidligere
- tidligere
- Forud
- Problem
- procedure
- behandle
- Processer
- forarbejdning
- producere
- produceret
- producerer
- produktion
- produktivitet
- Produkter
- rentabilitet
- beviser
- sætte
- Python
- hurtigt
- tilfældig
- Sats
- RAY
- virkelige verden
- modtage
- modtaget
- Anbefaling
- anbefalinger
- anbefales
- optage
- Rød
- reducere
- pålidelig
- Repository
- kræver
- Kræver
- forskning
- Ressourcer
- svar
- resulterer
- Resultater
- Beløn
- Belønninger
- roller
- regler
- Kør
- løber
- sikkert
- Sikkerhed
- sagemaker
- Sam
- skalaer
- Videnskabsmand
- script
- Søg
- Sektion
- se
- send
- senior
- Series
- tjener
- Serverless
- tjener
- Tjenester
- sæt
- sæt
- flere
- Vis
- Shows
- Simpelt
- simulation
- samtidigt
- uddrag
- So
- Software
- softwareudvikling
- softwareudviklingssæt
- løsninger
- Løsninger
- nogle
- udgifterne
- Stabilitet
- stable
- Stage
- standard
- starte
- starter
- Tilstand
- Trin
- Steps
- opbevaring
- butik
- forhandler
- strategier
- Strategi
- struktur
- Studere
- sådan
- overflade
- systemet
- Systemer
- bord
- Tag
- taget
- tager
- Opgaver
- skabelon
- end
- at
- Staten
- deres
- derefter
- Disse
- denne
- tre
- Gennem
- tid
- Tidsserier
- titan
- til
- top
- mod
- traditionelle
- Tog
- uddannet
- Kurser
- Transform
- Transformation
- transformationer
- sand
- prøv
- typen
- forstå
- universitet
- på
- us
- Brug
- brug
- anvendte
- bruger
- ved brug af
- værdi
- Værdier
- række
- forskellige
- VeloCity
- lodret
- mængder
- går igennem
- var
- måder
- we
- web
- webservices
- uger
- GODT
- Hvad
- hvornår
- som
- mens
- vilje
- blæst
- med
- uden
- arbejdede
- workflow
- arbejder
- Du
- Din
- zephyrnet