Metody aktor–krytyk (A2C)
Funkcja przewagi, aktor (polityka) i krytyk (wartość), synchroniczna implementacja A2C.
Metody aktor–krytyk (A2C) to bezpłatna lekcja Learn AI with Python na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Learn AI with Python, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Learn AI with Python zawiera 4 lekcji w sumie.
Łączenie polityki i wartości
Metody Actor-Critic łączą dwa pomysły: aktora (politykę wybierającą akcje) i krytyka (funkcję wartości oceniającą te akcje). Krytyk dostarcza informacji zwrotnej o mniejszej wariancji niż surowe zwroty, stabilizując uczenie.
Aktor
Aktor jest siecią polityki. Dla bieżącego stanu generuje logity akcji (lub prawdopodobieństwa), dokładnie tak jak w REINFORCE, i decyduje, co należy zrobić.
class ActorCritic(nn.Module):
def __init__(self, obs_dim, n_actions):
super().__init__()
self.shared = nn.Sequential(nn.Linear(obs_dim, 128), nn.ReLU())
self.actor = nn.Linear(128, n_actions)Krytyk
Krytyk szacuje wartość stanu V(s): oczekiwany zwrot ze stanu s. Jest to głowica z jednym wyjściem, która przewiduje, jak dobra jest bieżąca sytuacja.
self.critic = nn.Linear(128, 1)
def forward(self, s):
h = self.shared(s)
return self.actor(h), self.critic(h)Wspólny backbone, dwie głowice
Aktor i krytyk zwykle współdzielą wczesne warstwy (backbone), a następnie rozdzielają się na dwie głowice. Współdzielenie cech jest wydajne i pozwala obu zadaniom wzmacniać użyteczne reprezentacje.
Funkcja przewagi
Kluczową wielkością jest przewaga A = r + gamma * V(s') - V(s). Mierzy ona, o ile akcja była lepsza od oczekiwań krytyka. Dodatnia przewaga oznacza wynik „lepszy od średniej”, a ujemna — gorszy.
advantage = reward + gamma * V_next - V_currentDlaczego przewaga jest lepsza od surowego zwrotu
Użycie przewagi zamiast pełnego zwrotu G_t centruje sygnał wokół oszacowania krytyka, znacznie zmniejszając wariancję. To główny powód, dla którego actor-critic uczy się stabilniej niż REINFORCE.
Funkcja straty aktora
Aktor jest uczony podobnie jak w REINFORCE, ale zamiast zwrotu wykorzystuje przewagę jako wagę: zwiększa prawdopodobieństwo akcji o dodatniej przewadze.
actor_loss = -(log_prob * advantage.detach()).mean()Funkcja straty krytyka
Krytyk uczy się dokładnie przewidywać zwroty. Jego funkcja straty to kwadrat błędu między jego predykcją V(s) a zaobserwowanym celem r + gamma * V(s').
target = reward + gamma * V_next.detach()
critic_loss = (V_current - target).pow(2).mean()Łączna funkcja straty
Obie głowice są uczone jednocześnie przez zsumowanie funkcji strat (często z niewielką premią entropii zachęcającą do eksploracji). Jedno przejście wsteczne aktualizuje współdzielony backbone oraz obie głowice.
loss = actor_loss + 0.5 * critic_loss - 0.01 * entropy
loss.backward()Synchroniczne A2C
A2C (Advantage Actor-Critic) to wersja synchroniczna: wiele równoległych procesów roboczych jednocześnie zbiera doświadczenia z kopii środowiska, a następnie pojedyncza zsynchronizowana aktualizacja wykorzystuje wszystkie zebrane dane, poprawiając stabilność i przepustowość.
# N parallel envs step together each iteration
# gather all transitions, then one combined updateA2C a A3C
Wariant asynchroniczny A3C pozwala procesom roboczym aktualizować model niezależnie. A2C synchronizuje te aktualizacje, dzięki czemu jest prostsze, lepiej dostosowane do GPU i zwykle równie skuteczne, co wyjaśnia jego popularność.
Szybkie sprawdzenie
Sprawdź swoją wiedzę na temat metod actor-critic.
Podsumowanie: Actor-Critic i A2C
Nauczyli się Państwo, że aktor generuje logity polityki, a krytyk szacuje V(s), często za pomocą wspólnego backbone'u z dwiema głowicami. Przewaga r + gamma*V(s') - V(s) zmniejsza wariancję, a synchroniczne A2C wykorzystuje równoległe procesy robocze do stabilnego i wydajnego uczenia.
Często zadawane pytania
Czy lekcja „Metody aktor–krytyk (A2C)” jest bezpłatna?
Tak — pełny tekst „Metody aktor–krytyk (A2C)” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Learn AI with Python, przejdź na CoddyKit PRO. Kurs Learn AI with Python zawiera 4 lekcji w sumie.
Co nauczysz się w „Metody aktor–krytyk (A2C)”?
Funkcja przewagi, aktor (polityka) i krytyk (wartość), synchroniczna implementacja A2C. Ćwiczysz Learn AI with Python z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Learn AI with Python?
Nie wymagamy żadnego doświadczenia. Learn AI with Python w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Metody aktor–krytyk (A2C)”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Learn AI with Python?
Tak. Każda lekcja Learn AI with Python zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Metody gradientu polityki: REINFORCE
- Metody aktor–krytyk (A2C)
- Proximal Policy Optimization (PPO)
- Własne środowiska Gymnasium