Menü
Bedava
kayıt
ev  /  Kurulum ve konfigürasyon/ Sinir ağlarında görüntü tanıma programları. Yapay sinir ağlarının aparatına dayalı bir görüntü tanıma sisteminin geliştirilmesi

Sinir ağlarında görüntü tanıma programları. Yapay sinir ağlarının aparatına dayalı bir görüntü tanıma sisteminin geliştirilmesi

1

Bir sinir ağı, biyolojik bir organizmadaki nöron ağları olan biyolojik sinir ağlarının aktivitesini modellemeye dayanan, yazılım veya donanım-yazılım uygulaması biçiminde matematiksel bir model ve uygulamasıdır. Bu yapıya olan bilimsel ilgi, modelinin incelenmesinin belirli bir sistem hakkında bilgi edinmesine izin verdiği için ortaya çıktı. Yani, böyle bir model, modern bilim ve teknolojinin bir dizi dalında pratik uygulamaya sahip olabilir. Makale, güvenlik sistemlerinde yaygın olarak kullanılan görüntü tanımlama sistemlerinin yapımında sinir ağlarının kullanımına ilişkin konuları tartışmaktadır. Görüntü tanıma algoritması konusu ve uygulaması ile ilgili konular detaylı olarak incelenmiştir. Sinir ağlarının eğitimi için metodoloji hakkında kısaca bilgi sağlar.

nöral ağlar

sinir ağları ile öğrenme

görüntü tanıma

yerel algı paradigması

güvenlik sistemi

1. Yann LeCun, J.S. Denker, S. Solla, R.E. Howard ve L. D. Jackel: Touretzky'de Optimal Beyin Hasarı, David (Eds), Nöral Bilgi İşleme Sistemlerinde Gelişmeler 2 (NIPS * 89). - 2000 .-- 100 s.

2. Zhigalov K.Yu. CBS'de daha fazla kullanım için lazerle değişen verilerin fotogerçekçi vektörleştirme yöntemi // Izvestiya vysshikh uchebnykh zavod. Jeodezi ve hava fotoğrafçılığı. - 2007. - No. 6. - S. 285–287.

3. Ranzato Marc'Aurelio, Christopher Poultney, Sumit Chopra ve Yann LeCun: Enerji Tabanlı Modelle Seyrek Temsillerin Etkili Öğrenilmesi, J. Platt ve ark. (Eds), Sinirsel Bilgi İşleme Sistemlerinde Gelişmeler (NIPS 2006). - 2010 .-- 400 s.

4. Zhigalov K.Yu. Sistemlerde kullanım için ekipmanların hazırlanması otomatik kontrol yol yapımı // Doğa ve teknik bilimler. - M., 2014. - No. 1 (69). - S. 285–287.

5. Y. LeCun ve Y. Bengio: Görüntüler, Konuşma ve Zaman Serileri için Evrişimsel Ağlar, Arbib'de, M. A. (Eds) // Beyin Teorisi ve Sinir Ağlarının El Kitabı. - 2005 .-- 150 s.

6. Y. LeCun, L. Bottou, G. Orr ve K. Muller: Efficient BackProp, Orr, G. ve K. Muller (Eds) // Sinir Ağları: Ticaretin püf noktaları. - 2008 .-- 200 s.

Günümüzde teknolojik ve araştırma gelişimi tüm yeni ufukları kapsamakta ve hızla ilerlemektedir. Bunlardan biri matematiksel algoritmalar kullanarak çevreleyen doğal dünyayı modellemektir. Bu açıdan, örneğin deniz titreşimlerini modellemek gibi önemsiz şeyler ve örneğin insan beyninin işleyişini modellemek gibi son derece karmaşık, önemsiz olmayan, çok bileşenli görevler vardır. Bu konuyu inceleme sürecinde ayrı bir kavram tanımlandı - bir sinir ağı. Bir sinir ağı, biyolojik bir organizmadaki nöron ağları olan biyolojik sinir ağlarının aktivitesini modellemeye dayanan, yazılım veya donanım-yazılım uygulaması biçiminde matematiksel bir model ve uygulamasıdır. Bu yapıya olan bilimsel ilgi, modelinin incelenmesinin belirli bir sistem hakkında bilgi edinmesine izin verdiği için ortaya çıktı. Yani, böyle bir model, modern bilim ve teknolojinin bir dizi dalında pratik uygulamaya sahip olabilir.

Sinir ağlarının gelişiminin kısa bir tarihi

"Sinir ağı" kavramının başlangıçta Amerikalı matematikçilerin, nörolinguistlerin ve nöropsikologların W. McCulloch ve W. Pitts'in (1943) çalışmalarından kaynaklandığı ve yazarların bundan ilk kez bahsettiği, onu tanımladığı ve ilk girişimi yaptığı yer olduğu belirtilmelidir. Bir model oluşturmak sinir ağı... Zaten 1949'da D. Hebb ilk öğrenme algoritmasını önerdi. Daha sonra sinirsel öğrenme alanında bir dizi çalışma yapıldı ve ilk çalışan prototipler 1990-1991 yıllarında ortaya çıktı. geçen yüzyıl. Bununla birlikte, o zamanın ekipmanının hesaplama gücü, sinir ağlarının yeterince hızlı çalışması için yeterli değildi. 2010 yılına gelindiğinde, GPU video kartlarının gücü büyük ölçüde arttı ve doğrudan video kartları üzerinde programlama kavramı ortaya çıktı, bu da bilgisayarların performansını önemli ölçüde (3-4 kat) artırdı. 2012'de, sinir ağları ilk kez ImageNet şampiyonluğunu kazandı ve bu onların daha da hızlı gelişmesini ve Derin Öğrenme teriminin ortaya çıkmasını işaret etti.

