Są to modele (najczęściej sieci neuronowe), które przypisują danym energię (zamiast prawdopodobieństwa). Przypisywanie energii zamiast prawdopodobieństwa jest prostsze do wytrenowania, ale za to nie jest interpretowalne wprost.

Energy-based models mogą zostać użyte np. do oszacowania jak prawdopodobne jest wystąpienie danej próbki w naszym zbiorze danych (a właściwie nie “jak prawdopodobne” czy “z jaką energią”, ale to to samo z dokładnością do stałej). Można to wykorzystać do samplowania, Rozszerzanie zbioru danych i może trochę do odbiasowania danych w RTB.

Model uczy się mniej więcej tak:

  1. Mamy nasz zbiór danych
  2. Losujemy inny zbiór danych, może być losowane z rozkładu totalnie z czapy
  3. Potem w pętli na zmianę
    1. Trenujemy sieć neuronową tak, aby odróżniała jedne dane od drugich, tzn. żeby różnica energii między zbiorami danych była jak największa
    2. Liczymy pochodną po naszym losowym zbiorze danych i aktualizujemy ten zbiór tak, aby był trochę bardziej podobny to naszego oryginalnego zbioru
  4. W ten sposób dostajemy model, który potrafi ocenić energię próbki tzn. ocenić jak bardzo próbka jest podobna do naszego oryginalnego datasetu