`` Derinlik '', derin sinir ağlarının arkasındaki matematiksel ilkeleri analiz eder

Xinzhiyuan önerilir

Derin ağların arkasındaki matematiği analiz edin

Günümüzde Keras, TensorFlow, PyTorch gibi birçok üst düzey özel kitaplık ve çerçeve var, bu nedenle kullanılan etkinleştirme işlevini türetirken matrisin ağırlığı veya depolama ve hesaplama ölçeği hakkında çok fazla endişelenmemize gerek yok. Yukarı. Bu çerçevelere dayanarak, bir sinir ağı, hatta çok karmaşık bir yapıya sahip bir ağ kurduğumuzda, yalnızca küçük bir miktar girdi ve kod yeterlidir, bu da verimliliği büyük ölçüde artırır. Her durumda, sinir ağlarının arkasındaki ilkeler ve yöntemler, mimari seçimi, hiperparametre ayarı veya optimizasyon gibi görevler için çok faydalıdır.

Şekil 1 Eğitim setinin görselleştirilmesi

Örneğin, bir ikili sınıflandırma problemini çözmek için yukarıdaki şekilde gösterilen eğitim seti verilerini kullanacağız. Yukarıdaki şekilden de görülebileceği gibi, veri noktaları iki çember oluşturuyor ki bu birçok geleneksel makine öğrenme algoritması için kolay değil, ancak şimdi küçük bir sinir ağı bu sorunu iyi çözebilir. Bu sorunu çözmek için bir sinir ağı oluşturacağız: beş tam bağlantılı katman dahil, her katman farklı sayıda birim içerir, yapı aşağıdaki gibidir:

Şekil 2 Sinir ağı mimarisi

Bunların arasında, gizli katman, aktivasyon işlevi olarak ReLU'yu kullanır ve çıktı katmanı Sigmoid'i kullanır. Bu çok basit bir mimari ama sorunu çözmek ve anlatmak yeterli.

KERAS ile çözün

Öncelikle, en popüler makine öğrenimi kitaplıklarından biri olan KERAS'ı kullanarak herkese bir çözüm sunmama izin verin.

keras.models'den Sıralı içe aktarma

keras.layers'dan Yoğun ithal

model = Sıralı

model.add (Yoğun (4, input_dim = 2, aktivasyon = 'relu'))

model.add (Yoğun (6, aktivasyon = 'relu'))

model.add (Yoğun (6, aktivasyon = 'relu'))

model.add (Yoğun (4, aktivasyon = 'relu'))

model.add (Yoğun (1, etkinleştirme = 'sigmoid'))

model.compile (kayıp = 'binary_crossentropy', optimize edici = 'adam', metrics =)

model.fit (X_train, y_train, epochs = 50, ayrıntılı = 0)

Girişte bahsettiğim gibi, bir model oluşturmak ve eğitmek için az miktarda girdi verisi ve kod yeterlidir ve test setindeki sınıflandırma doğruluğu neredeyse% 100'dür. Özetle, görevimiz aslında seçilen mimari ile tutarlı hiperparametreler (katman sayısı, her katmandaki nöron sayısı, aktivasyon işlevi veya yineleme sayısı) sağlamaktır. Eğitim sürecinde aldığım harika bir görselleştirme sonucunu size göstereyim:

Şekil 3 Eğitim sırasında doğru sınıflandırılmış bölgelerin görselleştirilmesi

Şimdi bunun arkasındaki prensibi analiz edelim.

Sinir ağı nedir?

Anahtar soruyla başlayalım: Sinir ağı nedir? Verilerdeki bağlantıları öğrenebilen ve bağımsız olarak yorumlayabilen bilgisayar programları oluşturmak için biyolojik olarak esinlenmiş bir yöntemdir. Yukarıdaki Şekil 2'de gösterildiği gibi, ağ her katmandaki nöronların bir koleksiyonudur, bu nöronlar sütunlar halinde düzenlenmiştir ve iletişim için birbirine bağlanmıştır.

Tek nöron

Her nöron, girdi olarak bir dizi x değişkeninin değerini (1'den n'ye) alır ve tahmin edilen y-hat değerini hesaplar. Eğitim setinde m numune olduğunu varsayarsak, x vektörü numunelerden birinin her bir özelliğinin değerini temsil eder. Ek olarak, her birimin, sırasıyla w ve b ile temsil edilen ağırlık vektörü ve sapma dahil olmak üzere öğrenilmesi gereken kendi parametre seti vardır. Her yinelemede nöron, x vektörünün ağırlıklı ortalamasını, geçerli turun ağırlık vektörü artı sapmaya dayalı olarak hesaplar. Son olarak, hesaplama sonucu doğrusal olmayan bir aktivasyon fonksiyonu g ile ikame edilir. Aşağıda en popüler aktivasyon işlevlerinden bazılarını tanıtacağım.

Şekil 4 Tek nöron

Tek katman

Şimdi sinir ağındaki genel katmanın nasıl hesaplandığına bakıyoruz. Hesaplamaları her bir birimde birleştireceğiz, vektörleştirme yapacağız ve sonra bunu bir matris biçiminde yazacağız. Sembolleri birleştirmek için, matris denklemini yazmak için l'inci katmanı seçiyoruz ve alt simge i, i'inci nöronu temsil ediyor.

