Derin Sinir Ağı (DNN), bir bilgisayarın eğitilerek geleneksel programlama teknikleri kullanılarak yapılması çok zor olan görevleri yapmasını sağlayan bir makine öğrenme tekniğidir. Sinir ağı algoritmaları insan beyninden ve işlevlerinden esinlenmiştir: insan zihnimiz gibi, yalnızca önceden belirlenmiş bir kurallar listesini takip ederek değil, aynı zamanda önceki yinelemelere ve deneyimlere dayanarak çözümleri tahmin ederek ve sonuçlar çıkararak çalışmak üzere tasarlanmıştır.
Sinir ağı mimarisi nedir?
Bir sinir ağı, diğer katmanlardan girdi alan ve nihai bir sonuca ulaşılana kadar bir çıktı üreten birden fazla düğüm katmanından oluşur. Sinir ağları herhangi bir sayıda gizli katmana sahip olabilir: ağda ne kadar çok düğüm katmanı varsa, karmaşıklık o kadar yüksek olur. İşte farklı sinir ağı mimarileri:
- Geleneksel sinir ağları, genellikle 2 veya 3 gizli katmandan oluşur;
- 150'ye kadar gizli katmana sahip olabilen derin öğrenme ağı;
Sinir ağları ve derin sinir ağları arasındaki fark nedir?
Derin bir sinir ağı, "basit" bir sinir sisteminden çok daha karmaşık bir sistemdir. Bir sinir ağı bir satranç oyununa benzetilebilir ve algoritmalara göre davranır: rakibin hamlelerine ve eylemlerine göre farklı taktikler önerilecektir. Bu sinir ağı, programcının girdileri ile sınırlı olacaktır:
- Satranç taşları nasıl hareket eder?
- Satranç tahtasının boyutu;
- Farklı durumlar için farklı stratejiler;
Girdi verilerinin ötesine geçen ve önceki deneyimlerden öğrenebilen bir sinir ağı, derin bir sinir ağı haline gelir
Aynı bilgisayarda örneğin bir sinir ağını eğitebilir, sonra onunla diğer insanlara karşı oynayabilir ve oynadıkça öğrenmesine izin verebilirsiniz. Bu noktadan sonra, eğer bir sinir ağı farklı oyunculardan öğrenebilirse, satranç ustaları için bile derin bir sinir ağını yenmek zor ya da tam anlamıyla imkansız hale gelebilir.
Derin sinir ağları sesli komutları tanıyabilir, sesleri tanımlayabilir, sesleri ve grafikleri tanıyabilir ve bir sinir ağından çok daha fazlasını yapabilir. Derin öğrenme ağları, bir sorunu çözmek için algoritmalarla birlikte "Büyük Veri "yi kullanır ve bu derin sinir ağları sorunları sınırlı insan girdisi ile veya hiç insan girdisi olmadan çözebilir.
Derin bir sinir ağının çalışması nasıl görselleştirilir?
Bir derin sinir ağının işleyişi en iyi bir örneğe bakılarak anlaşılabilir. Elinizde, bazılarında köpeklerin de bulunduğu yüz binlerce resim olduğunu ve resimlerdeki köpekleri tanıyacak bir bilgisayar programı yazmaya karar verdiğinizi düşünün.
İki seçeneğiniz var. Köpekleri açıkça tanımlamak için bir program yazabilirsiniz ya da köpekleri nasıl tanımlayacağını "öğrenen" bir program yazabilirsiniz.
Akılsızca ilkini yapmaya karar veriyorsunuz.
Geleneksel programlama tekniklerini kullanmak uzun ve zordur ve sonuçlar her zaman doğru değildir
Köpek resimlerini tanımlamak için, "eğer" ve "o zaman" ifadelerini kullanan bir yazılım programı oluşturursunuz; burada bir köpeğe bakma olasılığınız, kürk, sarkık kulaklar ve kuyruk gibi köpek benzeri bir özelliği her tanımladığınızda artacak şekilde programlanır. Ancak bu tür bir sinir sistemi birçok açıdan zordur:
Örneğin bir piksel kümesinin kuyruğa benzemesi, bir köpeğe bakıyor olma olasılığınızı artırır. Derin sinir ağınızın köpek benzeri niteliklere karşılık gelen piksel gruplarını tanımlaması gerekir. Bunu yapmayı başarsanız bile, algoritmanız için sorunlar vardır:
- Fotoğrafı çekilen birçok nesne, özellikle de benzer hayvanların fotoğrafları, köpek benzeri özelliklerin bazılarını paylaşır. Kurallar eklemeniz gerekecektir;
- Bazen nitelikler oradadır ancak gizlenmiştir. Algoritmalarınız bunları algılamayacaktır;
- Bazen nitelikler yalnızca diğer nitelikler mevcut olduğunda önem kazanır. Daha fazla karar kuralına ihtiyaç duyulacaktır;
Sınıflandırmanız başarısız oluyor. Tüm bu özel durumlarla başa çıkmak için gereken tüm kuralları tasarlamak bir yana, tüm nitelik setini manuel olarak tanımlayamayacağınızı fark ettiniz.
Akıllıca pes ediyorsunuz ve ikinci yaklaşımı denemeye karar veriyorsunuz. Bir sinir ağı veya daha da iyisi derin bir sinir ağı kullanmak.
Bir derin öğrenme modeli kodlama süresinden tasarruf etmenizi sağlayabilir ve daha iyi sonuçlar sunabilir
Sinir ağı bu şekilde adlandırılmıştır çünkü bu programlama yaklaşımı ile beynin çalışma şekli arasında bir benzerlik vardır.
Tıpkı beyin gibi, sinir ağı algoritmaları da nöronlardan veya düğümlerden oluşan bir ağ kullanır. Ve beyin gibi, bu nöronlar da girdileri alan ve çıktıları üreten ayrı işlevlerdir (ya da isterseniz küçük makinelerdir). Bu düğümler katmanlar halinde düzenlenmiştir, böylece bir katmandaki nöronların çıktıları, ağın dış katmanındaki nöronlar nihai sonucu üretene kadar bir sonraki katmandaki nöronların girdileri haline gelir.
Bu nedenle, her bir nöronun çok sınırlı girdiler aldığı ve tıpkı beyinde olduğu gibi çok sınırlı çıktılar ürettiği nöron katmanları vardır. Nöronların ilk katmanı (veya giriş katmanı) girdileri alır ve ağdaki son nöron katmanı (veya çıkış katmanı) sonucu çıkarır.
Bu tür bir algoritmayı "sinir ağı" olarak adlandırmak doğru mudur?
İnsan beyni elbette bir sinir ağından çok daha karmaşık ve güçlüdür. Algoritmaya "derin sinir ağı" adını vermek bir marka başarısıydı ancak bu tekniklerle nelerin başarılabileceği konusunda gerçekçi olmayan beklentiler yaratabilir. Bununla birlikte, çok karmaşık bir sinir ağı kullanarak beyni yeniden tasarlamaya çalışan insanlar var ve bunu yaparak bot geliştirmede genel, insan benzeri zekayı kopyalayabileceklerini umuyorlar. Peki sinir ağı ve makine öğrenimi teknikleri köpek tanıma sorunumuzda bize nasıl yardımcı olabilir?
Köpek benzeri nitelikleri manuel olarak tanımlamak yerine, derin bir sinir ağı algoritması önemli nitelikleri belirleyebilir ve programlama yapmadan tüm özel durumlarla başa çıkabilir.
Derin sinir ağı nasıl çalışır?
Bunu şu şekilde yapar:
Giriş katmanındaki her bir nöron, giriş olarak görüntüden bir miktar bilgi alır ve ardından bu bilginin bir köpeğe işaret edip etmediğini rastgele ağırlıklandırır (sıfır ile bir arasında). Düşük ağırlık (0,5'ten az) bilginin bir köpekle ilişkili olma olasılığının daha düşük olduğu, yüksek ağırlık ise bilginin bir köpekle ilişkili olma olasılığının daha yüksek olduğu anlamına gelir. Bu çok katmanlı sinir ağı yaklaşımına derin öğrenme denir. Sinir ağları ve derin öğrenme, bilgisayarda anlamaya ulaşmak için çok güçlü tekniklerdir.
Derin sinir ağları, beynimizdeki nöronlar gibi davranan çok sayıda düğüm katmanından oluşur
Derin sinir ağlarına devam etmek için, bu nöronların ağırlıkları daha sonra rastgele ağırlıklar atayan ve bunları ağdaki daha fazla nörona girdi olarak aktaran diğer nöron katmanlarına girdi olarak beslenir. Bu işlem, nöronların çıkış katmanı ikili bir karar verene kadar devam eder. Eğer kendilerine aktarılan ağırlıkların ortalaması 0,5'ten büyükse, bu bir köpektir, aksi takdirde değildir. Birden fazla düğüm katmanı boyunca nöronlar arasındaki bu bağlantılar ve nöronların aktivasyonu, derin sinir ağı uygulamalarına gücünü veren şeydir.
Derin bir sinir ağı doğru cevabı üretip üretmediğini nasıl anlar?
Bu noktada sorulması gereken sorular şunlardır: derin sinir ağı doğru tahminde bulundu mu bulunmadı mı ve doğru tahminde bulunduysa ya da bulunmadıysa ne olur? Ve bir sinir ağı doğru tahmin edip etmediğini nasıl anlar?
Bunu bilmesinin bir yolu, fotoğrafta bir köpek olup olmadığına bağlı olarak tüm fotoğrafları "köpek" ya da "köpek değil" olarak etiketlemek gibi son derece zaman alıcı bir sınıflandırma görevini üstlenmenizdir. Sinir ağı, köpeği doğru tanımlayıp tanımlamadığını görmek için sadece etikete bakacaktır.
Ve elbette tek bir köpek fotoğrafında "Köpek var mı yok mu" sorusunu doğru yanıtlayıp yanıtlamadığıyla ilgilenmiyoruz. Her fotoğraf için soruyu doğru yanıtlayıp yanıtlamadığıyla ya da en azından fotoğrafta bir köpek olup olmadığını değerlendirirken yüzde kaç oranında doğru yanıt verdiğiyle ilgileniyoruz.
Derin sinir ağları öğrenmek için eğitimi nasıl kullanır?
Bir sinir ağı, doğruluğunu artırmak için veriler aracılığıyla her yinelemeden öğrenir
Ağdaki tüm nöronlarda belirli bir ağırlık kümesi için, sinir ağı tüm fotoğraflar için tahminlerde bulunacak ve ardından ne kadar doğru olduğunu belirleyecektir. Yüzde kaç doğru sonuç elde etti, yani köpek fotoğraftayken fotoğrafta olduğunu söyledi ve kaç kez yanlış sonuç elde etti, köpek fotoğrafta değilken fotoğrafta olduğunu söyledi veya köpek fotoğraftayken fotoğrafta olmadığını söyledi. Yapay zeka algoritmasının ne kadar doğru olduğuna dair bu gösterge, sinir ağı modeli için önemli bir geri bildirimdir.
Tüm fotoğraflar üzerinde bir kez çalıştıktan sonra, bazı ağırlıkları rastgele (veya başka bir şekilde) ayarlayabilir ve ardından fotoğrafta ne olduğunu tahmin etme egzersizini tekrar yapabilir. İkinci çalıştırmanın sonucu daha iyiyse, önceki ağırlık setine geri dönmek yerine devam edecektir. İkinci denemeden elde edilen sonuç daha kötüyse, önceki ağırlık setine geri dönebilir ve ardından bu ağırlıklarda farklı değişiklikler deneyebilir.
Bu süreç, sinir ağı fotoğraflardaki köpekleri tanımlama konusunda iyi hale gelene kadar (umarım) bu şekilde devam edecektir.
Algoritma köpekleri doğru bir şekilde tanımlayabildiğinde yakınsadığı söylenir. Köpekleri tanımlamak için başarılı bir şekilde "eğitilmiştir".
Farklı sinir ağı türleri nelerdir?
Evrişimli sinir ağları
Evrişimli sinir ağları (CNN), büyük veri setlerini işlemek veya bunlardan öğrenmek için tasarlanmış bir yapay zeka türüdür. Evrişimli sinir ağı, özellikle bu tür bir ağı veya genel olarak yapay zeka teknolojisini tanımlayan yeni icat edilmiş bir terimdir.
CNN'ler, yalnızca üretici görevleri değil, aynı zamanda tanımlayıcı görevleri de gerçekleştirmek için derin öğrenmeyi kullanan güçlü görüntü tanıma yapay zeka araçlarıdır. Üretken görevlere örnek olarak otomatik kırpma, başlık yazma, videografi, teksir ve görüntü bindirmeleri verilebilir. Bir konvolüsyonel sinir ağı, konvolüsyonel katmanlar olarak adlandırılan katmanlar içerir. Bu katmanlardaki her bir nöron, görsel alanın yalnızca küçük bir bölümünden gelen bilgileri işler. Her nöronun girdileri, bir özellik haritası oluşturmak için sağlama toplamı benzeri bir şekilde sıralanır.
Yapay sinir ağları
Bir yapay sinir ağı (YSA), Lojistik Regresyon olarak anlaşılabilecek farklı derinliklerde veya katmanlarda birçok algılayıcıdan oluşan bir ağdır. YSA genellikle İleri Beslemeli Sinir Ağı olarak adlandırılır çünkü girdiler yalnızca ileri yönde işlenir: bir katman girdiyi alır ve doğrusal bir şekilde bir çıktı gönderir.
Yapay sinir ağları evrensel fonksiyon yaklaşımcıları olarak da bilinir. YSA'lar gibi saf sinir ağı algoritmaları ve derin öğrenme olarak uygulanabilen eşleme fonksiyonları, bilgisayarların herhangi bir fonksiyonu öğrenmesine olanak tanır. Evrensel yaklaşımın önemli olmasının nedenlerinden biri aktivasyon fonksiyonudur. Aktivasyon fonksiyonları, girdi ve çıktı arasındaki herhangi bir karmaşık ilişkiyi öğrenirken ağa doğrusal olmayan özellikler katar. Ağın farklı türlerinin birbirinden öğrenmesine yardımcı olur.
Derin bir sinir ağı zaman içinde nasıl gelişir?
Algoritmanın ne yaptığını hayal etmenin bir yolu, her nöronu bir tür kesinlik testi olarak düşünmektir. Köpekleri tanımlamak için tüm bu eğer-o zaman ifadelerini kodlamak yerine, her nöron fotoğraftaki nesnenin bir köpek olduğuna dair nihai yargıya ekleme veya çıkarma yapacak şekilde kalibre edilir. Sanki yargı (köpek ya da değil gibi), toplamda nihai bir yargıya katkıda bulunan çok sayıda bağlantılı yargıya bölünmüş gibidir.
Elbette öncelikli hedef, eğer mümkünse yakınsama sağlamaktır. Bunu makul bir sürede, tercihen kısa sürede yapmak da önemli bir hedeftir.
Derin öğrenme algoritmaları, insanlar için anlaşılmasını zorlaştıran bir öğrenme sürecine sahiptir
İlginç olan, sinir ağlarının resimdeki köpekleri tanımlamasını sağlayan mantığın insan tarafından anlaşılabilir olmamasıdır. Derin öğrenme modelleri gizli bir mantığa sahiptir, esasen kendi derin ağını oluşturan gizli düğüm katmanlarından oluşan bir kara kutudur. Bununla birlikte, görüntü tanıma görevleri için sinir ağlarının arkasındaki mantığı görsel olarak temsil etmeye çalışan bazı girişimler olmuştur. Diğer durumlarda, algoritmanın perde arkasında ne yaptığını görmek mümkün değildir ve derin öğrenme yöntemleri gizli kalır.
Sinir ağları ve makine öğrenimi şu anda popüler ancak bu algoritmaların çoğu yaklaşık 50 yıl önce biliniyordu.
Derin sinir ağları neden çeşitli sektörlerde giderek daha popüler hale geliyor?
Sinir ağlarının şu anda ilk icat edildikleri zamana kıyasla çok daha popüler olmalarının başlıca nedenlerinden biri, işlem gücünün eskisinden daha hızlı ve daha ucuz olmasıdır. Hesaplama gücü, hızlı yakınsama elde etmede büyük fark yaratmıştır. Diğer bir neden ise verilerin artık her yerde bulunması ve bu sayede iş dünyası için sohbet robotları gibi verileri kullanabilen algoritmaların değerinin artmasıdır.
Gelişmiş sinir ağları yüksek işlem gücü ve çok fazla veri gerektirir
Derin öğrenme sinir ağları, programlama tekniklerini kullanan programcıların elde etmesinin imkansız olduğu sonuçlara ulaşabilen veri ve işlemciye aç tekniklerdir. Her yerde bulunan verilerin mevcut olduğu ve tercih edilebilir sonuçları kategorize etmenin veya sıralamanın kolay olduğu belirli problemler için idealdirler.
Yüz binlerce veya tercihen milyonlarca köpek fotoğrafı olmadan algoritmayı eğitmek imkansız olacaktır. Bu teknikler yalnızca çok fazla veri mevcut olduğunda işe yarar. Tüm özel durumların sadece 1000 fotoğraftan oluşan bir sette temsil edilme olasılığı düşük olduğundan bu oldukça açıktır.
Sinir ağları yapılandırılmış verilerle veya yapılandırılmamış verilerle karşı karşıya kalabilir
Yukarıdaki örnekteki bir sorun, tüm fotoğrafların etiketlenmesinde çok fazla manuel iş yapılmasıdır. Algoritmaların yapılandırılmış bir şekilde etiketlenmiş verileri kullanması daha kolaydır. Yapılandırılmış verileri kullanan sinir ağı makine öğrenimine denetimli öğrenme denir.
Bu da bizi temel bir soruya getiriyor: tüm bu etiketleme işinden kaçınmak mümkün mü? Bu iyi olurdu çünkü sadece çok fazla manuel çalışmadan kaçınmakla kalmaz, aynı zamanda internette bulunan verilerin çoğu yapılandırılmamıştır, yani dikkatlice etiketlenmemiş veya yapılandırılmamıştır.
Sinir ağları yapılandırılmamış verilerle çalışabilir mi?
Yapılandırılmamış verilerle çalışan yapay sinir ağları ve makine öğrenimi, denetimsiz öğrenme olarak adlandırılır. Elbette bu, makine öğreniminin kutsal kasesi ve insanların nasıl öğrendiğine daha çok benziyor. Bununla birlikte, makinelerin denetimsiz öğrenmesi bile "öğrenmek" için insanlardan çok daha fazla veri gerektirir ve makineler, üzerinde eğitildikleri örneklerin dışındaki örneklere kolayca çıkarım yapamazlar.
Birçok derin öğrenme modeli insan beynindeki süreçleri yeniden üretmeye çalışır
Bazı insanlar bu tür algoritmaların, belki de beyni yeniden tasarlayarak, algoritmaların insan düzeyinde bir "anlayışa" yaklaşmaya başladığı noktaya kadar geliştirilebileceğine inanıyor. Beynin sinir ağlarının gerçekte nasıl çalıştığına dair bize içgörü kazandırmak için beynin sofistike tarama teknolojisini kullanmanın mümkün olacağına inanıyorlar. Bu tasarımları ve kalıpları kopyalayarak insan düzeyinde zekayı taklit edebiliriz.
Bu teknikler, özellikle büyük bir veri setinin mevcut olduğu durumlarda hiç şüphesiz dahiyane ve çok faydalı olsa da, bu kadar basit algoritmaların son derece yaratıcı insan benzeri bir zekanın temeli olabileceğini hayal etmek zor.
İçindekiler
Yapay zeka ajanlarıyla ilgili en son gelişmelerden haberdar olun
Bunu paylaşın: