Derin öğrenme nedir ve neden herkes bundan bahsediyor? Otomatik Kelime İşleme için Derin Öğrenme

  • 26.07.2019

Ve kısmen, bu kılavuz makine öğrenimi ile ilgilenen ancak nereden başlayacağını bilmeyen herkes için hazırlanmıştır. Makalelerin içeriği geniş bir kitleye yöneliktir ve oldukça yüzeysel olacaktır. Ama kimsenin umurunda mı? Makine öğrenimiyle ne kadar çok insan ilgilenirse o kadar iyi.

Derin öğrenme kullanarak nesne tanıma

Bu ünlü xkcd çizgi romanını zaten görmüş olabilirsiniz. İşin şakası şu ki, 3 yaşındaki herhangi bir çocuk bir kuşun fotoğrafını tanıyabilir, ancak bunu yapmak için bilgisayarı 50 yıldan fazla bir süredir en iyi bilgisayar bilimcileri aldı.Son birkaç yılda, sonunda iyi bir tane bulduk. kullanarak nesne tanıma yaklaşımı derin evrişimli sinir ağları... Bu kulağa William Gibson'ın bir fantastik romanından uydurulmuş sözler gibi geliyor, ama onları tek tek ayırdığımızda netlik kazanacak. Öyleyse yapalım - kuşları tanıyan bir program yazalım!

basit başlayalım

Kuş görüntülerini nasıl tanıyacağımızı öğrenmeden önce, çok daha basit bir şeyi nasıl tanıyacağımızı öğrenelim - el yazısı "8" rakamını.

Günümüzde yapay sinir ağları hakkında hem büyük veri ve makine öğrenimi bağlamında hem de bunun dışında çok fazla konuşma ve yazı var. Bu yazıda, bu kavramın anlamını hatırlayacağız, uygulamasının kapsamını bir kez daha özetleyeceğiz ve ayrıca sinir ağları ile ilgili önemli bir yaklaşımdan bahsedeceğiz - derin öğrenme, kavramını ve ayrıca belirli avantajlar ve dezavantajlar. durumlarda kullanın.

Sinir ağı nedir?

Bildiğiniz gibi, sinir ağı (NN) kavramı biyolojiden geldi ve insan beyninin yapısının biraz basitleştirilmiş bir modelidir. Ancak, doğal-bilimsel ormana girmeyelim - en kolay yol, bir nöronu (yapay olanı dahil) birçok girişi ve bir çıkışı olan bir tür kara kutu olarak hayal etmektir.

Matematiksel olarak, yapay bir nöron, aktivasyon fonksiyonu adı verilen bir fonksiyonu kullanarak, X girdi sinyallerinin (etkilerinin) bir vektörünü, Y çıktı sinyallerinin bir vektörüne dönüştürür. Bağlantı çerçevesinde (yapay sinir ağı - YSA), üç tip nöron çalışır: giriş (dış dünyadan bilgi alma - bizi ilgilendiren değişkenlerin değerleri), çıkış (istenen değişkenleri döndürme - için örneğin, tahminler veya kontrol sinyalleri) ve ayrıca bazı dahili ("gizli") işlevleri gerçekleştiren ara nöronlar. Bu nedenle klasik YSA, üç veya daha fazla nöron katmanından oluşur ve ikinci ve sonraki katmanlarda ("gizli" ve çıktı), öğelerin her biri bir önceki katmanın tüm öğelerine bağlanır.

YSA'nın yapı tipini belirleyen geri besleme kavramını hatırlamak önemlidir: doğrudan sinyal iletimi (sinyaller sırayla giriş katmanından gizli katmana geçer ve çıkış katmanına girer) ve ağ içerdiğinde tekrarlayan yapı. daha uzaktaki nöronlardan daha yakın nöronlara giden bağlantılar). Tüm bu kavramlar, bir sonraki YSA anlama düzeyine geçmek için gerekli minimum bilgiyi oluşturur - bir sinir ağını eğitmek, yöntemlerini sınıflandırmak ve her birinin çalışma ilkelerini anlamak.

sinir ağı eğitimi