V modern dünya Sinir ağlarının muazzam bir kapsama alanı var, bilim adamları sinir ağlarının davranışsal özelliklerini ve durumlarını inceleme alanında yürütülen araştırmaları son derece umut verici buluyorlar. Sinir ağlarının uygulama bulduğu alanların listesi çok büyük. Bu, görüntülerin tanınmasını ve sınıflandırılmasını ve tahmin etmeyi ve yaklaşım problemlerinin çözümünü ve veri sıkıştırmanın bazı yönlerini, veri analizini ve elbette farklı nitelikteki güvenlik sistemlerinde uygulama içerir.

Sinir ağlarının incelenmesi, günümüzde bilimsel topluluklarda aktif olarak yer almaktadır. Farklı ülkeler... Böyle bir düşünceyle, bir dizi örüntü tanıma yöntemi, diskriminant analizi ve kümeleme yöntemlerinin özel bir durumu olarak sunulmaktadır.

Ayrıca, geçtiğimiz yıl boyunca, son 5 yıldan fazla bir süredir görüntü tanıma sistemleri alanındaki girişimlere fon tahsis edildiğini ve bu da nihai pazarda bu tür bir geliştirme için oldukça yüksek bir talebin olduğunu belirtmek gerekir.

Görüntü tanıma için sinir ağlarının uygulanması

Görüntülere uygulandığında sinir ağları tarafından çözülen standart görevleri göz önünde bulundurun:

● nesnelerin tanımlanması;

● nesnelerin parçalarının tanınması (örneğin, yüzler, kollar, bacaklar vb.);

● nesnelerin sınırlarının anlamsal tanımı (resimde yalnızca nesnelerin sınırlarını bırakmanıza izin verir);

● anlamsal bölümleme (görüntüyü çeşitli ayrı nesnelere bölmenize olanak tanır);

● yüzey normallerinin seçimi (iki boyutlu görüntüleri üç boyutlu görüntülere dönüştürmenize olanak tanır);

● dikkat çeken nesneleri vurgulama (bir kişinin belirli bir görüntüde neye dikkat edeceğini belirlemenize olanak tanır).

Unutulmamalıdır ki görüntü tanıma sorunu çarpıcı bir karaktere sahiptir, bu sorunun çözümü karmaşık ve sıra dışı bir süreçtir. Tanıma gerçekleştirirken, nesne bir insan yüzü, el yazısıyla yazılmış bir rakam ve ayrıca tanımlama sürecini önemli ölçüde karmaşıklaştıran bir dizi benzersiz özellik ile karakterize edilen diğer birçok nesne olabilir.

Bu çalışmada, bir sinir ağının el yazısı sembollerini tanımayı ve yaratmayı öğrenmek için bir algoritma ele alacağız. Görüntü, sinir ağının girdilerinden biri tarafından okunacak ve çıktılardan biri sonucun çıktısını almak için kullanılacaktır.

Bu aşamada sinir ağlarının sınıflandırılması üzerinde kısaca durmak gerekir. Bugün üç ana tip var:

● evrişimli sinir ağları (CNN);

● tekrarlayan ağlar (derin öğrenme);

● pekiştirmeli öğrenme.

Sinir ağı oluşturmanın en yaygın örneklerinden biri klasik sinir ağı topolojisidir. Böyle bir sinir ağı, tamamen bağlı bir grafik olarak temsil edilebilir, karakteristik özelliği, bilginin ileriye doğru yayılması ve bir hata hakkında sinyallemenin geri yayılmasıdır. bu teknolojiözyinelemeli özelliklere sahip değildir. Klasik topolojiye sahip açıklayıcı bir sinir ağı Şekil 2'de gösterilebilir. 1.

Pirinç. 1. En basit topolojiye sahip sinir ağı

Pirinç. 2. 4 katman gizli nöron içeren sinir ağı

Bu ağ topolojisinin açıkça önemli dezavantajlarından biri artıklıktır. Örneğin girdiye iki boyutlu bir matris biçiminde veri sağlarken fazlalık nedeniyle, tek boyutlu bir vektör elde edilebilir. Bu nedenle, 34x34 matris kullanılarak açıklanan el yazısı Latin harfinin görüntüsü için 1156 girdi gereklidir. Bu şunu önerir işlem gücü, bu algoritmanın donanım-yazılım çözümünün uygulanması için harcanan çok büyük olacaktır.

Sorun, Nobel Ödülü sahibi tıp T. Wtesel ve D. Hubel'in çalışmalarını analiz eden Amerikalı bilim adamı Ian Le Koon tarafından çözüldü. Çalışmalarının bir parçası olarak, çalışmanın amacı kedinin beyninin görsel korteksiydi. Sonuçların analizi, korteksin bir dizi basit hücrenin yanı sıra bir dizi karmaşık hücre içerdiğini gösterdi. Basit hücreler, görsel alıcılardan alınan düz çizgilerin görüntüsüne ve karmaşık hücreler - bir yönde translasyon hareketine tepki verdi. Sonuç olarak, evrişimli olarak adlandırılan sinir ağları oluşturma ilkesi geliştirildi. Bu ilkenin fikri, sinir ağının işleyişini, genellikle C - Katmanlar, alt örnekleme katmanları S - Katmanlar ve tamamen bağlı katmanlar F - Katmanlar olarak gösterilen evrişimli katmanların değişimini çıktıda uygulamaktı. sinir ağı kullanılır.

Bu tür bir ağ oluşturmanın kalbinde üç paradigma vardır - yerel algı paradigması, paylaşılan ağırlıklar paradigması ve alt örnekleme paradigması.

Yerel algı paradigmasının özü, görüntü matrisinin tamamının her giriş nöronuna değil, bir kısmına beslenmesidir. Parçaların geri kalanı diğer giriş nöronlarına beslenir. Bu durumda, paralelleştirme mekanizmasını gözlemleyebilirsiniz, bu yöntemi kullanarak görüntünün topolojisini katmandan katmana kaydedebilir, çok boyutlu olarak işleyebilirsiniz, yani işleme sırasında bir dizi sinir ağı kullanılabilir.

