Ian Goodfellow'un son makalesi: Neural Networks Can Debug

Günümüzde sinir ağları, insanların yaşamları üzerinde giderek daha derin bir etkiye sahiptir ve tıbbi teşhis, otomatik ulaşım, şirket karar verme, güç şebekesi kontrolü dahil olmak üzere uygulama alanları daha kapsamlı hale gelmiştir ... Sinir ağları, toplumdaki ve günlük yaşamdaki birçok uygulamayı değiştirme, hayat kurtarma, İnsanlar emekten daha fazla fayda sağlar. Ancak, bu faydalar ortaya çıkmadan önce, sinir ağının bu önemli görevi yerine getirecek kadar güvenilir olduğundan emin olmalıyız.

Bununla birlikte, makine öğrenimi modellerinde hata ayıklamak, özellikle sinir ağları için çok zordur, bu nedenle sinir ağlarının çalışmasındaki olası hataları kontrol etmek her zaman zor bir problem olmuştur. Ancak son zamanlarda, bu alanda yeni bir ilerleme kaydedildi - Google Brain araştırmacıları, otomatik yazılım test teknolojisini sinir ağı testine dahil ettiler ve bu yöntemin nadir girdilerin neden olduğu hataları tespit etmek için çok uygun olduğunu buldular.

Bu amaçla, Google Brain'den Augustus Odena ve Ian Goodfellow, özellikle sinir ağları için bir CGF (coverge-guided fuzzing) yöntemi geliştirdi ve deneyler yoluyla etkinliğini ve güçlü yeteneklerini kanıtladı ve geliştirdi Tensorfuzz adlı bir araç.

Makine öğrenimi modellerini anlamanın ve hata ayıklamanın zor olmasının birçok nedeni vardır. Her şeyden önce, kullanıcıların modelin hangi yönünü anlamak istediğini belirlemek kavramsal olarak zordur; ikincisi, belirli sorulara cevapları saymak ve hesaplamak çok zordur. Bu özellikler aynı zamanda makine öğrenimi alanında son zamanlarda "tekrar üretilebilirlik krizine" yol açmıştır ve insanları rahatsız eden hata ayıklama yoluyla güvenilir sonuçlar elde etmek zordur.

Makine öğrenimi modellerinde sinir ağlarında hata ayıklamak daha zordur. Basit yapılara sahip sinir ağı modellerinin en doğrudan sorunları için bile, hesaplama maliyeti çok büyüktür. Çünkü gerçek sinir ağı modeli ve teorik model çok farklı olabilir.

Kapsam kılavuzlu fuzzing, yazılımdaki ciddi güvenlik açıklarını kontrol etmek için kullanılan bir yazılım test yöntemidir. En yaygın kullanılan iki kapsama kılavuzlu fuzzing yöntemi AFL ve libFuzzer'dır. Test sürecinde, belirsiz bir süreç, belirli koşulları karşılayan bir girdi külliyatını korur. Bazı mutasyon programları bu girdilerde rastgele değişiklikler yapar ve yeni bir "kapak" kullandıklarında, bunlar külliyatta kaydedilir. Ve kapsam nedir? Tüylerin türüne ve ulaşmak istediğiniz hedefe bağlıdır. Ortak bir ölçü, çalıştırılan kod koleksiyonuna dayanır. Yeni girdi, if koşullu ifadesinde öncekinden farklı bir şekilde dallara ayrılırsa, kapsam artar.

Bu yöntem, geleneksel yazılımların test edilmesinde başarılı olmuştur ve onu sinir ağlarına uygulama fikri doğal olarak ortaya çıkacaktır. Geleneksel kapsam matrisi göstergeleri, hangi kodların ve hangi şubelerin kapsandığını izler. En basit haliyle, bir sinir ağı, bir dizi matris işlemi ve öğe işlemidir. Bu işlemlerin alt katmanı da birçok dal içerebilir, ancak bunların tümü matrisin boyutuna ve sinir ağının mimarisine göre belirlenecektir. Yani hangi dalların yürütüldüğü sinir ağının girişine bağlıdır. Farklı girdilerle bile, sinir ağları genellikle aynı kod satırlarını çalıştırır ve aynı dalları benimser, ancak giriş ve çıkış değerlerindeki değişiklikler nedeniyle ilginç davranışlar üretirler. Bu nedenle, mevcut CGF araçlarının bu ilginç davranışları tespit etmesi zordur. Bu çalışmada araştırmacılar, sinir ağının temelde yatan yazılım uygulaması daha fazla dal kullanmasa bile, iki sinir ağının "aktivasyonunda" anlamlı bir fark olup olmadığını belirlemek için hızlı yaklaşık en yakın komşu algoritmasını seçtiler.

Bu, bu alandaki ilk keşif değil. Öncekiler de bazı kapsam ölçüm yöntemleri önermişlerdir, ancak bu yöntemler genellikle hesaplama açısından pahalıdır ve farklı yapılara sahip sinir ağlarına taşınmaları zordur. Bu çalışmada araştırmacılar tarafından önerilen ölçüm yöntemi çok basittir, hesaplama maliyeti düşüktür ve çeşitli yapıların sinir ağlarına kolayca uygulanabilir. Açık kaynak aracı TensorFuzz, herhangi bir TensorFlow grafiğine girdi sağladığı için sinir ağlarında hata ayıklamak için daha uygundur.Temel blok ve kontrol akışı değişikliklerine bakmaz, ancak kapsamı ölçmek için grafiğin aktivasyon oranını hesaplar.

Şekil 1: Tüylemenin ana akışının kabaca bir açıklaması. Solda fuzzing testinin akışı ve veri akışı işaretlenmiştir; sağda ise fuzzing testinin ana akışının algoritma temsili vardır.

Aşağıdakiler, CGF'nin genel sürecidir:

Giriş seçimi: Herhangi bir zamanda, bulanık denetleyici mutasyon için külliyattan girdi seçmelidir. En iyi seçim, belirli sezgisel algoritmalar aracılığıyla arama yaparak sorunun kendisine bağlıdır.

Mutatör: Seçici, külliyatın bir öğesini seçtiğinde, mutatör onu mutasyona uğratacaktır. Görüntü girişi için, araştırmacılar iki farklı tür mutasyon gerçekleştirdiler. İlk yöntem, girişe kullanıcı tarafından yapılandırılabilir varyansla eşleşen beyaz gürültü eklemektir. İkincisi, beyaz gürültü eklemek, ancak mutasyona uğramış öğe ile orijinal öğe arasındaki farkı sınırlamaktır. Metin girişi için, tek tip parazit doğrudan dizeye eklenemez, bu nedenle aşağıdaki işlemler rastgele gerçekleştirilir: rastgele konumlardaki karakterleri silin; rastgele konumlarda rastgele karakterler ekleyin; rastgele konumlarda rastgele karakterleri değiştirin.

Amaç işlevi: Modelin belirli bir durumunu, genellikle yanlış durumu istiyoruz. Amaç işlevi, bu duruma ulaşılıp ulaşılmadığını değerlendirmek için kullanılır. Giriş hesaplama grafiğine girdiğinde, hem kaplama dizisi hem de meta veri verileri çıktı olarak döndürülür. Amaç işlevi, gereksinimleri karşılayan girdileri işaretleyerek meta veri dizisi üzerinde hareket eder.

Kapsam analizörü: Kapsam analizcisi, TensorFlow çalışırken diziyi okumaktan, kapsamı gösteren python nesnelerine dönüştürmek ve bu kapsamların yeni olup olmadığını kontrol etmekten sorumludur.

Araştırmacı bu yöntemi pratik yapmak için uyguladı ve hataları hızlı bir şekilde tespit etmede etkinliğini kanıtladı.

Her şeyden önce, CGF, NaN (Bir sayı değil) gibi eğitimli sinir ağındaki sayısal hataları verimli bir şekilde kontrol edebilir. Bu tür bir hata yalnızca girdinin küçük bir kısmı tarafından oluşturulabilir, bu nedenle hata ayıklamak zordur. Uygulamada, böyle bir durum oluştuğunda, sistem çok tehlikeli davranışlar üretebilir.

