Imitation Learning Nedir? Behavioral Cloning ve DAgger

Yusuf
Yusuf
Feb 25 · 5 min read

Reinforcement Learning Yapay Zeka alanında en heyecan verici, keyifli, bir o kadar da zor alanlardan birisi. RL’in uygulama alanlarından bahsettiğim bir önceki yazımda ne kadar geniş bir skalaya etki ettiğini ve gelişmelerin hızla devam ettiğini görmüştük. Bu yazıda ise Reinforcement Learning patikasında biraz ilerledikten sonra karşımıza çıkan Imitation Learning’ten bahsedeceğim.

Imitation Learning

Imitation learningi anlatmaya başlamadan makine öğrenmesindeki öğrenme paradigmalarını tekrardan hatırlarsak yararlı olacağını düşünüyorum. Bu paradigmaları temel olarak üçe ayırıyoruz: Supervised Learning, Unsupervised Learning ve Reinforcement Learning. Supervised learningte model, tüm eğitim sürecinde bulunup teker teker gösteren bir öğretmen misali tamamen etiketlenmiş bir verisetiyle eğitilir. Unsupervised learningte ise model, etiketlenmemiş bir veri havuzundaki ilişkileri bulmaya çalışır. Öte yandan, reinforcement learningte ise bir “agent” tanımlanan “environment”ta deneme yanılma ve ödül mekanizmasıyla öğrenerek optimal “policy”yi hedefler.

Imitation learning ise aslında hem reinforcement learning hem de supervised learningin fikirlerini kullanıyor. Reinforcement learningte agentın arzu edilen davranışı öğrenebilmesi için modeli oluşturan kimsenin environment kapsamında bir reward fonksiyonu r(s,a) yazması gerekiyor. Fakat bu genellikle kolay bir işlem değil, hangi ortamda uygulanıyorsa ona özel en uygun reward fonksiyonunun bulunması lazım. Mesela “reward sparsity” diye isimlendirdiğimiz, agentın sadece başarılı olduğunda veya başarısız olduğunda reward aldığı fakat aradaki sürecin belirsiz olduğu durumlarda verimliliğin düşme ihtimali söz konusu. İşte burada “ya biz bu reward fonksiyonunu elle tanımlamakta güçlük çekiyorsak nasıl davranması gerektiğini gösterelim, agent kendi öğrensin” fikri üzerine imitation learning ortaya çıkıyor.

Behavioral Cloning

Behavioral cloning ise bu fikrin en basit haliyle uygulanmış hali. “Uzman”lar istenilen davranışı gösteren bir dataset oluşturuyorlar. Bu gösterimlerin i.i.d. (independent and identically distributed) “observation” ve “action” çiftinden oluşan örnekler olması gerekiyor. Ardından düz supervised learning ile model eğitiliyor ve πθ ​policysi elde ediliyor. Mesela araba sürme örneğini ele alalım. Araba hangi durumdayken (state, observation) sürücü ne yapıyor (action) datası üzerinden otonom bir araç geliştirilebilir. 1989 yılında Carnegie Mellon üniversitesinden Dean Pomerleau’nun önderliğinde geliştirilen ALVINN (Autonomous Land Vehicle In a Neural Network) projesini buna örnek olarak verebiliriz.

Teoride behavioral cloning bazı problemler barındırdığını belirtelim. Model uzman datasıyla eğitildiği için en ufak bir hatada bile agent, bilmediği bir duruma yakınlaştığından dolayı gerekli reaksiyonu veremiyor ve bu hata kümülatif bir etkiye yol açıp katlanarak istenmeyen sonuçlara yol açabiliyor. Bir diğer problem ise i.i.d. varsayımı. Markov Decision Process’te bir state içinde alınan action diğer statei etkileyebildiğinden dolayı bu varsayım bozulabiliyor.

Kaynak: Sol / Sağ

Asıl amaç, yukarıda gördüğünüz bu kırmızı ve siyah okların ya da matematiksel deyişle (obs) ile Pdata(obs)’nin yakınsaması, ve teoride gözüken problemlere rağmen bu imkansız değil. Eğer pratikte yeterli miktar ve kalitede data sağlanırsa oldukça başarılı sonuçlar da elde edilebiliyor. Buna en güzel örnek de NVIDIA’nin geliştirdiği aşağıda da videosunu görebileceğiniz otonom araç.