Paylaşılan ağırlıklar paradigması, çoklu ilişkiler için küçük bir ağırlık kümesinin kullanılabileceğini öne sürer. Bu kümelere "çekirdek" de denir. Görüntü işlemenin nihai sonucu için, paylaşılan ağırlıkların sinir ağının özellikleri üzerinde olumlu bir etkiye sahip olduğunu söyleyebiliriz, davranışının incelenmesi görüntülerde değişmezleri bulma ve gürültü bileşenlerini işlemeden filtreleme yeteneğini arttırır.

Yukarıdakilere dayanarak, çekirdeğe dayalı görüntü katlama prosedürünü uygularken, unsurları filtreye uygunluk derecesinin ana özelliği olacak olan bir çıktı görüntüsünün görüneceği sonucuna varabiliriz, yani özellik haritası oluşturulacaktır. Bu algoritmaŞekil 'de gösterilmektedir. 3.

Pirinç. 3. Bir özellik haritası oluşturmak için algoritma

Alt örnekleme paradigması, girdi görüntüsünün, matematiksel eşdeğerinin - n boyutlu bir matrisin - uzaysal boyutunu azaltarak azaltılmasıdır. Alt örnekleme ihtiyacı, orijinal görüntünün ölçeğine göre değişmez olarak ifade edilir. Alternatif katmanlar tekniğini uygularken, mevcut olanlardan yeni özellik haritaları oluşturmak mümkün hale gelir, yani pratik bir uygulama Bu methodçok boyutlu bir matrisi bir vektör matrisine ve daha sonra tamamen skaler bir niceliğe dejenere etme yeteneğinin kazanılacağı gerçeğinde yatmaktadır.

Sinir ağı eğitiminin uygulanması

Mevcut ağlar, öğrenme açısından 3 mimari sınıfa ayrılır:

● denetimli öğrenme (algı);

● denetimsiz öğrenme (uyarlanabilir rezonans ağları);

● harmanlanmış öğrenme (radyal tabanlı işlev ağları).

Görüntü tanıma durumunda bir sinir ağının performansını değerlendirmek için en önemli kriterlerden biri görüntü tanıma kalitesidir. Bir sinir ağının işleyişini kullanarak görüntü tanıma kalitesinin nicel bir değerlendirmesi için, en sık olarak, ortalama karekök hata algoritmasının kullanıldığına dikkat edilmelidir:

(1)

Bu bağımlılıkta Ep, bir çift nöron için p-th tanıma hatasıdır,

Dp, sinir ağının beklenen çıktı sonucudur (genellikle ağ, %100 tanıma için çalışmalıdır, ancak pratikte bu olmaz) ve O (Ip, W) 2 yapısı, ağ çıktısının karesidir; pth girişinde ve W ağırlık katsayıları kümesinde. Bu yapı, tüm katmanların hem evrişim çekirdeklerini hem de ağırlık katsayılarını içerir. Hata hesaplaması, tüm nöron çiftleri için aritmetik ortalamanın hesaplanmasından oluşur.

Analiz sonucunda, hata değeri minimum olduğunda ağırlığın nominal değerinin aşağıdaki ilişkiye dayalı olarak hesaplanabileceği bir düzenlilik elde edilmiştir:

(2)

Bu bağımlılıktan, optimal ağırlığı hesaplama probleminin, birinci dereceden hata fonksiyonunun türevinin ağırlığa göre aritmetik farkının ikinci dereceden hata fonksiyonunun türevine bölünmesi olduğunu söyleyebiliriz.

Verilen bağımlılıklar, çıktı katmanındaki hatayı önemsiz bir şekilde hesaplamayı mümkün kılar. Nöronların gizli katmanlarındaki hatanın hesaplanması, hata geri yayılım yöntemi kullanılarak gerçekleştirilebilir. Yöntemin ana fikri, bilgiyi bir hata sinyali şeklinde, çıkış nöronlarından giriş nöronlarına, yani sinyallerin sinir ağı üzerinden yayılmasının tersi yönde yaymaktır.

Ayrıca, ağın eğitiminin çok sayıda sınıfa ayrılmış özel olarak hazırlanmış görüntü veritabanlarında gerçekleştirildiğini ve oldukça uzun zaman aldığını belirtmekte fayda var.
Bugün en büyük veri tabanı ImageNet'tir (www.image_net.org). Onun serbest erişim akademik kurumlar için.

Çözüm

Yukarıdakilerin bir sonucu olarak, işleyiş ilkesine göre uygulanan sinir ağları ve algoritmaların, içişleri organları için bir parmak izi kartını tanıma sistemlerinde kullanılabileceği belirtilmelidir. Çoğu zaman yazılım bileşeni bir tanımlama verisi olan çizim gibi benzersiz bir karmaşık görüntüyü tanımayı amaçlayan bir yazılım ve donanım kompleksi, kendisine verilen görevleri tam olarak çözmez. Bir sinir ağına dayalı algoritmalara dayalı bir program çok daha verimli olacaktır.

Özetlemek gerekirse, aşağıdakileri özetleyebiliriz:

● sinir ağları, hem görüntülerin hem de metinlerin tanınması konusunda uygulama bulabilir;

● bu teori, gelecek vaat eden yeni bir model sınıfının, yani akıllı modellemeye dayalı modellerin yaratılması hakkında konuşmayı mümkün kılar;

● sinir ağları öğrenme yeteneğine sahiptir, bu da sürecin işleyişini optimize etme olasılığını gösterir. Bu yetenek, aşağıdakiler için son derece önemli bir seçenektir. pratik uygulama algoritma;

● Bir sinir ağı çalışması kullanarak örüntü tanıma algoritmasının değerlendirilmesi nicel bir anlama sahip olabilir; buna göre, gerekli ağırlık katsayılarını hesaplayarak parametreleri gerekli değere ayarlamak için mekanizmalar vardır.