Şekil 2: Araştırmacı bir MNIST el yazısıyla yazılmış veri seti sınıflandırıcısı eğitti ve eğitim sürecinde bazı güvenli olmayan sayısal işlemler gerçekleştirdi. Daha sonra araştırmacı, fuzzer üzerinde 10 kez çalıştırdı ve her seferinde sınırı karşılamayan bir veri öğesi buldu, ancak rastgele arama bulamadı. Sol: 10 kez çalıştırıldığında bulanık külliyatın boyutu; sağda: Gereksinimleri karşılamak için fuzzer tarafından bulunan görüntüler.

Niceleme, sinir ağının parametrelerinin saklandığı ve birkaç bitin sayısal değerinin hesaplama için bilgisayarın depolama biriminde temsil edildiği süreçtir. Bu, hesaplama maliyetini düşürmenin yaygın bir yoludur ve genellikle akıllı telefon istemcilerinde makine öğrenimi modellerinin çalıştırılmasına uygulanır. Ancak bu yöntem hesaplama doğruluğunu bir ölçüde kaybedecektir. Bu kaybın neden olduğu hataları mevcut verilerde bulmak zor olsa da, CGF birçok hatayı hızla bulabilir.

Şekil 3: Araştırmacılar, MNIST sınıflandırıcısını eğitmek için 32 bit kayan noktalı sayılar kullanır ve ardından ilgili TensorFlow grafiklerini 16 bitlik kayan noktalı sayılara dönüştürür. Hem orijinal model hem de yakalanan model, MNIST test setindeki 10.000 öğe üzerinde aynı tahminleri yaptı. Ancak fuzzer aralarındaki farkı bulabilir. Sol: 10 kez çalıştırıldığında bulanık korpusun boyutu, sağa uzanan çizgi başarısız fuzzer çalışmasına karşılık gelir; sağ: 32 bit ve 16 bit sinir ağları tarafından farklı kategorilere sınıflandırılan fuzzer tarafından bulunan görüntü.

Ek olarak, CGF ayrıca karakter düzeyinde dil modellerindeki kötü davranışları etkili bir şekilde tespit edebilir. Araştırmacılar, daha fazla araştırmacı ve geliştiricinin bu yöntemi gerçek çalışmalarında uygulamasına yardımcı olmayı umarak TensorFuzz adlı bir yazılım kitaplığını açık kaynaklı hale getirdiler.

QF2: Bulutta yüksek performanslı dosya depolama
önceki
Wang Ying'in oğlu, annesi adına övgüyü kabul etti.
Sonraki
Altı açık kaynak yönlendiricinin karşılaştırması
"Doğa" Alt Dergisi: Bilim adamları, kalbin elektriksel aktivitesini belirleyen 50 anahtar gen lokusu keşfettiler
Wuhan'daki ilk hidroelektrik şirketi adını, orijinal olarak "Değişiklikler Kitabı" ndan kaynaklanan "jiji" kelimesinden almıştır.
Python veri bilimi dağıtımı için kısa bir kılavuz Anaconda
Sıcak dalgası krizi: Kuzey Çin Ovası bu yüzyılın sonunda artık yaşanabilir olmayabilirMIT'den son araştırma
"Gelgit Teknoloji Ödüllü Sorular ve Cevaplar" kazananlar listesinin 10. sayısı - Yunding Technology
UEFA Avrupa Ligi - kılıcın çift atışı ve Atletico Madrid'in takım tarihinde üçüncü kez Marsilya'yı 3-0 yenmesi
Yangtze Nehri Kurtarma Gönüllü Ekibi, yeni yılın başında güvenlik bilgisi eğitimi gerçekleştirdi.
CES ASIA Hisense, Küresel Marka Geliştirme Planının Derinlerine İniyor ve Yeni ULED ve Lazer Ürünlerini Piyasaya Sürüyor
Nobel Matematik Alanlarında Madalya Ödülü dün gece açıklandı, İranlı matematikçi Caucher Birkar kazandı
13 yaşındaki Zhang Shiqing: Uluslararası gönüllü çalışma yapmak için yazın Bali'ye gidiyor
Tebrikler! Xiaofa'nın 7 yaşındaki ağabeyi ve kız kardeşi, olumlu bir sonuç almayı ve 43 yaşındaki güzel ve olgun bir kadınla evlenmeyi seviyor: hayalinin sevgilisi (fotoğraf)
To Top