BTK Akademi -Yapay Zeka ve Algoritmalarına Giriş Kursu Ders Notlarım

Yapay Zeka Algoritmalarına Giriş Ders Notları

yapay-zeka-kurs-btk-akademi


Merhaba, sizlere BTK Akademi üzerinden yeni bilgiler öğrenmek için kayıt olduğum başarılı bir şekilde sertifikasını aldığım Yapay Zeka ve Algoritmalarına Giriş kursu için hazırladığım ders notlarımı sizler ile paylaşıyorum. Umarım size faydası olur çünkü ben bu kurstan yeni bilgiler öğrendiğim için çok mutluyum.

Yapay Zeka: Akıllı makine oluşturma disiplinidir, kaynak olarak veriyi kullanır ve verilerden çıkarımlarda bulunur. Makine Öğrenmesi(machine learning) ve Derin Öğrenme(deep learning) olmak üzere iki alt bileşeni vardır. Makine öğrenmesi, işlenmek üzere makineye gönderilen verilerden mantıklı veri üretmeyi sağlar. Derin öğrenme, yapay sinir ağları kullanarak veriyi sınıflandırmayı sağlar.

Yapay Zeka, insan gibi mantık ve duygu ile düşünmeyi sağlamak üzere geliştirilirken insan gibi hareket etme hedefi ile geliştirilmektedir. Günümüzde sesli asistan ve metin tanıma yazılımları insan gibi düşünürken ayrıca duyguları da esas alarak işlem yapmaktadır. Ayrıca rasyonel düşünmek ve rasyonel hareket etmek yapay zekanın diğer özellikleri ve hedefleridir.

Ajan: Ortamdan veriyi alan ve aldığı veriyi işleyip tepki veren varlıklardır. Algılayıcıları olan bu varlıklar, vericileri ile aldığı kararları uygulamaktadır.

Ajan = yazılım(düşünme)+donanım(hareket) mantığı ile çalışmaktadır.
Ajanların başarı kriteri ise şu şekilde sıralanmaktadır: Performans ölçüsü, çevreyle ilgili ön bilgiler, gerçekleştirebileceği eylemler, algılama dizisi.

ÇEVRE TÜRLERİ----------

Ajanlar, tamamen gözlemlenebilir ve tamamen gözlemlenemez olmak üzere iki farklı ortamda çalışırlar. Örnek olarak bir satranç tahtası tamamen gözlemlenebilirken bir labirentte yürüyen insan için labirent tamamen gözlemlenebilir değildir. Bunun nedeni satranç tahtasındaki tüm alanları görebilirken labirentte her hangibir yöne hareket yapıldığında nasıl bir yol ile karşı karşıya kalınabileceği bilinmemektedir.

Statik: Ortam değişmez.
Yarı dinamik ortam: Ortam değişmez ama ajanın performansı değişebilir.
Dinamik: Ajan çalışırken ortam değişir.
Deterministik: Ortamın bir sonraki durumunu ajan tarafından yapılan faaliyet belirlemektedir.
Stokastik: Rastgele olmakla birlikte ajan tarafından belirlenemez. Örnek olarak otonom cihazların hareketleri zaman içinde değişebilir.
Tek Ajan: Ortamdaki tek ajandır.
Çoklu Ajan: Birden fazla ajan vardır. Ajanlar arasında işbirliği ve rekabetçi tutum sergilenebilir.
Ayrık: Bir ortamda, çıktı için sınırlı sayıda karar verilebilecek işlemden oluşmaktadır. Örnek olarak her satranç oyununda hamle sayısı farklı iken oyun sonucu hep sonlu bir şekilde bitmektedir.
Sürekli: İşlemlerin yapıldığı ortam numaralandırılmaz ve kararlar güncellenir. Ortamdaki veriler kesikli değilse sürekli kararlar alınır. Örnek olarak otonom araçlar.
Bölmeli: Ajan faaliyetleri ayrılır ve her bölüm algılanır. Ajan tek bir işlem yapar.
Ardışık: Ajan faaliyetleri sıralanır ve ajan görevlerini sırası ile yapar.