Bugün, sinir ağlarının daha fazla araştırılması, insan faaliyetlerinin yanı sıra daha da fazla bilim ve teknoloji dalında başarıyla uygulanacak umut verici bir araştırma alanı gibi görünüyor. Geliştirme odağı modern sistemler tanıma artık jeodezi, tıp, prototipleme ve insan faaliyetinin diğer alanlarında 3D görüntülerin semantik segmentasyonu alanına kayıyor - bunlar oldukça karmaşık algoritmalardır ve bunun nedeni:

● yeterli sayıda referans görüntü veri tabanının olmaması;

● sistemin ilk eğitimi için yeterli sayıda ücretsiz uzmanın olmaması;

● görüntüler piksellerde saklanmaz, bu da hem bilgisayardan hem de geliştiricilerden ek kaynaklar gerektirir.

Ayrıca, bugün, sinir ağları oluşturmak için, sıfırdan bir sinir ağı oluşturma görevini büyük ölçüde kolaylaştıran ve onu uygun bir sinir ağının seçimine indirgeyen çok sayıda standart mimarinin olduğu da belirtilmelidir. Özel görev ağ yapısı.

Şu anda piyasada, sistem için sinir ağı öğrenme teknolojilerini kullanarak görüntü tanıma ile uğraşan oldukça fazla sayıda yenilikçi şirket var. 10.000 görüntüden oluşan bir veri tabanı kullanarak %95 civarında bir görüntü tanıma doğruluğu elde ettikleri kesin olarak bilinmektedir. Bununla birlikte, tüm başarılar, video dizileri ile statik görüntülerle ilgilidir. şu anda her şey çok daha karmaşık.

bibliyografik referans

Markova S.V., Zhigalov K.Yu. GÖRÜNTÜ TANIMA İÇİN BİR SİSTEM OLUŞTURMAK İÇİN SİNİR AĞI UYGULAMASI // Temel araştırma. - 2017. - Sayı 8-1. - S.60-64;
URL: http://fundamental-research.ru/ru/article/view?id=41621 (erişim tarihi: 03.24. "Doğa Bilimleri Akademisi" tarafından yayınlanan dergileri dikkatinize sunuyoruz.

Resmileştirilmesi zor görevleri çözmenin araçlarından biri olarak oldukça fazla şey söylendi. Ve burada, Habré'de, captcha'yı kırma göreviyle ilgili olarak bu ağların görüntü tanıma için nasıl kullanılacağı gösterildi. Bununla birlikte, oldukça az sayıda sinir ağı türü vardır. Ve klasik tam bağlantılı sinir ağı (PNN), görüntü tanıma (sınıflandırma) sorunu için bu kadar iyi mi?

1. Görev

Böylece, görüntü tanıma problemini çözeceğiz. Yüzlerin, nesnelerin, sembollerin vb. tanınması olabilir. El yazısıyla yazılan sayıları tanıma sorununu ele alarak başlamayı öneriyorum. Bu görev birkaç nedenden dolayı iyidir:

    El yazısı bir karakteri tanımak için, resmileştirilmiş (akıllı olmayan) bir algoritma oluşturmak oldukça zordur ve bu netleşir, sadece farklı kişiler tarafından yazılan aynı sayıya bakmanız yeterlidir.

    Görev oldukça alakalı ve OCR (optik karakter tanıma) ile ilgili.

    İndirmek ve denemek için ücretsiz bir el yazısı sembol veritabanı mevcuttur.

    Bu konuda epeyce makale var ve farklı yaklaşımları karşılaştırmak çok kolay ve kullanışlı.

Girdi olarak MNIST veri tabanının kullanılması önerilmektedir. Bu veritabanı 60.000 eğitim çifti (resim - etiket) ve 10.000 test (etiketsiz görüntüler) içerir. Görüntüler boyut olarak normalleştirilir ve ortalanır. Her basamağın boyutu 20x20'den fazla değildir, ancak 28x28 kareye yazılmıştır. MNIST veri tabanının eğitim setinden ilk 12 hanenin bir örneği şekilde gösterilmiştir:

Böylece, görev aşağıdaki gibi formüle edilmiştir: El yazısı karakterleri tanımak, görüntülerini girdi olarak almak ve 10 çıktıdan birini etkinleştirmek için bir sinir ağı oluşturun ve eğitin... Aktivasyon ile çıktıdaki 1 değerini kastediyoruz. Bu durumda diğer çıkışların değerleri (ideal olarak) -1'e eşit olmalıdır. Ölçeğin neden kullanılmadığını daha sonra açıklayacağım.

2. "Normal" sinir ağları.

Çoğu kişi, "sıradan" veya "klasik" sinir ağlarından, bir hatanın geri yayılımı ile tamamen bağlantılı ileri beslemeli sinir ağlarını anlar:

Adından da anlaşılacağı gibi, böyle bir ağda her nöron birbirine bağlıdır, sinyal sadece giriş katmanından çıkışa doğru gider, yineleme yoktur. Böyle bir ağı kısaltılmış biçimde PNS olarak adlandıracağız.