Bu araçta merkezde öne, sağ ve solda da ön çapraza bakan toplam üç kamera kullanılarak araca yön veriliyor. Ayrıca uzman insan sürüşünün datasıyla eğitilen deep convolutional neural network (Deep CNN) yapısı kullanılıyor.

Sinir ağının eğitimi

Yine de modelin tamamen güvenilir ve başarılı olmasını sağlayabilmek için datasetin incelikle ve uygun olarak hazırlanması oldukça kaynak isteyen bir süreç. Peki kırmızı ve siyah okun yakınsamasını kolaylaştıracak farklı bir teknik bulabilir miyiz?

DAgger da burada devreye giriyor. DAgger, behavioral cloningin güçlendirilmiş bir hali. İsminden de anlaşılacağı gibi bir tür data artırma yönteminin kullanıldığını anlayabilirsiniz. Behaviour cloningte policyi oluşturabilmek için “observation” ve “action”dan oluşan datasetin bir supervised learning yoluyla eğitilmesi gerektiğini görmüştük. DAgger’da da elimizde bulunan ilk dataset D (D={o1,a1,…,on,an}) ile modeli eğiterek bir policy oluşturuyoruz. Ondan sonra ise elimizdeki policy π’ı çalıştırarak yeni observationlar elde ediyoruz ve bu observationları Dπ datasetinde topluyoruz. Dikkat edilmesi gereken nokta bu Dπ datasetinde actionları elde etmiş olmuyoruz (Dπ={o1,…,om}). Dolayısıyla bu Dπ datasetinin bir uzman tarafından etiketlenmesi gerekiyor. Yani burada yine de bir kaynak ve emek ayrılması gerekiyor. Ardından belli durumlara karşı verilen aksiyonlar eşleştirilerek Dπ, ana dataset D ile birleştiriliyor.

Genel olarak imitation learningte bazı sorular hala tam cevaplanabilmiş değil ve bazı problemler devam ediyor. Bu sorulardan birisi insanlar tarafından hazırlanan bir datasetin Markov özelliğini bozma ihtimali. Markov Decision Process’te mevcut state kendinden önceki statelere dair tüm bilgiyi de içerir, dolayısıyla şimdiki state geçmiş statelere bağlı değildir. Buna Markov özelliği denir. İnsanlar dataseti hazırlarken geçmişe bağlı olma durumu bu Markov özelliğini tehdit eder mi hala bir problem kaynağı olabilir.

Veya “causal confusion” dediğimiz durum da söz konusu. İnsan tarafından hazırlanan bir datasette arabanın ön kamerasında insan gözükmesi ile frene basılma arasında bir ilişki bulunur. Normal bir insan zaten arkasındaki sebebi bilir, insan gözüktüğü için frene basılmaktadır. Fakat böyle bir datasetle eğitilen modelin insan çıktığı için mi frene basıldığı yoksa frene basıldığı için mi insanın çıktığını ayırt etmesi mümkün olmayabilir.

Bu yazılık burada kalalım. Imitation Learning’in daha advanced konuları arasında bulunan Inverse Reinforcement Learning ve Generative Adversarial Imitation Learning (GAIL) konularını ise geleceğe bırakalım. Bir sonraki yazımda bugünkü bahsettiğim konulara pratik kod örneği olması açısından OpenAI Gym kütüphanesi ve PyTorch kullanarak ufak bir proje paylaşmayı planlıyorum. Tekrardan görüşmek üzere, sağlıcakla kalın.

Reinforcement Learning Turkiye

All things Reinforcement Learning

Reinforcement Learning Turkiye

All things Reinforcement Learning including model based , model free, robotics, genetic algorithms, custom environments, agents, RLtoSimulation and more !

Yusuf

Written by

Yusuf

Engineer candidate at ITU // Science, Tech, Space

Reinforcement Learning Turkiye

All things Reinforcement Learning including model based , model free, robotics, genetic algorithms, custom environments, agents, RLtoSimulation and more !