Ajanın Değerlendirilmesi: PEAS
P: Performance measure(performans ölçümü)
E: Environment(ortam)
A: Actuaturs(tepki vericiler)
S: Sensors(sensörler)

Örnek olarak bir taksiciyi düşünün. Taksici için ortam yollar olmakla birlikte performans ölçümü kurallardır. Ayrıca taksici için sensörler kulak, göz olmaktadır. Tepki vericiler ise taksicinin direksiyon hareketi ve hareket için kullandığı el ile direksiyondur.



ARAMA PROBLEMLERİ---------

Problem Çözme Ajanları: Ajanın amaçlanan sonucu mevcut duruma ve performans ölçümüne bağlıdır. Hangi işlem hedeflenen başarıya ulaşacaktır, temel sorusudur.

Problem Formülasyonu: Hedefe ulaşmak için farklı işlem sıraları dizileri incelenir ve en iyi işlem yapma dizisini bulmak hedeflenir.

Arama Algoritması: Bir problemi alır ve yapılacak işlemler için bir çözüm üretmek hedeftir.
Örnek olarak bir araba yolcuğu yapacaksınız ve harita üzerinden bir şehre gitmek istediniz, bu sizin amacınızdır. Durum bu aşamada harekete başlayacağınız konumdur. Yapacağınız işlem ise gitmek için çeşitli konumlardan geçeceksiniz. Çözüm olarak ise yaptığınız işlemlere bağlı olarak amacınız olan şehre gitmiş olmanızdır.

Problem: Bir problem dört temel bileşenden oluşmaktadır. Ajanın başlangıç durumu, yapacağı işlemleri açıklaması, başlangıç durumu ve yapılabilecek işlemler, durum uzayındaki yollardır.

Çözüm: Bir problemde başlangıçtan hedefe yapılacak işlemin yöntemdir.
Çözüm kalitesi: Yapılacak işlemin yönteminin maliyetidir.
Optimum Çözüm: Yapılacak işlemlerin yöntemleri arasındaki en iyi yöntemdir.

ARAM STRATEJİLERİ---------

ARAMA AĞACI: 

Başlangıç durumundan hedefe ulaşana kadar yapılan işlemlerin bir ağaç grafiği üzerinde tanımlanmasıdır.

Kök Düğüm(Root Node): Başlangıç durumudur.
Dallanma(Fringe): Düğümlerin genişletilmesidir.
Arama Grafiği: Hedefe birden çok yol ile gidilmesidir.

Düğüm Bileşenleri:
Durum: Mevcut konum.
Düğüm: Arama ağacının parçasını oluşturan her bir veridir.
Aksiyon: Düğüm oluşturmak için uygulanan işlemdir.
Yol Maliyeti: İlk durumdan hedef duruma girmek için yapılan eylemlerdir.
Derinlik: Yoldaki adım sayısıdır.

Problem Çözme Performansı:
Bütünlük: Problemin çözümü var mı?
İyimserlik: Her zaman en düşük maliyetli çözüm bu mu?
Zaman karmaşıklığı: Bu çözümü bulmak için ne kadar zaman sürer?
Alan karmaşıklığı: Aram yapmak için ne kadar bellek gerekir?

Zaman ve Alan karmaşıklığı için:
b: Herhangi bir düğüm kendinden sonra kaç farklı yola çıkar
d: En düşük maliyetli çözüm derinliği
m: Durum uzayındaki herhangi bir yolun maksimum derinliği

BİLGİSİZ ARAMA STRATEJİSİ:

Soru tanımında belirtilen bilgilerden başka bir bilgi yoktur. Yayılım Öncelikli Arama(BFS), Sabit Maliyet Araması(UCS), Derinlik Öncelikli Arama(DFS).



ARAMA ALGORİTMALARI--------

Yayılım Öncelikli Arama(BFS):