Şekil 5 Tek katmanlı sinir ağı

Not: Tek bir birim için denklem yazdığımızda, sırasıyla özellik sütun vektörünü ve tahmin edilen değeri temsil eden x ve y-hat kullanılır. Ancak tüm katmana yazdığımızda, ilgili katmanın aktivasyon değerini temsil etmek için a vektörünü kullanmamız gerekir. Bu nedenle, x vektörü, 0. giriş katmanının aktivasyon değeri olarak kabul edilebilir. Her katmandaki her nöron benzer şekilde aşağıdaki denklemi karşılar:

Netlik sağlamak için, işte ikinci düzey için tüm ifadeler:

Her katmanın ifadelerinin benzer olduğu görülebilir. Döngüler için kullanmak çok verimsizdir, bu nedenle hesaplamayı hızlandırmak için vektörleştirmeyi kullanıyoruz. İlk olarak, ağırlık vektörü w'nin transpozisyonunu bir matris W'ye istifleyin. Benzer şekilde, her bir nöronun sapmaları bir sütun vektörü b oluşturmak için bir araya yığılır. Bundan, belirli bir katmandaki tüm nöronların hesaplamasını temsil eden bir matris denklemini kolayca yazabiliriz. Kullanılan matris ve vektör boyutları aşağıdaki şekilde ifade edilir:

Çok örnekli vektörleştirme

Şimdiye kadar yazdığımız denklem sadece bir örnek içermektedir. Ancak sinir ağlarının öğrenme sürecinde, genellikle milyonlarca girdiye kadar büyük bir veri kümesi işlenir. Bu nedenle, bir sonraki adım çok örnekli vektörleştirmeyi gerektirir. Veri setinin m giriş içerdiğini ve her girişin nx özelliklerine sahip olduğunu varsayıyoruz. İlk olarak, her katmanın sütun vektörlerini x, a, z sırasıyla X, A, Z matrislerine istifleyin. Ardından, yeni matrise dayalı olarak önceki denklemi yeniden yazın.

Aktivasyon işlevi nedir? Neden buna ihtiyacımız var?

Aktivasyon işlevi, sinir ağlarının temel unsurlarından biridir. Onlar olmadan, sinir ağı yalnızca bazı doğrusal işlevlerin bir kombinasyonudur ve yalnızca doğrusal bir işlev olabilir. Modelimizin bir karmaşıklık sınırı vardır ve lojistik regresyonu aşamaz. Bunların arasında, doğrusal olmayan öğe daha iyi uyarlanabilirliği garanti eder ve öğrenme sürecinde bazı karmaşık işlevler sağlayabilir. Aktivasyon işlevi, aynı zamanda seçim sırasında kriterlerden biri olan öğrenme hızı üzerinde de önemli bir etkiye sahiptir. Şekil 6, yaygın olarak kullanılan bazı aktivasyon işlevlerini gösterir. Son yıllarda gizli katmanda en yaygın kullanılan aktivasyon işlevi muhtemelen ReLU'dur. Bununla birlikte, ikili sınıflandırma problemleri yaptığımızda, bazen hala sigmoid kullanıyoruz, özellikle çıktı katmanında, modelin döndürdüğü değerin 0 ile 1 arasında olmasını istiyoruz.

Şekil 6 Ortak aktivasyon fonksiyonu ve türev fonksiyon görüntüsü

Kayıp işlevi

Öğrenme sürecinin ilerleyişi hakkındaki temel bilgi kaynağı, kayıp fonksiyonunun değeridir. Genel olarak, kayıp işlevi "ideal" değerden ne kadar uzakta olduğumuzu gösterebilir. Bu örnekte, kayıp fonksiyonu olarak ikili çaprazentropi kullanıyoruz, ancak belirli sorunların spesifik analizini gerektiren başka kayıp fonksiyonları da var. İki öğeli çapraz entropi işlevi şu şekilde ifade edilir:

Aşağıdaki şekil, eğitim sürecinde değerinin değişimini göstermektedir. Yineleme sayısı ile değerinin nasıl arttığı ve azaldığı ve doğruluğun nasıl geliştiği görülebilir.

Şekil 7 Eğitim sırasında doğruluk ve kayıptaki değişiklikler

Sinir ağları nasıl öğrenir?

Öğrenme süreci, kayıp fonksiyonunu en aza indirmek için aslında W ve b parametrelerinin değerlerini sürekli olarak güncelliyor. Bu amaçla, fonksiyonun minimumunu bulmak için kalkülüs ve gradyan iniş yöntemlerini kullanırız. Her yinelemede, sinir ağındaki her parametre için kayıp fonksiyonunun kısmi türev değerini hesaplayacağız. Bu alandaki hesaplamalara aşina olmayanlar için, türevin bir fonksiyonun (eğimini) tanımlayabileceğini kısaca açıklamama izin verin. Yinelemeli değişkenlerin nasıl değişeceğini zaten biliyoruz. Gradyan inişini daha sezgisel bir şekilde anlamak için, ardışık yinelemelerle minimuma nasıl yaklaştığımızı görebileceğimiz görsel bir animasyon gösterdim. . Aynısı sinir ağları için de geçerlidir - her yinelemede hesaplanan gradyan, hareket etmemiz gereken yönü gösterir. Aralarındaki temel fark, sinir ağının daha fazla parametre hesaplaması gerektiğidir. Kesin olarak, böylesine karmaşık bir türev nasıl hesaplanır?

