Makine Öğrenmesine Giriş: Pekiştirmeli Öğrenmenin farkı nedir?

ÜNOG
ÜNOG
Nov 12 · 5 min read

Bir yapay zeka kendi kendine oyun oynamayı öğrenebilir mi?

ÜNOG’a Katıl Bültenimize Abone OlÜNOG’a Destek Ol

Image for post
Image for post

Geçen hafta bültenimizde Makine Öğrenmesine (Machine Learning) giriş yaptık, bu hafta ise biraz daha derine inip Pekiştirmeli Öğrenme (Reinforcement Learning) tekniğininin farklarını değerlendireceğiz. Eğer bir önceki makalemizi okumadıysanız ona göz atmanızı öneririz, bu makalede Makine Öğrenmesinin temellerini bildiğinizi varsayıyorum.

Tekrar olarak kısaca önceki bültenimizde tartıştıklarımızın üzerinden geçelim: Denetimli Öğrenme (Supervised Learning) algoritmaları elinizdeki belli bir veri tipini, istediğiniz bir sonuca götürmeyi öğrenen programlardır.

  • Fotoğraf veriniz var ise, fotoğrafta hangi obje olduğunu gösterebilir,
  • Cümleniz var ise, ona doğru dudak animasyonlarını üretebilir,
  • Oyun videonuz var ise, hile yapılmış mı bulabilir,
  • Yani, elinizde bolacana X veriniz ve Y sonucunuz var ise, X verinizi Y sonucuna çevirmeyi öğrenebilir.
Image for post
Image for post

Peki ya bu tekniği kullanarak yapay zekaya oyun oynamayı öğretebilir miyiz? Bir oyunu iyi oynayabilmek , doğru durumda, doğru tuşa basabilmekten ibaret. Bu demektir ki oyun oynama problemini veri-sonuç şeklinde formalize edebiliriz: ML algoritmamız oyun durumununa bakıp, hangi tuşa basılması gerektiğine karar verebiliyorsa, oyun oynamayı öğrenmiş demektir.

Image for post
Image for post

Biraz daha somut ilerleyelim, diyelim ki bir araba yarışı oyunumuz var ve bu oyunu oynayabilmek için bir ML algoritması kullanıyoruz. Algoritmanın amacı ise en hızlı şekilde yarışı bitirebilmek. AI algoritması her saniye hangi tuşa basacağına karar vermek zorunda: Gaz, Fren, Sağa Dön, Sola Dön. Peki neye göre hangi tuşa basacağına karar verecek? Oyun durumunu gözlemleyerek. Peki nedir bu bahsettiğimiz oyun durumu?

Image for post
Image for post

Oyun durumu (İngilizce terminolojide Game State olarak geçer) yapay zekamızın kararını vermek için kullanacağı bigilerin toplamına denir. Bir insan olarak ekrana baktığımızda gördüğümüz görüntü bizim için oyunun durumudur. Yani yaklaşık iki milyon (1920 * 1080) piksel değeri! Yapay zekamınza bu veriyi direkt olarak verebiliriz ve bu piksel değerlerini kullanarak araba kullanmasını isteyebiliriz. Bu mümkün, ama aynı zamanda çok zor! Bunu yerine oyun durumunu arabayı kullanmak için gerekli olan bilgilere indirgeyebiliriz. Arabanın hızı, arabanın pozisyonu ve rotasyonu, ve duvarların ne uzaklıkta olduğu arabayı kullanmamız için yeterli. Ki biz insanlar olarak da piksellere bakıp bu bilgileri kafamızda oluşturuyoruz, ama yapay zekamızı zorlamamıza gerek yok.

Veri: Oyun durumu. [Arabanın hızı, pozisyonu vs.]

Sonuç: Hangi tuşa basılması gerektiği. [Gaz, Fren, Sol, Sağ]

Image for post
Image for post

Güzel! ML sistemimizi olması gerektiği gibi yazdık. Şimdi sırada veri-sonuç verisetini oluşturmak. Yani bir insan olarak en azından bir kaç saat boyunca oyunumumuzu oynayıp, her saniye hangi oyun durumunda olduğumuzu, ve hangi tuşa bastığımızı kaydetmemiz lazım. Verisetimizin boyu bir kaç bin veri-sonuç çiftine ulaşınca yapay zekamızı eğitmeye başlayabiliriz. Verisetimiz ne kadar büyük ise performans o kadar gerçeğe (yani oyuncunun performansına) yakın olacaktır.

Image for post
Image for post

Tebrikler! Yapay zekamız çalışıyor, ve veri-setini oluşturduğunuz yarışı tamamlayabiliyor. Bu kullandığımız tekniğe Davranış Klonlama (Behavior Cloning) adı veriliyor. Güzel bir sonuca ulaşmış olsak da hala bir kaç problem var:

  1. Fark ettiniz ki eğer yapay zekanız minik de olsa bir kaza yaparsa asla toparlanamıyor ve kesinlikle yarışı kaybediyor.
  2. Yapay zekan sizin datanızı kullanarak öğrendiği için asla sizden iyi performans gösteremiyor — ve gerçekçi olalım siz de çok iyi değilsiniz…
  3. Oyununuz eğlenceli ama saatlerce veri toplamak sizi yordu…

