Yapay Sinir Ağları ile gerçekten ilgileniyorum ama başlamak için bir yer arıyorum.
Orada hangi kaynaklar var ve iyi bir başlangıç projesi nedir?
Yapay Sinir Ağları ile gerçekten ilgileniyorum ama başlamak için bir yer arıyorum.
Orada hangi kaynaklar var ve iyi bir başlangıç projesi nedir?
Yanıtlar:
İşte bazı Sinir Ağı programlama örnekleri. http://www.codeproject.com/KB/recipes/neural_dot_net.aspx
buradan okumaya başlayabilirsiniz: http://web.archive.org/web/20071025010456/http://www.geocities.com/CapeCanaveral/Lab/3765/neural.html
Kendi adıma bununla ilgili bir kursu ziyaret ettim ve bazı literatür üzerinde çalıştım.
Her şeyden önce, yapay sinir ağlarının beyinle bir ilgisi olduğu, ancak biyolojik nöron ağlarına geçici bir benzerlik olduğu fikrinden vazgeçin. Biyoloji öğrenmek, sinir ağlarını etkili bir şekilde uygulamanıza yardımcı olmaz; doğrusal cebir, hesap ve olasılık teorilerini öğrenecek. En azından kendinizi fonksiyonların temel farklılaşması, zincir kuralı, kısmi türevler (gradyan, Jacobian ve Hessian) ve matris çarpımını ve köşegenleştirmeyi anlama fikrine aşina olmalısınız.
Gerçekten bir ağı eğitirken yaptığınız şey, büyük, çok boyutlu bir işlevi optimize etmektir (ağdaki her bir ağırlığa göre hata ölçümünüzü en aza indirir) ve bu nedenle, doğrusal olmayan sayısal optimizasyon tekniklerinin araştırılması öğretici olabilir. Bu, sinir ağlarının dışındaki geniş bir literatür temeliyle geniş çapta incelenen bir sorundur ve web'de sayısal optimizasyonda çok sayıda ders notu mevcuttur. Başlangıç olarak, çoğu insan basit eğimli iniş kullanır , ancak bu, aşağıdaki gibi daha incelikli yöntemlerden çok daha yavaş ve daha az etkili olabilir.
Temel fikirleri öğrendikten sonra, gizli katmanınızda farklı "ezme" işlevlerini denemeye başlayabilir, öğrenmeyi hızlandırmak için çeşitli düzenleme türleri ve çeşitli ince ayarlar ekleyebilirsiniz. Kapsamlı bir "en iyi uygulamalar" listesi için bu makaleye bakın .
Konuyla ilgili en iyi kitaplardan biri Chris Bishop'un Örüntü Tanıma için Sinir Ağları'dır . Bu aşamada oldukça eskidir, ancak yine de mükemmel bir kaynaktır ve genellikle kullanılmış kopyaları yaklaşık 30 $ karşılığında çevrimiçi olarak bulabilirsiniz. Yeni kitabı Örüntü Tanıma ve Makine Öğrenimi'ndeki sinir ağı bölümü de oldukça kapsamlı. Özellikle iyi bir uygulama merkezli eğitim için, bağlantıyı görsel kalıpları sınıflandırmayı öğrenmede çok iyi hale getirecek şekilde kısıtlayan, evrişimli ağ adı verilen akıllı bir ağ türü uygulayan CodeProject.com'da buna bakın .
Destek vektör makineleri ve diğer çekirdek yöntemleri oldukça popüler hale geldi çünkü ne yaptığınızı bilmeden bunları uygulayabilir ve genellikle kabul edilebilir sonuçlar elde edebilirsiniz. Öte yandan sinir ağları, birçok sorun için, özellikle de bilgisayar görüşü gibi alanlardaki büyük ölçekli problemler için hala tercih edilmelerine rağmen, dikkatli ayarlama gerektiren büyük optimizasyon problemleridir.
Anoop Madhusudanan'ın bu harika serisini Code Project üzerine şiddetle tavsiye ediyorum .
Nasıl çalıştıklarını kolay anlaşılır bir şekilde anlamanız için sizi temel bilgilerden geçirir ve kendi brainnet
kütüphanenizi oluşturmak için kendi kütüphanesini nasıl kullanacağınızı gösterir .
Yapay Sinir Ağları bu günlerde biraz azalıyor. Destek vektör makineleri ve çekirdek yöntemleri daha fazla sorun sınıfı için geri yayılmadan daha iyidir. Sinir ağları ve genetik algoritmalar, modern makine öğrenimi hakkında pek bilgisi olmayan ancak son teknoloji ürünü olmayan insanların hayal gücünü yakalar.
Yapay zeka ve makine öğrenimi hakkında daha fazla bilgi edinmek istiyorsanız, Peter Norvig'in Yapay Zeka: Modern Bir Yaklaşım kitabını okumanızı tavsiye ederim . AI ve birçok modern teknolojinin geniş bir araştırması. Geçmişi ve eski teknikleri de gözden geçirir ve size yapay zeka ve makine öğreniminin temelleri hakkında daha eksiksiz bir temel sağlar.
Yine de sinir ağları oldukça kolaydır. Özellikle ağırlıkları belirlemek için genetik bir algoritma kullanıyorsanız, doğru geri yayılımdan ziyade.
Dwf'nin Chris Bishop tarafından kaleme alınan Örüntü Tanıma için Sinir Ağları tavsiyesini ikinci olarak ben . Yine de, belki de başlangıç metni değil. Norvig veya çevrimiçi bir eğitim (Matlab'da kodlu!) Muhtemelen daha nazik bir giriş olacaktır.
İyi bir başlangıç projesi OCR (Optik Karakter Tanıma) olacaktır. Sınıflandırma yapmak için metin sayfaları halinde tarayabilir ve her karakteri ağ üzerinden besleyebilirsiniz. (Elbette önce ağı eğitmeniz gerekir!).
Raul Rojas'ın kitabı çok iyi bir başlangıç (aynı zamanda ücretsiz). Ayrıca Haykin'in 3. baskısı büyük ciltli olmasına rağmen çok iyi açıklanmıştır.
Nereden başlamayacağımı tavsiye edebilirim. Amazon'da iyi değerlendirmeleri olan ve "bilişsel ve bilgisayar bilimindeki en önemli konulardan birine oldukça erişilebilir bir giriş" olduğunu iddia eden Kevin Gurney'den Sinir Ağlarına Giriş'i satın aldım . Şahsen, bu kitabı başlangıç olarak tavsiye etmem. Bunun sadece% 10'unu anlayabiliyorum, ama belki sadece benim (İngilizce benim ana dilim değil). Bu konudaki diğer seçeneklere bakacağım.
http://www.ai-junkie.com/ann/evolved/nnt1.html , geri yayılım algoritmasını tanımlamasa da, çok katmanlı algılayıcıya açık bir giriş niteliğindedir
Genel olarak AI hakkında birçok makale sunan ve sinir ağı hakkında harika metinler içeren generation5.org'a da bakabilirsiniz.
Para harcamayı dert etmiyorsanız, The Handbook of Brain Theory and Neural Networks çok iyidir. Pek çok disiplinden araştırmayı kapsayan 287 makale içermektedir. Bir giriş ve teori ile başlar ve ardından ilgi alanlarınızı en iyi şekilde karşılamak için makalelerdeki yolları vurgular.
İlk projeye gelince, Kohonen haritaları kategorize etmek için ilginçtir : müzik koleksiyonunuzdaki gizli ilişkileri bulun, akıllı bir robot oluşturun veya Netflix ödülünü çözün .
Bence iyi bir başlangıç noktası her zaman Wikipedia olacaktır . Orada, sinir ağları kullanan belgelere ve projelere yönelik bazı yararlı bağlantılar da bulacaksınız.
Çalışmam sırasında kullanılan iki kitap:
Giriş kursu: Igor Aleksander ve Helen Morton tarafından Nöral Hesaplamaya giriş.
İleri düzey kurs: Neurocomputing, Robert Hecht-Nielsen
Fausett'in Temelleri Sinir Ağları'nın basit ve girişi kolay bir giriş ders kitabı buldum .
"Hesaplamalı Zeka" ders kitabını inanılmaz derecede yararlı buldum.
Kolektif Zekayı Programlama , bunu Arama ve Sıralama algoritmaları bağlamında tartışır. Ayrıca, mevcut kodda burada (Bl.4 olarak), kitapta ele alınan kavramlar Python örnek gösterilmiştir.
Biyoloji okumanın iyi bir başlangıç noktası olmadığını söyleyen diğer insanlarla aynı fikirdeyim ... çünkü biyolojide pek çok alakasız bilgi var. Bir nöronun işlevselliğini yeniden yaratmak için nasıl çalıştığını anlamanıza gerek yoktur - sadece hareketlerini simüle etmeniz gerekir. Ray Kurzweil'in "How To Create A Mind" adlı kitabını öneriyorum - biyolojinin hesaplama modelleriyle ilgili yönüne giriyor (birkaç girdiyi birleştirerek ve bir eşik değere ulaşıldığında ateşleyerek simüle edilmiş bir nöron yaratarak) ancak gibi ilgisiz şeyleri görmezden geliyor. nöronun aslında eş girdilerini bir araya nasıl eklediği. (Örneğin, bir eşikle karşılaştırmak için sadece + ve bir eşitsizlik kullanacaksınız)
Ayrıca kitabın gerçekten 'zihin yaratmak' ile ilgili olmadığını da belirtmeliyim - sadece hiyerarşik örüntü tanıma / neokortekse odaklanıyor. Genel tema hakkında 1980'lerden beri konuşulduğuna inanıyorum, bu yüzden muhtemelen aynı bilgilerin biraz tarihli biçimlerini içeren birçok eski kitap var. Örneğin görme sisteminin çok katmanlı bir model tanıyıcı olduğunu belirten eski belgeleri okudum. Bunun tüm neokorteks için geçerli olduğunu iddia ediyor. Ayrıca, 'tahminlerini' biraz tuzlu bir şekilde alın - donanım tahminleri muhtemelen oldukça doğru, ancak bence işlerin ne kadar karmaşık olabileceğini hafife alıyor (örneğin: araba kullanmak). Doğrusu, pek çok ilerleme gördü (ve bir kısmının bir parçası oldu) ama yine de aşırı iyimser olduğunu düşünüyorum. Bir yapay zeka aracının, bir insanın yapabileceği% 99,9 + ile karşılaştırıldığında,% 90 oranında başarılı bir şekilde bir mil sürebilmesi arasında büyük bir fark vardır. Herhangi bir yapay zekanın beni en az 20 yıldır gerçekten dışarı çıkarmasını beklemiyorum ... (BMW'nin gerçek yolda 'eğitilmesi' gereken pist arabalarını saymıyorum, çünkü gerçekten aynı şekilde oynamıyorlar oyun)
Yapay zekanın ne olduğu ve nasıl modellenebileceği konusunda zaten temel bir fikriniz varsa, daha teknik bir şeye geçmeniz daha iyi olabilir.
Gerçek bir simülatörde bazı sinir ağı kavramlarının uygulamaları hakkında hızlı bir şekilde bilgi edinmek istiyorsanız, http://grey.colorado.edu/CompCogNeuro/index adresinde 'Hesaplamalı Bilişsel Sinirbilim' adlı harika bir çevrimiçi kitap (şimdi wiki) var . php / CCNBook / Main
Kitap okullarda ders kitabı olarak kullanılıyor ve sizi bireysel nöronlardan üst düzey yönetici işlevlere kadar birçok farklı beyin alanına götürüyor.
Ek olarak, her bölüm sizin için zaten kapalı olan ev ödevi 'projeleri' ile zenginleştirilir. Sadece indirin, adımları izleyin ve bölümde anlatılan her şeyi simüle edin. Kullandıkları yazılım olan Emergent biraz titiz ama inanılmaz derecede sağlam: İnanıyorum ki 10 yılı aşkın bir çalışmanın ürünü.
Geçtiğimiz dönem bir lisans sınıfında geçtim ve harikaydı. Her şeyi adım adım gösterir