Bu kategorilerin genellikle ne için kullanıldığını unutmamak gerekir - aksi takdirde soyut matematikte çıkmaza girme riski vardır. Aslında, yapay sinir ağları, başlıcaları örüntü tanıma, karar verme, veri yaklaşımı ve sıkıştırma sorunlarının yanı sıra küme analizinin en ilginç sorunları olan belirli pratik sorunları çözmek için bir yöntem sınıfı olarak anlaşılmaktadır. ve bizim için tahmin.

Diğer uca gitmeden ve her özel durumda YSA yöntemlerinin ayrıntılarına girmeden, her koşulda bir sinir ağının (bir öğretmenle veya "bağımsız olarak") öğrenme yeteneği olduğunu kendimize hatırlatalım. pratik sorunları çözmek için kullanmanın anahtarı ...

Genel olarak YSA eğitimi şu şekildedir:

  1. girdi nöronları, dış ortamdan değişkenler ("uyaranlar") alır;
  2. alınan bilgilere göre, sinir ağının serbest parametreleri değişir (ara nöron katmanları çalışır);
  3. NN'nin yapısındaki değişikliklerin bir sonucu olarak, ağ bilgiye farklı bir şekilde "tepki verir".

Bu, bir sinir ağını öğrenmek için genel algoritmadır (Pavlov'un köpeğini hatırlayın - evet, şartlı bir refleksin oluşumu için iç mekanizma tam olarak budur - ve sonra unutun: yine de, bağlamımız teknik kavramlar ve örneklerle çalışmayı gerektirir).

Evrensel bir öğrenme algoritmasının olmadığı ve büyük olasılıkla var olamayacağı açıktır; Kavramsal olarak, öğretim yaklaşımları denetimli öğrenme ve denetimsiz öğrenme olarak ikiye ayrılır. İlk algoritma, her girdi ("öğrenme") vektörü için çıktı ("hedef") vektörünün gerekli bir değerinin olduğunu varsayar - bu nedenle, bu iki değer bir eğitim çifti oluşturur ve bu tür çiftlerin tüm koleksiyonu - bir Eğitim Seti. Denetimsiz öğrenme durumunda, eğitim seti yalnızca girdi vektörlerinden oluşur ve bu durum gerçek yaşam açısından daha makuldür.

Derin öğrenme

Derin öğrenme (derin öğrenme) kavramı, başka bir sınıflandırmaya atıfta bulunur ve çok seviyeli sinir ağlarını içeren sözde derin yapıların eğitimine yönelik bir yaklaşımı ifade eder. Görüntü tanıma alanından basit bir örnek: Gittikçe daha fazla soyut özelliği diğer soyut özellikler açısından ayırt etmeyi, yani tüm yüzün, gözlerin ve ağzın ifadesi ile tüm yüzün ifadesi arasındaki ilişkiyi belirlemek için bir makineye öğretmek gerekir. , nihayetinde, renkli piksellerin matematiksel olarak birikmesi. Böylece, derin bir sinir ağında, her özellik seviyesi kendi katmanından sorumludur; Böyle bir "dev" eğitiminin, araştırmacıların uygun deneyimini ve donanım seviyesini gerektirdiği açıktır. Sinir ağlarında derin öğrenme lehine koşullar ancak 2006 yılına kadar gelişti - ve sekiz yıl sonra bu yaklaşımın makine öğreniminde yaptığı devrimden bahsedebiliriz.

O yüzden öncelikle yazımız bağlamında şunu belirtmekte fayda var: Derin öğrenme çoğu durumda insanlar tarafından kontrol edilmiyor. Yani, bu yaklaşım, bir öğretmen olmadan bir sinir ağının eğitimini içerir. "Derin" yaklaşımın ana avantajı budur: denetimli öğrenme, özellikle derin yapılar söz konusu olduğunda, çok büyük zaman ve işçilik maliyetleri gerektirir. Derin öğrenme ise insanın soyut düşüncesini kullanmaktan ziyade modelleyen (ya da en azından ona yaklaşma girişimidir) bir yaklaşımdır.

Fikir, her zamanki gibi mükemmel, ancak yaklaşımın yolunda oldukça doğal sorunlar ortaya çıkıyor - her şeyden önce, evrensellik iddiasında kök salıyor. Aslında, örüntü tanıma alanında derin öğrenme yaklaşımları somut bir başarı elde ettiyse, o zaman aynı doğal dil işlemesiyle, hala cevaplardan çok daha fazla soru var. Önümüzdeki n yıl içinde "yapay bir Leonardo Da Vinci" yaratmanın ve hatta - en azından! - "yapay homo sapiens".

Bununla birlikte, yapay zeka araştırmacıları zaten etik sorunuyla karşı karşıyalar: Terminatör'den Transformers'a kadar kendine saygılı her bilim kurgu filminde ifade edilen korkular artık komik görünmüyor (modern sofistike sinir ağları zaten makul bir model böcek olarak kabul edilebilir) beyin çalışması!), ama şimdiye kadar açıkça gereksiz.

İdeal bir teknojenik gelecek bize, bir kişinin güçlerinin çoğunu bir makineye devredebileceği - ya da en azından onun entelektüel çalışmasının önemli bir bölümünü kolaylaştırmasına izin verebileceği - bir dönem olarak görünüyor. Derin öğrenme kavramı bu hayale doğru atılan adımlardan biridir. Gidilecek uzun bir yol var - ancak sinir ağlarının ve bunlarla ilişkili tüm gelişen yaklaşımların zaman içinde bilim kurgu yazarlarının isteklerini gerçekleştirme yeteneğine sahip olduğu zaten açık.

Bugün, bir grafik, bir makine öğrenimi sisteminde oluşturulan modelleri tanımlamanın en kabul edilebilir yollarından biridir. Bu hesaplama grafikleri, köşeler arasındaki bağlantıları tanımlayan sinaps kenarlarıyla birbirine bağlanan nöron köşelerinden oluşur.

Bir skaler CPU veya vektör GPU'nun aksine, IPU, bu tür grafiklerin oluşturulmasına izin veren makine öğrenimi için tasarlanmış yeni bir işlemci türüdür. Grafikleri yöneten bir bilgisayar, makine öğrenimi yoluyla oluşturulan grafiklerin hesaplamalı modelleri için ideal bir makinedir.

Makine zekasının nasıl çalıştığını tanımlamanın en kolay yollarından biri onu görselleştirmektir. Graphcore geliştirme ekibi, IPU'da görüntülenen bu tür görüntülerden oluşan bir koleksiyon oluşturmuştur. Yapay zeka çalışmalarını görselleştiren Poplar yazılımına dayanmaktadır. Bu şirketteki araştırmacılar, derin ağların neden bu kadar çok bellek gerektirdiğini ve hangi çözümlerin mevcut olduğunu da anladılar.

Poplar, standart makine öğrenimi işlemlerini yüksek düzeyde optimize edilmiş IPU uygulama koduna dönüştürmek için sıfırdan oluşturulmuş bir grafik derleyici içerir. Bu grafikleri POPNN'lerin toplandığı şekilde bir arada toplamanıza olanak tanır. Kütüphane, genelleştirilmiş ilkeller için bir dizi farklı tepe noktası içerir.

Grafikler, tüm yazılımların dayandığı paradigmadır. Poplar'da grafikler, köşelerin işlemleri gerçekleştirdiği ve kenarların aralarındaki ilişkiyi tanımladığı bir hesaplama süreci tanımlamanıza olanak tanır. Örneğin, iki sayıyı birbirine eklemek istiyorsanız, iki girdi (eklemek istediğiniz sayılar), bazı hesaplamalar (iki sayı toplama işlevi) ve bir çıktı (sonuç) içeren bir tepe noktası tanımlayabilirsiniz.

Köşe işlemleri genellikle yukarıdaki örnekten çok daha karmaşıktır. Genellikle kodletler (kod adları) adı verilen küçük programlar tarafından tanımlanırlar. Grafiksel soyutlama çekicidir çünkü hesaplamanın yapısı hakkında herhangi bir varsayımda bulunmaz ve hesaplamayı IPU işlemcisinin çalıştırmak için kullanabileceği bileşenlere ayırır.

Poplar, bir görüntü olarak temsil edilen çok büyük grafikler oluşturmak için bu basit soyutlamayı kullanır. Programlı grafik oluşturma, onu IPU kaynaklarını en verimli şekilde kullanmak için gereken belirli hesaplamalara göre uyarlayabileceğimiz anlamına gelir.

Derleyici, standart makine öğrenimi işlemlerini yüksek düzeyde optimize edilmiş IPU uygulama koduna dönüştürür. Grafik derleyici, bir veya daha fazla IPU'da dağıtılan hesaplama grafiğinin bir ara görüntüsünü oluşturur. Derleyici bu hesaplama grafiğini görüntüleyebilir, bu nedenle sinir ağı yapısı düzeyinde yazılmış bir uygulama, IPU'da çalışan hesaplama grafiğinin bir görüntüsünü görüntüler.


AlexNet'in tam öğrenme döngüsünün grafiği ileri ve geri yönlerde

Poplar grafik derleyicisi, AlexNet açıklamasını 18,7 milyon köşe ve 115,8 milyon kenar ile bir hesaplama grafiğine dönüştürdü. Açıkça görülebilen kümeleme, ağın her katmanındaki süreçler arasındaki güçlü iletişimin ve katmanlar arasında daha kolay iletişimin sonucudur.

Başka bir örnek, MNIST üzerinde eğitilmiş basit, tam bağlantılı bir ağ, bilgisayarla görme için basit bir veri seti, makine öğreniminde bir tür "Merhaba dünya". Bu veri kümesini keşfetmek için basit bir web, Poplar uygulamalarının yönlendirdiği grafikleri anlamanıza yardımcı olur. Şirket, grafik kitaplıklarını TensorFlow gibi çerçevelerle entegre ederek, makine öğrenimi uygulamalarında IPU'lardan yararlanmanın kolay bir yolunu sunuyor.

Grafik derleyici kullanılarak oluşturulduktan sonra çalıştırılması gerekir. Bu, Graph Engine kullanılarak mümkündür. ResNet-50 örneği, çalışmasını göstermektedir.


ResNet-50 grafiği

ResNet-50 mimarisi, tekrar eden bölümlerden derin ağlar oluşturmanıza olanak tanır. İşlemcinin bu bölümleri yalnızca bir kez tanımlaması ve yeniden çağırması gerekir. Örneğin, conv4 düzeyindeki bir küme altı kez yürütülür, ancak grafikte yalnızca bir kez işaretlenir. Görüntü ayrıca, her biri doğal hesaplama biçimine göre oluşturulmuş bir grafiğe sahip olduğundan, evrişim katmanlarının çeşitli formlarını gösterir.

Motor, derleyici tarafından oluşturulan bir grafiği kullanarak bir makine öğrenimi modelinin yürütülmesini oluşturur ve yönetir. Graph Engine, dağıtıldıktan sonra, IPU'ları veya uygulamalar tarafından kullanılan cihazları izler ve bunlara yanıt verir.

ResNet-50 görüntüsü tüm modeli gösterir. Bu seviyede, tek tek köşeler arasındaki bağlantıları ayırt etmek zordur, bu nedenle büyütülmüş resimlere bakmaya değer. Aşağıda, sinir ağı katmanları içindeki bazı bölümlere örnekler verilmiştir.

Derin ağlar neden bu kadar çok belleğe ihtiyaç duyar?

Büyük miktarda bellek, derin sinir ağlarının en büyük sorunlarından biridir. Araştırmacılar, derin bir sinir ağında büyük miktarda ağırlık ve aktivasyon depolamak için modern sistemler tarafından kullanılması gereken sınırlı DRAM cihazlarının bant genişliği ile mücadele etmeye çalışıyorlar.

Mimariler, yüksek yoğunluklu bellek için DRAM'i sıralı olarak işlemek ve optimize etmek üzere tasarlanmış işlemci yongaları kullanılarak tasarlandı. Bu iki cihaz arasındaki arayüz, bant genişliği sınırlamaları getiren ve önemli ölçüde güç yükü ekleyen bir darboğazdır.

İnsan beyni ve nasıl çalıştığı hakkında henüz tam bir anlayışa sahip olmasak da, genel olarak büyük, ayrı bir hafıza deposu olmadığı anlaşılmaktadır. İnsan beynindeki uzun süreli ve kısa süreli belleğin işlevinin nöronlar + sinapsların yapısında yerleşik olduğuna inanılmaktadır. Beynin nöral yapısına sahip olan ve 300'den fazla nörondan oluşan solucanlar gibi basit organizmaların bile bir dereceye kadar hafıza işlevi vardır.

Geleneksel işlemcilerde bellek oluşturmak, çok daha az güç tüketimi ile büyük bant genişliği açarak bellek darboğazı sorununu aşmanın bir yoludur. Bununla birlikte, bir çip üzerindeki bellek, şu anda derin sinir ağlarını hazırlamak ve dağıtmak için kullanılan CPU'lara ve GPU'lara takılan gerçekten büyük miktarda bellek için tasarlanmamış pahalı bir parçadır.

Bu nedenle, günümüzde CPU'larda ve GPU destekli derin öğrenme sistemlerinde belleğin nasıl kullanıldığına bakmak ve kendinize şunu sormak yararlıdır: İnsan beyni onlarsız iyi çalışıyorken neden bu kadar büyük bellek depolama cihazlarına ihtiyaç duyuyorlar?

Yapay sinir ağları, girdi ağ boyunca yayılırken girdi verilerini, ağırlıkları ve aktivasyon fonksiyonlarını depolamak için belleğe ihtiyaç duyar. Eğitimde, girdi aktivasyonu, çıktı gradyan hatalarını hesaplamak için kullanılana kadar sürdürülmelidir.

Örneğin, 50 katmanlı bir ResNet yaklaşık 26 milyon ağırlığa sahiptir ve 16 milyon ileri aktivasyonu hesaplar. Her ağırlığı depolamak ve etkinleştirmek için 32 bit kayan noktalı sayı kullanıyorsanız, bunun için yaklaşık 168 MB alan gerekir. Bu ağırlıkları ve aktivasyonları depolamak için daha düşük bir hassasiyet kullanarak, bu depolama gereksinimini yarıya indirebilir, hatta dörde katlayabiliriz.

GPU'lar yoğun vektör verilerine dayandığından ciddi bir bellek sorunu oluşur. Bu nedenle, yüksek hesaplama yoğunluğu elde etmek için tek bir komut akışı (SIMD) kullanabilirler. Merkezi işlem birimi, yüksek performanslı bilgi işlem için benzer vektör bloklarını kullanır.

GPU'lar 1024 bit sinaps genişliğine sahiptir, bu nedenle 32 bit kayan nokta verileri kullanırlar, bu nedenle 1024 bit veri vektörleri oluşturmak için genellikle paralel olarak 32 örnekten oluşan mini gruplara bölerler. Vektör paralelliğini düzenlemeye yönelik bu yaklaşım, etkinleştirme sayısını 32 kat ve 2 GB'den fazla kapasiteye sahip yerel depolama ihtiyacını artırır.

GPU'lar ve matris cebiri için tasarlanmış diğer makineler de ağırlıklardan veya sinir ağı aktivasyonlarından kaynaklanan bellek stresine maruz kalır. GPU'lar, derin sinir ağlarında kullanılan küçük evrişimleri verimli bir şekilde yürütemez. Bu nedenle, bu evrişimleri grafik hızlandırıcıların verimli bir şekilde işleyebileceği matris-matris çarpımlarına (GEMM) dönüştürmek için "aşağı" adı verilen bir dönüşüm kullanılır.

Giriş verilerini, geçici değerleri ve program talimatlarını saklamak için ek bellek de gereklidir. ResNet-50'yi yüksek performanslı bir GPU üzerinde eğitirken bellek kullanımını ölçmek, 7,5 GB'ın üzerinde yerel DRAM gerektiğini buldu.

Birisi daha düşük hesaplama hassasiyetinin gereken bellek miktarını azaltabileceğini düşünebilir, ancak durum böyle değil. Ağırlıklar ve aktivasyonlar için veri değerlerini yarı hassasiyete değiştirirken, SIMD'nin vektör genişliğinin sadece yarısını doldurursunuz, mevcut hesaplama kaynaklarının yarısını harcarsınız. Bunu telafi etmek için, GPU'da tam hassasiyetten yarı hassasiyete geçtiğinizde, mevcut tüm hesaplamaları kullanmak için yeterli veri paralelliğine neden olmak için mini parti boyutunu iki katına çıkarmanız gerekir. Bu nedenle, GPU'daki daha düşük hassas ağırlıklara ve etkinleştirmelere geçiş, hala 7,5 GB'ın üzerinde ücretsiz DRAM gerektirir.

