Makine Öğrenimi ve Sinir Ağları - sayfa 51

 

Sinir Ağı Aşırı Sığdırmasından Kaçınma (DL 12)



Sinir Ağı Aşırı Sığdırmasından Kaçınma (DL 12)

Derin öğrenme için daha büyük nöral ağlarla çalıştığımız için fazla uydurma riski önemli ölçüde artıyor. Aşırı uyumun nedenlerini ve bunun nasıl tespit edilip önleneceğini anlamak çok önemlidir. Fazla uydurma, bir makine öğrenimi modeli eğitim kümesine çok özel hale geldiğinde ve yeni verilere genellemede başarısız olduğunda ortaya çıkar. Birincil neden, bir modelin eğitim verisi miktarına kıyasla aşırı parametre özgürlüğüne sahip olması, yüksek serbestlik derecesine sahip modelleri veya küçük eğitim setlerini daha hassas hale getirmesidir.

Örneğin, polinom regresyonunda, polinomun derecesini artırmak, ince ayar için daha fazla parametre sağlayarak modelin eğitim verilerine daha kesin bir şekilde uymasını sağlar. Ancak bu, eğitim kümesinin ötesindeki örneklere genelleme yapma yeteneğini engelleyebilir.

Sinir ağları bağlamında, ağırlıklar ve önyargılar parametre görevi görür. Sinir ağları daha fazla ağırlıkla büyüdükçe, parametrelerini seçme konusunda daha fazla özgürlüğe sahip olurlar. Bu nedenle, büyük bir sinir ağını eğitirken, birincil tanımlama yöntemi doğrulama setini izlemek olduğundan, olası aşırı uyum için uyanık olmak önemlidir.

Veri setini eğitim, doğrulama ve test setlerine bölmek, ağın genelleştirilmesini değerlendirmeye yardımcı olur. Aşırı uyum oluştuğunda, eğitim seti ile doğrulama seti arasında kayıp veya doğrulukta gözle görülür bir tutarsızlık vardır. İdeal olarak, eğitim seti kaybı dönemler geçtikçe azalmalıdır, ancak artmaya başlarsa bu bir sorun olduğunu gösterir. Benzer şekilde, eğitim seti kaybı ile paralel olarak doğrulama seti kaybı da azalmalıdır ve eğitim seti kaybı azalmaya devam ederken artmaya başlarsa, güçlü aşırı uyum anlamına gelir. Modelin her iki setteki doğruluğu da sınıflandırma problemlerinde aşırı uyumu ortaya çıkarabilir.

Fazla uydurmayı ele almak için bir yaklaşım, nedenlerini doğrudan ele almaktır. Geniş veri kümeleri kullanılarak büyük ölçekli derin öğrenme başarılarında görüldüğü gibi, daha fazla veri edinilerek yetersiz veriler azaltılabilir. Bununla birlikte, daha fazla veri elde etmek mümkün değilse, modelin ölçeğini küçültmek aşırı uyumla mücadele etmeye ve verimliliği artırmaya yardımcı olabilir. Genel kılavuz, eldeki belirli sorun için yeterli boyutta bir sinir ağı mimarisi seçmektir.

Aşırı uyum endişeleri devam ederse, dikkate alınması gereken gelişmiş teknikler vardır. Bu tür bir teknik, eğitim ve doğrulama kümeleri arasında bir ayrım gözlemlendiğinde, hatta maksimum çağ sayısına ulaşmadan önce eğitimin durdurulduğu erken durdurmadır. Ek olarak, aşırı uyumu önlemek için Dropout ve ağırlık düzenleme gibi yöntemler kullanılabilir.

Bırakma, belirli nöronların aşırı bir etkiye sahip olmasını önlemek için eğitim sırasında ağdaki bazı aktivasyonların rastgele sıfırlanmasını içerir. Nöronları bırakarak, ağın sonraki katmanları, bu nöronlara gereğinden fazla güvenmeyen işlevleri öğrenmeye zorlanır ve böylece aşırı uyum azalır. Bırakma olmamasını hesaba katmak için test sırasında ayarlamalar yapılır.

Ağırlık düzenlemesi, ağırlıkların çok büyük olmasını engelleyerek aşırı uyum ile mücadele eder. Bu, büyük ağırlıkları caydıran kayıp fonksiyonuna bir ceza terimi dahil edilerek elde edilir. Ağırlık düzenlemesinin yaygın bir biçimi, tüm ağırlıkların karelerinin toplamının ikinci dereceden bir ceza terimi olarak eklendiği L2 düzenlemesidir. Bir hiperparametre tarafından kontrol edilen bu düzenlileştirme terimi, orijinal kayıp işlevine karşı düzenlileştirme üzerindeki vurguyu dengeler.

Sinir ağlarını eğitirken aşırı uydurmayı izlemek çok önemlidir. Modelin boyutunu ve mevcut verileri göz önünde bulundurun ve gerektiğinde fazla uydurmayı ele almak için erken durdurma, Bırakma ve düzenli hale getirme gibi teknikler kullanın.

Avoiding Neural Network Overfitting (DL 12)
Avoiding Neural Network Overfitting (DL 12)
  • 2022.10.01
  • www.youtube.com
Davidson CSC 381: Deep Learning, Fall 2022
 

Evrişimli Katmanlar (DL 13)



Evrişimli Katmanlar (DL 13)

Şimdiye kadar ele aldığımız sinir ağları, her katmanın bir sonraki katmana bağlı olduğu yoğun bir şekilde bağlantılıdır. Yoğun ağlar, genel ve çok yönlü oldukları için iyi bir başlangıç noktasıdır. Ancak, belirli uygulamalar için daha etkili olan alternatif mimarileri seçebiliriz. Bu videoda evrişimli katmanlar adı verilen ilk alternatif mimariyi keşfediyoruz.

Evrişimli ağlar, görüntü işleme görevleri için çok uygundur. Girdi görüntüsünü düz bir vektör olarak ele almak yerine, evrişimli katmanlar görüntünün uzamsal bilgisini korur. Evrişimli bir katmandaki her nöron, piksellerin uzamsal yakınlığını yakalayarak görüntünün yalnızca küçük bir bölgesine bağlanır. Ağ, bu mimariyi kullanarak görüntü işleme görevlerini öğrenmede bir avantaj elde eder.

Evrişimli katmanların iki temel fikri vardır: yerel bağlantı ve ağırlık bağlama. Yerel bağlantı, nöronların görüntünün küçük bir alt bölgesine bağlı olması ve belirli özellikleri öğrenmelerini sağlaması anlamına gelir. Ağırlık bağlama, görüntünün farklı bölgelerine aynı işlevin uygulanmasını sağlar. Ağ, ağırlıkları paylaşarak aynı işlevi birden çok bölgede uygulamayı öğrenebilir.

Evrişimli katmanlar, dikkate alınması gereken yeni hiperparametreler sunar. Bunlar, çekirdek boyutunu (alt bölge boyutunu belirleme), adımı (pencerenin ne kadar kaydığını), çıkış kanallarının sayısını (her pencereye uygulanan işlev sayısı), dolguyu (görüntü kenarlarını işleme) ve havuzlamayı (nöron sonuçlarını toplama) içerir. boyutluluğu azaltmak için).

Havuzlama, bir bölgedeki nöronların sonuçlarını toplayarak ağdaki parametre sayısını azaltmaya yardımcı olur. Bu, ortalama alınarak veya maksimum değer alınarak yapılabilir. Havuzlama, özelliklerin kesin olarak yerelleştirilmesine değil, bir bölgedeki özelliklerin genel varlığına ihtiyacımız olduğunda kullanışlıdır.

Evrişimli ağlar, yoğun ağlara kıyasla görüntüleri işlemek için daha verimli bir yol sağlar. Uzamsal bilgiden yararlanırlar ve parametre sayısını azaltarak eğitilmelerini kolaylaştırırlar.

Havuzlama, özellik haritalarının boyutsallığını ve sonraki katmanlardaki parametre sayısını azaltmaya yardımcı olur. Havuzlama, komşu nöronların sonuçlarını toplayarak, bazı uzamsal ayrıntıları atarken en önemli bilgileri korur.