Öncelikle kök düğüm genişletilir ve genişletilen saçaktaki tüm düğümler açılır. Gidilen düğüm en alt derinliğe kadar iner ve diğer saçaklarda eş güdümlü olarak ilerlenir. Böylece bütün yollardaki düğümler derinlikleri eşit olarak açılır. İlk giren ilk çıkar(FIFO) kuralı geçerlidir. ilk ziyaret edilen düğüm önce genişletilir. Yeni oluşturulan tüm elemanlar sıranın sonuna eklenir. Sığ düğümler , derin düğümlerden önce açılır.

Performans açısından baktığımızda bütünlük olarak arama tamamlanır, iyimserlik olarak çözüme ulaşılır, zaman karmaşıklığı olarak sürekli artış vardır ve alan karmaşıklığı olarak sürekli bir artış vardır.

Sabit Maliyet Araması(UCS):

Kök düğümden alt düğümden saçakları açar. Ardından en az maliyetli olanı bulur ve bu saçakları açarak ilerler.

Performans açısından baktığımızda bütünlük olarak arama tamamlanır, iyimserlik olarak eğer adım sayısı > E ise , zaman karmaşıklığı ve alan karmaşıklığı olarak g<= en iyi çözüm maliyetidir.

Derinlik Öncelikli Arama(DFS):

En derine inerek ilerler. Eğer hedefi ilgili düğümde bulamazsa diğerlerinin derinliklerine iner. Son giren ilk çıkar(LIFO) kuralı ile ilerler. Riskli bir yöntemdir ve sonsuza kadar gidebilir. Her zaman sonuca ulaşmak mümkün değildir.

Performans açısından baktığımızda bütünlük olarak sonsuz döngüye girerse arama bitmez, iyimserlik olarak en iyi çözüm değildir, zaman karmaşıklığı olarak çok zaman harcar ve alan karmaşıklığı olarak bellek harcaması çoktur.

SEZGİSEL ALGORİTMALAR-----

Açgözlü Yaklaşım(Greedy):

Sezgisel arama yapmaktadır ve en kısa yolu bularak işlemleri yapar. Gerçek yol maliyeti yerine sezgisel yol maliyetini esas alır. Örnek olarak şehirler arası araba yolcuğu yaparken gitmeniz gereken yol uzunluğu yerine bulunduğunuz konum ile gideceğiniz konum arası kuş uçumu mesafe sizin için daha dikkat çekici olabilir. Bu yöntemde en iyi çözüm bulunmayabilir ve çıkmaza girildiğinde sonuca ulaşılmaz.

Performans açısından baktığımızda bütünlük olarak arama bitmeyebilir, iyimserlik olarak çözüme ulaşılmayabilir, zaman karmaşıklığı olarak iyi bir sezgisel gelişme olabilir, alan karmaşılığı olarak her düğüm bellekte tutulur.

A Yıldız(A*) Araması:

Maliyeti çok olan yolların genişletilmemesini sağlar. F(n) = g(n) + h(n) formülü vardır. F(n), hedefe varış masrafıdır. g(n), gerçek maliyettir. h(n), sezgisel maliyettir. Bir problemin tanıtımı yerine soruna özgü bilgiyi kullanır. Bir noktadan bir hedefe giderken gerçek yol maliyeti bilinmiyorsa kullanılır, eğer yol maliyeti biliniyorsa BFS kullanılır.
h(n) = gerçek yol maliyeti ise yanılma yoktur.
h(n) < gerçek yol maliyeti ise optimal çözüm vardır ve yanılma olur, başka yollarda incelenir.
h(n) > gerçek yol maliyeti ise optimal çözüm yoktur.
En iyi sonucu her zaman vermeyebilir ve en fazla masrafı da verebilir. Tüm sezgisel yöntemler kabul edilmez.
Kabul edilebilir sezgisel yöntemler:
h(n) = sezgisel ve h*(n) = gerçek olmak üzere, h(n)<=h*(n) formülü optimal bir yöntemdir. Örnek olarak iki şehir arası kuş uçusu mesafeyi verilebilir. İki şehir arası kuş uçusu mesafeye yakın yolu seçtiğinizde, gideceğiniz yol uzunluğu diğer yollardan daha uzun olabilir.