İlk olarak, girdiye nasıl veri göndereceğinize karar vermeniz gerekir. PNS için en basit ve neredeyse tartışmasız çözüm, iki boyutlu görüntü matrisini tek boyutlu bir vektör olarak ifade etmektir. Onlar. 28x28 boyutunda el yazısı bir figürün görüntüsü için, zaten oldukça fazla olan 784 girişimiz olacak. O zaman, pek çok muhafazakar bilim adamının sinir ağı bilimcilerini ve yöntemlerini sevmediği şey olur - mimari seçimi. Ve bundan hoşlanmıyorlar, çünkü mimari seçimi saf şamanizm. Şimdiye kadar, bir sinir ağının yapısını ve kompozisyonunu problemin tanımına dayalı olarak açık bir şekilde belirlemeye izin veren hiçbir yöntem yoktur. Savunmada, resmileştirilmesi zor görevler için böyle bir yöntemin neredeyse hiç oluşturulmayacağını söyleyeceğim. Ek olarak, birçok farklı ağ azaltma tekniği (örn. OBD) ile farklı buluşsal yöntemler ve pratik kurallar vardır. Bu kurallardan biri, gizli katmandaki nöronların sayısının, girdi sayısından en az bir büyüklük sırası olması gerektiğini belirtir. Bir görüntüden sınıf göstergesine dönüşümün kendisinin oldukça karmaşık olduğunu ve esasen doğrusal olmadığını hesaba katarsak, burada bir katman yeterli değildir. Yukarıdakilere dayanarak, gizli katmanlardaki nöronların sayısının yaklaşık olarak şu şekilde olacağını tahmin ediyoruz: 15000 (2. katmanda 10.000 ve üçüncü katmanda 5.000). Ayrıca, iki gizli katmana sahip bir konfigürasyon için, sayı özelleştirilebilir ve eğitilebilir bağlantılar Her biri 0'dan 0'a kadar bir sayıyı ifade eden 10 çıktımız olduğunu varsayarsak, girdiler ile birinci gizli katman arasında 10 milyon + birinci ile ikinci arasında + 50 milyon + ikinci ile hafta sonu arasında 50 bin olacak. 9. Toplam kabaca 60.000.000 bağlantı... Özelleştirilebilir olduklarından bahsetmem boşuna değildi, yani eğitim sırasında her biri için hata gradyanını hesaplamanız gerekecek.

Burada ne yapabilirsiniz, yapay zekanın güzelliği fedakarlık gerektirir. Ancak bunu düşünürseniz, bir görüntüyü doğrusal bir bayt dizisine dönüştürdüğümüzde, geri dönüşü olmayan bir şekilde bir şeyler kaybettiğimiz gelir. Üstelik her katmanda bu kayıp daha da kötüleşiyor. Ve öyle - görüntünün topolojisini kaybederiz, yani. bireysel parçaları arasındaki ilişki. Ek olarak, tanıma görevi, sinir ağının görüntü ölçeğindeki küçük kaymalara, döndürmelere ve değişikliklere, yani. şu veya bu kişinin el yazısına bağlı olmayan bazı değişmezleri verilerden çıkarmalıdır. Öyleyse, bir sinir ağının hesaplama açısından çok karmaşık olmaması ve aynı zamanda çeşitli görüntü bozulmalarına karşı daha değişmez olması için ne olması gerekir?

3. Evrişimli sinir ağları

Bu sorunun çözümü, Nobel ödüllü tıp alanındaki Torsten Nils Wiesel ve David H. Hubel'in çalışmalarından esinlenen Fransız-Amerikalı bilim adamı Ian LeCune tarafından bulundu. Bu bilim adamları, kedinin beyninin görsel korteksini incelediler ve farklı açılarda düz çizgilere özellikle güçlü tepki veren sözde basit hücreler ve çizgilerin bir yönde hareketine tepki veren karmaşık hücreler olduğunu buldular. Yang LeCun, sözde evrişimli sinir ağlarını kullanmayı önerdi.

6. Sonuçlar

Matlabcentral programı, zaten eğitilmiş bir sinir ağının bir dosyasını ve ayrıca çalışmanın sonuçlarını göstermek için bir GUI'yi içerir. Aşağıda tanıma örnekleri verilmiştir:



Bağlantı, MNIST'e dayalı bir tanıma yöntemleri karşılaştırma tablosu içerir. %0,39 tanıma hatası sonucu evrişimli sinir ağlarında birincilik. Bu yanlış tanımlanmış görüntülerin çoğu herkes tarafından doğru şekilde tanınmaz. Ek olarak, ön denetimsiz eğitimin yanı sıra çalışmada girdi görüntülerinin elastik distorsiyonları kullanıldı. Ancak bu yöntemler hakkında başka bir makalede başka bir şey olarak.

Bağlantılar.

  1. Yann LeCun, J.S. Denker, S. Solla, R.E. Howard ve L.D. Jackel: Optimal Brain Damage, in Touretzky, David (Eds), Advances in Neural Information Processing Systems 2 (NIPS * 89), Morgan Kaufman, Denver, CO, 1990
  2. Y. LeCun ve Y. Bengio: Görüntüler, Konuşma ve Zaman Serileri için Evrişimsel Ağlar, Arbib'de, M.A. (Eds), The Handbook of Brain Theory and Neural Networks, MIT Press, 1995
  3. Y. LeCun, L. Bottou, G. Orr ve K. Muller: Efficient BackProp, Orr, G. ve Muller K. (Eds), Neural Networks: Tricks of the trade, Springer, 1998
  4. Ranzato Marc "Aurelio, Christopher Poultney, Sumit Chopra ve Yann LeCun: Enerji Tabanlı Modelle Seyrek Temsillerin Verimli Öğrenilmesi, J. Platt ve diğerleri (Eds), Nöral Bilgi İşleme Sistemlerinde Gelişmeler (NIPS 2006), MIT Press , 2006

Arkadaşlar, geçen sefer başladığımız sinir ağları ve bununla ilgili hikayeye devam ediyoruz.

sinir ağı nedir

En basit durumda, bir sinir ağı, paralel hesaplamalar yapan birkaç eleman katmanından oluşan matematiksel bir modeldir. Başlangıçta, böyle bir mimari, insan beyninin en küçük bilgi işlem öğeleri olan nöronlarla analojiyle yaratıldı. Yapay sinir ağının en küçük hesaplama elemanlarına da nöron denir. Sinir ağları genellikle üç veya daha fazla katmandan oluşur: bir girdi katmanı, bir gizli katman (veya katmanlar) ve bir çıktı katmanı (Şekil 1), bazı durumlarda girdi ve çıktı katmanları dikkate alınmaz ve daha sonra bu katmanların sayısı dikkate alınmaz. ağdaki katmanlar, gizli katmanların sayısıyla sayılır. Bu tür sinir ağlarına algılayıcı denir.

Pirinç. 1. En basit algılayıcı

Bir sinir ağının önemli bir özelliği, örneklerle öğrenme yeteneğidir, buna denetimli öğrenme denir. Sinir ağı, girdi-çıktı çiftlerinden (birbirine karşılık gelen girdi ve çıktı) oluşan çok sayıda örnek üzerinde eğitilir. Nesne tanıma problemlerinde, böyle bir çift giriş görüntüsü ve karşılık gelen etiket olacaktır - nesnenin adı. Bir sinir ağını öğretmek, ağ çıktısının belirli bir "öğretmenin cevabından" - belirli bir görüntüye karşılık gelen bir etiketten - sapmasını azaltan yinelemeli bir süreçtir (Şekil 2). Bu süreç, her birinde sinir ağının "ağırlıklarının" - ağın gizli katmanlarının parametrelerinin - ayarlandığı öğrenme dönemleri (genellikle binlercedir) adı verilen adımlardan oluşur. Eğitim sürecinin tamamlanmasının ardından, sinir ağının kalitesi, eğitildiği görevi yerine getirmek için genellikle yeterince iyidir, ancak tüm görüntüleri mükemmel şekilde tanıyan en uygun parametre setini bulmak çoğu zaman imkansızdır.


Pirinç. 2. Sinir ağını eğitmek

derin sinir ağları nelerdir

Derin veya derin sinir ağları, birkaç gizli katmandan oluşan sinir ağlarıdır (Şekil 3). Bu şekil, derin bir sinir ağının bir görüntüsüdür ve okuyucuya bir sinir ağının nasıl göründüğüne dair genel bir fikir verir. Ancak derin sinir ağlarının gerçek mimarisi çok daha karmaşıktır.


Pirinç. 3. Birçok gizli katmana sahip bir sinir ağı

Evrişimli sinir ağlarının yaratıcıları, elbette, ilk önce görsel sistemin biyolojik yapılarından ilham aldı. Hiyerarşik primat görsel akışı kavramına dayanan ilk hesaplama modelleri, Fukushima Neocognitron olarak bilinir (Şekil 4). Görsel sistemin fizyolojisinin modern anlayışı, en azından hızlı nesne tanıma için, evrişimli ağlardaki bilgi işleme türüne benzer.


Pirinç. 4. Neocognitron modelinde katmanlar arasındaki bağlantıları gösteren diyagram.

Daha sonra, bu kavram Kanadalı araştırmacı Ian LeCune tarafından el yazısı karakterleri tanımak için oluşturduğu evrişimsel sinir ağında uygulandı. Bu sinir ağı iki tür katmandan oluşuyordu: evrişim katmanları ve alt örnekleme katmanları (veya havuz katmanları). İçinde, her katmanın bir topografik yapısı vardır, yani her nöron, orijinal görüntünün sabit bir noktasıyla ve ayrıca bir alıcı alanla (bu nöron tarafından işlenen giriş görüntüsünün bir alanı) ilişkilidir. Her katmandaki her konumda, her biri bir önceki katmanın dikdörtgen dilimindeki nöronlarla ilişkili kendi girdi ağırlıkları kümesine sahip birkaç farklı nöron vardır. Aynı ağırlık kümesine sahip farklı girdi dikdörtgen parçaları, farklı konumlardan nöronlarla ilişkilendirilir.

Desen tanıma için derin bir sinir ağının genel mimarisi Şekil 5'te gösterilmektedir. Giriş görüntüsü, görüntünün bir dizi pikseli veya küçük alanları (örneğin, 5'e 5 piksel) olarak temsil edilir.


Pirinç. 5. Evrişimli sinir ağı diyagramı

Kural olarak, derin sinir ağları basitleştirilmiş bir biçimde tasvir edilir: bazen filtreler olarak adlandırılan işleme aşamaları olarak. Her aşama, alıcı alanın boyutu, ağın belirli bir katmanda tanımayı öğrendiği özelliklerin türü ve her aşamada gerçekleştirilen hesaplama türü gibi bir dizi özellik bakımından birbirinden farklıdır.

Evrişimli ağlar da dahil olmak üzere derin sinir ağlarının uygulama alanları yüz tanıma ile sınırlı değildir. Konuşma ve ses sinyali tanıma, okumaların işlenmesi için yaygın olarak kullanılırlar. farklı şekiller sensörler veya karmaşık çok katmanlı görüntülerin (örneğin uydu haritaları) veya tıbbi görüntüler (X-ışınları, fMRI görüntüleri - bkz.).

Biyometri ve yüz tanımada sinir ağları

Yüksek tanıma doğruluğu elde etmek için, sinir ağı, örneğin MegaFace veritabanında olduğu gibi geniş bir dizi görüntü üzerinde önceden eğitilir.Bu, yüz tanıma için ana eğitim yöntemidir.


Pirinç. 6. MegaFace veritabanı, 690 binden fazla kişinin 1 milyon görüntüsünü içeriyor

