Kaynak: Kantitatif Yatırım ve Makine Öğrenimi
Yazar: Editör Bölümü West
Bu makalenin uzunluğu 1700 kelime , Okumanız tavsiye edilir 10 dakika
Bu makale, sinir ağı yapı diyagramlarının araçlarına daha kapsamlı ve ayrıntılı bir giriş sağlar.
Biraz içerik veriyoruz
Makalenin sonunda tüm içeriği alın
Lateks
Ağ düğümü grafikleri çizmek için Tikz kitaplığı
Sibernetik veya zeka alanında, sinir ağlarına sıklıkla rastlanır.Ayrıca, ağları incelerken ağ düğümü diyagramlarını çizmek gerekir.Aşağıda, bu tür diyagramları çok uygun bir şekilde çizmek için bir tikz kitaplığı tanıtılmaktadır.
Aşağıdaki örnekte, Yeniden Düzenlenebilir Kapalı Ağ gösterilmektedir:
Kalman Filtre Sistemi Modeli
Sinir Ağı Çizim Paketi
Paketin genel tasarımı çok iyi ve kullanımı da çok uygun.Yazar, paketi iyi bir düzen belgesi yazmak için kullandı.
Doğrusal regresyon bir grafik olarak görselleştirilebilir. Çıktı, girdilerin ağırlıklı toplamıdır:
Lojistik regresyon güçlü bir araçtır, ancak girdi değerlerinin doğrusal bir kombinasyonu üzerinde çalıştığı için (mümkün olan en kısa sürede doğrusal olmayan bir işlevi uygulasa da) yalnızca basit hipotezler oluşturabilir. Sinir ağları, bu tür doğrusal olmayan katmanlardan oluşturulur. daha karmaşık hipotezlerin geliştirilmesine olanak tanıyan karıştırma öğeleri. Bu, daha karmaşık davranışlar üretmek için4 lojistik regresyon ağının istiflenmesiyle elde edilir.Giriş ve çıkış düğümleri arasında ekstra doğrusal olmayan karıştırma aşamalarının dahil edilmesi, ağın karmaşıklığını artırarak buna izin verebilir. daha gelişmiş hipotezler geliştirmek. Bu nispeten basittir:
Birden fazla katmanın varlığı, tüm temel mantık kapılarını inşa etmek için kullanılabilir. Bu da, sinir ağlarında gelişmiş dijital işlem mantığının oluşturulmasına izin verir - ve bu yapı, öğrenme aşamasında otomatik olarak gerçekleşir. Aşağıda bazı örnekler gösterilmektedir; 0/1 ve doğru için pozitif çıktı ve yanlış için pozitif olmayan çıktı:
Bunlardan başka kapılar inşa etmek önemsiz hale gelir.Değerlerin olumsuzlanması, ters çevrilmiş kapılar üretir ve bunlar daha karmaşık kapılar inşa etmek için kullanılabilir. Dolayısıyla, sinir ağları hem dijital hem de dijital olarak kullanılabilen "kendi kendini tasarlayan mikroçipler" olarak anlaşılabilir. analog işlem:
Omnigraffle
OmniGraffle, The Omni Group tarafından üretilmiş bir çizim yazılımıdır.Sadece Mac OS X ve iPad platformlarında çalışabilir.Lateksit ile formül eklemek mümkündür. Diyagramlar, akış şemaları, organizasyon şemaları ve illüstrasyonlar çizmek için kullanılabilir.Ayrıca bilgileri zihinde düzenlemek, beyin fırtınasının sonuçlarını düzenlemek, zihin haritaları çizmek, stil yöneticisi olarak veya web sayfaları veya PDF belgeleri için prototipler tasarlamak için de kullanılabilir. Kağıda yerleştirin ve pdf olarak dışa aktarın, web sayfasına yerleştirin ve svg olarak dışa aktarın. Çok uygun.
Python
draw_convnet
Evrişimli Sinir Ağını (ConvNet) göstermek için Python betiği:
Kodun bir parçası:
DSL
DSL derin sinir ağı, Torch ve Caffe'yi destekler
DNNGraph-Haskell'de derin sinir ağı modeli oluşturma DSL
Birkaç bölümden oluşur:
Modeli belirlemek için bir DSL Bu, zarif, bir araya getirilebilir yapılar için lens kitaplığını ve ağ düzenini belirtmek için fgl grafik kitaplığını kullanır.
Modelin performansını iyileştirmek için grafik gösteriminin üzerinden geçen bir dizi optimizasyon geçişi.Örneğin, birkaç katman türünün (ReLU, Dropout) yerinde çalışabileceği gerçeğinden faydalanabiliriz.
Platform için kod oluşturmak üzere bir dizi arka uç. Şu anda,
Caffe (model prototxt dosyaları oluşturarak)
Meşale (Lua betikleri oluşturarak)
Bir modeli dışa aktarmak, görselleştirmek ve anlamak için bir dizi kullanışlı CLI aracı (ağ yapısının görselleştirilmesi, parametre yoğunluğu)
DSL Örnekleri:
( Bölüm )
Joseph Paul Cohen Doktora
* Montreal Üniversitesi, Montreal Öğrenme Algoritmaları Enstitüsü'nde Doktora Sonrası Araştırmacı
* Harvard Üniversitesi'nde Farlow Fellow'un Arkadaşı
* Ulusal Bilim Vakfı Yüksek Lisans Üyesi
CNN mimarilerini mxnet ile yan yana görselleştirme
Evrişimli Sinir Ağları, hesaplamanın başladığı giriş düğümleri ile hesaplama grafikleri olarak görselleştirilebilir ve sonucun okunabileceği çıkış düğümleri burada mxnet ile sağlanan modeller mx.viz.plot_network yöntemi kullanılarak karşılaştırılır. üst ve giriş düğümü altta.
( Bölüm )
Python + Graphviz
Çok sayıda düğümü olan ağlar için, tekrarlayan komut dosyası kodları yazmak için çok zaman harcamak kaçınılmazdır. Basit bir nokta komut dosyası oluşturma aracı (MakeNN) python ile yazılmıştır ve nn yapı diyagramları oluşturmak için parametreleri kolayca girebilir.
Kodun bir parçası:
Graphviz-dot
Etiketle nokta oynamanın birçok yolu vardır. Yukarıda görülen her düğüm basit bir metin parçasıdır.Ya daha karmaşık bir yapı istiyorsanız? Aşağıda gösterildiği gibi:
İlgili kod aşağıdaki gibidir:
Bu harika değil, etiket aynı zamanda HTML biçimini de destekliyor, böylece hayal edebileceğiniz çoğu düğüm tanımlanabilir:
İlgili kod aşağıdaki gibidir:
Şimdi küme kavramına bakalım. Nokta olarak, küme ile başlayan alt grafik, orijinal görüntü temelinde çalışmaya devam etmek yerine yeni bir düzen olarak ele alınacaktır. gibi:
İlgili kod aşağıdaki gibidir:
Küme yoksa, nihai sonucun nasıl görüneceğini muhtemelen hayal edebiliriz. Bir düğümü doğrudan kümeye işaret edip edemeyeceğinizi merak ediyor olabilirsiniz. Cevap hayır! Bu tür bir talep için kullanabilirsiniz lhead Yapmak için:
Oluşturulan resim aşağıdaki gibidir:
Keras
Keras çerçevesini (arka uç için tensorflow veya theano) kullanarak, evrişimli sinir ağının yapı diyagramını çizebilirsiniz.
keras.layers'dan import Input, Convolution2D, Flatten, Dense, Activation from keras.models import Sequentialf from keras.optimizers import SGD, Adamfrom keras.initializations import normalfrom keras.utils.visualize_util import plot #, 256x256 üzerinde 64 çıktı filtreli 3x3 evrişim uygulayın image: model = Sıralı ()keras.layers'dan Girdi, Convolution2D, MaxPooling2D, Flatten, Dense içe aktarın keras.models'ten içe aktarma Modeli from keras.utils.visualize_util import plotinputs = Input (şekil = (229, 229, 3)) x = Convolution2D (32, 3, 3, subsample = (2, 2), border_mode = 'valid', dim_ordering = 'tf' ) (girişler) x = Düzleştir () (x) kayıp = Yoğun (32, aktivasyon = 'relu', isim = 'kayıp') (x) model = Model (input = inputs, output = loss) model.compile (optimizer = 'rmsprop', loss = 'binary_crossentropy') # pydot_ngplot ile model düzenini görselleştirin (model, to_file = 'model2.png', show_shapes = True)
keras.layers'dan import Input, Convolution2D, Flatten, Dense, Activation from keras.models import Sequentialf from keras.optimizers import SGD, Adamfrom keras.initializations import normalfrom keras.utils.visualize_util import plot
Netscope
Netscope, adres: prototxt formatında açıklanan sinir ağı yapısını destekleyen çevrimiçi bir görsel araçtır:
Caffe yapısında ağ yapısını prototxt formatında görselleştirmek için kullanılabilir. adres:
Tıklamak Düzenleyiciyi Başlat , Sinir ağı yapısını açıklayan prototxt dosyanızı düzenleme kutusuna kopyalayın ve üst karakter enter , Ağ yapısını doğrudan grafik olarak görüntüleyebilirsiniz.
Örneğin, mnist'in LeNet ağ yapısını örnek alarak, Caffe'deki example / mnist / lenet_train_test.prototxt dosyasının içeriğini derleme kutusuna kopyalayın, shift + enter tuşlarına basın, görsel yapı diyagramını hemen elde edebilirsiniz.
Keras
Python / draw_net.py, bu dosya ağ modellerini çizmek için kullanılır. Bu, ağ modelini prototxt'den bir resme değiştirmektir.
Lenet modelini çizme
# sudo python python / draw_net.py örnekleri / mnist / lenet_train_test.prototxt netImage / lenet.png --rankdir = TB
( Bölüm )
Keras