Depolanacak çok fazla veri olduğu için hepsini bir GPU'ya sığdırmak imkansız. Evrişimli sinir ağının her katmanında, harici DRAM'in durumunu kaydetmeniz, ağın sonraki katmanını yüklemeniz ve ardından verileri sisteme yüklemeniz gerekir. Sonuç olarak, zaten bant genişliği sınırlı harici bellek arabirimi, teraziyi sürekli olarak yeniden yükleme ve etkinleştirme işlevlerini saklama ve alma ek yükünden muzdariptir. Bu, öğrenme eğrisini önemli ölçüde yavaşlatır ve enerji tüketimini önemli ölçüde artırır.

Bu sorunu çözmenin birkaç yolu vardır. İlk olarak, etkinleştirme işlevleri gibi işlemler "sahada" gerçekleştirilebilir ve girişin doğrudan çıkışta üzerine yazılmasına izin verir. Böylece mevcut hafıza yeniden kullanılabilir. İkinci olarak, ağ işlemleri arasındaki veri bağımlılığını analiz ederek ve aynı hafızayı o anda kullanılmayan işlemler için ayırarak hafızayı yeniden kullanma fırsatı elde edilebilir.

İkinci yaklaşım, bellek yönetimi ek yükü neredeyse sıfıra indirildiğinden, sabit bir tahsis edilmiş bellek oluşturmak için tüm sinir ağı derleme zamanında analiz edilebildiğinde özellikle etkilidir. Bu yöntemlerin kombinasyonunun, sinir ağının bellek kullanımını iki ila üç kat azaltabileceği ortaya çıktı.
Yakın zamanda Baidu Deep Speech ekibi tarafından üçüncü bir önemli yaklaşım keşfedildi. Aktivasyon işlevleriyle bellek tüketiminde 16 kat azalma sağlamak için çeşitli bellek tasarrufu teknikleri uyguladılar ve 100 katmanlı ağları eğitmelerini sağladılar. Önceden, aynı miktarda bellekle ağları dokuz katmanla eğitebiliyorlardı.

Bellek ve işleme kaynaklarını tek bir cihazda birleştirmek, evrişimli sinir ağlarının ve diğer makine öğrenimi biçimlerinin performansını ve verimliliğini artırmak için önemli bir potansiyele sahiptir. Sistemin yeteneklerini ve performansını dengelemek için bellek ve bilgi işlem kaynakları arasında bir değiş tokuş yapılabilir.

Diğer makine öğrenimi yöntemlerindeki sinir ağları ve bilgi modelleri matematiksel grafikler olarak düşünülebilir. Bu grafiklerde büyük miktarda paralellik yoğunlaşmıştır. Grafiklerde paralellikten yararlanmak için tasarlanmış bir paralel işlemci, mini toplu işleme dayanmaz ve gereken yerel depolama miktarını önemli ölçüde azaltabilir.

Modern araştırma sonuçları, tüm bu tekniklerin sinir ağlarının performansını önemli ölçüde artırabileceğini göstermiştir. Modern GPU'lar ve merkezi işlem birimleri, toplamda yalnızca birkaç megabayt olan çok sınırlı yerleşik belleğe sahiptir. Makine öğrenimi için özel olarak tasarlanmış yeni işlemci mimarileri, bellek ve çip üzerinde bilgi işlem arasında bir denge kurarak günümüzün CPU'ları ve GPU'larına göre önemli performans ve verimlilik kazanımları sağlar.

Akıllı robotların yaklaşan devrimi, 1950'lerden bu yana her on yılda bir tahmin ediliyor. Ancak, asla olmadı. Bölgedeki ilerleme yapay zeka belirsiz, bazen sıkıcı bir şekilde gerçekleşti ve birçok meraklıyı hayal kırıklığına uğrattı. Görünen başarılar - 1990'ların ortalarında IBM tarafından yaratılan ve 1997'de Garry Kasparov'u satrançta yenen Deep Blue bilgisayar veya 1990'ların sonunda bir elektronik çevirmenin ortaya çıkması - transferden çok "kaba" hesaplamaların sonucuydu. insan algılama mekanizmalarından bilgisayar süreçlerine, hesaplamalar.

