Justera objektiva vikter för att återspegla deras relativa betydelse
Anteckning
Mål talar om för AI vad de ska lära sig. Mål kan ha flera mål som AI:n måste lära sig att balansera. Ett exempel:
- Bibehåll produktkvaliteten samtidigt som energianvändningen minimeras.
- Nå en målsmältningspunkt men håll temperaturen i en säker region och minimera energianvändningen.
- Flyga en drönare till en målpunkt utan att krascha samtidigt som bränsleförbrukningen minimeras.
- Håll temperaturen nära en måluppsättningspunkt i en kemisk process.
- Minimera den högsta elektriska belastningen genom att ladda ett batteri från elnätet vid inaktiva tider och dra ström från batteriet under tider med hög belastning.
Träningsutmaning
Ditt problem har flera motstridiga mål, och standardavvägningen som hittas av systemet är inte vad du vill.
Tänk dig till exempel ett problem med två minimeringsmål:
- Hämta värde A under 12
- Hämta värde B under 16
Bilden nedan visar två möjliga lösningar på problemet:
Två lösningar som gör olika kompromisser mellan två minimeringsmål. Genom att öka vikten på mål 1 avvägs en ökning av mål två med en minskning av mål 1.
Lösningen till vänster använder standardmålvikter (weight 1
) för att uppnå medelvärdena A=7.3 och B=4.8.
Lösningen till höger använder explicita vikter för att tilldela målen relativ betydelse. Anta att användaren föredrar en lösning med ett mer robust (mindre) värde för A. Om du tilldelar en högre vikt till det första målet resulterar det i en lösning där B ligger närmare gränsen för lyckad/misslyckad (större), medan värdet för A är betydligt lägre.
Lösning
Steg 1: Kör en baslinje och välj vikter för varje mål
Träna ditt koncept och utvärdera dess prestanda med standardvikten. Bestäm vilka mål du vill betona och välj vikter.
Viktigt
Träningsmotorn prioriterar otillfredsställande mål före alla andra, oavsett vikt. Om du upptäcker att vissa mål konsekvent misslyckas kan du granska målspecifikationen för att säkerställa att målen kan uppfyllas i alla viktiga scenarier.
Steg 2: Lägg till nyckelordet i weight
dina mål
Lägg till de vikter som du bestämde dig för i steg 1 i din Inkling med nyckelordet weight
efter namnet på varje mål:
goal (State: ObservableState) {
minimize `Temp Deviation` weight 5:
TempDiff(State.Troom1, State.Tset)
in Goal.RangeBelow(10.0)
minimize `Cost`: # use default weight of 1
State.step_cost
in Goal.RangeBelow(0.04)
}
Tips
Du kan använda konstanter för vikter: till exempel const LowWeight = 7; minimize Cost weight LowWeight: ...
Steg 3: Träna och utvärdera konceptprestanda
Träna ditt koncept och utvärdera resultatet. Du kan använda de inbyggda prestandadiagrammen för att se viktiga mått för varje mål.
Om du inte är nöjd med resultaten justerar du objektiva vikter och tränar om. Vi rekommenderar att du ändrar en vikt i taget för att underlätta analysen.
Bästa praxis
Dina mål bör vara uppnåeliga: om några mål inte kan uppfyllas fortsätter systemet att fokusera på dem och ignorerar redan uppfyllda mål.
Att välja lämpliga vikter är ofta en iterativ process. Här är en rekommenderad startpunkt:
- Tilldela varje mål en prioritetskategori: låg, medel, hög, kritisk
- Välj en bas
b
: vi föreslår en bas på 5 för att starta. - Ange vikterna baserat på prioriteten: 1 (standard) för lågprioritetsmål,
b
för medel,b^2
för hög,b^3
för kritisk.