Ağ yüzleri tanımak için eğitildikten sonra yüz tanıma süreci aşağıdaki gibi tanımlanabilir (Şekil 7). İlk olarak, görüntü bir yüz dedektörü kullanılarak işlenir: görüntünün bir yüzü olan dikdörtgen bir bölümünü algılayan bir algoritma. Bu parça, sinir ağı tarafından daha kolay işlenebilmesi için normalleştirilmiştir: en iyi sonuç, tüm girdi görüntüleri birleştirilirse elde edilecektir. aynı beden, kromatiklik, vb. Normalleştirilmiş görüntü, algoritma tarafından işlenmek üzere sinir ağının girişine beslenir. Bu algoritma genellikle tanıma kalitesini artırmak için şirketin benzersiz bir gelişimidir, ancak bu sorun için "standart" çözümler de vardır. Sinir ağı, daha sonra veritabanına aktarılan benzersiz bir özellik vektörü oluşturur. Arama sistemi veritabanında depolanan tüm özellik vektörleri ile karşılaştırır ve her birine belirli bir sayı atanmış, belirli sayıda ad veya benzer yüz özelliklerine sahip kullanıcı profilleri şeklinde arama sonucunu verir. Bu sayı, öznitelik vektörümüzün veritabanında bulunanla benzerlik derecesini temsil eder.


Pirinç. 7. Yüz tanıma süreci

Algoritmanın kalitesini belirleme

Kesinlik

Bir nesneye veya yüz tanıma sorununa hangi algoritmayı uygulayacağımızı seçtiğimizde, farklı algoritmaların etkinliğini karşılaştırma olanağına sahip olmamız gerekir. Bu bölümde, bunun yapıldığı araçları anlatacağız.

Yüz tanıma sisteminin kalitesi, biyometri kullanarak kimlik doğrulama için sistemin kullanılmasına ilişkin tipik senaryolara karşılık gelen bir dizi ölçüm kullanılarak değerlendirilir.

Kural olarak, herhangi bir sinir ağının performansı doğruluk açısından ölçülebilir: parametreleri ayarladıktan ve eğitim sürecini tamamladıktan sonra, ağ, bir öğretmenin yanıtını aldığımız, ancak ondan ayrı olan bir test setinde test edilir. eğitim seti. Tipik olarak, bu parametre nicel bir ölçüdür: sistemin yeni nesneleri ne kadar iyi tanıyabildiğini gösteren bir sayı (genellikle yüzde olarak). Diğer bir yaygın ölçü hatadır (yüzde veya sayısal eşdeğer olarak ifade edilebilir). Ancak, biyometri için daha kesin önlemler var.

Genel olarak biyometride ve özel olarak yüz tanıma için biyometride iki tür uygulama vardır: doğrulama ve tanımlama. Doğrulama, bir bireyin görüntüsünü (bir yüz özellikleri vektörü veya başka bir özellik vektörü, örneğin bir retina veya parmak izi) önceden kaydedilmiş bir veya daha fazla şablonla karşılaştırarak belirli bir kimliği doğrulama işlemidir. Kimlik belirleme, bir bireyin kimliğini belirleme sürecidir. Biyometrik örnekler toplanır ve veritabanındaki tüm şablonlarla karşılaştırılır. Veritabanında bir kişinin var olduğu varsayılırsa, kapalı bir dizi özellikte bir kimlik vardır. Bu nedenle, tanıma, doğrulama ve tanımlama terimlerinden birini veya her ikisini birleştirir.

Çoğu zaman, karşılaştırmanın doğrudan sonucuna ek olarak, kararında sistemin "güven" düzeyini değerlendirmek gerekir. Bu değere "benzerlik puanı" (veya benzerlik puanı) denir. Daha yüksek bir benzerlik puanı, karşılaştırılan iki biyometrik örneğin daha benzer olduğunu gösterir.

Sistemin kalitesini değerlendirmek için çeşitli yöntemler vardır (hem doğrulama hem de tanımlama görevi için). Bir dahaki sefere onlar hakkında konuşacağız. Ve bizimle kalın ve yorum bırakmaktan ve soru sormaktan çekinmeyin.

NOTLAR

  1. Fukushima (1980) "Neocognitron: Konumdaki kaymadan etkilenmeyen bir örüntü tanıma mekanizması için kendi kendini organize eden bir sinir ağı modeli," Biological Cybernetics.
  2. LeCun, B. Boser, J.S. Denker, D. Henderson, R.E. Howard, W. Hubbard ve L.D. Jackel (1989) "El Yazısı Posta Kodu Tanıma Uygulamalı Geri Yayılım", Nöral Hesaplama, cilt. 1, s., 541-551.
  3. Jiaxuan You, Xiaocheng Li, Melvin Low, David Lobell, Stefano Ermon Uzaktan Algılama Verilerine Dayalı Ürün Verimi Tahmini için Derin Gauss Süreci.
  4. Ian Goodfellow, Yoshua Bengio, Aaron Courville (2016) Derin Öğrenme. MİT basın.
  5. Poh, C-H. Chan, J. Kittler, Julian Fierrez (UAM) ve Javier Galbally (UAM) (2012) Biyometrik Performansın Değerlendirilmesi İçin Metriklerin Tanımı.

AlexNet, makine öğreniminin, özellikle de bilgisayarla görme algoritmalarının geliştirilmesinde büyük etkisi olan bir evrişimsel sinir ağıdır. Ağ, 2012'de ImageNet LSVRC-2012 görüntü tanıma yarışmasını büyük bir farkla kazandı (ikinci sırada %26.2'ye karşılık %15.3 hata ile).

AlexNet'in mimarisi, Yann LeCum'un LeNet mimarisine benzer. Ancak AlexNet, katman başına daha fazla filtreye ve iç içe konvolüsyonel katmanlara sahiptir. Ağ, evrişimler, maksimum havuzlama, bırakma, veri artırma, ReLU aktivasyonları ve stokastik gradyan inişi içerir.

AlexNet'in Özellikleri

  1. Aktivasyon fonksiyonu olarak, modele doğrusal olmayanlık eklemek için arktanjant yerine Relu kullanılır. Bu nedenle, yöntemin aynı doğruluğu ile hız 6 kat daha hızlı hale gelir.
  2. Düzenlileştirme yerine bir bırakma kullanmak, fazla takma sorununu çözer. Bununla birlikte, eğitim süresi 0,5'lik bir bırakma oranı ile iki katına çıkar.
  3. Ağın boyutunu azaltmak için örtüşen birleşimler gerçekleştirilir. Bu nedenle, birinci ve beşinci seviyelerin hata seviyeleri sırasıyla %0,4 ve %0,3'e düşürülmüştür.

