Notes 1: Introduction to Artificial Intelligence

advertisement
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
Download