Entropi oyun alanı
Entropi kavramıyla daha önce karşılaşmadıysan, bir örnek üzerinden düşünmek faydalı olur.
Bir olasılık listesini argüman olarak alan plot_probabilities adlı bir fonksiyon yazacaksın. Bu fonksiyon entropiyi hesaplayıp olasılıkları bir çubuk grafikte çizer.
Entropiyle oynadıkça, olasılık dağılımı birçok eyleme yayıldığında entropinin daha yüksek olduğunu göreceksin.
torch.distribution.Categorical sınıfı ortamında Categorical adıyla yüklüdür; bu sınıfın nat cinsinden entropiyi döndüren .entropy() adlı bir yöntemi vardır.
Bu egzersiz
Python ile Deep Reinforcement Learning
kursunun bir parçasıdırEgzersiz talimatları
- Olasılık dağılımının nat cinsinden entropisini elde et.
- Kolaylık olması için entropiyi nattan bite dönüştür.
- Fonksiyon için giriş olarak başka bir liste dene.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
def plot_probabilities(probs):
dist = Categorical(torch.tensor(probs))
# Obtain the entropy in nats
entropy = dist.____
# Convert the entropy to bits
entropy = entropy / math.log(____)
print(f"{'Probabilities:':>15} {[round(prob, 3) for prob in dist.probs.tolist()]}")
print(f"{'Entropy:':>15} {entropy:.2f}\n")
plt.figure()
plt.bar([str(x) for x in range(len(dist.probs))], dist.probs, color='skyblue', edgecolor='black')
plt.ylabel('Probability'); plt.xlabel('Action index'); plt.ylim(0, 1)
plt.show()
plot_probabilities([.25, .25, .25, .25])
plot_probabilities([.1, .15, .2, .25, .3])
# Try with your own list
plot_probabilities(____)