Ancak, hayal kırıklığı ve başarısızlığın hikayesi şimdi çarpıcı biçimde değişiyor. Sadece on yıl önce, bilgisayarla görme ve nesne tanıma algoritmaları, basit bir arka plana karşı bir topu veya paralel boruyu tanımlayabiliyordu. Artık insan yüzlerini, insanlar kadar karmaşık, doğal arka planlarda bile ayırt edebiliyorlar. Altı ay önce Google, fotoğraflardan, yol işaretlerinden veya el yazısı metinlerden kelimeleri okuyarak 20'den fazla yabancı dilden metin çevirebilen bir akıllı telefon uygulaması yayınladı!

Bütün bunlar, sinir ağları alanındaki bazı eski fikirlerin, "yaşam" eklenerek biraz değiştirilmişse, yani. insan ve hayvan algısının ayrıntılarını yansıtarak kimsenin beklemediği ezici sonuçlar üretebilirler. Bu sefer, AI devrimi gerçekten gerçek görünüyor.

Çoğu durumda makine öğrenimi alanındaki sinir ağları araştırması, her zaman farklı veri türlerini tanımak için yeni yöntemler bulmaya adanmıştır. Bu nedenle, bir kameraya bağlı bir bilgisayar, bir görüntü tanıma algoritması kullanarak, düşük kaliteli bir resimde bir insan yüzünü, bir fincan çayı veya bir köpeği ayırt edebilmelidir. Bununla birlikte, tarihsel olarak, bu amaçlar için sinir ağlarının kullanımına önemli zorluklar eşlik etmiştir. Küçük bir başarı bile insan müdahalesini gerektirdi - insanlar programın görüntünün sınırları veya basit geometrik şekiller gibi görüntünün önemli özelliklerini belirlemesine yardımcı oldu. Mevcut algoritmalar bunu kendi başlarına yapmayı öğrenemezdi.

Sözde yaratılması sayesinde işlerin durumu çarpıcı bir şekilde değişti. derin öğrenme sinir ağları artık bir görüntüyü neredeyse bir insan kadar verimli bir şekilde analiz edebiliyor. Bu tür sinir ağları, birinci seviye "nöronlar" için girdi olarak düşük kaliteli bir görüntü kullanır ve daha sonra "resmi" doğrusal olmayan bağlantılar yoluyla bir sonraki seviyenin nöronlarına iletir. Biraz eğitimden sonra, daha yüksek seviyelerdeki "nöronlar" tanıma için görüntünün daha soyut yönlerini kullanabilir. Örneğin, bir görüntünün sınırları veya uzayda nasıl konumlandığı gibi ayrıntıları kullanabilirler. Şaşırtıcı bir şekilde, bu tür ağlar, bir görüntünün en önemli özelliklerini insan yardımı olmadan değerlendirmeyi öğrenebilir!

Derin öğrenme sinir ağlarının kullanımına harika bir örnek, farklı açılardan veya farklı pozlarda fotoğraflanan aynı nesnelerin tanınmasıdır (bir insan veya bir hayvandan bahsediyorsak). Piksel piksel tarama kullanan algoritmalar, iki farklı görüntünün önünde olduklarını "düşünürken", akıllı sinir ağları aynı nesnenin önünde olduklarını "anlar". Ve tam tersi - aynı pozda fotoğraflanan farklı ırklardan iki köpeğin görüntüleri, önceki algoritmalar tarafından aynı köpeğin fotoğrafları olarak algılanabilir. Derin öğrenme sinir ağları, hayvanlar arasında ayrım yapmalarına yardımcı olabilecek görüntülerdeki ayrıntıları ortaya çıkarabilir.

Derin öğrenme teknikleri, gelişmiş sinirbilim bilgisi ve modern bilgisayarların gücünün birleşimi, yapay zeka için henüz değerlendiremediğimiz bakış açıları açıyor. Gerçek şu ki, zihnin doğası gereği yalnızca biyolojik olamayacağı zaten açıktır.

