Sektör | Google MorphNet: Sinir ağınızı daha küçük ama daha hızlı hale getirin

AI Technology Review Press: Derin sinir ağları (DNN), görüntü sınıflandırma, metin tanıma ve konuşma dönüştürme gibi pratik sorunların çözümünde önemli etkilere sahiptir. Bununla birlikte, belirli bir problem için uygun bir DNN mimarisi tasarlamak hala zor bir iştir. Mimarinin çok büyük bir arama alanı gerektirebileceği düşünüldüğünde, belirli bir uygulama için sıfırdan bir ağ tasarlamak, bilgi işlem kaynakları ve zaman açısından çok pahalı olabilir. Sinir ağı mimarisi araması ve AdaNet gibi yöntemler, mimariyi iyileştirmenin yollarını bulmak için tasarım alanını aramak için makine öğrenimini kullanır. Diğer bir seçenek de mevcut mimariyi benzer sorunlar için kullanmak ve bunu eldeki görev için tek seferde optimize etmektir.

Bu soruna yanıt olarak, Google AI, MorphNet'i tartışan bir blog yazısı yayınladı. MorphNet, yukarıda bahsedilen ikinci yöntemi kullanan karmaşık bir sinir ağı modeli iyileştirme teknolojisidir. MorphNet'in bu makaledeki yorumu şudur: "Derin sinir ağlarının hızlı ve basit kaynak kısıtlamalı yapı öğrenimi". MorphNet, daha küçük, daha hızlı ve yeni sorunlara uyum sağlamak için daha iyi performansa sahip yeni bir sinir ağı oluşturmak için mevcut sinir ağını girdi olarak alır. Daha küçük ve daha doğru bir üretim hizmeti ağı tasarlamak için bu teknolojiyi "Google ölçeği" sorununa uyguladık. Dahası, MorphNet'in TensorFlow uygulamasını topluluğa açtık, böylece onu modelinizin verimliliğini artırmak için kullanabilirsiniz.

Nasıl çalışır

MorphNet, daralma ve genişleme aşamalarında döngü yaparak sinir ağını optimize eder. Kasılma aşamasında, MorphNet verimsiz nöronları tanımlar ve bunları ağdan çıkarmak için seyrek bir düzenleyici kullanır, böylece ağın toplam kayıp işlevi her bir nöronun maliyetini içerir. Bununla birlikte, MorphNet her nöron için aynı maliyeti kullanmaz, ancak hedef kaynağa bağlı olarak nöronun maliyetini hesaplar. Eğitim ilerledikçe, optimize edici, gradyan hesaplanırken kaynak maliyetinin farkında olacak ve böylece hangi nöronların kaynak tasarrufu sağladığını ve hangi nöronların çıkarılabileceğini anlayacaktır.

Örneğin, MorphNet'in örnek olarak tetikleyicileri kullanarak bir sinir ağının hesaplama maliyetini nasıl hesapladığını düşünün. Basit olması için, matris çarpımı ile temsil edilen bir sinir ağı katmanını ele alalım. Bu durumda, katman 2 girişe (xn), 6 ağırlığa (a, b, ..., f) ve 3 çıkışa (yn; nöron) sahiptir. Standart ders kitaplarında satır ve sütun çarpma yöntemini kullanarak, bu katmanı değerlendirmek için 6 çarpma gerektiği hesaplanabilir.

Nöronların hesaplama maliyeti

MorphNet, bunu girdi sayımının ve çıktı sayısının çarpımı olarak hesaplar. Soldaki örnek 0'ın iki ağırlık değerini gösterse de, bu katmanı değerlendirmek için yine de tüm çarpmaları yapmamız gerektiğini unutmayın. Bununla birlikte, ortadaki örnek, nöron yn'deki tüm sıra ağırlıklarının sıfır olduğu yapılandırılmış seyrekliği gösterir. MorphNet, bu katmanın çarpımlarının sayısının 6'dan 4'e düştüğünü fark eder, bu nedenle bu katmanın yeni çıktı sayısı 2'dir. Bu fikri kullanarak MorphNet, ağdaki her bir nöronun artan maliyetini belirleyebilir, böylece y3 nöronunun kaldırıldığı daha etkili bir model (sağda) oluşturabilir.

Genişletme aşamasında, tüm katman boyutlarını eşit olarak genişletmek için genişlik çarpanını kullanırız. Örneğin,% 50 oranında genişlersek, 100 nöronla başlayan ve 10'a küçülen verimsiz bir katman yalnızca 15'e genişlerken, yalnızca 80 nörona küçülen önemli bir katman 120'ye genişleyebilir. Ve çalışmak için daha fazla kaynağa sahip olun. Yani, bilgi işlem kaynaklarının ağın daha az verimli olan kısmından daha verimli kısmına yeniden tahsis edilmesi.

Ölçek küçültme aşamasından sonra, MorphNet durdurulabilir ve daha katı kaynak bütçesini karşılamak için ağı küçültebilirsiniz. Bu, hedef maliyet verildiğinde daha yüksek bir ağ verimliliği ile sonuçlanır, ancak bazen doğrulukta bir düşüşe de neden olur. Ayrıca kullanıcılar, orijinal hedef kaynak maliyetiyle eşleşecek ancak doğruluğu artıracak olan genişletme aşamasını da tamamlayabilir. Bunun tam uygulama sürecini daha sonra bir örnekle tanıtacağız.

MorphNet neden?

MorphNet dört önemli değerli öneri sunar:

Hedefli düzenlileştirme: Diğer seyrek düzenlileştirme yöntemleriyle karşılaştırıldığında, MorphNet tarafından benimsenen düzenlileştirme yöntemi daha amaca yöneliktir. Özellikle, daha iyi seyreklik için MorphNet yönteminin amacı, belirli kaynakları azaltmaktır. Bu, MorphNet tarafından oluşturulan ağ yapısını daha iyi kontrol edebilir Uygulama etki alanına ve ilgili kısıtlamalara göre, MorphNet önemli ölçüde farklı olabilir. Örneğin, aşağıdaki şeklin sol paneli, JFT üzerine eğitilmiş ortak bir ResNet-101 mimarisine sahip bir temel ağı gösterir. Tetikleyicileri (orta görüntü, tetik azaltma% 40) veya model boyutunu (sağ görüntü, ağırlık azaltma% 43) hedeflerken, MorphNet tarafından oluşturulan yapı çok farklıdır. Hesaplama maliyetini optimize ederken, daha düşük katmanlı ağlardaki yüksek çözünürlüklü nöronlar, düşük çözünürlüklü nöronlara göre budamaya daha duyarlıdır. Model boyutu küçük olduğunda, kırpmanın değiş tokuşu tam tersidir.

MorphNet, düzenliliği hedefledi. Dikdörtgenin genişliği, katmandaki kanalların sayısı ile orantılıdır. Alttaki mor çubuk, giriş katmanıdır. Sol: Temel ağ, MorphNet'e giriş olarak kullanılır. Orta resim: Çıkış uygulaması tetikleyici regülatörü. Sağ: Uygulama boyutu ayarlayıcısının çıktısı.

MorphNet, belirli parametreler için optimize edilebilen birkaç çözümden biridir. Bu, belirli uygulama parametrelerini hedeflemesini sağlar. Örneğin, cihaza özel hesaplama süresi ve bellek süresi birleştirilerek gecikme birinci dereceden bir optimizasyon parametresi olarak kullanılabilir.

Topolojik deformasyon: MorphNet her katmandaki nöron sayısını öğrendiğinde, algoritma bir katmandaki tüm nöronların seyrekleşmesi sürecinde özel bir durumla karşılaşabilir. Bir katmanda 0 nöron olduğunda, ağdaki etkilenen dalları keserek ağın topolojisi etkili bir şekilde değiştirilebilir. Örneğin, ResNet mimarisi ile karşılaşıldığında, MorphNet atlama bağlantısını koruyabilir, ancak aşağıdaki soldaki şekilde gösterildiği gibi artık bloğu silebilir. Inception tarzı bir mimari için MorphNet, sağdaki resimde gösterildiği gibi tüm paralel kuleyi silebilir.

Sol: MorphNet, ResNet tarzı ağlarda kalan bağlantıları silebilir. Sağ: Ayrıca Başlangıç tarzı ağdaki paralel kuleleri de silebilir.

Ölçeklenebilirlik: MorphNet bir eğitim oturumunda yeni bir yapı öğrenir Eğitim bütçesi sınırlı olduğunda iyi bir yöntemdir. MorphNet ayrıca pahalı ağlara ve veri setlerine doğrudan uygulanabilir. Örneğin, yukarıdaki karşılaştırmada, MorphNet doğrudan ResNet-101'e uygulandı ve başlangıçta 100 GPU ayı için JFT üzerinde eğitildi.

Taşınabilirlik: MorphNet tarafından üretilen ağlar "taşınabilir" olup, bu anlamda sıfırdan yeniden eğitilmeleri amaçlanmıştır ve ağırlıkların mimari öğrenme süreciyle hiçbir ilgisi yoktur. Kontrol noktalarını çoğaltma veya özel eğitim kurallarına uyma konusunda endişelenmenize gerek yok, ancak yeni ağınızı her zamanki gibi eğitin!

Deforme ağ

Bir gösteri olarak, ImageNet üzerinde nesne yerelleştirme FLOP'ları ile eğitilmiş Inception V2'ye (aşağıya bakın) MorphNet'i uyguladık. Temel yöntem, doğruluğu dengelemek için bir genişlik çarpanı kullanmak ve her bir evrişimin (kırmızı) çıktı sayısını eşit şekilde azaltarak tetiklemektir. MorphNet yönteminin amacı, doğrudan FLOP'ları ve modeli daraltırken daha iyi bir değiş tokuş eğrisi (mavi) üretmektir. Bu durumda, tetikleme maliyeti, aynı doğrulukla taban çizgisine kıyasla% 11 ila% 15 oranında azaltılır.

MorphNet, ImageNet üzerinde Inception V2'ye uygulanır. FLOP düzenleyiciyi (mavi) tek başına kullanmak, taban çizgisine (kırmızı) göre performansı% 11-15 artırabilir. Tam bir döngüde, düzenleyici ve genişlik çarpanı aynı maliyetle ("x1"; mor) iyileştirilmiş doğruluğa sahiptir ve ikinci döngüde ("x2"; camgöbeği) gelişmeye devam eder.

Bu noktada, daha küçük FLOP bütçesini karşılamak için bir MorphNet ağı seçebilirsiniz. Ya da ağı orijinal FLOP maliyetine geri genişleterek bu döngüyü tamamlayabilirsiniz, bu da aynı maliyetle (mor) daha iyi doğruluk sağlar. Deformasyon net daralma / genişleme döngüsünün tekrarlanması, doğrulukta (camgöbeği) başka bir artışa neden olur ve toplam doğruluğu% 1,1 oranında artırır.

sonuç olarak

MorphNet'i Google'ın çeşitli seri üretim görüntü işleme modellerine uyguladık. MorphNet kullanmak, neredeyse kalite kaybı olmaksızın model boyutunu önemli ölçüde azaltabilir. Sizi MorphNet'i denemeye davet ediyoruz. Açık kaynak TensorFlow uygulama yöntemini burada (https://github.com/google-research/morph-net) bulabilir ve ayrıca daha fazla ayrıntı için MorphNet belgesini (https://arxiv.org/pdf/1711.06798.pdf) okuyabilirsiniz. bilgi.

aracılığıyla: https://ai.googleblog.com/

Tıklamak Orijinali okuyun , Google AI blog gönderisine bakın: Video Modellerinde Simülasyon Stratejisi Öğrenimi

İlk nesil toplandı! Shadow Hidden Mystery "Reunion 4" en son siyah beyaz siluet poster
önceki
2017, Tibet ile bahar randevunuz var!
Sonraki
"Anno 1800" Season Pass İçeriği Giriş Botanik dahil üç DLC içerir!
PAKDD 2019'un önemli noktaları nelerdir? Bu makaleyi okumak için yeter!
Dinamik | Resmi pazar lansmanının habercisi mi? Boston Dynamics Robot Köpek `` çıplak elle '' kamyonu çekerken sahneledi
Tibet yolunda şeytanlaştırılmış Bingchacha ve Xinzang rotasından bahsederken
Bandai, "Super Dragon Ball Heroes: World Mission" 'ın ücretsiz bir demo başlatacağını duyurdu
Pikap zorla sollama! Lugu Gölü turist otobüsü nehre düştü ve otobüs çoğunlukla Zigong'dan yaşlı turistler
Çok gerçek "Dedektif Pikachu" sahtekarlığı "Dedektif Pikachu" kısa filmi
Mao Weining'in ilk gençlik romantik draması, eserleri trafiğe göre değerlendirmekle aynı fikirde değil
Rune: Ragnarok erken erişim aşamasını atlayacak ve 2019'da piyasaya sürülecek
Sichuan İl Kütüphanesi'nin yıllık okuma raporu yayınlandı
Notre-Dame de Paris'teki yangının ikinci gecesinde insanlar kilisenin nöbeti için mumlar tuttular.
Reiwa dönemindeki ilk Ultraman "Ultraman Taiga" 6 Temmuz'da yayınlanacak!
To Top