Özyinelemeli En İyi Arama Algoritması(RBFS):

f(n) = g(n) + h(n) olmak üzere arama esnasında, kendinden sonraki en iyi ikinci yöntemi bellekte tutar. Alt dallardaki yollar hafızadaki yoldan maliyetli ise, hafızadaki yola döner, değil ise deva eder.

Yerel Arama Algoritması:

Hedefe giden yol önemsizdir ve hedef durumun kendisi çözümdür.
Durum Alanı ise tanımlanmış durumun kendisi çözümdür, kısıtlamalar varsa tek  bir çözüm vardır.

ÇEKİŞMELİ ALGORİTMALAR-------

OYUN:

Çok Etmenli Ortamlar: Bir ajan diğer ajanların hamlelerine dikkat eder, rakip oyuncunun hamlesine dikkat eder. Rekabetçi ve işbirlikçi durumlar oluşabilir.
Rekabetçi Ortamlar: Her bir ajanın hedefinin çakıştığı ortamlardır.
Toplamları Sıfır Oyunlar: İki ajan arasında beraberlik durumu, bir ajan kazanırken diğer ajanın kaybetmesi durumları oluşur. Eşitlik ya da zıtlık mantığı vardır.

ARAMA BİLEŞENLERİ:

Başlangıç  Durumu: Oyuncu başlangıç konumu
Varis Fonksiyon: Oyuncu hamlelerinin listesi
Terminal Test: Oyunun biteceği zamanı bildirir.
Terminal Durumu: Oyunun nerede bittiğini bildirir.
Yardımcı Fonksiyon: Terminal için sayısal değer atar.

OYUN AĞAÇLARI:

Oyun esnasındaki bütün ihtimaller dikkate alınır. Minimax değerler üzerinden gidilir. Kazanıldığında +1, kaybedildiğinde -1 ve beraberlik durumu için 0 değeri atanır. Bu sistemde bilgisayarın kazanması hedeflenir.
Minimax: Bilgisayar kazanmalı, max = +1 ise sıra sizin, max= -1 ise sıra rakibin olmak üzere sıralı bir şekilde oyun oynama düzeni vardır.

ÇOK OYUNCULU OYUNLAR:

Birçok oyun iki kişiden fazla oynanır. Her düğümde sırası ile bir oyuncu oynar. Oyun ilerledikçe ajanlar arasında(oyuncular arasında) işbirliği oluşabilirken işbirlikleri bozulabilir.

ALFA-BETA BUDAMASI:

Amaç, ihtimal sayısını azaltmaktır. İki taraflı bir oyunda kullanılır. Alfa değeri, bilgisayarın oynadığı değerdir ve max değeri alır. Beta değeri ise rakibin oynadığı değerdir ve min değeri alır.

MANTIKSAL AJANLAR-------

Wumpus World Problemi: Hayalet avcısı problemi olarak anılır. Kısmen gözlemlenebilir bir ortam vardır.
Bilgi Tabanı: İyi bir şekilde belirtilmiş cümle kümesidir.
Deklaratif: Bir ajanın, önceden hazırlanmış bilgiyi kendi hafızasına kullanmak için almasıdır.
Deklaratif Olmayan(Episodik-Anısal): Bireyin rutin hayatı sırasında yaşadığı deneyimlerdir.
Söylemek(Tell): Deklare etmek.
Sormak(Ask): Çıkarım yapılır.

TEMEL BİLGİ TABANI AJANI:

Bilgi Tabanı: Arka plan bilgisi korunur. Ne anlaşıldığı, ne yapılacağı ve ne yapıldığını temsil eder. Uygun işlem  yapılır ve eski ile yeni bilgi birleştirilir.