Kiev'deki geniş çaplı bir konferansta iş trendlerini öğrendim. Tüm süreç, bir saat yürütmenin nedeni olan yeni bilgi ve bilgiyi alıp götürdükleri için Cumartesi içgörüleriyle doludur. Konferansta işletme sahipleri, üst düzey yöneticiler, pazarlamacılar, satışlar, çalışanlar ve diğer uzmanlıklar için 4 ek fikir akışı var. Altyapı Bakanlığı sözcülerinden Volodymyr Omelyan, galerilerin gelişimi, yenilenen yollar ve havaalanları hakkında konuştu.

Herkese iyi günler, sevgili meslektaşlarım iOS takma adları, elbette her biriniz ağ ile çalıştınız ve JSON'dan veri ayrıştırmayla uğraştınız. Bu işlem için kullanabileceğiniz bir sürü kitaplık, her türlü araç var. Bazıları karmaşık ve bazıları basittir. Kendim çok uzun bir süre boyunca, bu sürece bazı üçüncü taraf kütüphanelere güvenmeden JSON'u dürüstçe elle ayrıştırdım ve bunun avantajları vardı.

9 Eylül 2014'te düzenli bir sunum sırasında Apple, kendi mobil ödeme sistemini tanıttı - Apple Pay.

Apple Pay ile iPhone 6 ve iPhone 6+ kullanıcıları ve en yeni Apple Watch çevrimiçi alışveriş yapabilir, mobil uygulamalar için Apple Pay'in ek avantajlarından yararlanabilir ve Yakın Alan İletişimi (NFC) teknolojisini kullanarak ödeme yapabilir. Ödemelerin yetkilendirilmesi için Touch ID veya Face ID teknolojileri kullanılmaktadır.

Teknolojiler sabit durmaz ve geliştirme süreçleri onlarla birlikte hareket eder. Daha önce şirketler "Şelale" modeline göre çalıştıysa, örneğin şimdi herkes "Scrum" uygulamak için çabalıyor. Evrim, yazılım geliştirme hizmetlerinin sağlanmasında da yer almaktadır. Şirketler eskiden müşterilerine bütçelerinde kaliteli geliştirme sağlarken, şimdi burada durup, uzmanlıklarını sunarak müşteri ve işi için maksimum değer sağlamaya çalışıyorlar.

Geçtiğimiz birkaç yıl içinde, ücretsiz olanlar da dahil olmak üzere o kadar çok iyi yazı tipi ortaya çıktı ki, tasarımcılar için bizimkinin devamını yazmaya karar verdik.

Her tasarımcının çalışmak için alıştığı ve grafik stilini yansıtan bir dizi favori yazı tipi vardır. Tasarımcılar “Asla çok iyi yazı tipi yoktur” derler, ancak şimdi bu setin yalnızca ücretsiz yazı tiplerinden oluştuğu bir durumu güvenle hayal edebiliyoruz.

Proje yöneticileri, müşterinin tüm gereksinimleri ve son teslim tarihleri ​​ile tüm ekibin zihinsel sağlığı arasında bir denge bulmaya çalışırken kendilerini ne sıklıkla zor ve zor bir yer arasında buluyor? Sorumluluğun her iki tarafında da barış ve düzen olması için kaç nüans dikkate alınmalıdır? İyi bir yönetici olduğunuzu nasıl anlıyorsunuz veya acilen tüm cephelerde yetişmeniz mi gerekiyor? Bir Başbakan olarak hangi yönlerden geride olduğunuzu ve nerede iyi bir adam ve akıllı bir kız olduğunuzu nasıl belirleyebilirsiniz? Bir sonraki Code'n'Coffee konferansı bununla ilgiliydi.

Örüntü tanıma teknolojisi günlük hayatımıza giderek daha fazla dahil oluyor. Şirketler ve kurumlar, güvenlikten müşteri memnuniyeti araştırmalarına kadar her şey için kullanıyor. Bu özelliğe dayalı ürünlere yapılan yatırımların 2021 yılına kadar 39 milyar dolara çıkması bekleniyor. İşte örüntü tanımanın çeşitli alanlarda nasıl kullanıldığına dair birkaç örnek.