PYTHON Tutorial

Förstärkningsinlärning

Vad är förstärkningsinlärning?

Förstärkningsinlärning är en typ av maskininlärning där en agent lär sig att välja de åtgärder som maximerar dess belöning. Den används i en mängd olika tillämpningar, såsom robotstyrning, spel och optimering.

Viktiga begrepp

  • Markov-beslutsprocess (MDP): En matematisk modell som beskriver en förstärkningsinlärningsmiljö.
  • Belöningar och straff: Belöningar och straff är signaler som indikerar hur bra eller dåligt en åtgärd är.
  • Policyinlärning: Processen att lära sig en policy, som är en karta över vilka åtgärder som ska vidtas i varje tillstånd.

Praktiska steg

  • Definiera MDP.
  • Bestäm belönings- och strafffunktionen.
  • Välj en förstärkningsinlärningsalgoritm.
  • Träna agenten.
  • Utvärdera och förbättra policyen.

Python-exempel

import gym
import numpy as np

env = gym.make('CartPole-v1')

# Hyperparameters
learning_rate = 0.1
gamma = 0.95

# Q-Learning
Q = np.zeros((env.observation_space.n, env.action_space.n))

for episode in range(1000):
    done = False
    observation = env.reset()

    while not done:
        # Välj åtgärd
        action = np.argmax(Q[observation, :])

        # Vidta åtgärd
        next_observation, reward, done, info = env.step(action)

        # Uppdatera Q-värdet
        Q[observation, action] += learning_rate * (reward + gamma * np.max(Q[next_observation, :]) - Q[observation, action])

        # Uppdatera observation
        observation = next_observation

# Utvärdera policy
for episode in range(100):
    observation = env.reset()
    done = False

    while not done:
        env.render()

        # Välj åtgärd
        action = np.argmax(Q[observation, :])

        # Vidta åtgärd
        next_observation, reward, done, info = env.step(action)

        # Uppdatera observation
        observation = next_observation