Maksimum havuzlama ve ortalama havuzlama gibi farklı türde havuzlama işlemleri vardır. Maksimum havuzlamada, her havuzlama penceresindeki maksimum değer, o bölge için temsili değer olarak seçilir. Bu, pencerede bulunan en belirgin özelliklerin yakalanmasına yardımcı olur. Öte yandan, ortalama havuzlama, pencerenin ortalama değerini alarak özelliklerin daha yumuşak bir şekilde temsil edilmesini sağlar.

Havuzlamadan sonra, önceki katmanın çıktısından daha karmaşık ve soyut özellikler öğrenmek için ek evrişimli katmanları istifleyebiliriz. Sonraki her katman, birden çok küçük alıcı alandan gelen bilgileri birleştirerek daha yüksek düzey özellikleri yakalar.

Özetlemek gerekirse, evrişimli ve havuzlama katmanlarına sahip evrişimli sinir ağları (CNN'ler), görüntü işleme görevleri için çok uygundur. Evrişimli katmanlar, uzamsal yakınlığı yakalar ve ağırlık paylaşımından yararlanarak ağın yerel özellikleri verimli bir şekilde öğrenmesini sağlar. Havuzlama, boyutsallığı azaltır ve önemli bilgileri çıkararak sonraki katmanların daha soyut temsilleri öğrenmesine olanak tanır. Bu hiyerarşik özellik öğrenme, CNN'leri görüntü sınıflandırma, nesne algılama ve görüntü bölümleme dahil olmak üzere çeşitli bilgisayarla görme uygulamaları için güçlü kılar.

Convolutional Layers (DL 13)
Convolutional Layers (DL 13)
  • 2022.10.15
  • www.youtube.com
Davidson CSC 381: Deep Learning, Fall 2022
 

Büyük ağları az veriyle eğitmek: aktarım öğrenimi ve veri artırma (DL 14)



Büyük ağları az veriyle eğitmek: aktarım öğrenimi ve veri artırma (DL 14)

Derin öğrenmede, derin öğrenmenin gücünden yararlanmak istediğimiz ancak derin bir modeli etkili bir şekilde eğitmek için yeterli veriye sahip olmadığımız durumlarda sorunlarla karşılaşmak yaygındır. Bu sorun, çeşitli etki alanlarında ve sinir ağı mimarilerinde ortaya çıkar. Küçük bir görüntü veri kümesine sahip evrişimli bir ağ kullanan bir görüntü işleme görevi senaryosuna odaklanalım. Ancak, burada tartışılan kavramlar diğer alanlara da uygulanabilir.

Derin evrişimli ağlar, görüntü işlemedeki etkinlikleriyle bilinir. Bununla birlikte, küçük bir görüntü veri kümesi üzerinde derin bir evrişimli ağ eğitmek, ağın yalnızca girdi verilerini ezberlediği aşırı aşırı uydurmaya yol açar. Bu gibi durumlarda, verilerimizi daha iyi kullanmanın yollarını bulmamız veya alternatif veri kaynaklarını keşfetmemiz gerekir.

Veri kıtlığı sorununun üstesinden gelmek için bir yaklaşım, veri artırma ve öğrenme aktarımıdır. Transfer öğrenme, modern derin öğrenmede temel bir kavramdır ve açıklaması şaşırtıcı derecede basittir. Buradaki fikir, derin bir sinir ağını ilgili ancak daha genel bir sorun üzerinde eğitmek ve ardından bu önceden eğitilmiş ağı, sorunumuzu çözmek için özel veri setimiz üzerinde ek eğitimle yeniden kullanmaktır.

Bir görüntü işleme görevi için, bir ağı web veya makine öğrenimi yarışmalarından toplanan büyük görüntü veri kümeleri üzerinde eğitebiliriz. Önceden eğitilmiş ağ, bu veri kümelerinden görüntüleri sınıflandırmaya ayrılmış son bir katmana sahip olacaktır. Ayrı bir çıktı katmanıyla farklı bir görüntü işleme görevi üzerinde çalışırken, önceden eğitilmiş ağın çıktı katmanını atabilir ve sorunumuzun gereksinimlerine uyan kendi çıktı katmanımızı ekleyebiliriz. Bu, yeni çıktı katmanını önceden eğitilmiş ağın son katmanına bağlayan ve bizim küçük veri setimiz kullanılarak eğitilebilen yeni ağırlıklar eklemeyi içerir.

Transfer öğreniminin etkililiğinin ardındaki beklenti, eğer ön eğitim problemi bizim özel problemimize yeterince benzerse, önceden eğitilmiş ağ tarafından öğrenilen işlevselliğin transfer edilerek problemimize fayda sağlayacağı varsayımında yatmaktadır. Önceden eğitilmiş ağı genel görüntü işleme fonksiyonlarını öğrenmiş olarak düşünebiliriz ve ağımızı küçük veri kümesi üzerinde eğitirken bu öğrenilen dönüşümü kullanabiliriz.

Transfer öğrenimini uygularken, önceden eğitilmiş modeli kullanmak için çeşitli seçeneklerimiz vardır. Problemimize uyması için çıktı katmanını atmamız gerekiyor, ancak yararlı ön işlemenin halihazırda gerçekleştirildiğine inanıyorsak diğer katmanları da kaldırabiliriz. Ek olarak, özel problemimiz için daha karmaşık işlemler gerçekleştirmek için birden çok katman ekleyebiliriz. İlk katmanlar tarafından yapılan yararlı işlemleri korumak için, özellikle önceden eğitilmiş model büyük bir veri kümesi üzerinde eğitilmişse ve sorunumuzun küçük bir veri kümesi varsa, yeniden eğitim sırasında ağırlıklarını dondurabiliriz.

Derin öğrenme kitaplıkları genellikle, farklı sorun türleri için önceden eğitilmiş model koleksiyonları olan model hayvanat bahçeleri sağlar. Bu modeller, transfer öğrenimi için başlangıç noktaları görevi görerek derin öğrenmeyi çok çeşitli sorunları çözmek için erişilebilir kılar.

Bununla birlikte, transfer öğreniminin yardımıyla bile, veri setimiz, son birkaç katmanda bile bir ağı etkili bir şekilde eğitmek için hala çok küçük olabilir. Bu gibi durumlarda, veri kümemizden mümkün olduğunca fazla bilgi çıkarmamız gerekir, bu da bizi veri artırma fikrine götürür.

Veri artırma, sinir ağından farklı görünen ancak öğrenilen modeli kullanan insanlar veya diğer sistemler için aynı anlamı koruyan veri kümesine dönüşümlerin uygulanmasını içerir. Görüntü işleme durumunda, temsil edilen görüntünün insan algısını değiştirmeden çeşitli dönüşümler uygulanabilir. Örneğin, bir görüntüyü döndürmek veya yakınlaştırmak, onun temel içeriğini değiştirmez. Bu dönüşümler, sinir ağı tarafından görülen girdi verilerinde önemli farklılıklar ortaya çıkararak, ağın belirli örnekleri ezberlemesini veya girdinin ince ayrıntılarına dayanmasını zorlaştırır.

Ancak, dönüşümlerin verilerin anlamını değiştirmediğinden ve ağın bakış açısından farklı göründüğünden emin olmalıyız. Örneğin, doğal çeviri değişmezliği göz önüne alındığında, bir görüntünün çevirisinin evrişimli bir ağın genelleme yeteneği üzerinde çok az etkisi olabilir.

Veri artırma teknikleri, rasgele gürültü ekleme, hafif bulanıklaştırma ve görüntüye ilişkin insan algısını bozmayan diğer değişiklikleri içerir. Bu dönüşümler kolayca hesaplanabilir ve eğitim sırasında her bir veri yığınına rastgele uygulanabilir. Ağı, artırılmış veri kümesinde birden çok dönem için eğiterek, onun tam girdi örneklerini basitçe ezberlemesini engelliyoruz ve daha iyi genelleştirme yapması için teşvik ediyoruz.

Veri artırma tekniklerinin, eğitim öncesi için ilgili veriler de dahil olmak üzere üzerinde eğitilecek daha fazla veriye sahip olmak kadar etkili olmadığına dikkat etmek önemlidir. Bununla birlikte, transfer öğrenimi ile birleştirildiğinde, veri artırma, derin sinir ağlarını kullanarak daha geniş bir sorun yelpazesinin üstesinden gelmemize olanak tanır.

Özetle, derin öğrenme gerektiren ancak yeterli veriye sahip olmayan bir sorunla karşı karşıya kalındığında, transfer öğrenme ve veri artırma değerli stratejilerdir. Transfer öğrenimi, bir ağın ilgili bir sorun üzerinde eğitilmesini ve özel sorunumuz için ek eğitimle birlikte yeniden kullanılmasını içerir. Veri artırma, daha iyi genelleme için varyasyonlar sunarken anlamlarını koruyan veri kümesine dönüşümlerin uygulanmasını gerektirir. Bu teknikler daha fazla verinin yerine geçmese de sınırlı veri kullanılabilirliği olan senaryolarda derin öğrenmeden yararlanmak için pratik çözümler sunar.

Training large networks with little data: transfer learning and data augmentation (DL 14)
Training large networks with little data: transfer learning and data augmentation (DL 14)
  • 2022.10.21
  • www.youtube.com
Davidson CSC 381: Deep Learning, Fall 2022
 

Artık Ağlar ve Bağlantıları Atla (DL 15)



Artık Ağlar ve Bağlantıları Atla (DL 15)

Derin sinir ağları güçlüdür ancak parametre sayısı arttıkça daha fazla veriye ihtiyaç duyulması nedeniyle eğitilmesi zordur. Derin ağları eğitmek, genellikle sığ ağlara kıyasla kaybı azaltmada yavaş ilerleme gösterir. Bunun nedeni, rastgele başlatılan ağırlıklara sahip birden çok katmandan geçen girdi verilerinin rastgele gürültüye karışarak anlamlı gradyanların yayılmasını zorlaştırmasıdır.

Bu sorunu çözmek için atlamalı bağlantılar tanıtıldı. Bağlantıları atlama, katmanları bloklar halinde gruplandırmayı ve her bloğun içinde ve çevresinde veri akışı için iki yol sağlamayı içerir. Bir bloğun çıktısı, ekleme veya birleştirme kullanılarak girdisiyle birleştirilir, girdinin geçmesine izin verilir ve girdiler ile güncellemeler daha anlamlı hale gelir.

Atlama bağlantılarını içeren artık blokların çeşitli avantajları vardır. İlk olarak, girdiyle ilgili her şeyi çözmek yerine mevcut verileri artırmaya odaklanarak her blok için öğrenme görevini basitleştirirler. İkincisi, ağdaki her katmanın güncellenmesi için daha kısa yollar sağlayarak gradyan akışını kolaylaştırırlar. Bu avantajlar, sığ ağlara kıyasla daha hızlı eğitim ilerlemesine ve daha iyi performansa yol açar.

Artık blokları kullanırken, özellikle evrişimli katmanları kullanırken, giriş ve çıkış tensörleri arasındaki şekil uyumluluğunu ele almak çok önemlidir. Özellikle birleştirme kullanılırken, şekilleri eşleştirmeye ve parametre sayısında bir patlamadan kaçınmaya özel önem verilmelidir. Tipik olarak, büyük artık ağlardaki atlamalı bağlantıların çoğu için birleştirme yerine ekleme tercih edilir.

Evrişimli bloklarda yükseklik, genişlik ve kanal boyutlarını korumak için tek tek evrişimler kullanılabilir. Konvolüsyonel katmandaki filtre sayısını belirleyerek çıkış katmanının derinliğini ayarlamamıza izin verirler.

Kalıntı ağların çeşitli varyasyonları ve mimarileri olsa da, ana fikir tutarlılığını koruyor: atlamalı bağlantılar ve artık bloklardan yararlanarak derin sinir ağlarının eğitimini geliştirmek. Bu teknikler daha iyi bilgi akışı, daha hızlı eğitim ve artırılmış model performansı sağlar. Daha fazla anlayış ve uygulama için farklı artık mimarilerin ve bunların özel uygulamalarının keşfedilmesi önerilir.

Ek olarak, artık bir ağ kurarken bazı pratik hususları dikkate almak önemlidir. Böyle bir endişe, atlama bağlantıları kullanılırken giriş ve çıkış tensörleri arasındaki şekil uyumluluğunu yönetmektir. Yükseklik, genişlik ve kanal boyutlarının uygun şekilde hizalanması gerektiğinden, evrişimli katmanlar söz konusu olduğunda bu daha karmaşık hale gelir.

Evrişimli blokları basitleştirmek için, giriş görüntüsünün yüksekliğini ve genişliğini korumak için tek tek adımlar ve uygun dolgu kullanılabilir. Bu, bir bloğun giriş ve çıkış tensörlerini eklerken en azından uzamsal boyutların eşleşmesini sağlar. Kanal boyutunu ele almak için, tek tek evrişimler kullanılabilir. Bu katlamalar, tek bir pikselden girdi aldıkları için önemsiz gibi görünseler de, çıktı katmanının derinliğini ayarlamamıza etkili bir şekilde izin verirler. Tek tek evrişimdeki filtre sayısını belirterek, çıkış tensörünün derinliğini artırabilir veya azaltabilir, şekilleri uyumlu hale getirebiliriz.

Büyük artık ağlarla çalışırken, atlamalı bağlantıların sayısı ile parametre patlaması arasında bir denge kurmak çok önemlidir. Birleştirmenin aşırı kullanımı, aktivasyon tensörünün boyutunda ve parametre sayısında önemli bir artışa yol açabilir. Bu nedenle, birleştirme tabanlı atlama bağlantılarının sayısının sınırlandırılması ve çoğu için eklemenin tercih edilmesi önerilir.

Modülerlik, artık ağların sunduğu başka bir avantajdır. Kalan blokların tek tip yapısı ve kolayca daha fazla blok ekleyebilme özelliği, daha derin ve daha güçlü ağların inşasını kolaylaştırır. Blok sayısını aşamalı olarak artırarak, hesaplama kaynakları ve model kapasitesi arasında istenen dengeye uyan bir ağ oluşturulabilir.

Kalıntı ağların son derece etkili olduğu kanıtlanmış olsa da, normalleştirme katmanlarını veya bir blok içinde birden çok yolu birleştirmek gibi farklı tasarım seçeneklerine sahip çeşitli başka kalıntı mimari türleri olduğunu belirtmekte fayda var. Bu varyasyonları keşfetmek, derin sinir ağlarının eğitimini iyileştirmek için daha fazla bilgi ve olasılık sağlayabilir.

Genel olarak, artık ağlar, atlama bağlantılarından ve artık bloklardan yararlanarak derin sinir ağlarını eğitmek için değerli bir yaklaşım sağlar. Öğrenme görevlerini basitleştirir, gradyan yayılımını hızlandırır ve güçlü ağ mimarileri oluşturmak için modülerlik sunar. Kalıntı ağların arkasındaki kavramları ve düşünceleri anlamak, derin öğrenme araştırması ve pratik uygulamalardaki ilerlemelere katkıda bulunur.

Residual Networks and Skip Connections (DL 15)
Residual Networks and Skip Connections (DL 15)
  • 2022.10.23
  • www.youtube.com
Davidson CSC 381: Deep Learning, Fall 2022
 

Kelime Gömmeleri (DL 16)



Kelime Gömmeleri (DL 16)

Sinir ağlarında çalıştığımız verilerin çoğu görüntü verileriydi. Ancak, sinir ağlarını metin verileri gibi başka türde problemler için de kullanabiliriz. Metin verilerini bir sinir ağına giriş olarak temsil etmek, görüntülerde olduğu kadar kolay değildir.

Görüntü verilerinde, görüntüleri kırmızı, yeşil ve mavi piksel dizileri olarak temsil eden standart dijital depolama biçimlerini kullanabiliriz. Bu temsil uygundur çünkü pikseller ve ilgili renk yoğunlukları arasındaki uzamsal ilişkileri yakalar.

Metin verileri için, karakterlerin ASCII'ye veya diğer dijital değerlere dönüştürüldüğü standart dijital temsil, sinir ağlarının nasıl öğrendiğiyle doğrudan ilgili değildir. ASCII değerlerini bir sinir ağı için geçerli girdiye dönüştürmek için ASCII değerlerinin ikili temsilini kullanmak veya karakter aralığını 0 ile 1 arasında olacak şekilde normalleştirmek gibi çeşitli yöntemler düşünülebilir. bir dizinin bir görüntüyü temsil etmesi gibi.

Bir yaklaşım, tüm kelime dağarcığının tek seferlik kodlamalarını kullanarak dev vektörler oluşturmaktır. Her kelimenin, farklı anlamlara sahip benzer kelimeler sorununu çözen benzersiz bir vektör temsili vardır. Ancak bu, boyutların büyük ölçüde genişlemesine neden olur ve kelime benzerliği ile boyutsallık arasındaki dengeyi kaybeder.

Bunu ele almak için, çeşitli hedeflere ulaşan metin verilerinin bir temsilini hedefliyoruz. İlk olarak, aşırı yüksek boyutlu olmayan kelime başına bir temsil istiyoruz. İkinci olarak, benzer kelimelerin benzer vektör temsillerine sahip olduğu yerde temsilin semantik bilgi taşımasını istiyoruz. Bu, doğal dil işlemede zorlu bir problem olmuştur.

Son yıllarda, sinir ağları, metin verileri için uygun girdi temsillerini oluşturmak için başarıyla kullanılmıştır. Bir yaklaşım, metin verilerinden n kelimelik diziler olan n-gramların çıkarılmasını içerir. Bu n-gramlar, bir cümle veya belgedeki belirli bir nokta için bağlamsal bilgi sağlar.

Fikir, girdi olarak one-hot sözlük temsilini kullanarak ağı eğitmek ve çevreleyen n-gramın one-hot kodlamasını tahmin etmektir. Örneğin, 5 gramlık bir girdi kullanabilir ve n-gramdaki diğer dört kelimeyi tahmin edebiliriz. Ağı n-gramları kullanarak yakındaki kelimeler üzerinde eğiterek, anlamsal olarak benzer kelimelerin benzer temsillere sahip olmasını ve eğitim sırasında benzer gradyan geri bildirimi almasını bekliyoruz.

Ağın çıkış katmanını atarak, son gizli katmandaki aktivasyon vektörünü giriş kelimesinin sayısal bir kodlaması olarak kullanabiliriz. Bu temsil, kelimenin bağlamını gerçek metinde yakalayan bir kelime gömme olarak bilinir. Word2Vec gibi kelime yerleştirmeleri üretmek için çeşitli yaklaşımlar mevcuttur.

Kendi kelime yerleştirmelerimizi eğitmek yerine, daha fazla veri ve hesaplama kaynağı ile başkaları tarafından oluşturulan önceden eğitilmiş yerleştirmeleri kullanabiliriz. Rastgele bir metin belgesini kelime katıştırmaya çevirmek için kolayca bir arama tablosu oluşturabiliriz. Bu yaklaşım, metin verileri üzerinde makine öğrenimi için sinir ağımıza girdi olarak kelime yerleştirmeleri kullanmamıza izin verir.

Metin verilerinde makine öğrenimi için sinir ağımıza girdi olarak kelime yerleştirmeleri kullanmak çeşitli avantajlar sunar. Bu önceden eğitilmiş yerleştirmeler, kapsamlı veri ve hesaplama kaynaklarına sahip modeller tarafından oluşturulmuş ve kelimelerin zengin ve anlamlı temsilleriyle sonuçlanmıştır.

Bir belgeyi mevcut bir kelime gömme işleminden geçirerek, metnin vektörleştirilmiş bir temsilini elde edebiliriz. Bu vektör temsili, kelimelerin bağlamsal bilgilerini yakalar ve sinir ağımıza girdi olarak kullanılabilir.

Sözcük gömmelerin kullanımı, bir görevden (örneğin, sözcük gömme modelinin eğitimi) elde edilen bilginin ilgili başka bir göreve (örneğin, metin verileriyle özel makine öğrenimi problemimiz) uygulanabileceği transfer öğrenimini mümkün kılar. Kendi yerleştirmelerimizi sıfırdan eğitmek yerine, mevcut yerleştirmeleri genelleştirme yeteneklerinden yararlanarak kullanabiliriz.

Metnin kelime gömme temsilini elde ettikten sonra, sinir ağımızı eğitmeye devam edebiliriz. Sinir ağı, sözcük yerleştirme vektörlerini girdi olarak alabilir ve yerleştirmelerde kodlanan anlamsal bilgilere dayalı olarak tahminler yapmayı öğrenebilir.

Sinir ağının özel mimarisi eldeki göreve bağlı olacaktır. Metnin sıralı doğasını dikkate alan tekrarlayan bir sinir ağı (RNN), yerel kalıpları yakalayan evrişimli bir sinir ağı (CNN) veya her ikisinin bir kombinasyonu olabilir. Ağ, diğerlerinin yanı sıra duygu analizi, metin sınıflandırması, dil oluşturma veya makine çevirisi gibi görevleri gerçekleştirmek için tasarlanabilir.

Eğitim süreci sırasında sinir ağı, kalıpları tanımayı ve girdi kelime yerleşimlerine dayalı olarak tahminler yapmayı öğrenir. Ağ aracılığıyla yayılan gradyanlar, ağırlıkları güncelleyerek ağın doğru tahminler yapma yeteneğini optimize eder.

Kelime yerleştirmeleri kullanarak, metin verilerini sinir ağları için anlamlı bir şekilde temsil etmenin zorluklarını ele alıyoruz. Bu yerleştirmeler, kelimeler arasındaki anlamsal ilişkileri yakalayarak ağın bağlamdan öğrenmesine ve bilinçli tahminler yapmasına olanak tanır. Ek olarak, önceden eğitilmiş yerleştirmelerden yararlanmak, hesaplama kaynaklarından tasarruf sağlar ve makine öğrenimi boru hattımızın verimliliğini artırır.

Sözcük yerleştirmelerini sinir ağımıza girdi olarak kullanarak, transfer öğreniminin ve anlamsal temsillerin gücünden yararlanabiliriz. Bu yaklaşım, çeşitli doğal dil işleme görevlerine ve uygulamalarına kapı açarak, sinir ağlarının metin verilerini işleme ve anlama yeteneğini önemli ölçüde geliştirir.

Word Embeddings (DL 16)
Word Embeddings (DL 16)
  • 2020.10.20
  • www.youtube.com
Davidson CSC 381: Deep Learning, F'20, F'22
 

Tekrarlayan Sinir Ağları (DL 17)



Tekrarlayan Sinir Ağları (DL 17)

Önceki dersimizde, kelimelerin makul sayıda boyuta sahip vektörler olarak eğitilebilir temsilleri olan kelime gömmelerinin kullanımını tartışmıştık. Bu yerleştirmeler, metin verileri üzerinde çalışan makine öğrenimi sistemleri oluşturmak için bir temel görevi görebilir. Ürün incelemelerinin hassasiyet sınıflandırması, belgeyi kelimelere ayırma, her kelimeyi gömme ve yerleştirme sırasını girdi olarak bir sinir ağına geçirme gibi basit görevler için yeterli olabilir. Ancak, konuşma yanıtları veya makine çevirisi gibi daha karmaşık görevler için daha karmaşık bir yaklaşım gerekir.

Bunu göstermek için, bir cümledeki bir sonraki kelimeyi tahmin etme örneğini kullandık. Bu görev, duygu sınıflandırmasından daha zor ama makine çevirisinden daha kolay. Metin verileri üzerinde çalışacak sinir ağlarını kurarken, iki geniş yaklaşımla karşılaşırız. Bir uç nokta, belgenin tamamını ağa girdi olarak sağlamak, diğer uç nokta ise tek bir kelimeyi girdi olarak sağlamaktır. Bununla birlikte, her iki yaklaşımın da dezavantajları vardır: belgenin tamamı üzerinde çalışmak, eğitim örneklerini sınırlar ve değişen belge boyutlarıyla ilgilenirken, her seferinde bir sözcük üzerinde işlem yapmak, sözcük anlamını anlamak ve doğrudan sözcüklerle eşleşmeyen kavramları temsil etmek için gerekli olan çevreleyen bağlamı göz ardı eder. .

Bu uç noktalar arasında bir uzlaşma bulmak için, her seferinde bir sözcük üzerinde çalışan ancak önemli bağlamı korumak için ağın önceki girdilerin belleğini içeren bir yöntem geliştirdik. Temel fikir, ağın çıktısını girdisine geri beslemek ve şimdiye kadar görülen kelimelerin bir özeti olarak önceki aktivasyonlarını kullanmasına izin vermektir. Bu yaklaşım, kelimeler girilirken ve ağın çıktısı geri beslenirken ağı zamanın farklı noktalarında temsil eden, zaman içinde açılarak görselleştirilebilen tekrarlayan sinir ağlarına (RNN'ler) yol açar.

Bir sonraki kelime tahmin görevi için, RNN'nin gizli katmanının çıktısı, cümlede önceki kelimelerin bir özeti olarak işlev görür. RNN, bu bağlama dayalı olarak bir sonraki kelimeyi tahmin etmeyi öğrenir. RNN'nin girdileri gömülü vektörlerdir, çıktılar ise farklı olası çıktılar üzerindeki belirsizliği ifade etmeye izin veren bir sıcak sözlük kodlamasındadır.

Eğitim RNN'leri, ağın ağırlıklarını güncellemek için hesaplama gradyanlarını içerir. Zorluk, ağırlıkların sadece mevcut girdiye uygulanmaları yoluyla değil, aynı zamanda önceki zaman adımlarından gelen girdiler üzerindeki etkileri yoluyla da kaybı etkilemesinden kaynaklanmaktadır. Ağırlıkların belirli bir zaman adımındaki kayıp üzerindeki etkisini hesaplamak için, hem mevcut girdi üzerindeki etkilerini hem de önceki zaman adımları üzerindeki etkilerini ve mevcut zaman adımındaki hataya katkılarını dikkate almamız gerekir.

Tekrarlayan sinir ağları genellikle sigmoid veya tanh aktivasyon fonksiyonlarını kullanır çünkü bunlar kaybolan gradyan problemine yatkındır. Bu sorun, gradyanlar ağda çok geriye doğru yayılamadığında ortaya çıkar ve uzun vadeli bağımlılıkları yakalama yeteneğini sınırlar. Sonuç olarak, düz RNN'ler kapsamlı bağlam ve uzun süreli bellek gerektiren görevlerde etkili değildir, bu nedenle belgelerden çok cümlelere odaklandık.

Bir sonraki derste, özellikle uzun süreli bellek problemini çözmek ve metin ve dil işleme görevlerinde daha iyi performans elde etmek için tasarlanmış tekrarlayan sinir ağlarının bir varyantını keşfedeceğiz.

Recurrent Neural Networks (DL 17)
Recurrent Neural Networks (DL 17)
  • 2020.10.22
  • www.youtube.com
Davidson CSC 381: Deep Learning, F'20, F'22
 

LSTM'ler (DL 18)



LSTM'ler (DL 18)

Bu dersin amacı, dil modelleme için tekrarlayan sinir ağlarının (RNN'ler) pratik kullanımını göstermektir. Daha önce, bir cümledeki bir sonraki kelimeyi tahmin etmek için RNN'leri kullanmayı tartışmıştık; bu, RNN'ler için ortak bir ön eğitim görevi görevi görür. Soru yanıtlama veya makine çevirisi gibi daha karmaşık görevler için transfer öğrenme yaklaşımı kullanabiliriz. İlk olarak, RNN'yi bir sonraki kelime tahmini görevi için önceden eğitiriz ve ardından ilgilendiğimiz belirli görev için ince ayar yaparız.

Bir RNN'den daha anlamlı çıktılar elde etmek için, ağdan ileri veya geri yönde geçirilen gizli aktivasyonlara veya durumlara odaklanırız. Bu gizli durumlar, genel metin girişini temsil eder. Örneğin, bir cümleyi çevirirken, her kelime sırayla RNN'ye beslenir ve son zaman adımında üretilen gizli durum, tüm metnin bir temsili haline gelir. Daha sonra sınıflandırma veya metin oluşturma gibi istenen görevi çözmek için bu gizli durumu ek sinir ağı katmanlarına geçirebiliriz.

Metni bir gizli katman durumuna kodlamak için bir RNN'ye besleme ve ardından kod çözücü olarak başka bir RNN kullanma süreci, çıktı metni oluşturmamızı sağlar. Bu RNN çiftini girdi-çıktı çiftleri üzerinde eğiterek cümleleri tercüme edebilir veya yanıtlar üretebiliriz.

Bununla birlikte, 10 saatlik aktivasyonlara sahip normal RNN'ler, yok olan gradyanlar nedeniyle daha uzun dizilerle uğraşırken zorluklarla karşılaşır. Bu sorunu çözmek için Uzun Kısa Süreli Bellek (LSTM) adlı bir mimari kullanabiliriz. LSTM'ler, aktivasyonların akması için birden fazla yol sunarak degradelerin ağ üzerinden daha verimli bir şekilde yayılmasını sağlar.

LSTM katmanı bir girdi ve bir çıktıdan oluşur. Bunları, ağı bir sonraki kelimeyi tahmin etme gibi görevlerde eğitmek için kullanabiliriz. Giriş, önceki gizli durumla birleştirilirken, her zaman adımında ağdan kendisine ek bir gizli durum (c) geçirilir. Bu c durumu, 10 saatlik aktivasyonların getirdiği sınırlamalar olmaksızın gradyan yayılımını mümkün kılar. Sigmoid aktivasyon fonksiyonları, önceki durumlardan hangi bilgilerin tutulduğunu veya unutulduğunu kontrol etmek için kullanılır ve bu kapılar eğitim sırasında öğrenilir.

LSTM'ler, her zaman adımında daha karmaşık hesaplamalara izin vererek ve LSTM ağının birden çok uygulaması aracılığıyla hızlı gradyan yayılımını kolaylaştırarak hem h hem de c yollarını içerir. Her bileşen tarafından öğrenilen belirli işlevler hakkında tam bilgiye sahip olmasak da, LSTM mimarisinin pratikte diğer RNN türleri ile karşılaştırıldığında etkili olduğu kanıtlanmıştır.

LSTM mimarilerinin pratik etkinliği, kaybolan gradyan sorununu ele alma ve sıralı verilerde uzun vadeli bağımlılıkları yakalama yeteneklerinde yatmaktadır. Geçiş mekanizmalarını ve bilgi akışı için çoklu yolları birleştirerek, LSTM'ler, çeşitli doğal dil işleme görevlerinde geleneksel RNN'lere göre önemli gelişmeler göstermiştir.

LSTM'lerin kapılı doğası, önceki zaman adımlarındaki bilgileri seçici olarak hatırlamalarına ve unutmalarına izin vererek onları modelleme ve dizi oluşturma için çok uygun hale getirir. LSTM kapılarındaki sigmoid aktivasyonları, neyin tutulup neyin atılacağını belirleyerek bilgi akışını kontrol eder. Bu kapılar, eğitim verilerinden öğrenir ve önceki gizli durumun ve mevcut girdinin hangi bölümlerinin mevcut zaman adımıyla ilgili olduğuna adaptif olarak karar verir.

LSTM'nin uzun vadeli bağımlılıkları hatırlama yeteneği, özellikle dil modellemede çok önemlidir. Örneğin, dil çevirisinde, bir cümlenin bağlamını anlamak, tüm giriş sırasını dikkate almayı gerektirir. Kodlama LSTM'sinin son zaman adımındaki gizli durum, cümlenin genel anlamını yakalayarak doğru çeviri veya diğer aşağı akış görevlerini mümkün kılar.

Ek olarak, LSTM'ler hem ileri hem de geri geçişler sırasında verimli gradyan yayılımını kolaylaştırır. LSTM'ler, ilgili bilgileri koruyarak ve kaybolan gradyanların etkisini hafifleterek, uzun diziler üzerinde derin yinelenen ağların etkili bir şekilde eğitilmesine olanak tanır. Bu, gradyanların kesintisiz akmasına izin vererek, ağ üzerinden geçerken kaybolmalarını veya patlamalarını önleyen paralel yolların kullanılmasıyla gerçekleştirilir.

LSTM'lerin dil modellemedeki başarısı, onları birçok son teknoloji modelde temel bir yapı taşı haline getirdi. Araştırmacılar ve uygulayıcılar, LSTM mimarilerini dikkat mekanizmaları, çok başlı dikkat ve transformatör tabanlı modeller gibi ek özelliklerle genişletti. Bu ilerlemeler, LSTM'lerin modelleme yeteneklerini daha da geliştirerek, belge özetleme, duygu analizi ve diyalog oluşturma dahil daha karmaşık görevlerin üstesinden gelmelerini sağlar.

Özetle, LSTM'ler, geleneksel RNN'lerin sınırlamalarını ele alarak dil modellemede devrim yarattı. Uzun vadeli bağımlılıkları yakalama, kaybolan gradyanları işleme ve ilgili bilgileri seçerek tutma yetenekleri, onları doğal dil işlemede vazgeçilmez bir araç haline getirdi. Araştırmacılar ve geliştiriciler, LSTM mimarilerinden yararlanarak dille ilgili çeşitli görevlerde önemli ilerlemeler elde ederek gelişmiş makine çevirisi, soru yanıtlama sistemleri ve metin oluşturma modellerine yol açtı.

LSTMs (DL 18)
LSTMs (DL 18)
  • 2020.10.25
  • www.youtube.com
Davidson CSC 381: Deep Learning, F'20, F'22
 

Transformers ve Öz-Dikkat (DL 19)



Transformers ve Öz-Dikkat (DL 19)

Nöral ağlara dayanan Transformer mimarisi, dil modelleme ve diğer çeşitli görevlerde son teknoloji ürünü performans elde etti. Kişisel dikkat bloklarından inşa edilmeleri ve tekrarlayan ve artık ağ özelliklerinin entegrasyonu dahil olmak üzere Transformers'ın arkasındaki temel fikirleri keşfedelim.

Tekrarlayan sinir ağları (RNN'ler), bir belgenin bilgi içeriğini temsil eden gizli bir durumu kademeli olarak oluşturarak metin işlemede öne çıkar. Sözcük yerleştirmelerini girdi olarak alırlar ve bir cümledeki bir sonraki sözcüğü tahmin etmek gibi denetimsiz görevler konusunda eğitilebilirler. Ancak, LSTM varyantları da dahil olmak üzere RNN'ler, katmanlar boyunca tekrarlanan işleme ihtiyacı nedeniyle uzun girdilerle mücadele eder.

Öte yandan artık ağlar, artık bağlantıları kullanarak çok katmanlı derin modelleri işlemede etkilidir. Bu bağlantılar, her bloğun girdiyi geliştirmesine izin vererek ve gradyanların daha verimli bir şekilde yayılmasını sağlayarak eğitimi basitleştirir.

Artık ağlar, görüntü işlemede, görüntüyle ilgili işlevlerle iyi uyum sağlayan artık bloklar içindeki evrişimden yararlanmak gibi ek avantajlara sahiptir. Metin işleme için yinelenen ağların ve derin modelleri öğrenmek için artık ağların güçlü yanlarını birleştirmek üzere Transformer tanıtıldı.

RNN'lere benzer şekilde, bir Transformer kelime yerleştirmeleri üzerinde çalışır. Ancak, kelimeleri birer birer almak yerine, bir matriste birleştirilmiş belgenin tamamı için tüm yerleştirmeleri işler. Dönüştürücüler, çeşitli doğal dil işleme görevleri için kullanılabilecek bir belge kodlamasıyla sonuçlanan, eksik sözcükleri tahmin eden denetimsiz görevler konusunda eğitilebilir.

Artık ağlardan Transformers, her bloğun öncüllerini artırmasına olanak tanıyan ve büyük ağlarda bile eğitimi basitleştiren atlamalı bağlantıları devralır. Metin işlemeyi kolaylaştırmak için blokların içindeki mimari, kendine dikkat adı verilen önemli bir fikri bünyesinde barındırır.

Öz-dikkat, belirli bir kelimenin anlamını anlamak için bir cümledeki uzak kelimelere dikkat etme ihtiyacını ele alır. Açıkça bir dikkat işlevi tasarlamak yerine, Transformer'ın mimarisi böyle bir işlevin öğrenilmesini kolaylaştırmak için tasarlanmıştır.

Bir öz-dikkat kodlayıcı bloğu içinde, her kelimenin gömülmesi üç yoğun katmandan geçer: sorgu (q), anahtar (k) ve değer (v). Bu katmanlar, tüm kelimeler arasında ağırlıkları paylaşır, ancak giriş cümlesinin farklı öğelerine uygulanır. Model, sorgu ve anahtar vektörler arasındaki iç çarpımı hesaplayarak benzerliği değerlendirebilir.

Sorgu ile aynı kelimenin anahtar vektörleri arasındaki iç çarpım, kendine benzerliği gösterir. Ek olarak, belirli bir kelimenin sorgu vektörü ile diğer tüm kelimelerin anahtar vektörleri arasında nokta çarpımları hesaplanır. Softmax, en benzer vektörleri vurgulayarak benzerlik puanlarını 0 ile 1 arasındaki ağırlıklara dönüştürmek için uygulanır.

Softmax ağırlıkları her kelimenin değer vektörleri ile çarpılarak belgenin farklı bölümlerine dikkat çekilmiştir. Bu ağırlıklı toplam, tüm belgeden hesaplanan bir çıktı vektörü üretir. Bu işlem, tüm kelimeler için paralel olarak yürütülür ve belgeyi dikkate dayalı olarak kodlayan bir matrisle sonuçlanır.

Orijinal kelime yerleştirmeleri, tüm belgeden elde edilen bilgilerle, dikkatle ağırlıklandırılarak artırılır. Daha sonra düzenli, yoğun bir eşleşen şekil katmanı uygulanır. Farklı dikkat kalıplarını öğrenmek için bir kodlayıcı bloğu içinde birden fazla dikkat başlığı kullanılabilir. Tüm dikkat başlıklarının çıktısı toplanır ve atlama bağlantısıyla birleştirilir, bu da bloğun çıktısıyla sonuçlanır.

Öz-dikkat mekanizması, ağın her bir dikkat başlığında nelere dikkat etmesi gerektiğini öğrenmesini sağlar. Birden fazla dikkat başlığı, modelin çeşitli koşullar altında farklı yönlere odaklanmasını sağlayarak girdi temsilini metin belgesinin kullanışlı bir kodlamasına dönüştürür.

Bu kodlama, sınıflandırma için daha fazla işlenebilir veya makine çevirisi gibi görevler için başka bir sinir ağına girdi olarak kullanılabilir. Training Transformers başlangıçta bir dilde dil kodlamaya ve başka bir dilde kod çözmeye odaklandı. Denetimsiz eğitim, RNN'lere benzer şekilde, belgelerde rasgele boş bırakılmış sözcükler sağlayarak ve modeli eksik sözcükleri tahmin edecek şekilde eğiterek de gerçekleştirilebilir.

Dönüştürücüler, çeşitli doğal dil işleme görevlerinde devrim yarattı ve dil modelleme ve diğer birçok uygulama için son teknoloji mimari haline geldi. Transformers'ın temel kavramlarını daha derinden inceleyelim ve tekrarlayan ve kalan ağların en iyi yönlerini nasıl birleştirdiklerini keşfedelim.

LSTM gibi yinelenen sinir ağları (RNN'ler), metin işleme için etkilidir çünkü bunlar, kelime yerleştirmelerini sırayla işler ve bir belgenin bilgi içeriğini temsil eden gizli bir durum oluşturur. RNN'ler, hazır verileri kullanarak bir cümledeki bir sonraki kelimeyi tahmin etmek gibi denetimsiz görevler konusunda eğitilebilir. Bununla birlikte, RNN'ler, verileri tekrar tekrar birden fazla katmandan geçirme ihtiyacı nedeniyle uzun girdilerle mücadele etme eğilimindedir.

Öte yandan artık ağlar, eğitimi basitleştiren ve gradyanların verimli bir şekilde yayılmasını sağlayan artık bağlantıları kullanarak derin modelleri işlemede mükemmeldir. Görüntü işlemede artık ağlar, artık bloklar içindeki evrişimden yararlanır ve görüntü analiziyle ilgili işlevler için bir avantaj sunar. Amaç, metin işlemede yinelenen ağların avantajlarını, artık ağlardan derin modeller öğrenmenin yararlarıyla birleştirmektir.

Bu bizi Transformer mimarisine getiriyor. Tekrarlayan ağlar gibi, Transformers da kelime yerleştirmeleri üzerinde çalışır. Bununla birlikte, kelimeleri birer birer işleyen yinelenen ağların aksine, Transformers, her bir satırın farklı bir kelimenin gömülmesini temsil ettiği bir matriste birleştirilmiş bütün bir belgenin yerleştirmelerini alır. Dönüştürücüler, çeşitli doğal dil işleme görevleri için belge kodlamaları oluşturmak üzere eksik sözcükleri tahmin etmek gibi denetimsiz görevler konusunda eğitilebilir.

Artık ağlardan, Transformers atlamalı bağlantıları devralır, böylece her bloğun yalnızca öncüllerini artırması gerekir ve gradyanların büyük ağlarda bile etkili bir şekilde yayılmasına izin verilir. Metin işlemeyi kolaylaştırmak için Transformers, bloklar içinde kendine dikkat olarak bilinen farklı bir mimari kullanır.

Kendine dikkat, bir cümledeki bir kelimeyi anlamak için cümlede uzak olabilecek diğer kelimelere dikkat etmemiz gerektiği fikridir. Mimari, belirli bir dikkat işleviyle açıkça tasarlanmamıştır; bunun yerine, bu tür işlevlerin öğrenilmesini kolaylaştırmak için tasarlanmıştır.

Öz-dikkat kodlayıcı bloğunda, her kelimenin gömülmesi, sorgu, anahtar ve değer adı verilen üç yoğun katmandan geçer. Bu katmanlar tüm sözcükler arasında paylaşılır ancak giriş cümlesinin farklı öğelerine uygulanır. Sorgu ve anahtar vektörler arasındaki iç çarpımı alarak benzerliği değerlendirebiliriz. Daha büyük nokta çarpımları, benzer yönlere işaret eden vektörleri gösterirken, daha küçük nokta çarpımları, farklı yönlere işaret eden vektörleri gösterir.

Belirli bir kelime için, sorgu vektörü ile diğer tüm kelimelerin anahtar vektörleri arasındaki iç çarpımı hesaplarız. Bu, sorgu vektörünün her anahtar vektöre ne kadar benzer olduğunu temsil eden bir benzerlik puanları vektörü üretir. Bu puanlara softmax uygulamak, en benzer vektörleri vurgulayarak onları 0 ile 1 arasındaki değerlere dönüştürür. Ortaya çıkan softmax ağırlıkları, belgedeki tüm sözcükler için değer vektörlerinde çarpan görevi görür.

Her bir değer vektörü, karşılık gelen softmax ağırlığı ile element bazında çarpılarak, kelimenin diğer kelimelere olan ilgisini temsil eden ağırlıklı bir toplam oluşturulur. Bu süreç, her bir kelime için paralel olarak uygulanarak, her bir kelimeye gösterilen özene göre ağırlıklandırılmış, tüm belgeden hesaplanan bir çıktı vektörü oluşturulur. Bu bilgi daha sonra orijinal kelime yerleştirmeye eklenir.

Bir dikkat başlığının çıktısını üretmek için, eşleşen şekle sahip düzenli ve yoğun bir katman uygulanır. Bir kodlayıcı bloğu içinde birden fazla dikkat başlığı kullanılabilir ve bu da ağın farklı bağlamlarda farklı dikkat kalıplarını öğrenmesine olanak tanır. Tüm dikkat başlıklarının çıktıları birleştirilir ve atlama bağlantısına eklenir, bu da bloğun çıktısını verir.

Birden çok kanal kullanan evrişimli katmanlara benzer şekilde, Transformers genellikle farklı dikkat modellerini yakalamak için bir kodlayıcı bloğu içinde birden çok dikkat kafası kullanır. Bu, ağın çeşitli dikkat hesaplamalarını öğrenmesini ve birleştirmesini sağlayarak girdi temsilini metin belgesinin yararlı bir kodlamasına dönüştürür.

Kodlama üretildikten sonra, çeşitli görevler için kullanılabilir. Örneğin, sınıflandırma için ek katmanlar uygulanabilir veya kodlama, makine çevirisi gibi görevler için başka bir sinir ağına girdi görevi görebilir. Başlangıçta, Transformer eğitimi bir dilde kodlamaya ve diğerinde kod çözmeye odaklandı. Denetimsiz eğitim, belgelerdeki sözcüklerin rastgele silinmesi ve modelin eksik sözcükleri tahmin etmesi için eğitilmesiyle de gerçekleştirilebilir.

Kelime sırasını ve yakınlığı hesaba katmak için Transformers, konumsal kodlamayı içerir. Bu ek bilgi, kelime yerleşimlerine eklenir ve modelin, dokümandaki kelimelerin göreli konumlarını anlamasını sağlar.

Transformatörler, doğal dil işleme görevleri için güçlü bir mimaridir. Tekrarlayan ve artık ağların güçlerini birleştirerek, çeşitli uygulamalarda son teknoloji sonuçlar elde ettiler. Öz-dikkat mekanizması, modelin hangi kelimelere dikkat etmesi gerektiğini öğrenmesini sağlar ve birden fazla dikkat başlığı, farklı dikkat kalıplarını yakalar. Transformers, dil modelleme alanını önemli ölçüde geliştirdi ve aktif bir araştırma ve geliştirme alanı olmaya devam ediyor.

Transformers and Self-Attention (DL 19)
Transformers and Self-Attention (DL 19)
  • 2022.11.05
  • www.youtube.com
Davidson CSC 381: Deep Learning, Fall 2022
 

Diğer Metrikler ve ROC Eğrisi (DL 20)



Diğer Metrikler ve ROC Eğrisi (DL 20)

Bu, sinir ağlarını kullanırken ikili sınıflandırma görevlerinde başarıyı ölçmek için alternatif metrikler üzerine kısa bir derstir.

Bir ikili sınıflandırma görevinde, sinir ağımızda tipik olarak iki çıkış düğümümüz vardır ve hedef vektörlerimiz ya [1, 0] ya da [0, 1]'dir. Ağın çıktısını bir kategori etiketine dönüştürürken, dört olası sonuç vardır:

  1. Gerçek Pozitif: Hedef [1, 0]'dır ve kodu çözülmüş çıktı kabul eder.
  2. Yanlış Negatif: Hedef [1, 0]'dır, ancak kodu çözülmüş çıktı bunu yanlış bir şekilde [0, 1] olarak etiketler.
  3. Gerçek Negatif: Hedef [0, 1]'dir ve kodu çözülmüş çıktı kabul eder.
  4. Yanlış Pozitif: Hedef [0, 1]'dir, ancak kodu çözülmüş çıktı bunu yanlış bir şekilde [1, 0] olarak etiketler.

Bu sonuçlar, modelin ikili sınıflandırmadaki performansını değerlendirmek için farklı ölçümleri hesaplamak için kullanılabilir. Dikkate alınması gereken bazı alternatif ölçümler şunlardır:

  1. Kesinlik: Pozitif olarak etiketlenen tüm veri noktalarından modelin doğru şekilde pozitif olarak etiketlediği veri noktalarının oranı.
  2. Duyarlılık veya Geri Çağırma: Modelin bu şekilde doğru bir şekilde tanımladığı ilk kategori olarak etiketlenmesi gereken veri noktalarının kesri.
  3. Spesifiklik: Modelin doğru bir şekilde tanımladığı ikinci veya negatif kategori olarak etiketlenmesi gereken veri noktalarının oranı.

Doğru etiketlerin genel oranını ölçen doğruluk, her zaman en bilgilendirici ölçüm olmayabilir. Yanlış pozitiflerin veya yanlış negatiflerin önemi gibi farklı durumlar, belirli ölçümlere odaklanmayı gerektirebilir. Ek olarak, veri kümesindeki pozitif ve negatif etiketlerin dağılımı, doğruluğu büyük ölçüde etkileyebilir.

Metrikler arasındaki değiş tokuşları anlamak için, bunları Alıcı Çalışma Özelliği (ROC) eğrisi gibi teknikler kullanarak görselleştirmek yaygındır. ROC eğrisi, farklı sınıflandırma eşikleri için yanlış pozitif oranını gerçek pozitif oranına karşı çizer.

Yanlış pozitifler ve yanlış negatifler arasındaki dengeyi göz önünde bulundurarak ve ROC eğrisini analiz ederek, problemimizin özel gerekliliklerine göre en uygun modeli ve değerlendirme ölçütünü seçebiliriz.

Yalnızca doğruluğa güvenmek yerine, yanlış pozitiflerin ve yanlış negatiflerin göreli önemini ve bu bağlamda farklı modellerin nasıl performans gösterdiğini dikkate almak önemlidir. Bu nedenle, projeniz üzerinde çalışırken, yalnızca genel doğruluğa güvenmek yerine, metrikler arasındaki değiş tokuşları değerlendirmeniz ve özel probleminizin sonuçlarını göz önünde bulundurmanız önerilir.

Makine öğrenimi modellerini değerlendirirken farklı ölçümler arasındaki ödünleşimleri anlamak çok önemlidir. Belirli senaryolarda, özellikle yanlış pozitifler ve yanlış negatifler farklı önem düzeyleri taşıdığında, doğruluk bir modelin performansının kapsamlı bir resmini sağlamayabilir. Alternatif ölçümlerin daha uygun olduğu bazı durumları inceleyelim:

  1. Yanlış Pozitiflerin ve Yanlış Negatiflerin Önemi: Tıbbi teşhis gibi alanlarda, yanlış pozitiflerin ve yanlış negatiflerin sonuçları önemli ölçüde değişebilir. Örneğin, kanser tespitinde, yanlış bir negatif (pozitif bir vakanın eksik olması) ciddi sonuçlar doğurabilirken, yanlış bir pozitif (negatif bir vakanın yanlış teşhis edilmesi) gereksiz tedavilere yol açabilir. Bu gibi durumlarda kesinlik ve hatırlama/hassasiyet gibi ölçümler, bir modelin performansına ilişkin değerli bilgiler sunabilir.

  2. Dengesiz Veri: Pozitif ve negatif etiketler veri setinde eşit olmayan bir şekilde dağıldığında, doğruluk yanıltıcı olabilir. Veri noktalarının %95'inin pozitif sınıfa ait olduğunu varsayalım. Bu durumda, her şeyi olumlu olarak tahmin eden bir model, altta yatan kalıpları gerçekten öğrenmeden %95 gibi yüksek bir doğruluğa ulaşacaktır. Kesinlik ve geri çağırma gibi ölçümler, önyargıyı gidermeye ve modelin her bir sınıftaki performansına odaklanmaya yardımcı olabilir.

  3. Kesinlik-Geri Çağırma Dengesi: Makine öğrenimi modelleri genellikle kesinlik ve geri çağırma arasında bir değiş tokuş sergiler. Kesinlik, olumlu örnekleri doğru bir şekilde tanımlama yeteneğini ölçerken, hatırlama, tüm olumlu örnekleri yakalama becerisini ölçer. Modelin eşiğini veya karar sınırını ayarlayarak kesinliğe veya hatırlamaya öncelik verebiliriz. Ancak, bir metriği iyileştirmek için eşiğin değiştirilmesi genellikle diğerinin pahasına gerçekleşir. Belirli bir problem için uygun metriği seçerken bu değiş tokuşu anlamak önemlidir.

  4. Alıcı Çalışma Özelliği (ROC) Eğrisi: ROC eğrisi, çeşitli sınıflandırma eşiklerinde yanlış pozitif oranı gerçek pozitif orana karşı çizerek bir ikili sınıflandırma modelinin performansının grafiksel bir temsilini sağlar. Düşük yanlış pozitif oranlarla yüksek gerçek pozitif oranlar elde eden bir model, daha iyi performans gösteren sol üst köşeye daha yakın bir eğriye sahip olacaktır. ROC eğrisinin altındaki alan (AUC-ROC) genellikle bir özet metrik olarak kullanılır ve 1'e yakın değerler daha iyi performans gösterir.

Farklı makine öğrenimi modelleri, duyarlılık ve özgüllük veya kesinlik ve hatırlama arasında farklı ödünleşimlere sahip olabilir. Problemin özel gerekliliklerini ve farklı ölçümlerin göreceli önemini dikkate almak önemlidir. Bu değiş tokuşları değerlendirerek ve modellerin çeşitli ölçümlerde nasıl performans gösterdiğini anlayarak daha bilinçli kararlar verebilir ve uygulamamız için en uygun modeli seçebiliriz.

Projenizde, yanlış pozitifler ve yanlış negatifler arasındaki ödünleşimleri göz önünde bulundurun ve sorunun hedefleriyle uyumlu ölçümleri seçin. Yalnızca doğruluğa güvenmek yerine, farklı modellerin performansını doğru bir şekilde değerlendirmek ve karşılaştırmak için görevinizin özel ihtiyaçlarını ve sonuçlarını dikkate alın.

Other Metrics and the ROC Curve (DL 20)
Other Metrics and the ROC Curve (DL 20)
  • 2020.10.12
  • www.youtube.com
Davidson CSC 381: Deep Learning, F'20, F'22
 

Adam İyileştirici (DL 21)



Adam İyileştirici (DL 21)

Bu dersin amacı, stokastik gradyan inişinin (SGD) zayıflıklarını nasıl giderebileceğimizi göstermek ve sinir ağlarını eğitmek için yaygın olarak kullanılan Adam iyileştiriciyi tanıtmaktır.

SGD'de, sinir ağındaki her ağırlığı, üzerinde çalıştığımız her parti için öğrenme oranının ürününü ve bu ağırlığa göre kaybın kısmi türevini çıkararak güncelleriz. Bu süreç, kaybın negatif gradyanı yönünde adımlar atarak, kademeli olarak onu en aza indirir. Ancak SGD, etkinliğini engelleyen birkaç arıza moduyla karşılaşabilir.

Bu sorunları açıklamak için, kaybı en aza indirmeyi hedeflediğimiz tek boyutlu bir örnekle başlıyoruz. Bu durumda SGD, eğimin yönünü takip ederek, yavaş yavaş minimuma yaklaşarak bizi yokuş aşağı götürür. Ancak, SGD'nin yardımcı olmadığı senaryolar vardır. Gradyanın sıfır olduğu bir yerel minimuma ulaşırsak, o noktadan uzaklaşmayız. Benzer şekilde, kayıp fonksiyonunun eğiminin de sıfır olduğu bir plato üzerinde olması ilerlemeyi engeller. Farklı kümelerdeki eğitimden elde edilen stokastiklik bazen yerel minimumlardan veya platolardan kaçmaya yardımcı olsa da, bu sorunları tamamen çözmez.

Birden fazla ağırlık boyutuna sahip sinir ağlarının eğitimi gibi daha yüksek boyutlu optimizasyon problemlerinde ek zorluklar ortaya çıkar. Farklı yönlerde yerel minimum ve maksimumların olduğu eyer noktaları, gradyanın sıfır olmasına neden olarak öğrenmeyi yavaşlatabilir. Ek olarak, farklı boyutlar boyunca kısmi türevlerin ölçeklerindeki tutarsızlıklar, gradyan iniş sırasında zikzaklı davranışa yol açarak aşmaya ve daha yavaş yakınsamaya neden olabilir.

Adam iyileştirici, bu sorunları iki temel fikirle ele alır. Birincisi, o yönde birkaç adım atıldığında aynı yönde devam etmeyi destekleyen momentumdur. Momentum, platoların üstesinden gelmeye yardımcı olur ve algoritmayı eyer noktalarından uzaklaştırabilir. İkinci fikir, kısmi türevlerin ve karesi alınmış kısmi türevlerin hareketli ortalamasını korumayı içerir. Kısmi türevlerin ikinci momentini (varyansını) tahmin ederek, her boyutta atılan adımları normalleştirerek zikzaklar ve aşmaları azaltabiliriz.

Adam güncelleme kuralı, ağırlık güncellemesindeki kısmi türev terimini, küçük bir sabitle (epsilon) birlikte karesi alınmış kısmi türevin (s) hareketli ortalamasının kareköküne bölünen kısmi türevin (v) hareketli ortalaması ile değiştirir. sıfıra bölmemek için Bu güncelleme kuralı, boyutlar arasında daha dengeli adımlar sağlar ve sinir ağlarını eğitmek için normal SGD'den daha etkili olduğu kanıtlanmıştır.

Adam optimize edici, momentumu dahil ederek ve kısmi türevlerin hareketli ortalamalarını koruyarak SGD'nin sınırlamalarını giderir. Bu değişiklikler, optimize edicinin yerel minimumlarda, platolarda ve eyer noktalarında gezinme yeteneğini geliştirirken zikzak yapma davranışını ve aşmayı azaltır. Sonuç olarak Adam, pratikte sinir ağlarını eğitmek için popüler bir seçim haline geldi.

The Adam Optimizer (DL 21)
The Adam Optimizer (DL 21)
  • 2020.11.05
  • www.youtube.com
Davidson CSC 381: Deep Learning, F'20, F'22