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:

  1. Hämta värde A under 12
  2. Hämta värde B under 16

Bilden nedan visar två möjliga lösningar på problemet:

Visualization of tradeoff between two objectives

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.