Şekil 8 Dinamik gradyan inişi

Geri yayılım algoritması

Geri yayılım algoritması, çok karmaşık gradyanları hesaplayabilen bir algoritmadır. Sinir ağında, her parametrenin ayar formülü aşağıdaki gibidir:

Bunların arasında hiperparametre a, güncelleme adım uzunluğunu kontrol etmek için kullanılan öğrenme oranını temsil eder. Seçilen öğrenme oranı çok önemli - çok küçük, NN çok yavaş öğreniyor; minimuma ulaşmak için çok büyük. Zincir kuralını kullanarak dW ve db'yi hesaplayın - W ve b'ye göre kayıp fonksiyonunun kısmi türevi. DW ve db'nin boyutları W ve b'nin boyutlarına eşittir. Şekil 9, ileri ve geri yayılmanın kayıp fonksiyonunu birlikte nasıl optimize ettiğini açıkça görebildiğimiz sinir ağındaki bir dizi türev işlemi göstermektedir.

Şekil 9 İleri ve geri yayılma

sonuç olarak

Umarım bu makale sinir ağlarında kullanılan matematiksel ilkeleri anlamanıza yardımcı olur. Sinir ağlarını kullandığımızda, bu sürecin temel ilkelerini anlamakta fayda var. Yazıda anlatılan içerik buzdağının sadece görünen kısmı olsa da, bence hepsi en önemli bilgi noktaları. Bu nedenle, herkesin küçük bir sinir ağını bağımsız olarak programlamaya çalışmasını şiddetle tavsiye ederim, çerçeveye güvenmeyin, sadece Numpy ile deneyin.

Orijinal bağlantı:

https://towardsdatascience.com/https-medium-com-piotr-skalski92-deep-dive-into-deep-networks-math-17660bc376ba

Xinzhiyuan AI WORLD 2018 Geri Sayım yirmi üç gün

Biletler satışta!

Xinzhiyuan, AI WORLD 2018 konferansını 20 Eylül'de Pekin'deki Ulusal Kongre Merkezi'nde gerçekleştirecek ve makine öğrenimi vaftiz babası, CMU profesörü Tom Mitchell, Mikes Tekmark, Zhou Zhihua, Tao Dacheng, Chen Yiran ve diğer AI liderlerini makine zekasına dikkat etmeye davet edecek. Ve insan kaderi.

Konferans resmi web sitesi:

  • Aktivite hattı bileti satın alma bağlantısı:

  • Etkinlik satırı bilet alımı için QR kodu:

Bahar Şenliği sırasında ulusal asayiş iyi bir düzen içindeydi ve 9 polis ve yardımcı polis görev başında öldü.
önceki
"Kamuya Açık Duyuru" etkinliği Fan Wanzhen'in yoldaşlarının ileri düzey eylemlerini hatırlatıyor
Sonraki
"AI, finansmanı en yüksek ücretli endüstriye doğru ezer" 35 veri bilimcisi sırrı ortaya çıkardı: İyi bir PPT yapın!
Audi A8'deki değişiklikleri küçümsemeyin, sonunda Mercedes-Benz ve BMW'yi tedirgin edecek
Hayattan zevk almaktan bahsetmişken, aslında 60 yaşındaki anneme kaybettim ...
Binlerce kelime üç kelimeye yoğunlaşmıştır: Gerçekten güzel kokulu!
X-Trail'in denizaşırı test sürüşü Japonca versiyonu: Yeni CR-V piyasaya sürüldükten sonra, X-Trail dünyadaki bir numarayı koruyacak mı?
Çin Süper Ligi hakemleri sık sık dikkat çekiyor, Ma Ning videoyu izlemeyi reddediyor ve yanlış hükümler, Wang Di'nin tartışmaya neden olacak şekilde küfür ifşa ettiğinden şüpheleniliyor
Sincan'da 30.000 mu kayısı çiçeğinin çarpıcı bir şekilde çiçek açarak ülkeyi şok eden havadan fotoğrafı
uyarı! Çin'in yapay zeka girişimlerinin% 90'ı iki yıl içinde kaybedecek
Mahjong oynarken beklenmedik şekilde kirazları bahis olarak mı kullanıyorsunuz? Yasayı çiğnemeye dikkat edin!
Herhangi bir şekilde bir çukur, araba sigortası nasıl bedavaya alınmaz?
Makine çevirisinde yeni bir atılım! "Evrensel Dikkat" modeli: basit konsept, birkaç parametre, büyük ölçüde artırılmış performans
İdollerin hepsi Qingdao, Shandong'da!
To Top