Behavioral Cloning
Davranış klonlama, bir politikayı uzman gösterimlerini denetimli öğrenmeyle kopyalayacak şekilde eğitir. Nasıl çalıştığı, hataların neden biriktiği ve DAgger'ın bunu nasıl düzelttiği.
Davranışsal klonlama (BC), taklit öğrenmenin en basit biçimidir: Bir ajan, sıradan denetimli öğrenme kullanarak bir politikayı eğitir ve kaydedilmiş bir gösterimin her durumunda uzmanın yaptığı eylemi tahmin ederek davranmayı öğrenir. Eğitim verileri, kamera karelerinin sürücünün direksiyon açısıyla veya robotun eklem ölçümlerinin teleoperatör komutlarıyla eşleştirildiği gözlem-eylem çiftlerinden oluşur; politika, sürekli eylemler için regresyon kaybı veya ayrık eylemler için sınıflandırma kaybıyla eğitilir. Davranışsal klonlama bir ödül işlevi ya da eğitim sırasında ortamla etkileşim gerektirmez; bu nedenle insan gösterimlerinden robotlara, araçlara ve yazılım yapay zekâ ajanlarına davranış öğretmek için yaygın bir başlangıç noktasıdır.
Kökeni ve Klasik Örnekler#
Bu ad, Donald Michie ve çalışma arkadaşlarının 1990 civarında insan kontrol becerilerini yeniden oluşturma üzerine yaptıkları çalışmalardan gelir. En bilinen ilk gösterim olan Claude Sammut ve çalışma arkadaşlarının 1992 tarihli "Learning to Fly" çalışmasında, uçuş simülatörü kullanan kişilerin kontrol eylemleri kaydedilmiş ve bu kayıtlardan karar ağacı otopilotları türetilmiştir. Carnegie Mellon'dan Dean Pomerleau'nun ALVINN sistemi, küçük bir sinir ağının 1989'da kamera görüntülerinden bir test aracını yönlendirebildiğini zaten göstermişti.
NVIDIA'nın 2016 tarihli uçtan uca sürüş sistemi, evrişimli sinir ağını yaklaşık 72 saatlik insan sürüşüyle eğiterek öne bakan kameradan alınan ham pikselleri doğrudan direksiyon komutlarına eşledi; New Jersey'deki Monmouth County'de yapılan tipik bir sürüşte aracın yaklaşık %98 oranında kendi kendine yönlendirme yapmasını sağladı. Ayrık eylemler kullanıldığında davranışsal klonlama görüntü sınıflandırmaya dönüşür: sürücünün yaptığı sol, düz ve sağ gibi her eylem için ayrı bir klasörde düzenlenmiş kamera kareleriyle eğitilen bir Ultralytics YOLO26 sınıflandırma modeli, klonlanan eylemi en yüksek olasılıklı sınıf olarak verir.
Hata Birikimi Sorunu#
Eğitim sırasında politika yalnızca uzmanın ziyaret ettiği durumları görür. Dağıtımda kapalı döngüde çalışır; bu nedenle her küçük hata, onu gösterimlerdeki hiçbir duruma benzemeyen bir duruma taşır ve orada yeniden hata yapma olasılığı artar. Hatalar yörünge boyunca birikir. Eğitim ve dağıtım durumları arasındaki bu uyumsuzluk, bir kovaryat kayması biçimidir. Stéphane Ross ve Drew Bagnell 2010'da, adım başına hata küçük olsa bile klonlanan bir politikanın beklenen maliyetinin görev ufkunun karesiyle artabileceğini gösterdi. Ross, Geoffrey Gordon ve Bagnell'in 2011'de geliştirdiği DAgger (Veri Kümesi Birleştirme) bu artışı doğrusal düzeye indirdi: öğrenilen politika eylemde bulunur, uzman ziyaret edilen durumları doğru eylemlerle etiketler ve politika o ana kadar toplanan tüm etiketlerle yeniden eğitilir.
Bu örnek, Gymnasium CartPole görevinde elle ayarlanmış bir kontrolcüyü klonlar. Görev, hareketli bir araba üzerindeki direği 500 adıma kadar dengede tutmayı gerektirir ve ardından iki DAgger turu uygular:
import gymnasium as gym
import numpy as np
from sklearn.tree import DecisionTreeClassifier
env = gym.make("CartPole-v1")
expert = lambda obs: int(obs[2] + 0.5 * obs[3] > 0) # push toward the side the pole leans and falls
def rollout(policy, seed):
"""Run one episode with a policy and return the states it visited."""
obs, _ = env.reset(seed=seed)
states, done = [], False
while not done:
states.append(obs)
obs, _, terminated, truncated, _ = env.step(policy(obs))
done = terminated or truncated
return states
states = rollout(expert, seed=0) # one expert demonstration
for i in range(3):
# Behavioral cloning: fit a classifier from states to the expert's actions
clone = DecisionTreeClassifier(max_depth=5, random_state=0).fit(states, [expert(s) for s in states])
policy = lambda obs: int(clone.predict(obs[None])[0])
steps = np.mean([len(rollout(policy, seed)) for seed in range(100, 110)])
print(f"Round {i}: {len(states)} labeled states, clone balances for {steps:.0f} steps")
states += rollout(policy, seed=i + 1) # DAgger: the expert labels the states the clone visits0. tur, yalın davranışsal klonlamadır. Direği 500 adımın tamamında dengede tutan bir uzmanın tek bir 500 adımlık gösterimiyle eğitilen klon, yeni bölümlerde direği ortalama 30 adım dengede tutar. 1. turda, klonun bir bölümde ziyaret ettiği 23 duruma uzman etiketleri eklenir ve ortalama adım sayısı 135'e çıkar; 2. turda bu tür 70 durum daha eklendikten sonra klon direği 500 adımın tamamında dengede tutar.
Başka yöntemler gösterimlerin kendisini yeniden şekillendirir. NVIDIA'nın sürüş sistemi, sol ve sağ kameralardan alınan görüntüleri ve kamera görüşündeki yapay kaydırma ve döndürmeleri ekledi; her görüntü, aracı iki saniye içinde şerit merkezine döndürecek direksiyonla etiketlendi. Bu, kurtarma davranışını öğreten bir veri artırma biçimidir. DART, kayıt sırasında göstericinin eylemlerine gürültü ekleyerek verilerin uzmanın küçük sapmaları düzeltmesini içermesini sağlar. Eylem öbekleme, gelecekteki birkaç eylemi aynı anda tahmin ederek hataların biriktiği etkin ufku kısaltır; ACT politikası, pil yerleştirme gibi ince motor becerisi gerektiren çift elle yapılan görevleri 10 dakikalık gösterimlerle %80 ila %90 başarı oranında öğrendi.
Çok Modlu Gösterimler ve Modern Politikalar#
Gösterim yapanlar aynı durumu farklı şekillerde, örneğin bir engelin solundan ya da sağından geçerek çözdüğünde, regresyon politikası bu eylemlerin ortalamasını tahmin eder; bu ortalama, kimsenin gerçekleştirmediği bir eylem olabilir. Google'ın RT-1 modeli, davranış klonlama yöntemiyle 130.000 robot gösterimi üzerinde eğitilmiş bir Transformer olup her eylem boyutunu 256 bölmeye ayırıp bu bölmeleri belirteçler olarak tahmin ettiği için birden fazla modu temsil edebilir. Difüzyon politikaları, rastgele gürültüyü gidererek eylem dağılımının tamamını modeller ve bedenlenmiş yapay zekâ manipülasyonu için yaygın bir tercih hâline gelmiştir.
Dil modelleri de aynı şekilde eğitilir. İnsanlarca yazılmış yanıtlarla bir büyük dil modelinin (LLM) denetimli ince ayarı, talimat ayarının temelini oluşturur ve metin üzerinde davranışsal klonlamadır. OpenAI'ın WebGPT makalesi de insan geri bildiriminden pekiştirmeli öğrenme (RLHF) öncesindeki aşamayı tanımlamak için tam olarak bu adı kullanmıştır.
Davranışsal Klonlama ve İlgili Terimler#
- Pekiştirmeli öğrenme: Deneme yanılma yoluyla bir ödül sinyalinden öğrenir ve davranışsal klonlamanın yapamadığı şekilde göstericiyi aşabilir. TD3+BC gibi çevrim dışı pekiştirmeli öğrenme yöntemleri, öğrenilen politikayı kaydedilmiş verilere yakın tutmak için davranışsal klonlama terimi ekler.
- Ters pekiştirmeli öğrenme: Gösterimleri açıklayan ödül işlevini çıkarır ve ardından bu işlevi eniyiler. Üretici çekişmeli taklit öğrenme (GAIL), bir ayırt edici model davranışını uzmanınkinden ayırt edemeyene kadar politika eğitir.
- Bilgi damıtma: Küçük bir öğrenci modeli, daha büyük bir öğretmen modelinin çıktılarına benzer şekilde eğitir. İnsan yerine eğitilmiş bir politikanın davranışsal klonlamasına politika damıtma denir.