MANTIK: Bilgisayar sözel çıkarımları işleyemez. Veriyi işlemek için matematiksel ifadeler ve operatörler gerekir.

Mantık: Bilgiyi temsil eden biçimsel diller, sonuçların temsilidir.
Söz Dizimi: Biçimsel dilde yazılan cümlelerdir.
Anlamsal: Anlamı bilimsel olarak operatörler aracılığıyla gösterilir.
Zorunluluk: Bir sonuca varmak, çıkarımla bulunmaktadır. Alfa işareti ile gösterilir. Doğru ise bilgi tabanı da doğrudur.
Model: Mantıksal doğru çıkarımlardır. Kapsayan kümedir. Simgesi M harfidir. BT= M(a), a harfi tüm a değerlerini alır.

YAPAY SİNİR AĞLARI-------

AKTİVASYON FORMÜLÜ: 

En popüler yaklaşımdır. İnsan gibi akıl yürütme, düşünme ve karar verme hedeftir. Makine öğrenimi, deneyimlerden çıkarım yapar, yetenek gelişir ve sistem performansı artar. Yapay sinir ağları insan sinir sistemine benzer yapıda çalışır. İnsanda yer alan sinir hücresi yapısı ve bağlantıları esas alınır. Dendrit, yapay sinir ağlarındaki karşılığı Giriş’dir. Sinaps, yapay sinir ağlarındaki karşılığı Sinaps’dır. Soma, yapay sinir ağlarındaki karşılığı Ağırlık’dır.
İlkel Konsept: Sinir ağları, nöron adında çok basit ve birbirleriyle birkaç bağlantı ve işlemciden oluşur.
Nasıl Öğrenir: Nöronlar biribiri ile bağlı, her bağlantı kendisi ile bir ilişkisi vardır.
Ağırlık: Nöron girdisinin gücü ve önemidir. Tekrar tekrar işlem yapılır ve güncellenir. En iyisi bulunana kadar devam eder.
Nasıl Oluşturulur: Ağ mimarisi; kaç nöron olacak ağırlık değeri, hangi algoritma ile eğitilmesi gerektiği belirlenir. Bir eşik değeri teta ile karşılaştırılır.

Son aktivasyon fonksiyonu, işaret fonksiyonu olarak belirtilir. +1,0,-1
Adım, işaret, doğrusal ve sigmoid olarak fonksiyonlar vardır,
Adım fonksiyonu ile işaret fonksiyonu zor limit fonksiyonudur ve sınıflandırma ile model tanımada görevlidir.
Doğrusal fonksiyonlar ise ağırlık girişine göre bir çıkış sağlar, genellikle doğrusaldır.
Sigmoid fonksiyonlar + ve - arasında değer alır. 0 ve 1 arası değer alır.

ÇOK KATMANLI ALGILAYICI: Doğrusal bir birleştirici ve sert bir sınırlayıcı, model kullanılır. Temel amacı girdileri sınıflandırmaktır.

ÇOK KATMANLI SİNİR AĞI:
Sinir Ağı:  Giriş katmanı, dışarıdan veri alır. Gizli katman, nöron özellikleri, gizlenen özellik, birden fazla sayıda olabilir. Çıkış katmanı ise gizli katmandan gelen çıkışı sağlar. Ticari ağlarda dört tane katman olabilir, her katman 10 ile 10.000 arası nöron içerebilir. Deneysel ağlarda altı katman olabilir. Ayrıca pratik olarak üç katman yeterli olmakla birlikte her katman ek hesaplama yükü getirir.

GERİ YAYILIMLI YASA:
Giriş Katmanı -> eğitim modeli girişten yayılımlı bir şekilde çıkışa ulaşır. Eğer model ile çıkış farklı ise hata oranını hesapla ve girişe yayılımlı bir şekilde git. Her nöron, sonraki katmandaki nörona bağlanır. Sigmoid fonksiyon kullanılır.