#1 problemin sebebi topldığınız veri setinde kaza yapma verileri, normal araba kullanma verilerinden çok daha az sayıda olması. Yani yapay zeka yeterince kaza görmediği için kaza sonrasında ne yapacağını yeterince öğrenemedi. Bunun bir çözümü daha fazla data toplamak ve özellikle kaza yapıp tekrar yolda dönmeyi başarmak. Ama sizin de fark ettiğiniz gibi bu Davranış Klonlama tekniği için verisetini toplamak yorucu ve uzun bir süreç.

Yapay zeka oyunu kendi başına oynayıp, hangi durumlarda hangi tuşlara basacağını kendi başına öğrense çok daha keyifli olmaz mıydı?

Reinforcement Learning (RL), yani Pekiştirmeli Öğrenme tekniği yardımınıza yetişiyor!

Davranış klonlama tekniğinde ML algoritmamız verilen durumda doğru tuşlara basmayı öğrendi. Ama “doğru tuş” tanımı ise bizim kendi oluşturduğumuz veri-setinden geldi. Yani bu teknikte ML algoritması bizim verdiğimiz tepkileri vermeyi öğrendi.

Pekiştirmeli öğrenme tekniği ile algoritmamız yine verilen durumda doğru tuşlara basmayı öğreniyor. Ama davranış klonlamadan farkı ise doğru tuşa nasıl ulaştığımız. Bir algoritması kullanırken herhangi bir veri-setini kullanmıyoruz. Bunun yerine “doğru tuş” ödülü makisimize eden tuş olarak tanımlanıyor.

Pekiştirmeli öğrenme tekniği gerçek hayatta hayvanların (ve insanların!) öğrenmesinden yönteminden ilham almıştır. Eğer elinizi ateşe götürürseniz eliniz yanar ve elinizi bir daha ateşe sokmamayı öğrenirsiniz. Ama eğer ağzınıza bir şeker atarsanız, bu keyifli bir tecrübedir ve devamını istersiniz. Kısaca hayatta deneme yanılma yoluyla işlerin nasıl işlediğini öğrenirsiniz.

Pekiştirmeli öğrenme tekniğinde ise yapay zekamıza amacızın ne olduğunu bir ödül fonksiyonu ile tanımlarız ve yapay zekada maksimum ödüle nasıl ulaşacağını deneme yanılma yolu ile öğrenir.

Biraz daha teknik konuşmak gerekirse, her adımda yapay zeka oyun durumunu alır ve hangi tuşa basacağına karar verir. Bunun sonucunda da belli bir ödül puanı alır. Yapay zekanın amacı da ödül puanını maksimize etmektir.

Image for post
Image for post

Araba kullanma oyunumuzda ödül puanımız arabanın yolda her saniye ne kadar ilerlediği olabilir. Bu durumda eğer araba geri geri giderse eksi bir ödül puanı alacağını da belirtmemiz lazım.

İlk başta yapay zek rastgele hareketler yapar, duvarın kenarında gaza basar, araba dururken frene basar, artık ne çıkarsa. Bu rastgele hareketerin sonucunda biraz ileri gider ve biraz geri gider. İleri gittiğinde ödüllerin arttığını ve geri gittiğinde ödüllerin azaldığını fark eder. Bu durumda ileri gitmek için yaptığı hareketleri (gaza basmak) daha çok yapmaya başlar. Hala rastgele hareket ediyordur, ama gaza basma oranı diğer tuşlara göre daha fazladır, çünkü gaza bastığında ilerlediğini, ve ilerlediğinde puan aldığını öğrenmeye başlamıştır.

Bu şekilde saatlerce hareket edip kendi tecrübseinden öğrendikten sonra artık yapay zekamız çok başarılı bir şekilde araba kullanmayı öğrenebilir.

Davranış klonlama tekniğinde programcının görevi verisetini oluşturmak ise, pekiştirmeli öğrenme tekniğinde ise programcının görevi ödül fonksiyonunu oluşturmakdır.

Bu hafta Pekiştirmeli Öğrenme ve Denetimli Öğrenme tekniklerinin farklarına değindik. Önümüzdeki haftalarda ise Pekiştirmeli Öğrenme algoritmalarının detaylarına inip daha derin bir şekilde inceleyeceğiz.

ÜNOG’a Katıl Bültenimize Abone OlÜNOG’a Destek Ol

Image for post

ÜNOG

Türkiyenin en güzel oyun geliştirme grubu. https://unog.dev

ÜNOG

Written by

ÜNOG

Türkiye’nin en güzel oyun geliştirme topluluğu. https://unog.dev

ÜNOG

ÜNOG

Profesyonel, bağımsız ve hatta öğrenci oyun geliştiricilerinin bir araya geldiği ÜNOG Oyun Geliştirici Topluluğu, bilgi ve tecrübe paylaşımına özendiriyoruz.

ÜNOG

Written by

ÜNOG

Türkiye’nin en güzel oyun geliştirme topluluğu. https://unog.dev

ÜNOG

ÜNOG

Profesyonel, bağımsız ve hatta öğrenci oyun geliştiricilerinin bir araya geldiği ÜNOG Oyun Geliştirici Topluluğu, bilgi ve tecrübe paylaşımına özendiriyoruz.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store