• Derin öğrenmeye giriş. Derin öğrenmeye sahip sinir ağları

    Makaleden derin öğrenmenin ne olduğunu öğreneceksiniz. Ayrıca makale, bu alanda uzmanlaşmak için kullanabileceğiniz birçok kaynak içermektedir.

    İÇİNDE modern dünya Sağlık hizmetlerinden üretime kadar derin öğrenme her yerde mevcuttur. Şirketler sorunları çözmek için bu teknolojiye yöneliyor karmaşık problemler konuşma ve nesne tanıma, makine çevirisi vb. gibi.

    Bu yılın en etkileyici başarılarından biri AlphaGo'nun dünyanın en iyi Go oyuncusunu yenmesiydi. Go'nun yanı sıra makineler diğer oyunlarda da insanlardan daha iyi performans gösterdi: dama, satranç, reversi ve tehlike.

    Bir masa oyununda kazanmanın gerçek sorunları çözmek için uygulanamaz olduğu görünebilir, ancak durum hiç de böyle değil. Go, yapay zeka tarafından yenilmez olacak şekilde tasarlandı. Bunu yapabilmek için bu oyunla ilgili önemli bir şeyi öğrenmesi gerekecek: insan sezgisi. Artık bu gelişme sayesinde daha önce bilgisayarların ulaşamadığı pek çok sorunu çözmek mümkün oluyor.

    Açıkçası, derin öğrenme hala mükemmel olmaktan uzak, ancak ticari açıdan faydalı olmaya şimdiden yakın. Mesela şu sürücüsüz arabalar. Google, Tesla ve Uber gibi tanınmış şirketler halihazırda şehir sokaklarında otonom arabaları tanıtmaya çalışıyor.

    Ford, 2021 yılına kadar otonom araçların payında önemli bir artış olacağını öngörüyor. ABD hükümeti ayrıca onlar için bir dizi güvenlik kuralı geliştirmeyi de başardı.

    Derin öğrenme nedir?

    Bu soruyu cevaplamak için makine öğrenimi, sinir ağları ve yapay zeka ile nasıl etkileşime girdiğini anlamanız gerekir. Bunu yapmak için eşmerkezli daireler kullanarak görselleştirme yöntemini kullanıyoruz:

    Dış çember genel olarak yapay zekadır (örneğin bilgisayarlar). Biraz ileride makine öğrenimi var ve tam merkezde derin öğrenme ve yapay sinir ağları var.

    Kabaca söylemek gerekirse derin öğrenme, yapay sinir ağlarına verilen daha uygun bir isimdir. Bu ifadedeki “Derin”, sinir ağının karmaşıklık derecesini (derinlik) ifade eder ve bu genellikle oldukça yüzeysel olabilir.

    İlk sinir ağının yaratıcıları serebral korteksin yapısından ilham aldılar. Ağın temel katmanı olan algılayıcı, aslında biyolojik bir nöronun matematiksel benzeridir. Ve beyinde olduğu gibi birbiriyle kesişen algılayıcılar bir sinir ağında da ortaya çıkabilir.

    Sinir ağının ilk katmanına giriş katmanı denir. Bu katmanın her düğümü girdi olarak bir miktar bilgi alır ve bunu diğer katmanlardaki sonraki düğümlere iletir. Çoğu zaman, bir katmanın düğümleri arasında bağlantı yoktur ve zincirin son düğümü, sinir ağının sonucunu görüntüler.

    Ortadaki düğümler, çıkış ve giriş düğümleri gibi dış dünyayla bağlantıları olmadığından gizli olarak adlandırılır. Yalnızca önceki katmanlar etkinleştirildiğinde çağrılır.

    Derin öğrenme, esas olarak, karmaşık sorunları (konuşma tanıma gibi) kalıplar kullanarak çözmek için birçok katmanı kullanan bir sinir ağı eğitim tekniğidir. 1980'lerde çoğu sinir ağı, yüksek maliyet ve sınırlı veri yetenekleri nedeniyle tek katmanlıydı.

    Makine öğrenimini bir dal veya iş seçeneği olarak düşünürsek yapay zeka o zaman derin öğrenme bu tür bir dalın uzmanlaşmış bir türüdür.

    Makine öğrenimi, hemen yanıt sağlamayan bilgisayar zekasını kullanır. Bunun yerine kod, test verileri üzerinde çalışacak ve sonuçlarının doğruluğuna göre seyrini ayarlayacaktır. Bu sürecin başarısı için genellikle statik yöntemleri ve doğrusal cebiri tanımlayan çeşitli teknikler, özel yazılımlar ve bilgisayar bilimleri kullanılır.

    Derin öğrenme yöntemleri

    Derin öğrenme yöntemleri iki ana türe ayrılır:

    • Özel eğitim
    • Denetimsiz öğrenme

    İlk yöntem, istenen sonuca ulaşmak için özel olarak seçilmiş verileri kullanır. Verilerin manuel olarak seçilmesi gerektiğinden oldukça fazla insan müdahalesi gerektirir. Ancak sınıflandırma ve regresyon için kullanışlıdır.

    Bir şirketin sahibi olduğunuzu ve ikramiyelerin astlarınızın sözleşme süreleri üzerindeki etkisini belirlemek istediğinizi düşünün. Önceden toplanan verilerle denetimli bir öğrenme yöntemi vazgeçilmez ve çok etkili olacaktır.

    İkinci yöntem önceden hazırlanmış cevapları ve çalışma algoritmalarını ima etmez. Verilerdeki gizli kalıpları tanımlamayı amaçlar. Genellikle müşterileri davranışlarına göre gruplamak gibi kümeleme ve ilişkilendirme görevleri için kullanılır. Amazon'da "Onlar da bununla seçiyorlar", ilişkilendirme görevinin bir çeşididir.

    Denetimli öğrenme yöntemi genellikle oldukça kullanışlı olsa da, daha karmaşık bir sürüm yine de daha iyidir. Derin öğrenmenin insan denetimi gerektirmeyen bir sinir ağı olduğu kanıtlanmıştır.

    Derin Öğrenmenin Önemi

    Bilgisayarlar, bir görüntüdeki belirli özellikleri tanımak için uzun süredir teknolojiden yararlanmaktadır. Ancak sonuçlar başarılı olmaktan uzaktı. Bilgisayarla görmenin derin öğrenme üzerinde inanılmaz bir etkisi oldu. Şu anda tüm tanıma görevlerini çözen bu iki tekniktir.

    Özellikle Facebook, derin öğrenmeyi kullanarak fotoğraflardaki yüzleri tanımayı başardı. Bu, teknolojideki basit bir gelişme değil, daha önceki tüm inanışları değiştiren bir dönüm noktasıdır: “Bir kişi, aynı kişinin iki farklı fotoğrafta gösterilip gösterilmediğini %97,53 olasılıkla belirleyebilir. Facebook ekibinin geliştirdiği program, aydınlatmadan, kişinin doğrudan kameraya bakıp bakmamasından ya da yan dönmüş olmasından bağımsız olarak %97,25 olasılıkla bunu yapabiliyor.”

    Konuşma tanıma da önemli değişikliklere uğradı. Çin'in önde gelen arama motorlarından biri olan Baidu'daki ekip, İngilizce metin yazma hızı ve doğruluğu konusunda insanları geride bırakmayı başaran bir konuşma tanıma sistemi geliştirdi. mobil cihazlar. İngilizce ve Mandarin dilinde.

    Özellikle ilginç olan şey, tamamen farklı iki dil için ortak bir sinir ağı yazmanın çok fazla çalışma gerektirmemesiydi: “Tarihsel olarak insanlar Çince ve İngilizceyi tamamen iki iki dil olarak görüyorlardı. farklı diller Baidu araştırma merkezi başkanı Andrew Ng, "bu yüzden her biri farklı bir yaklaşım gerektiriyordu" diyor. “Öğrenme algoritmaları artık o kadar genelleştirilmiş durumda ki Sadeceöğrenmek."

    Google, şirketin veri merkezlerindeki enerjiyi yönetmek için derin öğrenmeyi kullanıyor. Soğutma kaynağı maliyetlerini %40 oranında azaltmayı başardılar. Bu, enerji verimliliğinde %15'lik bir iyileşme ve milyonlarca dolarlık tasarruf anlamına geliyor.

    Derin öğrenme mikro hizmetleri

    İşte derin öğrenmeyle ilgili hizmetlere hızlı bir genel bakış.

    İllüstrasyon Etiketleyici. Illustration2Vec tarafından geliştirilen bu hizmet, görselin içeriğini önceden anlamak için görselleri “korunan”, “şüpheli”, “tehlikeli”, “telif hakkı” veya “genel” olarak derecelendirmenize olanak tanır.

    • Google'ın Theano Eklentisi
    • Python ve Numpy'de düzenlenebilir
    • Genellikle belirli bir dizi sorunu çözmek için kullanılır
    • Genel amaçlı değil. Makine görüşüne odaklanın
    • C++'da düzenlendi
    • Python'da bir arayüz var

    Derin öğrenmeyle ilgili çevrimiçi kurslar

    Google ve Udacity, Udacity Makine Öğrenimi Kursunun bir parçası olan derin öğrenme üzerine ücretsiz bir kurs oluşturmak için bir araya geldi. Bu program, makine öğrenimi ve özellikle derin öğrenme alanını geliştirmek isteyen deneyimli geliştiriciler tarafından yönetilmektedir.

    Bir diğer popüler seçenek ise Coursera ve Stanford tarafından desteklenen Andrew Ng'nin makine öğrenimi kursudur.

    1. Makine Öğrenimi - Stanford, Andrew Ng tarafından Coursera'da (2010-2014)
    2. Makine Öğrenimi - Caltech, Yaser Abu-Mostafa (2012-2014)
    3. Makine Öğrenimi - Carnegie Mellon, Tom Mitchell (Bahar 2011)
    4. Makine öğrenimi için sinir ağları – Coursera'da Geoffrey Hinton (2012)
    5. Sinir ağları sınıfı– Sherbrooke Üniversitesi'nden Hugo Larochelle (2013)

    Derin öğrenmeyle ilgili kitaplar

    Önceki bölümdeki kaynaklar oldukça kapsamlı bir bilgi tabanından yararlanırken, Grokking Deep Learning tam tersine yeni başlayanlara yöneliktir. Yazarların dediği gibi: "Eğer 11. sınıfı tamamladıysanız ve Python'un nasıl yazılacağına dair kabaca bir bilginiz varsa, size derin öğrenmeyi öğreteceğiz."

    Bu kitaba popüler bir alternatif, kendi kendini açıklayan Derin Öğrenme Kitabı başlığına sahip bir kitaptır. Özellikle iyi çünkü bu alana girmek için ihtiyaç duyacağınız tüm matematiği kapsıyor.

    1. Yoshua Bengio, Ian Goodfellow ve Aaron Courville'den "Derin Öğrenme" (2015)
    2. Michael Nielsen (2014) tarafından “Sinir ağları ve derin öğrenme”
    3. Microsoft Research'ten "Derin Öğrenme" (2013)
    4. Montreal Üniversitesi LISA Laboratuvarı'ndan “Derin Öğrenme Dersleri” (2015)
    5. Andrej Karpathy'nin "sinir konuşması"
    6. "Genetik Algoritmalara Giriş"
    7. "Yapay zekaya modern yaklaşım"
    8. "Derin öğrenmeye ve sinir ağlarına genel bakış"

    Videolar ve dersler

    Basitleştirilmiş Derin Öğrenme harika bir YouTube kanalıdır. İşte ilk videoları:

    "(Manning Yayınları).

    Makale, halihazırda derin öğrenme konusunda önemli deneyime sahip olan kişilere yöneliktir (örneğin, bu kitabın 1-8. Bölümlerini zaten okumuş olanlar). Büyük miktarda bilginin olduğu varsayılır.

    Derin Öğrenme: Geometrik Görünüm

    Derin öğrenmenin en şaşırtıcı yanı ne kadar basit olmasıdır. On yıl önce hiç kimse, gradyan inişiyle eğitilmiş basit parametrik modelleri kullanarak makine algılama problemlerinde elde edeceğimiz muhteşem sonuçları hayal edemezdi. Şimdi tüm ihtiyacımızın olduğu ortaya çıktı yeterince büyük eğitimli parametrik modeller yeterince büyük numune sayısı. Feynman'ın bir zamanlar Evren hakkında söylediği gibi: " Karmaşık değil, sadece çok var».

    Derin öğrenmede her şey bir vektördür, yani nokta V geometrik uzay. Modelin girdi verileri (bu metin, resimler vb. olabilir) ve hedefleri ilk önce "vektörleştirilir", yani bazı başlangıç ​​dillerine çevrilir. Vektör Uzayı girişte ve çıkışta hedef vektör uzayı. Derin öğrenme modelindeki her katman, içinden geçen veriler üzerinde basit bir geometrik dönüşüm gerçekleştirir. Model katmanları zinciri birlikte, çok sayıda basit dönüşüme bölünmüş, çok karmaşık bir geometrik dönüşüm oluşturur. Bu karmaşık dönüşüm, her nokta için giriş veri alanını hedef uzaya dönüştürmeye çalışır. Dönüşüm parametreleri, modelin o anda ne kadar iyi performans gösterdiğine bağlı olarak sürekli güncellenen katman ağırlıkları tarafından belirlenir. Geometrik dönüşümün temel özelliği, olması gerektiğidir. türevlenebilir yani parametrelerini gradyan iniş yoluyla bulabilmeliyiz. Sezgisel olarak bu, geometrik dönüşümün düzgün ve sürekli olması gerektiği anlamına gelir; bu önemli bir kısıtlamadır.

    Bu karmaşık geometrik dönüşümün girdi verilerine uygulanması sürecinin tamamı, kağıttan bir topu paketinden çıkarmaya çalışan bir kişiyi tasvir ederek 3 boyutlu olarak görselleştirilebilir: buruşuk kağıt topu, modelin çalışmaya başladığı çeşitli girdi verileridir. Bir kişinin kağıt topla yaptığı her hareket, tek bir katmanın gerçekleştirdiği basit bir geometrik dönüşüm gibidir. Açığa çıkan hareketlerin tam dizisi, tüm modelin karmaşık bir dönüşümüdür. Derin öğrenme modelleri, çok boyutlu verilerin karmaşık çeşitliliğini çözmeye yönelik matematiksel makinelerdir.

    Derin öğrenmenin büyüsü budur: Değeri vektörlere, geometrik uzaylara dönüştürmek ve ardından bir uzayı diğerine dönüştüren karmaşık geometrik dönüşümleri yavaş yavaş öğrenmek. İhtiyaç duyulan tek şey, orijinal verilerde bulunan ilişkilerin tüm kapsamını aktaracak kadar geniş boyutlu bir alandır.

    Derin öğrenmenin sınırlamaları

    Bu basit strateji kullanılarak çözülebilecek problemlerin sayısı neredeyse sonsuzdur. Ancak yine de bunların çoğu, manuel olarak açıklamalı çok büyük miktarda veri bulunmasına rağmen, mevcut derin öğrenme tekniklerinin ulaşamayacağı bir yerdedir. Örneğin, fonksiyonların İngilizce dilinde yüzbinlerce, hatta milyonlarca tanımlarından oluşan bir veri kümesi toplayabildiğinizi varsayalım. yazılımÜrün yöneticileri tarafından yazılan ve bu gereklilikleri karşılamak için mühendislik ekipleri tarafından geliştirilen ilgili referans yılı. Bu verilerle bile, bir derin öğrenme modelini yalnızca bir ürün açıklamasını okuyup karşılık gelen kod tabanını oluşturacak şekilde eğitemezsiniz. Bu pek çok örnekten sadece bir tanesi. Genel olarak, programlama veya bilimsel yöntemi uygulama, uzun vadeli planlama, algoritmik tarzda veri işleme gibi akıl yürütme gerektiren herhangi bir şey, onlara ne kadar veri atarsanız atın, derin öğrenme modellerinin yeteneklerinin ötesindedir. Bir sinir ağını sıralama algoritması gerçekleştirecek şekilde eğitmek bile inanılmaz derecede zor bir iştir.

    Bunun nedeni, derin öğrenme modelinin "yalnızca" olmasıdır. basit, sürekli geometrik dönüşümler zinciri bir vektör uzayını diğerine dönüştüren. Yapabileceği tek şey, X'ten Y'ye öğrenilebilecek sürekli bir dönüşümün olası olması ve kullanılabilirlik olması koşuluyla, bir X veri kümesini başka bir Y kümesine dönüştürmektir. yoğun numune seti Eğitim verileri olarak X:Y dönüşümleri. Dolayısıyla, derin öğrenme modeli bir program türü olarak kabul edilebilirken, çoğu program derin öğrenme modelleri olarak ifade edilemez- Çoğu problem için, ya sorunu çözecek pratik olarak uygun büyüklükte bir derin sinir ağı yoktur ya da eğer varsa, öğretilemez yani karşılık gelen geometrik dönüşüm çok karmaşık olabilir veya onu eğitmek için uygun veri yoktur.

    Mevcut derin öğrenme tekniklerinin ölçeğini büyütmek (daha fazla katman eklemek ve daha fazla eğitim verisi kullanmak), bu sorunların yalnızca bazılarını yüzeysel olarak hafifletebilir. Derin öğrenme modellerinin temsil edebilecekleri şeyin çok sınırlı olması ve çoğu programın veri manifoldlarının sürekli geometrik dönüşümü olarak ifade edilememesi gibi daha temel bir sorunu çözmeyecektir.

    Makine Öğrenimi Modellerini Antropomorfize Etmenin Riski

    Modern yapay zekanın en gerçek risklerinden biri, derin öğrenme modellerinin nasıl çalıştığını yanlış yorumlamak ve yeteneklerini abartmaktır. İnsan zihninin temel bir özelliği, "insan ruhunun modeli"dir; hedeflerimizi, inançlarımızı ve bilgiyi etrafımızdaki şeylere yansıtma eğilimimizdir. Bir taşın üzerine gülen bir yüz çizmek bizi birdenbire zihinsel olarak “mutlu” kılar. Derin öğrenmeye uygulandığında bu, örneğin bir modeli oluşturacak şekilde az çok başarılı bir şekilde eğitebilirsek şu anlama gelir: metin açıklamaları resimler, bu durumda modelin, oluşturulan açıklamaların yanı sıra resimlerin içeriğini de "anladığını" düşünme eğilimindeyiz. Daha sonra, eğitim verilerinde sunulan görsellerden küçük bir sapma nedeniyle modelin tamamen saçma açıklamalar üretmeye başlaması bizi çok şaşırtıyor.

    Özellikle, bu durum özellikle yanlış sınıflandırılmak üzere seçilen derin öğrenme ağı giriş verilerinin örnekleri olan "karşıt örneklerde" açıkça görülmektedir. Örneğin belirli bir evrişimsel sinir ağı filtresinin aktivasyonunu en üst düzeye çıkaran örnekler oluşturmak için giriş veri alanında gradyan yükselişi yapabileceğinizi zaten biliyorsunuz - bu, Bölüm 5'te ele aldığımız görselleştirme tekniğinin temelidir (not: kitaplar) "Python ile Derin Öğrenme"), tıpkı Bölüm 8'deki Deep Dream algoritması gibi. Benzer şekilde, degrade yükselişi yoluyla, belirli bir sınıf için sınıf tahminini en üst düzeye çıkarmak için görüntüyü hafifçe değiştirebilirsiniz. Bir pandanın fotoğrafını çekersek ve bir "şebeke" gradyanı eklersek, sinir ağını bu pandayı bir şebek olarak sınıflandırmaya zorlayabiliriz. Bu, hem bu modellerin kırılganlığını hem de bu modellerin yönlendirdiği girdiden çıktıya dönüşüm ile kendi insani algılarımız arasındaki derin farkı gösteriyor.

    Genel olarak derin öğrenme modelleri, en azından insani anlamda, girdi verilerini anlamamaktadır. Görüntülere, seslere ve dile ilişkin kendi anlayışımız, maddi dünyevi varlıklar olarak insanlar olarak duyu-motor deneyimlerimize dayanmaktadır. Makine öğrenimi modellerinin bu tür deneyimlere erişimi yoktur ve bu nedenle girdi verilerimizi insan benzeri bir şekilde "anlayamaz". Modellerimizin eğitilmesi için çok sayıda örneğe açıklama ekleyerek, onları söz konusu belirli örnek kümesi için verileri insan kavramlarına indirgeyen geometrik bir dönüşümü öğrenmeye zorluyoruz, ancak bu dönüşüm yalnızca zihnimizin orijinal modelinin basitleştirilmiş bir taslağıdır. Bedensel ajanlar olarak deneyimlerimizden geliştirilen algılar aynadaki soluk bir yansıma gibidir.

    Bir makine öğrenimi uygulayıcısı olarak bunu her zaman aklınızda tutun ve asla sinir ağlarının gerçekleştirdikleri görevi anladığına inanma tuzağına düşmeyin; en azından bizim için anlamlı olmayacak şekilde anlamazlar. Onlar, bizim onları eğitmek istediğimizden farklı, çok daha spesifik bir görev üzerinde eğitildiler: girdi öğrenme modellerini, noktadan noktaya basitçe hedef öğrenme modellerine dönüştürmek. Onlara eğitim verilerinden farklı olan herhangi bir şeyi gösterin, en saçma şekillerde kırılacaklardır.

    Yerel genelleme ve aşırı genelleme

    Derin öğrenme modellerinin yaptığı girdiden çıktıya doğrudan geometrik geçiş ile insanların düşünme ve öğrenme biçimleri arasında temel farklılıklar var gibi görünüyor. İnsanların kendilerini bir dizi eğitim örneğini işleyerek değil, yalnızca bedensel deneyimlerinden öğrenmeleri değildir. Öğrenme süreçlerindeki farklılıklara ek olarak, temel inançların doğasında da temel farklılıklar vardır.

    İnsanlar, bir sinir ağı ya da belki bir böcek gibi, anlık bir uyarıyı anlık bir tepkiye dönüştürmekten çok daha fazlasını yapabilirler. İnsanlar mevcut durumun, kendilerinin ve diğer insanların karmaşık, soyut modellerini zihinlerinde tutarlar ve bu modelleri çeşitli olası gelecekleri tahmin etmek ve uzun vadeli planlama yapmak için kullanabilirler. Daha önce hiç bilmedikleri bir şeyi hayal etmek için bilinen kavramları birleştirme yeteneğine sahiptirler - örneğin kot pantolonla bir at çizmek veya piyangoyu kazanırlarsa ne yapacaklarını hayal etmek gibi. Varsayımsal düşünme yeteneği, zihinsel alan modelimizi doğrudan deneyimlediklerimizin çok ötesine genişletme yeteneği, yani yapma yeteneği soyutlamalar Ve muhakeme belki de insan bilişinin tanımlayıcı özelliği. Ben buna "nihai genelleme" diyorum: çok az veri kullanarak veya hiç veri kullanmadan yeni, daha önce hiç deneyimlenmemiş durumlara uyum sağlama yeteneği.

    Bu, benim "yerel genelleme" olarak adlandıracağım derin öğrenme ağlarının yaptıklarıyla tam bir tezat oluşturuyor: Yeni giriş verileri, eğitim sırasında karşılaşılanlardan biraz farklı olsa bile, giriş verilerini çıkış verilerine dönüştürmenin anlamı kalmıyor. Örneğin, Ay'a inmesi beklenen bir roket için uygun fırlatma parametrelerinin öğrenilmesi problemini düşünün. Bu görev için denetlenen veya takviye eğitimi almış bir sinir ağı kullanacak olsaydınız, ona binlerce veya milyonlarca uçuş yörüngesi vermeniz gerekirdi; yoğun örnekler Giriş değeri alanından çıkış değeri alanına nasıl güvenilir bir şekilde dönüşüm yapılacağını öğrenmek için giriş değeri uzayında. Bunun tersine, insanlar fiziksel modeller (roket bilimi) yaratmak için soyutlamanın gücünü kullanabilir ve yalnızca birkaç denemede roketi aya götürecek kesin bir çözüm elde edebilir. Aynı şekilde, insan vücudunu kontrol edecek bir sinir ağı tasarlasaydınız ve onun bir şehirde araba çarpmadan güvenli bir şekilde yürümeyi öğrenmesini istiyorsanız, ağın farklı durumlarda binlerce kez ölmesi gerekirdi. Arabaların tehlikeli olduğu sonucuna varırsınız ve onlardan kaçınmak için uygun davranışı sergileyemezsiniz. Eğer yeni bir şehre taşınsaydı ağ bildiklerinin çoğunu yeniden öğrenmek zorunda kalacaktı. Öte yandan, yine varsayımsal durumların soyut simülasyonunun gücü sayesinde insanlar ölmeden güvenli davranışları öğrenebiliyorlar.

    Dolayısıyla, makine algısındaki ilerlememize rağmen hâlâ insan seviyesindeki yapay zekadan çok uzaktayız: modellerimiz yalnızca yerel genellemeİnsan zihninin kapasitesi varken, geçmiş verilere çok yakın olması gereken yeni durumlara uyum sağlamak aşırı genelleme, tamamen yeni durumlara hızla uyum sağlamak veya geleceğe yönelik planlama yapmak.

    sonuçlar

    Hatırlamanız gereken şey şu: Derin öğrenmenin şu ana kadarki tek gerçek başarısı, büyük miktarda insan açıklamalı veri göz önüne alındığında, X uzayını sürekli bir geometrik dönüşüm kullanarak Y uzayına çevirme yeteneğidir. Bunu iyi bir şekilde yapmak, tüm endüstri için devrim niteliğinde bir ilerlemeyi temsil ediyor, ancak insan düzeyindeki yapay zeka hala çok uzakta.

    Bu sınırlamalardan bazılarını ortadan kaldırmak ve insan beyniyle rekabet etmeye başlamak için doğrudan girdi-çıktı dönüşümünden uzaklaşıp, doğrudan girdi-çıktı dönüşümüne geçmemiz gerekiyor. muhakeme Ve soyutlamalar. Bilgisayar programları, çeşitli durum ve kavramların soyut olarak modellenmesi için uygun bir temel olabilir. Daha önce (not: Python ile Derin Öğrenme'de) makine öğrenimi modellerinin "öğrenen programlar" olarak tanımlanabileceğini söylemiştik; şu anda mümkün olan tüm programların yalnızca dar ve spesifik bir alt kümesini eğitebiliyoruz. Peki ya her programı modüler ve yinelemeli olarak eğitebilseydik? Bakalım oraya nasıl ulaşacağız.

    Derin Öğrenmenin Geleceği

    Derin öğrenme ağları, sınırlamaları ve mevcut araştırma durumu hakkında bildiklerimiz göz önüne alındığında, orta vadede ne olacağını tahmin edebilir miyiz? İşte konuyla ilgili bazı kişisel düşüncelerim. Tahminler için kristal bir kürem olmadığını, dolayısıyla beklediklerimin çoğunun meyve vermeyebileceğini unutmayın. Bu tamamen bir spekülasyon. Bu tahminleri gelecekte tam olarak gerçekleşmesini beklediğim için değil, ilginç ve bugüne uygulanabilir olduğu için paylaşıyorum.

    Yüksek düzeyde umut verici olduğunu düşündüğüm ana alanlar şunlardır:

    • Modeller, mevcut farklılaştırılabilir katmanlarımızdan çok daha zengin ilkellerin üzerine inşa edilmiş genel amaçlı bilgisayar programlarına yaklaşacak; böylece şunu elde edeceğiz: muhakeme Ve soyutlamalar yokluğu mevcut modellerin temel zayıflığıdır.
    • Bunu mümkün kılacak ve modellerin basitçe farklılaştırılabilir dönüşümlerden uzaklaşmasına olanak tanıyacak yeni öğrenme biçimleri ortaya çıkacak.
    • Modeller daha az geliştirici girdisi gerektirecektir; düğmeleri sürekli çevirmek sizin işiniz olmamalıdır.
    • Öğrenilen özellikler ve mimariler daha büyük ve sistematik bir şekilde yeniden kullanılacak; Yeniden kullanılabilir ve modüler rutinlere dayalı meta-öğrenme sistemleri.
    Ayrıca, bu hususların özellikle makine öğreniminin temeli olan denetimli öğrenme için geçerli olmadığını unutmayın; bunlar aynı zamanda denetimsiz öğrenme, denetimli öğrenme ve takviyeli öğrenme de dahil olmak üzere her türlü makine öğrenimi için de geçerlidir. Temel olarak etiketlerinizin nereden geldiği veya öğrenme döngünüzün nasıl göründüğü önemli değildir; makine öğreniminin bu farklı dalları aynı yapının farklı yönleridir.

    O zaman devam et.

    Program olarak modeller

    Daha önce de belirttiğimiz gibi, makine öğrenimi alanında beklenebilecek gerekli dönüşümsel gelişme, yalnızca performans gösteren modellerden uzaklaşılmasıdır. desen tanıma ve yalnızca bunu yapabilen yerel genelleme yapabilen modellere soyutlamalar Ve muhakeme Ulaşabilecek nihai genelleme. Temel muhakemeye sahip mevcut tüm yapay zeka programları, insan programcılar tarafından sabit kodlanmıştır: örneğin, arama algoritmalarına, grafik manipülasyonuna, biçimsel mantığa dayanan programlar. Örneğin DeepMind'ın AlphaGo programında, ekrandaki "zekanın" büyük bir kısmı uzman programcılar tarafından tasarlanmakta ve kodlanmaktadır (örneğin, Monte Carlo ağaç araması); Yeni verilerden öğrenme yalnızca özelleşmiş alt modüllerde (değer ağları ve politika ağları) gerçekleşir. Ancak gelecekte bu tür yapay zeka sistemleri tamamen insan müdahalesi olmadan eğitilebilecek.

    Bu nasıl başarılır? İyi bilinen bir ağ türünü ele alalım: RNN. Daha da önemlisi, RNN'lerin ileri beslemeli sinir ağlarına göre biraz daha az sınırlaması vardır. Bunun nedeni, RNN'lerin basit geometrik dönüşümlerden biraz daha fazlası olmasıdır: bunlar, for döngüsünde sürekli olarak gerçekleştirilir. For döngüsünün zamanlaması geliştirici tarafından belirlenir: bu, ağın yerleşik bir varsayımıdır. Doğal olarak, RNN'lerin temsil edebilecekleri şeyler hala sınırlıdır, bunun temel nedeni attıkları her adımın hala türevlenebilir bir geometrik dönüşüm olması ve sürekli bir geometrik uzaydaki (durum vektörleri) noktalar üzerinden bilgiyi adım adım iletme biçimleridir. Şimdi, programlama ilkelleriyle aynı şekilde "genişletilecek" sinir ağlarını hayal edin. döngüler için- ancak yalnızca gömülü geometri belleğine sahip tek bir sabit kodlu for döngüsü değil, aynı zamanda modelin işleme yeteneklerini genişletmek için serbestçe erişebildiği if dalları, while ifadeleri, değişken oluşturma, uzun süre disk depolama gibi büyük bir programlama temelleri kümesi -terim belleği, sıralama operatörleri, listeler, grafikler, karma tablolar gibi gelişmiş veri yapıları ve daha fazlası. Böyle bir ağın temsil edebileceği program alanı, olduğundan çok daha geniş olacaktır. mevcut ağlar derin öğrenme ve bu programlardan bazıları mükemmel genelleme gücüne ulaşabilir.

    Kısaca bir yanda “kodlanmış algoritmik zekaya” (elle yazılan yazılıma), diğer yanda “eğitimli geometrik zekaya” (derin öğrenme) sahip olduğumuz gerçeğinden uzaklaşacağız. Bunun yerine, aşağıdaki yetenekleri sağlayan biçimsel algoritmik modüllerin bir karışımını elde ederiz: muhakeme Ve soyutlamalar ve yetenekler sağlayan geometrik modüller resmi olmayan sezgi ve örüntü tanıma. Sistemin tamamı çok az insan müdahalesi ile veya hiç insan müdahalesi olmadan eğitilecektir.

    Yakında büyük ilerlemeler kaydedebileceğini düşündüğüm yapay zekanın ilgili bir alanı yazılım senteziözellikle sinirsel yazılım sentezi. Program sentezi, çalışmak için bir arama algoritması (belki de genetik programlamada olduğu gibi genetik arama) kullanılarak basit programların otomatik olarak üretilmesinden oluşur. geniş alan olası programlar. Arama, genellikle bir dizi giriş-çıkış çifti olarak sağlanan, gerekli özellikleri karşılayan bir program bulunduğunda durur. Gördüğünüz gibi bu, makine öğrenimine çok benziyor: “eğitim verileri” girdi-çıktı çiftleri olarak sağlanıyor, girdilerin çıktılara dönüştürülmesine karşılık gelen ve yeni girdilere genellemeler yapabilen bir “program” buluyoruz. Aradaki fark, parametre değerlerini sabit kodlanmış bir programda (sinir ağı) eğitmek yerine, kaynak ayrı bir arama süreci aracılığıyla.

    Önümüzdeki birkaç yılda bu alana yeniden ilginin artacağını tahmin ediyorum. Özellikle, yalnızca genel amaçlı dillerde programlar üreteceğimiz değil, aynı zamanda sinir ağları (geometrik veri işleme iplikleri) oluşturacağımız derin öğrenme ve yazılım sentezi gibi ilgili alanlara karşılıklı nüfuz edilmesini bekliyorum. takviye edilmiş for döngüleri ve diğerleri gibi zengin bir algoritmik temel kümesi. Bu doğrudan üretimden çok daha kullanışlı ve kullanışlı olmalı kaynak kodu ve uygun eğitim verileri verildiğinde otomatik olarak oluşturabileceğimiz programların alanı olan makine öğrenimi kullanılarak çözülebilecek sorunların kapsamını önemli ölçüde genişletecektir. Sembolik yapay zeka ile geometrik yapay zekanın bir karışımı. Modern RNN'ler bu tür hibrit algoritmik-geometrik modellerin tarihsel atası olarak düşünülebilir.


    Çizim: Eğitilen program aynı anda geometrik temellere (örüntü tanıma, sezgi) ve algoritmik temellere (tartışma, arama, hafıza) dayanır.

    Geri yayılımın ve farklılaştırılabilir katmanların ötesinde

    Makine öğrenimi modelleri daha çok programlara benzer hale gelirse, o zaman artık pek farklılaştırılamazlar; kesinlikle bu programlar, türevlenebilir kalacak alt rutinler olarak sürekli geometrik katmanları kullanmaya devam edecek, ancak genel model böyle olmayacaktır. Sonuç olarak, kullanım geri yayılım Ağırlık değerlerinin sabit, sabit kodlu bir ağ üzerinde ayarlanması, gelecekte modellerin eğitimi için tercih edilen yöntem olarak kalmayabilir - en azından bu yöntemle sınırlı kalmayabilir. Türevlenemeyen sistemleri en verimli şekilde nasıl eğitebileceğimizi bulmamız gerekiyor. Mevcut yaklaşımlar arasında genetik algoritmalar, "evrimsel stratejiler", belirli takviyeli öğrenme yöntemleri, ADMM (Lagrange çarpanlarının alternatif yön yöntemi) yer alır. Doğal olarak, gradyan inişi kalıcıdır; gradyan bilgisi, türevlenebilir parametrik fonksiyonları optimize etmek için her zaman yararlı olacaktır. Ancak modellerimiz kesinlikle türevlenebilir parametrik işlevlerden daha iddialı hale gelecektir ve dolayısıyla bunların otomatikleştirilmiş gelişimi ("makine öğrenimi" konusunda "eğitim") geriye yayılımdan daha fazlasını gerektirecektir.

    Ek olarak, geri yayılımın uçtan uca bir çerçevesi vardır; bu, iyi birleştirilmiş dönüşümleri öğrenmek için uygundur, ancak derin ağların modülerliğinden tam olarak yararlanamadığı için hesaplama açısından oldukça verimsizdir. Herhangi bir şeyin verimliliğini artırmak için tek bir evrensel tarif vardır: Modülerliği ve hiyerarşiyi tanıtın. Dolayısıyla, hiyerarşik bir şekilde düzenlenmiş, aralarında bazı senkronizasyon mekanizmaları bulunan ayrıştırılmış öğrenme modülleri sunarak geri yayılımın kendisini daha verimli hale getirebiliriz. Bu strateji kısmen DeepMind'ın "sentetik gradyanlar" üzerine yaptığı son çalışmaya da yansıyor. Yakın gelecekte bu yönde çok daha fazla çalışma bekliyorum.

    Küresel olarak türevlenemeyen modellerin (ancak türevlenebilir parçaları olan) gradyanları uygulamayan verimli bir arama süreci kullanarak öğreneceği - büyüyeceği, türevlenebilir parçaların ise daha verimli geri yayılım versiyonları kullanarak gradyanları kullanarak daha hızlı öğreneceği bir gelecek hayal edilebilir.

    Otomatik Makine Öğrenimi

    Mimarlık geleceğinde modeller mühendislerin elle yazması yerine eğitimle oluşturulacak. Eğitim yoluyla elde edilen modeller, daha zengin bir dizi temel öğe ve program benzeri makine öğrenimi modelleriyle birlikte otomatik olarak çalışır.

    Şimdi, çoğu zaman, bir derin öğrenme geliştiricisi, Python komut dosyalarıyla verileri sonsuz bir şekilde değiştiriyor, ardından çalışan bir model (veya geliştirici bu kadar hırslıysa olağanüstü bir model) elde etmek için derin öğrenme ağının mimarisini ve hiperparametrelerini ayarlıyor. Bunun en iyi durum olmadığını söylemeye gerek yok. Ancak yapay zeka burada da yardımcı olabilir. Ne yazık ki, veri işleme ve hazırlama kısmının otomatikleştirilmesi zordur, çünkü bu kısım genellikle alan hakkında bilgi sahibi olmanın yanı sıra geliştiricinin neyi başarmak istediğine dair yüksek düzeyde net bir anlayış gerektirir. Ancak hiperparametre ayarlama basit bir arama prosedürüdür ve bu durumda geliştiricinin neyi başarmak istediğini zaten biliyoruz: bu, ayarlanması gereken sinir ağının kayıp fonksiyonu tarafından belirlenir. Artık yüklemek yaygın bir uygulama haline geldi temel sistemler Model ayarlarındaki ince ayarların çoğunu üstlenen AutoML. Kaggle yarışmasını kazanmak için kendim bir tane kurdum.

    En temel düzeyde böyle bir sistem, yığındaki katman sayısını, bunların sırasını ve her katmandaki öğe veya filtre sayısını kolayca ayarlar. Bu genellikle Bölüm 7'de tartıştığımız Hyperopt gibi kütüphaneler kullanılarak yapılır (not: Python ile Derin Öğrenme kitapları). Ancak çok daha ileri gidebilir ve uygun mimariyi sıfırdan öğrenmeye çalışabilirsiniz. minimum set kısıtlamalar. Bu, örneğin takviyeli öğrenmeyle veya genetik algoritmaların yardımıyla mümkündür.

    AutoML'deki bir diğer önemli gelişme ise modelin mimarisini, modelin ağırlıklarıyla aynı anda eğitmektir. Her seferinde biraz farklı mimariler denediğimizde modeli sıfırdan eğiterek, bu son derece verimsizdir, bu nedenle gerçekten güçlü AutoML sistemi, model özellikleri eğitim verileri üzerinde geri yayılım yoluyla ayarlanırken mimarilerin gelişimini yönlendirecek ve böylece tüm fazlalıkları ortadan kaldıracaktır. hesaplamalar. Ben bu satırları yazarken benzer yaklaşımlar uygulanmaya başlandı bile.

    Tüm bunlar olmaya başladığında, makine öğrenimi sistemlerinin geliştiricileri işsiz kalmayacak; daha fazlasına geçecekler yüksek seviye değer zincirinde. İş sorunlarını gerçekten yansıtan karmaşık kayıp fonksiyonları oluşturmak için çok daha fazla çaba harcamaya başlayacaklar ve modellerinin, içinde faaliyet gösterdikleri dijital ekosistemleri (örneğin, model tahminlerini kullanan ve veri üreten müşteriler) nasıl etkilediğine dair derin bir anlayış geliştirecekler. eğitimi) - artık yalnızca en büyük şirketlerin dikkate alabileceği sorunlar.

    Yaşam boyu öğrenme ve modüler rutinlerin yeniden kullanılması

    Modeller daha karmaşık hale gelirse ve daha zengin algoritmik temeller üzerine kurulursa, o zaman bu artan karmaşıklık, her yeni görev veya yeni veri kümesine sahip olduğumuzda bir modeli sıfırdan eğitmek yerine, görevler arasında daha yoğun yeniden kullanım gerektirecektir. Sonuçta birçok veri seti sıfırdan yeni bir karmaşık model geliştirmek için yeterli bilgiyi içermiyor ve önceki veri setlerinden elde edilen bilgilerin kullanılması gerekli hale geliyor. Yeniden öğrenmiyorsun ingilizce dili onu her açtığında yeni kitap- bu imkansız olurdu. Ayrıca her yeni problem için sıfırdan eğitim modelleri, mevcut problemlerle daha önce karşılaşılan problemler arasındaki önemli örtüşme nedeniyle oldukça verimsizdir.

    Buna ek olarak, son yıllarda tekrar tekrar yapılan dikkat çekici gözlem, aynı modelin gevşek bağlantılı birden çok görevi yerine getirmek üzere eğitilmesinin performansını arttırdığıdır. bu görevlerin her birinde. Örneğin, aynı sinir ağını İngilizce'den Almanca'ya ve Fransızca'dan İtalyanca'ya çeviri yapmak üzere eğitmek, bu dil çiftlerinin her birinde daha iyi olan bir modelle sonuçlanacaktır. Bir görüntü sınıflandırma modelinin, tek bir evrişimsel tabana sahip bir görüntü bölümleme modeliyle eş zamanlı olarak eğitilmesi, her iki görevde de daha iyi olan bir modelle sonuçlanacaktır. Ve benzeri. Bu oldukça sezgiseldir: her zaman vardır bir tür görünüşte farklı olan bu iki görev arasında örtüşen bilgiler ve dolayısıyla genel model erişimi var Daha Yalnızca o belirli görev için eğitilmiş bir modelden ziyade her bir görev hakkında bilgi.

    Bir modeli farklı görevlerde yeniden kullandığımızda aslında yaptığımız şey, performans sergileyen modeller için önceden eğitilmiş ağırlıkları kullanmaktır. genel işlevler, görsel özellik çıkarma gibi. Bunu Bölüm 5'te pratikte gördünüz. Bu tekniğin daha genel bir versiyonunun gelecekte yaygın olarak kullanılacağını umuyorum: yalnızca önceden öğrenilen özellikleri (alt model ağırlıkları) değil, aynı zamanda model mimarilerini ve eğitim prosedürlerini de kullanacağız. Modeller daha program benzeri hale geldikçe yeniden kullanmaya başlayacağız. altprogramlar Normal programlama dillerindeki işlevler ve sınıflar gibi.

    Günümüzde yazılım geliştirme sürecinin nasıl göründüğünü düşünün: Bir mühendis belirli bir sorunu çözdükten sonra (örneğin Python'da HTTP istekleri), onu yeniden kullanım için soyut bir kitaplık olarak paketler. Gelecekte benzer bir sorunla karşılaşan mühendisler basitçe mevcut kütüphaneleri arar, indirir ve kendi projelerinde kullanırlar. Benzer şekilde, gelecekte meta-öğrenme sistemleri, yüksek düzeyde yeniden kullanılabilir bloklardan oluşan küresel bir kütüphaneyi tarayarak yeni programlar oluşturabilecektir. Sistem birkaç farklı görev için benzer rutinler geliştirmeye başlarsa, rutinin "soyut" yeniden kullanılabilir bir versiyonunu yayınlayacak ve bunu küresel bir kütüphanede saklayacaktır. Bu süreç fırsatlar yaratacak soyutlamalar, gerekli bileşen"Nihai genellemeye" ulaşmak için: Birçok görev ve alan için faydalı olacak bir rutinin, karar vermenin bazı yönlerini "soyutladığı" söylenebilir. Bu "soyutlama" tanımı, yazılım geliştirmede soyutlama kavramı gibi görünmüyor. Bu rutinler geometrik (önceden eğitilmiş temsillere sahip derin öğrenme modülleri) veya algoritmik (modern programcıların birlikte çalıştığı kütüphanelere daha yakın) olabilir.

    Çizim: Yeniden kullanılabilir ilkelleri (algoritmik ve geometrik) kullanarak göreve özgü modelleri hızlı bir şekilde geliştirebilen ve böylece "nihai genelleme" elde edebilen bir meta-öğrenme sistemi.

    Sonuç: uzun vadeli bir vizyon

    Kısacası makine öğrenimine ilişkin uzun vadeli vizyonum şu şekilde:
    • Modeller daha çok programlara benzeyecek ve şu anda üzerinde çalıştığımız kaynak verilerin sürekli geometrik dönüşümlerinin çok ötesine uzanan yeteneklere sahip olacak. Belki bu programlar, insanların çevreleri ve kendileri hakkında sahip oldukları soyut zihinsel modellere çok daha yakın olacak ve algoritmik yapıları nedeniyle daha güçlü genellemeler yapabilecektir.
    • Özellikle modeller karışacak algoritmik modüller biçimsel muhakeme, araştırma, soyutlama yetenekleriyle - ve geometrik modüller resmi olmayan sezgi ve örüntü tanıma ile. AlphaGo (yoğun manuel programlama ve mimari gerektiren bir sistem), sembolik ve geometrik yapay zekanın birleşiminin nasıl görünebileceğine dair erken bir örnek sunuyor.
    • Onlar yapacaklar büyümek Otomatik olarak (insan programcılar tarafından elle yazmak yerine), yeniden kullanılabilir rutinlerden oluşan küresel bir kitaplığın modüler parçalarını kullanarak (önceki binlerce sorun ve veri kümesinden yüksek performanslı modellerin özümsenmesiyle gelişen bir kitaplık). Metal öğrenme sistemi ortak problem çözme kalıplarını belirledikten sonra, bunlar yeniden kullanılabilir rutinlere dönüştürülür; tıpkı işlevler ve sınıflar gibi. modern programlama- ve küresel kütüphaneye eklendi. Yeteneğe böyle ulaşılır soyutlamalar.
    • Küresel bir kütüphane ve ilgili model geliştirme sistemi, insan benzeri bir tür "nihai genelleme" elde edebilecektir: yeni bir görevle, yeni bir durumla karşı karşıya kaldığında sistem, bu görev için aşağıdakileri kullanarak yeni bir çalışma modeli oluşturabilecektir: 1) iyi genelleme yapan zengin program benzeri ilkeller ve 2) benzer problemleri çözmede kapsamlı deneyim sayesinde çok az veri. Aynı şekilde, insanlar yeni ve karmaşık bir video oyununu hızlı bir şekilde öğrenebilirler çünkü diğer birçok oyunla daha önce deneyimleri vardır ve önceki deneyimlerden elde edilen modeller, yalnızca uyaranı eyleme dönüştürmek yerine soyut ve program benzeridir.
    • Esasen sürekli öğrenen bu model yetiştirme sistemi, Güçlü Yapay Zeka olarak yorumlanabilir. Ancak bir tür tekil robot kıyametinin gerçekleşmesini beklemeyin: bu, zeka ve teknoloji anlayışındaki uzun bir derin yanlış anlamalar listesinden doğan saf bir fantezidir. Ancak bu eleştirinin burada yeri yoktur.

    “Derin öğrenme” teriminin ortaya çıkışının üzerinden 20 yıldan fazla zaman geçti, ancak insanlar bu konu hakkında ancak son zamanlarda konuşmaya başladılar. Bunun neden olduğunu, ne olduğunu kısaca açıklıyoruz derin öğrenme, makine öğreniminden farkı ve neden bu konuda bilgi sahibi olmanız gerektiği.

  • Ne olduğunu?

    Derin öğrenme, beynin nasıl çalıştığından, yani nöronların nasıl etkileşime girdiğinden ilham alan bir modeli kullanan, makine öğreniminin bir dalıdır.

    Terimin kendisi 1980'lerde ortaya çıktı, ancak 2012 yılına kadar bu teknolojiyi uygulamak için yeterli kapasite yoktu ve neredeyse hiç kimse buna dikkat etmedi. Ünlü bilim adamlarının bir dizi makalesi ve bilimsel dergilerdeki yayınlardan sonra, teknoloji hızla popüler hale geldi ve büyük medyanın dikkatini çekti - The New York Times, bu konuda yazan ilk dünya medyasıydı. Malzemenin nedenlerinden biri şuydu: bilimsel çalışma Toronto Alex Krizhevsky, Ilya Satskever ve Jeff Hinton üniversitelerinden uzmanlar. Sinir ağlarının derin öğrenmeyi kullanarak eğitildiği ImageNet görüntü tanıma yarışmasının sonuçlarını açıklayıp analiz ettiler; sistem nesnelerin %85'ini tanımladı. O zamandan bu yana rekabeti yalnızca derin sinir ağı kazandı

  • Bekle, makine öğrenimi nedir?

    Bu, yapay zekanın bir alt alanıdır ve özel bir program yazmadan deneyimlerden öğrenen algoritmalar oluşturma yöntemlerini açıklayan bir terimdir. Yani bu durumda kişinin makineye sorunun nasıl çözüleceğini açıklamasına gerek kalmaz, kendisine sağlanan verilerden cevabı kendisi bulur. Örneğin, algoritmanın yüzleri tanımlamasını istiyorsak, ona on bin farklı yüz göstermeli, yüzün tam olarak nerede olduğunu not etmeliyiz ve ardından program onu ​​kendi başına tanımlamayı öğrenecektir.

    Makine, hem öğretmenin yardımıyla, hem de makine için doğru cevapları işaretlediğinde öğrenebilir, ya da onsuz öğrenebilir. Ancak bir öğretmenle öğrenirken sonuçlar daha iyi olur. Veri işleme her gerçekleştiğinde sistem daha doğru hale gelir.

  • Derin öğrenme nasıl çalışır?

    Soyut insan düşüncesini taklit eder ve genelleme yapabilir. Örneğin, makine tarafından eğitilmiş bir sinir ağı, el yazısı harfler- ve farklı yazımlarda karıştırılmaması için hepsinin içine yüklenmesi gerekir.

    Çok katmanlı yapay sinir ağları ile çalışırken derin öğrenme kullanılır ve bu görevin üstesinden gelebilir.

    “Son zamanlarda sıklıkla birbirinin yerine kullanılan üç terim var: yapay zeka, makine öğrenimi ve derin öğrenme. Ancak bunlar aslında "iç içe geçmiş" terimlerdir: yapay zeka, bir bilgisayarın insani görevleri yerine getirmesine yardımcı olabilecek herhangi bir şeydir; makine öğrenimi, programların yalnızca sorunları çözmekle kalmayıp sahip oldukları deneyime dayalı olarak öğrendikleri bir yapay zeka dalıdır ve derin öğrenme, derin sinir ağlarını inceleyen bir makine öğrenimi dalıdır.

    Basitçe söylemek gerekirse: 1.satranç oynayan bir program yazdıysanız bu yapay zekadır; 2.büyük ustalık oyunlarını temel alarak veya kendine karşı oynayarak öğreniyorsa, bu makine öğrenimidir; 3.ve eğer ondan sadece herhangi bir şey değil, derin bir sinir ağı da öğreniyorsa, bu derin öğrenmedir.".

  • Derin öğrenme nasıl çalışır?

    Basit bir örnek alalım; bir erkek ve bir kız çocuğunu gösteren sinir ağı fotoğraflarını göstereceğiz. İlk katmanda nöronlar parlaklıktaki değişiklikler gibi basit görsel görüntülere yanıt verir. İkincisi - daha karmaşık olanlar: açılar, daireler. Üçüncü katmanda nöronlar yazılara ve insan yüzlerine yanıt verebilmektedir. Sonraki her katman için tanımlanan görüntüler daha karmaşık olacaktır. Sinir ağının kendisi hangi Görsel öğeler bu sorunu çözmekle ilgileniyor ve fotoğrafta gösterilenleri gelecekte daha iyi anlayabilmek için bunları önem sırasına göre sıralıyor.

  • Peki bununla halihazırda ne geliştirdiniz?

    Derin öğrenme projelerinin çoğu fotoğraf veya ses tanıma ve hastalık teşhisinde kullanılıyor. Örneğin, zaten kullanılıyor Google çevirileri bir görüntüden: Derin Öğrenme teknolojisi, bir resimde harf olup olmadığını tespit eder ve ardından bunları çevirir. Fotoğraflarla çalışan bir diğer proje ise DeepFace adı verilen yüz tanıma sistemi. İnsan yüzlerini %97,25 doğrulukla tanıyabiliyor; bu da neredeyse insanlarla aynı doğrulukta.

    2016 yılında Google, insan konuşmasını simüle edebilen bir sistem olan WaveNet'i piyasaya sürdü. Bunu yapmak için şirket, OK Google projesinde kullanılan milyonlarca dakikalık kayıtlı sesli sorguyu sisteme yükledi ve çalıştıktan sonra sinir ağının kendisi, mantıksız duraklamalar olmadan doğru vurgu, vurgu ile cümleler oluşturmayı başardı.

    Aynı zamanda derin öğrenme, bir görüntüyü veya videoyu anlamsal olarak bölümlere ayırabilir; yani, yalnızca resimde bir nesne olduğunu belirtmekle kalmaz, aynı zamanda onun dış hatlarını da ideal olarak vurgulayabilir. Bu teknoloji, kazaları önlemek için yoldaki engelleri, işaretleri algılayan ve yol işaretlerini okuyan sürücüsüz araçlarda kullanılıyor. Sinir ağı tıpta da kullanılıyor; örneğin hastaların göz fotoğraflarından diyabetik retinopatiyi belirlemek için. ABD Sağlık Bakanlığı bu teknolojinin devlet kliniklerinde kullanılmasına zaten izin verdi.

  • Derin öğrenmeyi neden daha önce uygulamaya başlamadılar?

    Önceden bu pahalı, zor ve zaman alıcı bir işti; güçlü grafik işlemcilere, video kartlarına ve belleğe ihtiyacınız vardı. Derin öğrenmedeki patlama, hesaplamaları hızlandıran ve maliyetini azaltan grafik işlemcilerin yaygın kullanımıyla, neredeyse sınırsız veri depolama yetenekleriyle ve "büyük veri" teknolojisinin gelişmesiyle tam olarak ilişkilidir.

  • Bu çığır açan bir teknoloji, her şeyi değiştirecek mi?

    Bu konuda kesin bir şey söylemek zor; görüşler farklılık gösteriyor. Bir yandan Google, Facebook ve diğer büyük şirketler zaten milyarlarca dolar yatırım yapmış durumda ve iyimserler. Onlara göre derin öğrenmeye sahip sinir ağları değişebilir teknolojik cihaz barış. Makine öğreniminin önde gelen uzmanlarından biri olan Andrew Ng şunları söylüyor: "Eğer bir kişi bir görevi zihinsel olarak bir saniye içinde gerçekleştirebilirse, büyük ihtimalle o görev yakın gelecekte otomatik hale gelecektir." Ng, makine öğrenimini "yeni elektrik" olarak adlandırıyor; bu teknolojik bir devrim ve bunu görmezden gelen şirketler kendilerini hızla rekabetin umutsuzca gerisinde bulacaklar.

    Öte yandan şüpheciler de var: Derin öğrenmenin moda bir kelime veya sinir ağlarının yeniden markalanması olduğuna inanıyorlar. Örneğin, İktisat Yüksek Okulu Bilgisayar Bilimleri Fakültesi'nde kıdemli öğretim görevlisi olan Sergei Bartunov, bu algoritmanın bir sinir ağını eğitmek için seçeneklerden yalnızca biri (ve en iyisi değil) olduğuna inanıyor ve bu da hızla benimsendi. kitlesel yayınlar ve artık herkesin bildiği.

    “Derin Öğrenme” kitabının ortak yazarı Sergey Nikolenko: “Yapay zekanın tarihi, bir heyecan ve yüksek beklenti dalgasının ardından hayal kırıklığının geldiği iki “kış”ı zaten biliyor. Bu arada her iki sefer de sinir ağlarıyla bağlantılıydı. İlk olarak, 1950'lerin sonlarında Rosenblatt'ın algılayıcısının hemen makine çevirisine ve öz-farkındalığa sahip bilgisayarlara yol açacağına karar verildi; ancak elbette donanımın, verilerin sınırlı olması ve uygun modellerin bulunmaması nedeniyle işe yaramadı.

    Ve 1980'lerin sonlarında herhangi bir sinir ağı mimarisinin nasıl eğitileceğini bulduklarında aynı hata yapıldı. Sanki her kapıyı açabilecek altın bir anahtar buradaydı. Bu artık o kadar da naif bir sonuç değildi: Aslında, 1980'lerin sonlarından kalma bir sinir ağını alıp, onu mekanik olarak büyütürseniz (nöron sayısını artırırsanız) ve onu modern veri setleri ve modern donanımla eğitirseniz, çok iyi çalışacaktır! Ancak o dönemde yeterli veri ve donanım yoktu ve derin öğrenme devrimi 2000'li yılların sonuna ertelenmek zorunda kaldı.

    Artık yapay zekanın üçüncü dalgasında yaşıyoruz. Üçüncü bir “kışla” mı yoksa güçlü bir yapay zekanın yaratılmasıyla mı sonuçlanacağını yalnızca zaman gösterecek.”

  • Derin öğrenme, metinlerle çalışma paradigmasını değiştiriyor ancak hesaplamalı dilbilimciler ve veri bilimcileri arasında şüpheciliğe neden oluyor. Sinir ağları güçlü ama önemsiz bir makine öğrenme aracıdır.

    03.05.2017 Dmitry Ilvovsky, Ekaterina Chernyak

    Sinir ağları metinlerdeki gizli bağlantıların ve kalıpların bulunmasını mümkün kılar ancak bu bağlantılar açıkça sunulamaz. Sinir ağları, güçlü olmasına rağmen oldukça önemsiz bir araçtır ve veri analizi alanında endüstriyel çözümler geliştiren şirketler ve önde gelen hesaplamalı dilbilimciler arasında şüpheciliğe neden olur.

    Sinir ağı teknolojilerine ve derin öğrenmeye olan genel ilgi, metinlerin doğal dilde otomatik olarak işlenmesi anlamına gelen bilgisayar dilbilimini atlamamıştır. Bu alandaki ana bilimsel forum olan Hesaplamalı Dilbilim Derneği'nin (ACL) son konferanslarında raporların büyük çoğunluğu, hem halihazırda bilinen sorunları çözmek hem de çözülmemiş yeni sorunları keşfetmek için sinir ağlarının kullanımına ayrılmıştı. standart araçlar makine öğrenme. Dilbilimcilerin sinir ağlarına artan ilgisi çeşitli nedenlerden kaynaklanmaktadır. Sinir ağlarının kullanımı öncelikle bazı problemler için çözümlerin kalitesini önemli ölçüde artırır. standart görevler metinlerin ve dizilerin sınıflandırılması, ikincisi, doğrudan metinlerle çalışırken emek yoğunluğunu azaltır, üçüncüsü, yeni sorunları çözmenize olanak tanır (örneğin, sohbet botları oluşturma). Aynı zamanda sinir ağları, dilsel problemleri çözmek için tamamen bağımsız bir mekanizma olarak düşünülemez.

    İlk çalışma derin öğrenme(derin öğrenme) tarihi 20. yüzyılın ortalarına kadar uzanıyor. 1940'ların başında Warren McCulloch ve Walter Pitts, insan beyninin resmi bir modelini - yapay bir sinir ağı - önerdiler ve bir süre sonra Frank Rosenblatt çalışmalarını genelleştirdi ve bilgisayarda bir sinir ağı modeli oluşturdu. Geri yayılım algoritmasını kullanarak sinir ağlarını eğitmeye yönelik ilk çalışma 1960'lara kadar uzanıyor (algoritma tahmin hatasını hesaplıyor ve stokastik optimizasyon yöntemlerini kullanarak bunu en aza indiriyor). Ancak beyni simüle etme fikrinin güzelliğine ve zarafetine rağmen "geleneksel" sinir ağlarının eğitiminin uzun sürdüğü ve küçük veri kümeleri üzerindeki sınıflandırma sonuçlarının daha basit yöntemlerle elde edilen sonuçlarla karşılaştırılabilir olduğu ortaya çıktı. Destek Vektör Makineleri (SVM) gibi. Sonuç olarak, sinir ağları 40 yıl boyunca unutuldu, ancak bugün büyük hacimli yapılandırılmamış veriler, görüntüler ve metinlerle çalışırken yeniden talep görmeye başladı.

    Resmi bir bakış açısına göre, bir sinir ağı, belirli bir mimarinin yönlendirilmiş bir grafiğidir; köşeleri veya düğümleri nöronlar. Grafiğin ilk seviyesi giriş düğümlerini, son seviyesi ise sayısı göreve bağlı olan çıkış düğümlerini içerir. Örneğin, iki sınıfa sınıflandırmak için ağın çıkış katmanına bir veya iki nöron yerleştirilebilir; k sınıfa sınıflandırmak için k nöron yerleştirilebilir. Sinir ağı grafiğindeki diğer tüm seviyelere genellikle gizli katmanlar adı verilir. Bir seviyede bulunan tüm nöronlar, bir sonraki seviyedeki tüm nöronlara kenarlarla bağlanır, her kenarın bir ağırlığı vardır. Her nörona, biyolojik nöronların çalışmasını modelleyen bir aktivasyon fonksiyonu atanır: giriş sinyali zayıf olduğunda "sessizdirler" ve değeri belirli bir eşiği aştığında ateşlenirler ve giriş değerini ağ boyunca daha da iletirler. Örnekler kullanarak (yani "nesne - doğru cevap" çiftlerini kullanarak) bir sinir ağını eğitme görevi, kenarların ağırlıklarını bulmaktır, en iyi yol doğru cevapları tahmin etmek. Sinir ağı grafiğinin yapısının topolojisi olan mimarinin bu olduğu açıktır. en önemli parametre. Henüz "Derin ağlar" için resmi bir tanım bulunmamakla birlikte, çok sayıda katmandan oluşan veya "standart dışı" katmanlara sahip olan (örneğin, yalnızca seçilen bağlantıları içeren veya diğer ağlarla özyineleme kullanan) tüm sinir ağlarının genel olarak kabul edildiği kabul edilmektedir. katmanlar) derin kabul edilir.

    Sinir ağlarının şimdiye kadarki en başarılı kullanımının bir örneği görüntü analizidir, ancak sinir ağı teknolojileri de metin verileriyle çalışmayı kökten değiştirdi. Daha önce metnin her bir öğesinin (harf, kelime veya cümle) farklı nitelikteki birçok özellik (morfolojik, sözdizimsel, anlamsal vb.) kullanılarak tanımlanması gerekiyordu, şimdi birçok görevde karmaşık açıklamalara duyulan ihtiyaç ortadan kalkıyor. Sinir ağı teknolojilerinin teorisyenleri ve uygulayıcıları genellikle "temsil öğrenimi" hakkında konuşurlar; ham metinde, yalnızca kelimelere ve cümlelere bölünmüş bir sinir ağı, bağımlılıkları ve kalıpları bulabilir ve bağımsız olarak bir özellik alanı oluşturabilir. Ne yazık ki, böyle bir alanda kişi hiçbir şey anlamayacaktır - eğitim sırasında sinir ağı, metnin her bir öğesine, keşfedilen "derin" ilişkileri temsil eden belirli sayılardan oluşan yoğun bir vektör atar. Metinle çalışırken vurgu, özelliklerin bir alt kümesini oluşturmak ve harici bilgi tabanlarını araştırmaktan, standart yöntemlere kıyasla önemli ölçüde daha fazla veri gerektiren bir sinir ağının daha sonraki eğitimi için veri kaynaklarını seçmeye ve metinleri işaretlemeye doğru kayıyor. Tam da büyük miktarlarda veri kullanma ihtiyacından ve zayıf yorumlanabilirlik ve öngörülemezlikten dolayı sinir ağlarına ihtiyaç duyulmamaktadır. gerçek uygulamalar Rastgele orman ve destek vektör makineleri gibi diğer köklü öğrenme algoritmalarından farklı olarak endüstriyel ölçekte. Bununla birlikte, sinir ağları bir dizi otomatik metin işleme görevinde kullanılmaktadır (Şekil 1).

    Sinir ağlarının en popüler uygulamalarından biri, dağıtımsal anlambilim alanıyla ilgili kelime vektörlerinin oluşturulmasıdır: Bir kelimenin anlamının, bağlamının anlamı, onu çevreleyen kelimeler tarafından anlaşılabileceğine inanılmaktadır. Aslında, eğer bilinen bir dildeki bir metindeki bir kelimeye aşina değilsek, çoğu durumda onun anlamını tahmin edebiliriz. Matematiksel model Bir kelimenin anlamları kelimelerin vektörleridir: oldukça geniş bir metin külliyatından oluşturulmuş geniş bir “kelime bağlamı” matrisindeki satırlar. Komşu kelimeler, verilen kelimeyle aynı sözdizimsel veya anlamsal yapıya dahil olan kelimeler vb. belirli bir kelime için “bağlam” görevi görebilir.Böyle bir matrisin hücrelerine frekanslar (kelimenin bir kelimede kaç kez geçtiği) kaydedilebilir. belirli bir bağlamda) bir kelimenin görünümünün ne kadar rastgele olmadığını gösteren pozitif ikili karşılıklı bilgi katsayısını (Pozitif Noktasal Karşılıklı Bilgi, PPMI) daha sık kullanın. Bu tür matrisler, kelimeleri kümelemek veya anlam olarak aranan kelimeye yakın kelimeleri aramak için oldukça başarılı bir şekilde kullanılabilir.

    2013 yılında Tomas Mikolov, kelime vektörlerini eğitmek için sinir ağlarını kullanmayı önerdiği bir makale yayınladı, ancak daha küçük bir boyut için: demetler (kelime, bağlamlar) kullanılarak, en basit mimariye sahip bir sinir ağı eğitildi ve çıktıda her biri kelimeye 300 elementten oluşan bir vektör atandı. Bu tür vektörlerin kelimelerin anlamsal yakınlığını daha iyi aktardığı ortaya çıktı. Örneğin, anlamların toplanması ve çıkarılmasıyla ilgili aritmetik işlemleri tanımlayabilir ve aşağıdaki denklemleri elde edebilirsiniz: “Paris - Fransa + Rusya = Moskova”; “kral – erkek + kadın = kraliçe.” Veya "elma, armut, kiraz, kedi yavrusu" dizisinde fazladan bir kelime bulun. Çalışma, word2vec genel adı altında skip-gram ve CBOW (Sürekli Sözcükler Çantası) olmak üzere iki mimari sundu. Daha sonra gösterildiği gibi, word2vec, PPMI ağırlıkları ile bir sözcük bağlamı matrisinin çarpanlara ayrılmasından başka bir şey değildir. Artık word2vec'i derin öğrenmeden ziyade dağıtıcı anlambilim olarak sınıflandırmak gelenekseldir, ancak bu modelin yaratılmasına yönelik ilk itici güç bir sinir ağının kullanılmasıydı. Ek olarak, word2vec vektörlerinin, metin sınıflandırması için kullanılan derin sinir ağlarına girdi olarak beslenebilecek bir kelimenin anlamının uygun bir temsili olarak hizmet ettiği ortaya çıktı.

    Metin sınıflandırma görevi, özellikle tüketicinin bir ürün veya hizmete yönelik görüşlerini veya tutumlarını analiz etmek söz konusu olduğunda, pazarlamacılar için en acil görevlerden biridir; bu nedenle araştırmacılar, çözümün kalitesini artırmak için sürekli çalışmaktadır. Ancak görüş analizi, metinlerden ziyade cümleleri sınıflandırma işidir; olumlu bir incelemede kullanıcı bir veya iki olumsuz cümle yazabilir ve bunları tanımlayıp analiz edebilmek de önemlidir. Cümleleri sınıflandırmanın iyi bilinen bir zorluğu, girdinin değişken uzunluğunda yatmaktadır; metinlerdeki cümleler isteğe bağlı uzunlukta olabildiği için, bunların bir sinir ağının girdisine nasıl gönderileceği açık değildir. Bir yaklaşım görüntü analizi alanından alınmıştır ve evrişimli sinir ağlarının (CNN) kullanımını içermektedir (Şekil 2).

    Evrişimli sinir ağının girişi, her kelimenin zaten bir vektör (vektörlerin vektörü) tarafından temsil edildiği bir cümledir. Tipik olarak, önceden eğitilmiş word2vec modelleri, kelimeleri vektörler olarak temsil etmek için kullanılır. Evrişimli bir sinir ağı iki katmandan oluşur: "derin" evrişim katmanı ve düzenli bir gizli katman. Evrişim katmanı ise filtrelerden ve bir "alt örnekleme" katmanından oluşur. Filtre, girişi metin içinde hareket eden ve belirli sayıda kelimeyi sırayla seçen pencereler kullanılarak oluşturulan bir nörondur (örneğin, "üç" uzunluğunda bir pencere ilk üç kelimeyi, ikinciden dördüncüye kadar olan kelimeleri seçecektir, üçüncüden beşinciye vb.) . Filtrenin çıkışında, içinde yer alan tüm sözcük vektörlerini bir araya getiren bir vektör oluşturulur. Daha sonra alt örnekleme katmanında teklifin tamamına karşılık gelen tek bir vektör oluşturulur ve bu, tüm çıkış filtre vektörlerinin bileşen bazında maksimumu olarak hesaplanır. Evrişimsel sinir ağlarının eğitilmesi ve uygulanması kolaydır. Bunları eğitmek için standart bir geri yayılım algoritması kullanılır ve filtrelerin ağırlıklarının eşit şekilde dağıtılması nedeniyle (pencereden gelen i'inci kelimenin ağırlığı herhangi bir filtre için aynıdır), parametre sayısı Evrişimli bir sinir ağı küçüktür. Bilgisayar dilbilimi açısından bakıldığında, evrişimli sinir ağları sınıflandırma için güçlü bir araçtır, ancak arkasında herhangi bir dilsel sezgi yoktur ve bu da algoritma hatalarının analizini önemli ölçüde karmaşıklaştırır.

    Sıra sınıflandırma, her kelimeye bir etiket atanması gereken bir görevdir: morfolojik analiz (her kelimeye konuşmanın bir kısmı atanır), adlandırılmış varlık çıkarma (her kelimenin bir kişinin adının, coğrafi adının vb. parçası olup olmadığının belirlenmesi) vb. Dizileri sınıflandırırken, kelimenin bağlamını dikkate alan yöntemler kullanılır: önceki kelime bir kişinin adının parçasıysa, o zaman mevcut kelime de adın bir parçası olabilir, ancak büyük olasılıkla adın bir parçası değildir. örgütün adı. Geçen yüzyılın sonunda önerilen dil modelleri fikrini genişleten tekrarlayan sinir ağları, bu gereksinimin pratikte uygulanmasına yardımcı oluyor. Klasik dil modeli i-1 kelimesinden sonra i kelimesinin gelme olasılığını tahmin etmektedir. Dil modelleri bir sonraki kelimeyi tahmin etmek için de kullanılabilir: Bundan sonra hangi kelimenin görünmesi en muhtemeldir?

    Dil modellerini eğitmek için büyük derlemlere ihtiyaç vardır; eğitim derlemi ne kadar büyük olursa, model o kadar fazla kelime çiftini "bilir". Dil modellerini geliştirmek için sinir ağlarını kullanmak, depolanan veri miktarını azaltır. i-2 ve i-1 kelimelerinin girildiği ve çıktıda sinir ağının i kelimesini tahmin ettiği basit bir ağ mimarisi hayal edelim. Gizli katmanların sayısına ve üzerlerindeki nöronların sayısına bağlı olarak eğitilmiş ağ, nispeten küçük boyutlu bir dizi yoğun matris olarak depolanabilir. Başka bir deyişle, bir eğitim derlemi ve tüm kelime çiftleri yerine yalnızca birkaç matrisi ve benzersiz kelimelerin bir listesini saklayabilir. Ancak böyle bir sinirsel dil modeli, kelimeler arasındaki uzun bağlantıların dikkate alınmasına izin vermez. Bu sorun, gizli katmanın iç durumunun yalnızca girişe yeni bir kelime geldikten sonra güncellenmekle kalmayıp aynı zamanda bir sonraki adıma aktarıldığı tekrarlayan sinir ağları (Şekil 3) tarafından çözülmektedir. Böylece, tekrarlayan ağın gizli katmanı iki tür girişi kabul eder: önceki adımdaki gizli katmanın durumu ve yeni kelime. Tekrarlayan bir sinir ağı bir cümleyi işlerse, gizli durumlar cümlelerdeki uzun bağlantıların hatırlanmasına ve iletilmesine izin verir. Tekrarlayan sinir ağlarının bir cümledeki öznenin cinsiyetini hatırladığı ve bir cümle oluştururken doğru zamirleri (o - onu, o - onun) seçtiği, ancak bu tür bilgilerin cümlede tam olarak nasıl depolandığını açıkça gösterdiği deneysel olarak defalarca doğrulanmıştır. Bir sinir ağının nasıl kullanıldığı ya da nasıl kullanıldığı hala başarıya ulaşamadı.

    Tekrarlayan sinir ağları da metin sınıflandırması için kullanılır. Bu durumda ara adımlardaki çıkışlar kullanılmaz ancak son çıkış sinir ağı tahmin edilen sınıfı döndürür. Bugün, gizli katmanda birkaç düzine nörona sahip olan çift yönlü (gizli durumu yalnızca "sağa" değil aynı zamanda "sola" da ileten) yinelenen ağlar, metin ve dizi sınıflandırma problemlerini çözmek için standart bir araç haline geldi. metin oluşturmanın yanı sıra, esasen diğer algoritmaların yerini almıştır.

    Tekrarlayan sinir ağlarının gelişimi, biri girdinin (örneğin, bir dildeki bir soru veya cümle) temsil edilmesinden ve analiz edilmesinden, ikincisinin girdinin oluşturulmasından sorumlu olduğu iki bağlantılı tekrarlayan ağdan oluşan Seq2seq tipi mimariler haline geldi. çıktı (başka bir dildeki bir cevap veya cümle) . Seq2seq ağları bunun temelini oluşturuyor modern sistemler“soru-cevap”, sohbet botları ve makine çeviri sistemleri.

    Evrişimli sinir ağlarına ek olarak, metin analizi için otomatik kodlayıcılar olarak adlandırılanlar kullanılır; bunlar, örneğin Photoshop veya Instagram'daki görüntüler üzerinde efektler oluşturmak için kullanılır ve boyut azaltma probleminde dilbilimde uygulama bulmuşlardır (projeksiyonun aranması). metni temsil eden bir vektörün daha düşük boyutlu bir alana yerleştirilmesi). İki boyutlu bir alana projeksiyon, metni bir düzlem üzerinde bir nokta olarak temsil etmeyi mümkün kılar ve bir metin koleksiyonunu bir dizi nokta olarak görsel olarak tasvir etmenize olanak tanır; yani, kümeleme veya sınıflandırma öncesinde bir ön analiz aracı olarak hizmet eder. metinler. Sınıflandırma görevinden farklı olarak boyut azaltma görevinin net kalite kriterleri yoktur, ancak otomatik kodlayıcılar kullanıldığında elde edilen görüntüler oldukça "ikna edici" görünmektedir. Matematiksel açıdan bakıldığında, otomatik kodlayıcı, öğrenen denetimsiz bir sinir ağıdır. doğrusal fonksiyon f(x) = x ve iki bölümden oluşur: kodlayıcı ve kod çözücü. Kodlayıcı, sayıları azalan nöronlara sahip birden fazla gizli katmana sahip bir ağdır. Kod çözücü, artan sayıda nörona sahip benzer bir ağdır. Bunlar, daha düşük boyutlu yeni bir uzayda boyutların olması gerektiği kadar nörona sahip olan gizli bir katmanla birbirine bağlanır ve boyutluluğun azaltılmasından sorumlu olan da bu katmandır. Evrişimli sinir ağları gibi, bir otomatik kodlayıcının da herhangi bir dilsel yorumu yoktur, dolayısıyla analitik bir araçtan ziyade bir mühendislik aracı olarak düşünülebilir.

    Etkileyici sonuçlara rağmen sinir ağı dikkate alınamıyor bağımsız bir araç metin analizi (dildeki kalıpları aramak) ve hatta metni anlamak için. Evet, sinir ağları kelimeler arasındaki gizli bağlantıları bulmayı ve metinlerdeki kalıpları keşfetmeyi mümkün kılıyor ancak bu bağlantılar yorumlanabilir bir biçimde sunuluncaya kadar sinir ağları oldukça önemsiz makine öğrenimi araçları olarak kalacak. Ayrıca derin öğrenme, veri hazırlığı için makul olmayan maliyetler gerektirmesi ve sonuçların öngörülememesi nedeniyle endüstriyel analitik çözümlerde henüz talep görmüyor. Araştırma camiasında bile sinir ağlarını evrensel bir araç haline getirme girişimlerine yönelik eleştiriler var. Stanford'daki hesaplamalı dilbilim grubunun başkanı ve ACL'nin başkanı Chris Manning, 2015 yılında sinir ağlarının uygulanabilirliğini açıkça ortaya koydu. Buna metin sınıflandırma, dizi sınıflandırma ve boyutluluk azaltma görevlerini dahil etti. Ancak derin öğrenmenin pazarlanması ve yaygınlaşması sayesinde, hesaplamalı dilbilimin kendisine ve yeni uygulamalarına olan ilgi arttı.

    Edebiyat

    1. Tomas Mikolov ve. al. Vektör Uzayında Kelime Temsillerinin Verimli Tahmini, arxiv.org. URL: http://arxiv.org/pdf/1301.3781.pdf
    2. Levy Ömer, Yoav Goldberg, Ido Dagan. Kelime yerleştirmelerden öğrenilen derslerle dağılım benzerliğinin iyileştirilmesi. Hesaplamalı Dilbilim Derneği'nin İşlemleri 3. - 2015. - S. 211–225. URL: https://www.transacl.org/ojs/index.php/tacl/article/view/570/124 (erişim tarihi: 18.05.2017).
    3. Pavel Velikhov. Doğal dilin anlaşılması için makine öğrenimi // Open Systems.DBMS. - 2016. - No. 1. - S.18–21. URL: (erişim tarihi: 18.05.2017).
    4. Christopher Manning. Hesaplamalı dilbilim ve derin öğrenme. Hesaplamalı dilbilimleri. - 2016. URL: http://www.mitpressjournals.org/doi/full/10.1162/COLI_a_00239#.WQH8MBhh2qA (erişim tarihi: 18.05.2017).

    Dmitri İlvovski ([e-posta korumalı]) - Uluslararası Akıllı Sistemler ve Yapısal Analiz Laboratuvarı çalışanı, Ekaterina Çernyak ([e-posta korumalı]) - Ulusal Araştırma Üniversitesi Ekonomi Yüksek Okulu (Moskova), Bilgisayar Bilimleri Fakültesi, Sürekli Eğitim Merkezi'nde öğretmen. Çalışma, Ulusal Araştırma Üniversitesi İktisat Yüksek Okulu Temel Araştırma Programı çerçevesinde gerçekleştirildi.



    Derin öğrenme nedir? 3 Mart 2016

    Artık, sanki cennetten gelen kudret helvasıymış gibi, son moda derin öğrenme teknolojilerinden bahsediyorlar. Peki konuşmacılar bunun gerçekte ne olduğunu anlıyorlar mı? Ancak bu kavramın resmi bir tanımı yoktur ve birçok teknolojiyi bir araya getirir. Bu yazıda olabildiğince popüler bir şekilde ve aslında bu terimin arkasında ne olduğunu, neden bu kadar popüler olduğunu ve bu teknolojilerin bize neler kazandırdığını anlatmak istiyorum.


    Kısacası, bu yeni moda terim (derin öğrenme), bazı basit soyutlamalardan daha karmaşık ve daha derin bir soyutlamanın (temsil) nasıl oluşturulacağıyla ilgilidir. en basit soyutlamaların bile bir kişi tarafından değil bizzat bilgisayar tarafından bir araya getirilmesi gerektiği gerçeğine rağmen. Onlar. Artık sadece öğrenmeyle ilgili değil, meta-öğrenmeyle de ilgili. Mecazi anlamda konuşursak, bilgisayarın kendisi en iyi nasıl öğrenileceğini öğrenmelidir. Ve aslında “derin” tabirinin anlamı da tam olarak budur. Neredeyse her zaman bu terim birden fazla gizli katman kullanan yapay sinir ağlarına uygulanır; dolayısıyla resmi olarak "derin" aynı zamanda daha derin bir sinir ağı mimarisi anlamına da gelir.

    Buradaki geliştirme slaytında derin öğrenmenin sıradan öğrenmeden ne kadar farklı olduğunu açıkça görebilirsiniz. Tekrarlıyorum, Derin öğrenmenin benzersiz yanı, makinenin özellikleri kendisinin bulması(bir nesne sınıfını diğerinden ayırmanın en kolay olduğu bir şeyin temel özellikleri) ve bu işaretleri hiyerarşik olarak yapılandırır: daha basit olanlar daha karmaşık olanlarla birleştirilir. Aşağıda buna bir örnekle bakacağız.

    Görüntü tanıma sorununa bir örnek verelim: eskiden nasıldı - kocaman (1024×768 - yaklaşık 800.000 sayısal değer) bir görüntüyü tek katmanla normal bir sinir ağına doldurduk ve bilgisayarın eksiklikten boğularak yavaş yavaş ölmesini izledik hafızanın bozulması ve hangi piksellerin tanıma için önemli olduğunu, hangilerinin olmadığını anlayamama. Bu yöntemin etkinliğinden bahsetmiyorum bile. İşte böylesine düzenli (sığ) bir sinir ağının mimarisi.

    Daha sonra beynin özellikleri nasıl ayırt ettiğini dinlediler ve bunu kesinlikle hiyerarşik bir şekilde yaptı ve ayrıca resimlerden hiyerarşik bir yapı çıkarmaya karar verdiler. Bunun için sinir ağına daha fazla gizli katman (girdi ve çıktı arasındaki katmanlar; kabaca bilgi dönüştürme aşamaları) eklemek gerekiyordu. Her ne kadar nöronlar icat edilir edilmez bunu yapmaya karar vermiş olsalar da, yalnızca bir gizli katmana sahip ağlar başarıyla eğitildi. Onlar. temel olarak derin ağlar Normal olanlar kadar uzun süredir buralardayız ama onları eğitemedik. Ne değişti?

    2006 yılında birkaç bağımsız araştırmacı bu sorunu aynı anda çözdü (ayrıca donanım yetenekleri zaten yeterince gelişmişti, oldukça güçlü video kartları ortaya çıktı). Bu araştırmacılar şunlardır: Geoffrey Hinton (ve meslektaşı Ruslan Salakhutidinov), bir sinir ağının her katmanını kısıtlı bir Boltzmann makinesiyle önceden eğitme tekniğiyle (bu terimler için beni affedin...), evrişimli sinir ağlarıyla Yann LeCun ve Kademeli otomatik kodlayıcılara sahip Yoshuay Bengio. İlk ikisi sırasıyla Google ve Facebook tarafından hemen işe alındı. İşte iki ders: bir - Hinton, diğeri - Lyakuna, burada derin öğrenmenin ne olduğunu anlatıyorlar. Bunu size onlardan daha iyi kimse anlatamaz. Harika bir tane daha ders Schmidhuber, aynı zamanda bu bilimin temellerinden biri olan derin öğrenmenin gelişimi hakkında da konuştu. Hinton'un nöronlar üzerine de mükemmel bir dersi var.

    Derin sinir ağları şimdi ne yapabilir? Nesneleri tanıyabiliyor ve tanımlayabiliyorlar; ne olduğunu “anladıkları” söylenebilir. Anlamları tanımakla ilgilidir.

    Kameranın gördüklerini gerçek zamanlı olarak tanıyan bu videoyu izlemeniz yeterli.

    Daha önce de söylediğim gibi, derin öğrenme teknolojileri bir dizi teknoloji ve çözümden oluşuyor. Bunlardan birkaçını yukarıdaki paragrafta zaten listelemiştim, başka bir örnek ise yinelenen ağlardır, bunlar yukarıdaki videoda ağın ne gördüğünü açıklamak için kullanılmıştır. Ancak bu teknoloji sınıfının en popüler temsilcisi hala LyaKun'un evrişimli sinir ağlarıdır. Bunlar, farklı açılarda düz çizgilere tepki veren basit hücrelerin ve tepkisi aktivasyonla ilişkili olan karmaşık hücrelerin keşfedildiği kedi beyninin görsel korteksinin çalışma prensiplerine benzetilerek inşa edilmiştir. belirli bir dizi basit hücreden oluşur. Dürüst olmak gerekirse LaCun'un kendisi biyolojiye odaklanmasa da, belirli bir sorunu çözüyordu (derslerine bakın) ve sonra hepsi çakıştı.

    Çok basit bir şekilde ifade etmek gerekirse, evrişimli ağlar, öğrenmenin ana yapısal unsurunun yalnızca bir tane değil, bir nöron grubu (kombinasyonu) (genellikle 3x3, 10x10 kare vb.) olduğu ağlardır. Ve ağın her seviyesinde bu tür düzinelerce grup eğitiliyor. Ağ, görüntü hakkındaki bilgiyi en üst düzeye çıkaran nöron kombinasyonlarını bulur. İlk düzeyde ağ, resmin en temel, yapısal olarak basit öğelerini çıkarır - diyebiliriz ki, yapı birimleri: sınırlar, çizgiler, bölümler, kontrastlar. Daha yukarılarda zaten birinci seviyenin elemanlarının kararlı kombinasyonları vardır ve bu zincirde yukarıya doğru devam eder. Derin öğrenmenin temel özelliğini bir kez daha ayrı ayrı vurgulamak isterim: Ağların kendisi bu unsurları oluşturur ve hangisinin daha önemli, hangisinin olmadığına karar verir. Bu önemlidir çünkü makine öğrenimi alanında özelliklerin oluşturulması çok önemlidir ve şimdi bilgisayarın kendisinin özellikleri oluşturmayı ve seçmeyi öğrendiği aşamaya geçiyoruz. Makinenin kendisi bilgilendirici özelliklerden oluşan bir hiyerarşi tahsis eder.

    Yani, öğrenme süreci sırasında (yüzlerce resmin görüntülenmesi), evrişimli ağ, farklı derinlik seviyelerindeki özelliklerden oluşan bir hiyerarşi oluşturur. İlk seviyede, örneğin bu tür unsurları (kontrast, açı, kenarlık vb. yansıtan) vurgulayabilirler.


    İkinci seviyede bu zaten birinci seviyenin unsurlarından bir unsur olacaktır. Üçüncüsünde - ikinciden. Bu resmin sadece bir gösteri olduğunu anlamalısınız. Artık endüstriyel kullanımda, bu tür ağların 10 ila 30 katmanı (seviyesi) vardır.

    Böyle bir ağ eğitildikten sonra onu sınıflandırma için kullanabiliriz. Girdi olarak bir görüntü verildikten sonra, ilk katmandaki nöron grupları görüntünün üzerinden geçerek, resmin belirli bir öğeye karşılık gelen bir öğesinin bulunduğu yerlerde etkinleşir. Onlar. Bu ağ, resmi parçalara, önce çizgilere, çizgilere, eğim açılarına, sonra daha karmaşık parçalara ayrıştırır ve sonunda bu tür temel unsurların birleşiminden oluşan bir resmin bir yüz olduğu sonucuna varır.

    Evrişimli ağlar hakkında daha fazla bilgi -