ÖĞRENME YASASI: Hata sinyalleri yaymak için girişe gider. Bias, aktivasyon fonksiyonu sağ sola öteler. Bias ile başarılı öğrenme amaçlanır.



GENETİK ALGORİTMA--------

TEMEL KAVRAMLAR:

Bir sınıfın olasılıksal optimazasyonudur. Doğal seleksiyon, genetik kalıtımdan esinlenir. Arama hakkında az bilgi vardır ve zor bir problem çözmek amaçlanır. Bir arama algoritması olarak çalışır. Evrimsel algoritma da denir. Değerlerin aynı olup olmaması değildir ve daha iyi ve daha kötü olup olmaması dikkate alınır. Hızlı bir çözüm bulma yoludur. Kromozom kodlama olarak çalışır. Gen ise 0 ve 1 ile çalışır. Değerlendirme ise kromozom performansıdır.

TEMEL MANTIK:

Probleme yönelik aday çözüm havuzu oluşur, skolastik operatörler ile gelişir.
Seçim: En iyi çözüm seçilir.
Çaprazlama: İki farklı çözüm, çaprazlanıp yeni çözümler üretilir.
Mutasyon:  Aday çözümler rastgele bozulur.
Temel Mantık Algoritması: Uygun fonksiyon seçilir. Kodlama yapılır. Rastgele popülasyon seçilir. En iyiyi bulana kadar tekrarlanır. En iyi çözüm bulunur.

Temel mantık, başlangıç algoritması ile başlar. Uygunluk değeri hesaplanır. Maksimum iterasyın kullanılır. Eğer olumlu sonuç çıkarsa bu çözüm optimal çözüm olur. Eğer optimal çözüm olmazsa seleksiyon yapılır. Çaprazlama yapılır ve mutasyon işlemine geçilir. Uygunluk değeri üzerinden bütün işlem tekrarlanır.

GENETİK ALGORİTMA:

RULET YÖNTEMİ: 

Uygunluğa göre seçilir. Kromozom büyüklüğü, uygunluğu gösterir ve yer tutar. Değerler toplanır. Her değer değer toplamına bölünür ve elde edilen oranlara göre yerleştirilir. Gelişme süreci ise sorunun kısıtlamasını ve kriterini bul, problemi kromozom olarak göster, performans için fonksiyon tanımlar, mutasyon ve çaprazlama yapar, en sonunda paremetre ayarlanır. 

Büyük popülasyonlar daha iyi sonuç verirken yavaşlığına dikkat edilmelidir. Bu yüzden en iyisi seçilmelidir.

BULANIK MANTIK------

Net bir mantık içerir veya net mantık bulanık mantık için özel bir durumdur. Örnek olarak, ılık hava soğuk bir hava mıdır yoksa sıcak bir hava mıdır?
Binary sistemde 0 ve 1 varken, bulanık mantıkta 0 ve 1 arası bir değer vardır. Net bir değer yoktur.

Net Küme: Yüzde yüz bir değer alır. 0 ve 1 olarak düşünülebilir.
Bulanık Küme: 0 ve 100 arası bir değer alır. Bir değer başlangıcına da ait olabilir.

Bulanıklaştırma: Yalın değeri 0 ve 1 arası değer dönüştür.
Durulaştırma: Bulanık değer, istenilen değere dönüştürülür.

BİRLEŞİM

Her iki küme elementlerden oluşur. Bulanık kümede her iki kümenin en büyük değeri alınır.

KESİŞİM

Her iki kümenin ortak elementlerinden oluşur. Üyelerin değeri farklıdır.

MANTIKSAL BAĞLAÇLAR

Birden fazla önermeyi birbirne bağlamak çin kullanılır.

Mamdani Çıkarımı: Giriş ve çıkışlar bulanık değerler alır. Min ve max operatörler verilir. En büyük ve en küçük değerler alınır.


Görsel Kaynakça:

Yorum Gönder

Yorum yaptığınız için teşekkürler :)

Daha yeni Daha eski