ImageNet veri kümesi

ImageNet, 15 milyon etiketli resimden oluşan bir koleksiyondur. yüksek çözünürlük 22.000 kategoriye ayrılmıştır. Görüntüler çevrimiçi olarak toplandı ve Amazon'un Mechanical Turk kitle kaynak kullanımı kullanılarak manuel olarak etiketlendi. 2010'dan beri, Pascal Görsel Nesne Yarışmasının bir parçası olarak yıllık ImageNet Büyük Ölçekli Görsel Tanıma Yarışması (ILSVRC) düzenlenmektedir. Meydan okuma, 1000 kategorinin her birinde 1000 görüntü içeren ImageNet veri kümesinin bir bölümünü kullanır. Eğitim için toplam 1,2 milyon görüntü, doğrulama için 50.000 görüntü ve test için 150.000 görüntü elde edilmektedir. ImageNet, farklı çözünürlüklere sahip görüntülerden oluşur. Bu nedenle, yarışma için, 256 × 256 sabit çözünürlüğe ölçeklendirilirler. Orijinal görüntü dikdörtgen ise, görüntünün ortasındaki bir kareye kırpılır.

Mimari

Resim 1

Ağ mimarisi Şekil 1'de gösterilmiştir. AlexNet sekiz ağırlıklı katman içerir. Bunlardan ilk beşi evrişimlidir ve diğer üçü tamamen bağlantılıdır. Çıktı, 1000 sınıf etiketinin bir dağıtımını oluşturan bir softmax kayıp işlevinden geçirilir. Ağ, beklenti dağılımı üzerinde doğru etiketleme olasılığının logaritmasının tüm eğitim durumları üzerinden ortalamayı maksimuma çıkarmaya eşdeğer olan çok doğrusal lojistik regresyonu maksimize eder. İkinci, dördüncü ve beşinci evrişim katmanlarının çekirdekleri, yalnızca önceki katmandaki aynı GPU üzerinde bulunan çekirdek haritalarıyla ilişkilendirilir. Üçüncü evrişim katmanının çekirdekleri, ikinci katmanın tüm çekirdek haritaları ile ilişkilidir. Tam bağlantılı katmanlardaki nöronlar, önceki katmandaki tüm nöronlara bağlanır.

Böylece, AlexNet 5 evrişimsel katman ve 3 tam bağlantılı katman içerir. Relu, her evrişimli ve tam bağlantılı katmandan sonra uygulanır. Bırakma, birinci ve ikinci tamamen bağlı katmanlardan önce uygulanır. Ağ 62,3 milyon parametre içerir ve ileri geçişte 1,1 milyar hesaplama gerektirir. Tüm parametrelerin %6'sını oluşturan evrişimsel katmanlar, hesaplamaların %95'ini yapar.

Eğitim

AlexNet 90 dönemden geçer. Eğitim iki kişi için aynı anda 6 gün sürer GPU'lar Nvidia Geforce Ağın ikiye bölünmesinin nedeni olan GTX 580. Stokastik gradyan inişi, 0,01 öğrenme oranı, 0,9 darbe ve 0,0005 ağırlık düşüşü ile kullanılır. Öğrenme oranı, kesinlik doygunluğundan sonra 10'a bölünebilir ve eğitim boyunca 3 kat azalır. Ağırlık katsayısı güncelleme şeması wşuna benziyor:

nerede ben- yineleme numarası, v Dürtü değişkeni ve epsilon- öğrenme oranı. Tüm eğitim aşaması boyunca, öğrenme oranı tüm katmanlar için eşit olarak seçilmiş ve manuel olarak ayarlanmıştır. Sonraki bir buluşsal yöntem, doğrulama hatalarının sayısı azalmayı bıraktığında öğrenme oranını 10'a bölmekti.

Kullanım ve uygulama örnekleri

Sonuçlar, büyük, derin bir evrişimli sinir ağının, yalnızca denetimli öğrenmeyi kullanarak çok karmaşık veri kümeleri üzerinde kayıt sonuçları elde edebildiğini göstermektedir. AlexNet'in yayınlanmasından bir yıl sonra, tüm ImageNet yarışmacıları sınıflandırma problemini çözmek için evrişimli sinir ağlarını kullanmaya başladılar. AlexNet, evrişimli sinir ağlarının ilk uygulamasıydı ve yeni bir araştırma çağını başlattı. Artık derin öğrenme kitaplıklarını kullanarak AlexNet'i uygulamak daha kolay hale geldi: PyTorch, TensorFlow, Keras.

Sonuç

Ağ, şu düzey 1 ve 5 hata oranlarına ulaşır: sırasıyla %37.5 ve %17.0. ILSVRC-2010 yarışmasında elde edilen en iyi performans, farklı öznitelik vektörleri üzerinde eğitilmiş altı seyrek kodlama modelinden tahminlerin ortalamasını alan bir yaklaşım kullanılarak %47,1 ve %28,2 olmuştur. O zamandan beri, sonuçlar elde edildi: Fisher vektörleri üzerinde eğitilmiş iki sınıflandırıcının tahminlerinin ortalamasını alan bir yaklaşım kullanılarak %45.7 ve %25.7. ILSVRC-2010 sonuçları Tablo 1'de gösterilmektedir.


Solda: sekiz ILSVRC-2010 test görüntüsü ve modelin büyük olasılıkla düşündüğü beş etiket. Her görüntünün altına doğru etiket yazılır ve ilk beşte ise olasılık kırmızı bir çubukla gösterilir. Sağda: ilk sütunda beş ILSVRC-2010 test görüntüsü. Kalan sütunlar altı eğitim görüntüsünü gösterir.