Yapay Zeka BM437, Bahar 2014-1015 Öğretim Üyesi: Yrd. Doç. Dr. Mehmet ŞİMŞEK Dersin Amacı • Yapay Zekaya (YZ) Giriş ve Temel Yöntemlerin Öğrenilmesi – YZ, birçok alt alana sahip oldukça geniş bir alan • Birçok kavramı/örneği öğreneceğiz • 14 haftada her şeyi öğrenemeyiz Derse Genel Bakış • Dersin Web Sayfası – http://www.mehmetsimsek.net/bm437.htm • Ders kaynakları • Ödevler, duyurular, notlandırma… • İletişim bilgileri Akademik Dürüstlük • Her öğrenci akademik etik kurallara uymalıdır. • İhlaller FF veya daha kötü durumlara neden olabilir • Akademik etik ihlalleri: – Kopya – Aşırma – Hile BM437 Hayatınızda Neyi Değiştirecek? • Günümüzde – Bilim ve teknoloji hızla değişiyor – «eski» bilim dalları iyi anlaşıldı – Bilgisayarlar her yerde • Bilim ve Teknolojideki Çözülmesi Gereken Büyük Sorunlar – İnsan beynini anlamak • muhakeme, bilmek, yaratıcılık – Akıllı makineler yaratmak • Mümkün mü? • Teknik ve filozofik zorluklar neler? – Muhtemelen YZ bilgisayar bilimindeki en ilginç ve en zorlu soruları barındırır. Günün Dersi • Zeka nedir? Yapay Zeka nedir? • YZ’nın kısa tarihçesi – Bir başarı: Otonom Araç Stanley • YZ’nın puan cetveli – YZ’nın değişik alanlarında ne kadar ilerleme var • Uygulamada YZ – Başarılı uygulamalar • YZ’nın rasyonel bakış açısı Zeka Nedir? • Zeka: – “öğrenme ve problem çözme kapasitesi” – Özellikle, • yeni problemleri çözebilmek • mantıklı davranabilmek • İnsan gibi davranabilmek • Yapay Zeka – Akıllı varlıklar oluştur – 2 ana yaklaşım: “mühendislik” ve “bilişsel modelleme” Zeka Neleri Kapsar? • Gerçek Dünya İle Etkileşebilme Yeteneği – – – – Algılamak, anlamak ve harekete geçmek Ör: konuşmayı algılama, anlama ve sentezleme Ör: görüntüyü anlama Ör: bir etkisi olan hareket sergileme • Neden-Sonuç İlişkisi Kurma ve Planlama – Verilen bir giriş ile dış dünyayı modelleme – Yeni problemler çözme, planlama ve karar verme – Beklenmeyen problemlerin ve belirsizliklerin üstesinden gelme • Öğrenme ve Uyum Sağlama – Sürekli öğreniriz ve etrafa uyum sağlarız – İç modellerimiz sürekli «güncellenir» • Ör: bir bebeğin hayvanları tanıması ve sınıflandırması. YZ İle İlgili Akademik Disiplinler • Felsefe mantık, neden-sonuç ilişkisi kurma yöntemleri, öğrenmenin temelleri, dil, rasyonellik. • Matematik biçimsel gösterim ve ispat, algoritmalar, hesaplama, karar verilebilirlik/verilemezlik. • Olasılık/İstatistik belirsizliğin modellenmesi, veriden öğrenme • Ekonomi fayda, karar teorisi, rasyonel ekonomik ajanlar • Nöroloji bilgi işleme birimleri olarak nöronlar • Psikoloji/ Bilişsel Bilim insanlar nasıl davranır, algılar, bilişsel bilgiyi nasıl işlerler bilgiyi nasıl sunarlar. • Bilgisayar mühendisliği hızlı bilgisayarlar yapma • Kontrol teorisi zamana bağlı bir amaç fonksiyonunu maksimize eden sistemler geliştirme • Dil bilimi bilginin sunumu, gramerler YZ Tarihi • 1943: ilk adımlar – McCulloch & Pitts: beynin boolean devre modeli • 1950: Turing – Turing‘in «Hesaplama makinesi ve zeka» • 1956: birth of AI – Dartmouth konferansı: «Yapay Zeka» ismi benimsendi • 1950’ler: ilk umutlar – İlk YZ programları : – Arthu Lee Samuel‘in dama programı – Newell & Simon‘un Mantık Teorisi • 1955-65: “büyük coşku” – Newell ve Simon: GPS, general problem solver – McCarthy: LISP • YZ Tarihi 1966—73: Gerçeklerle yüzleşme – Çoğu YZ probleminin çözümü zordur – Mevcut yapay sinir ağı yöntemlerinin yetersizliği tespit edildi • Yapay sinir ağları araştırmaları neredeyse yok oldu • 1969—85: Alan bilgisinin kullanılması – – • 1986-- Makine öğrenmesinin doğuşu – Yapay sinir ağları yeniden popülarite kazanır – • Bilgi tabanlı sistemlerin geliştirilmesi Kural tabanlı uzman sistemlerin başarısı, • Ör: DENDRAL, kimya bilgisi kullanarak bilinmeyen organik moleküllerin tanımlanması • MYCIN, hastalıklara neden olan bakterileri sınıflandırarak kişiye özel antibiyotik önerme • Fakat bu sistemlerin ölçeklenebilirliği zayıftı Makine öğrenmesi algoritmaları ve uygulamalarında büyük gelişmeler 1990-- Belirsizliğin rolü – Rasgele değişkenleri ve bunların durumsal bağımlılıklarını graflar ile gösteren Bayes ağlarının gelişimi • 1995– Bir bilim olarak YZ – Öğrenme, neden-sonuç ilişkisi kurma ve bilgi gösteriminin bütünleştirilmesi – Görme, dil, veri madenciliği gibi alanlarda YZ yöntemlerinin kullanılması Başarı Hikayeleri • Deep Blue Dünya satranç şampiyonu Garry Kasparov’u 1997’de yendi. • Bir YZ programı on yıllardır ispatlanamayan bir matematik hipotezini ispatladı (Robbins hipotezi) • 1991 Körfez Savaşında, ABD, 50.000 aracı, kargoyu ve insanı planlayan ve zamanlayan bir YZ lojistik programı geliştirdi • NASA’nın otonom uçuş programı bir uzay aracının görev zamanlamasını kontrol etti. • Proverb, kare bulmacayı birçok insandan daha iyi çözebiliyor. • Robot sürücü: DARPA «grand challenge» 2003-2007 • 2006: tüketici kameralarında yüz tanıma yazılımları • iRobot Roomba • Makine Öğrenmesi ile spam filtresi • Siri Örnek: DARPA «Grand Challenge» • Grand Challenge • 2004 Grand Challenge: • 2005 Grand Challenge: • 2007 Şehiriçi Grand Challenge • 2012 Robotik Grand Challenge – Parkuru tamamlayan robotlar için 1-2 milyon $ ödül – Bilgisayarla görme, robotik, planlama, makine öğrenmesi vb. alanları canlandırdı – Nevada çölünde 150 mil – En uzağa gidebilen robot 7 mil kadar yol aldı – Ama parkurun en zorlu kısmı yolun başındaydı – 132 mil – Dar tüneller, keskin dönüşler, rüzgarlı dağ geçişleri… – Stanford birinci… – 60 mil. – Trafik kuralları, engeller, araçlar…. – Tehlikeli, bozuk ve insan yapımı ortamlarda çalışabilme Stanley Robot Stanford Racing Team www.stanfordracing.org İnsana benzer bir bilgisayar yapmak için ne gerekli? • Faydalı olabilecek bileşenler neler? – Hızlı donanım? – Usta seviyesinde satranç oynamak? – Karşılıklı konuşabilme? • Konuşmayı sentezleme • Konuşmayı tanıma • Konuşmayı anlama – Görüntü tanıma ve anlama? – Öğrenme? – Planlama ve karar verme? Beyin kadar karmaşık bir donanım yapılabilir mi? • Beynimiz ne kadar karmaşık? – – – – Bir sinir hücresi temel bir bilgi işleme birimidir İnsan beyninde yaklaşık 10 12 sinir hücresi var Yakalış 10 14 bağlantı ile sinir hücreleri bağlı İşlem süresi: 10 -3 saniye (1 milisaniye) • Yaptığımız bilgisayarlar ne kadar karmaşık? – CPU başına 108 ‘den fazla transistör – Süperbilgisayar: yüzlerce CPU, 1012 bit RAM – İşlem süresi : 10 - 9 saniye • Sonuç – Evet: yakın gelecekte beyindeki basit işlem elemanları gibi elemanlara sahip olan bilgisayarlarımız olacak ama: • Beyindekinden daha az bağlantı – Ancak, beyin gibi bir bilgisayar yapmakla beyin gibi davranabilen bilgisayar yapmak farklı şey! Bilgisayarlar insanları satrançta yenebilir mi? • Satranç oyunu klasik bir YZ problemidir Points Ratings – İyi tanımlanmış – İnsanların oynaması için yeterince karmaşık 3000 2800 2600 2400 2200 2000 1800 1600 1400 1200 1966 Deep Blue Dünya Şampiyonu (İnsan) Deep Thought Ratings 1971 1976 1981 1986 1991 1997 • Sonuç: – Evet: günümüz bilgisayarları en iyi ustayı yenebilir. Bilgisayarlar konuşabilir mi? • Bu problem “Konuşma Sentezleme” olarak bilinir – Yazıyı seslere çevirme – Mer-ha-ba… • Zorluklar – Heceleme (lookup) sesi doğallıktan uzaklaştırır – Sesler bağımsız değildir – Bulunduğu yere göre telaffuz ve vurgu değişir – Vurgu, his … • İnsanlar ne söylemek istediklerini bilerek vurgu yaparlar • Makineler yapamaz • Sonuç: – Bütün bir cümle için Hayır – Bağımsız kelimeler için Evet Bilgisayarlar konuşmayı tanıyabilir mi? • Konuşma Tanıma: – Mikrofondan alınan sesleri sözcük listesi haline getirme – Klasik bir YZ problemi ve bir parça zor • Küçük bir kelime dağarcığındaki bağımsız kelimeleri tanıma • Sistemler bunu %99 gibi yüksek bir oranda yapabilir • Ör: müşteri hizmetleri numaraları – Kısıtlı sözcük dağarcığı (borç, kredi, kart, açma …) – İlk olarak bilgisayar size yardımcı olur. Başaramazsa bir insana yönlendirir Bilgisayarlar konuşmayı tanıyabilir mi? • Normal konuşmayı tanımak biraz daha zordur – Konuşma süreklidir: bir kelime nerde başlıyor ve nerde bitiyor? – Geniş sözcük dağarcığı • Binlerce olası kelime var • İnsanlar lafın gelişinden bir kişinin ne demek istediğini anlayabilir – Gürültü, diğer konuşmalar, ses kısıklığı… – Normal konuşmayı tanımada %60-70 başarı var. • Sonuç: – Hayır, normal konuşma, tanımak için biraz karmaşık – Evet, sınırlandırılmış problemler için (tek konuşmacı, kısıtlı sözcük dağarcığı…) Bilgisayarlar konuşmayı anlayabilir mi? • Anlamak tanımaktan farklıdır: – «El elin eşeğini türkü çağırarak arar» • Bilgisayarın bütün kelimeleri tanıdığını düşünün • Kaç farklı yorum çıkar? Bilgisayarlar konuşmayı anlayabilir mi? • Anlamak tanımaktan farklıdır: – «El elin eşeğini türkü çağırarak arar» • Bilgisayarın bütün kelimeleri tanıdığını düşünün • Kaç farklı yorum çıkar? • Yorumlardan yalnızca bir tanesi doğru – Fakat bilgisayar bunu nasıl anlayacak? – Anlaşılacağı üzere insanlar hissi bilgilerini iletişimde kullanırlar • Sonuç: Hayır. Söylemek istediğimiz şeyin aslında ne olduğunu bilgisayarlar henüz anlayamaz. Bilgisayarlar öğrenip adapte olabilirler mi? • Öğrenme ve Uyum Sağlama – Bir bilgisayarın boş bir yolda araç kullanmayı öğrendiğini düşünün – Ona yapması gereken şeylerle ilgili birçok kural öğretebiliriz – Ya da onu koltuğa geçirip yoldan ayrılma gibi durumlarda ona müdahale edebiliriz • Google’ın sürücüsüz aracı – Makine öğrenmesi bilgisayarları açık biçimde programlamadan bilgisayarların öğrenmesini ve bazı şeyleri yapmasını sağlar • Sonuç: Evet. Eğer bilgisayarlara bilgiyi doğru yöntemlerle verirseniz öğrenip adapte olabilirler Bilgisayarlar görebilir mi? • Tanımak mı? Anlamak mı? – Bir görüntüdeki nesneleri tanımak ve anlamak • Sınıfa bakın • Efor harcamadan nesneleri tanıyabilirsiniz • İnsan beyni 2 boyutlu görüntüleri 3 boyutlu haritalara çevirebilir • Görsel tanıma neden zor bir problemdir? • Sonuç: – Çoğunlukla Hayır. Bilgisayarlar, belirli kısıtlamalar altında belirli tipteki nesneleri «görebilir» – Evet. Yüz tanıma gibi belirli problemlerde. Bilgisayarlar plan yapıp optimal kararlar verebilirler mi? • Zeka – – • Planlamayı zor yapan şey nedir? – – – • Problem çözme ile karar verip plan yapmayı içerir Ör: Tahiti’de tatil yapmak istiyorsunuz • Tarihlere ve uçuşlara karar vermelisiniz • Havaalanına gitmelisiniz vb. birçok iş ve planı barındırır Dünya tahmin edilemez. • Uçuş iptal edilebilir ya da uçak bakıma alınabilir Çok büyük miktarlarda olası durumlar vardır • Bütün uçuşları ve bütün tarihlere göz attınız mı? – hayır: akıl yürütme, olasılıklarınızı sınırlar YZ sistemleri yalnızca kısıtlanmış planlama problemlerinde başarılıdır Sonuç: Hayır. Gerçek dünya problemleri üzerinde planlama ve karar verme halen bilgisayarların yeteneklerini aşıyor – istisna: çok iyi tanımlanmış, kısıtlı problemler. • YZ Sistemlerinin Pratik Alanda Kullanımlarının Özeti Konuşma sentezleme, tanıma ve anlama – – • Bilgisayar görmesi – – • Çeşitli kısıtlarına rağmen adaptif sistemlerin kullanım alanları var Planlama ve neden-sonuç ilişkisi kurma – – • Kısıtlı problemler için çalışıyor (el yazısı tanıma gibi) Gerçek dünyayı anlama, doğa bilimleri gibi alanlar halen çok zor Öğrenme – • Kısıtlı sözcük dağarcığı uygulamaları için çok kullanışlı Kısıtlandırılmamış konuşma anlama problemi halen çok zor Kısıtlı problemler için çalışıyor (satranç gibi) Gerçek dünya problemleri halen çok zor Genel anlamda: – Zeki sistemlerin birçok bileşeni “yapılabilir” Günlük hayatımızda YZ • Müşteri Hizmetleri Merkezi – • Dijital Kameraları – • Akıllı karakterler Beyaz Eşyalar – • Yüz tanıma ve odaklanma Bilgisayar Oyunları – • Otomatik ses tanıma … Fuzzy çamaşır makinesi Yapay Zekanın Değişik Tipleri 1. İnsanların “düşüncesini” modelleme 2. İnsanların “davranışlarını” modelleme 3. İdeal bir “aracın” nasıl “düşünmesi gerektiğini” modelleme 4. İdeal bir “aracın” nasıl “davranması gerektiğini” modelleme • Modern YZ son tanıma odaklanmıştır – Biz de bu “mühendislik” yaklaşımına odaklanacağız – Başarı, aracın görevini yerine getirmesi ile ölçülür İnsan gibi davranmak: Turing testi • Turing (1950) “hesaplama makinesi ve zeka“ • “Makineler düşünebilir mi?" “Makineler akıllıca davranabilir mi?“ • Akıllı davranış testi * Soru: Akıllı bir sistemin insan gibi davranması gerekli mi? İnsan gibi düşünmek • Bilişsel bilimin yaklaşımı – İnsan zihnindekileri anlamaya çalışmak – Ör: Tersine mühendislik ile nasıl öğrendiğimiz, hatırladığımızı, tahmin ettiğimizi anlamaya çalışmak • Problemler – İnsanlar “rasyonel” davranmazlar • Ör: kazalar – Tersine mühendislik zor bir iş – Beynin donanımı bir bilgisayar programı için çok yabancıdır. Rasyonel düşünmek • Gerçek dünyayı problemlerini “mantık” ile ifade et. • Bu problemler hakkında neden-sonuç ilişkisi kurmak için mantıksal işleçler kullan. • Rasyonel düşünmek YZ için çok uygun bir yaklaşımdır • Sınırları – YZ aracının gerçek dünya ile ilgili bilmediği şeyleri hesaba katmaz – Gerçek dünya problemleri için amaçları, maliyetleri vb. tanımlamanın bir yolu yok Rasyonel davranmak • Karar Teorisi – – – – Gerçek dünya problemi için durumları belirle YZ aracının gerçekleştirebileceği adımları belirle Fayda = Herbir adım/durum çifti için YZ aracının kazancı Bir YZ aracı eğer “Fayda”yı maksimize edecek adımları seçerse rasyonel olarak davranmış olur. Özet • Yapay Zeka şu alanları kapsar – İşaretlerin otomatik olarak tanınması ve anlaşılması – Neden-sonuç ilişkisi kurma, planlama, karar verme – Öğrenme ve uyum sağlama • YZ’nın kısmen de olsa ilerlediği alanlar – Tanıma ve öğrenme – Bazı planlama ve neden-sonuç ilişkisi kurma problemleri – … fakat çok fazla açık çalışma alanı var • YZ uygulamaları – Endüstri, Sağlık, Bilim… • YZ’nın rasyonel bakış açısı Biz ne öğreneceğiz? 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Yapay Zekaya Giriş Arama Algoritmaları Arama Algoritmaları Karınca Kolonisi, Tavlam Benzetimi, Tabu Arama Algoritmaları Karınca Kolonisi, Tavlam Benzetimi, Tabu Arama Algoritmaları’nın Uygulamaları Genetik Algoritma Genetik Algoritma Uygulamaları Yapay Sinir Ağları Yapay Sinir Ağları Yapay Sinir Ağları Uygulamaları Bulanık Mantık Bulanık Mantık Uygulamaları Proje Sunumları Proje sunumları Değerlendirme • • • • Vize %30 Final %40 Proje %30 Ödev + 10 puan