1.2 Sinir Ağı Mimarisi

Ayşe Nur Türkaslan
9 min readJan 24, 2023

The Input Layer (Giriş Katmanı)

Önce vektör katmanıyla başlayalım. Vektör, sayısal değerlerin sıralı bir listesidir.

Derin öğrenmeye giriş, genellikle sayısal değerlerin bir vektörüdür. Bir vektör bir veya daha fazla değerden oluşan bir demet olarak ayarlanabilir. Vektörler genelde NumPy dizisi kullanılarak tanımlanır. Tahminler ve eğitim için kullanılan özellik değişkenlerini ve bağımsız değişkenleri temsil eder. Gerçek dünyadan temin edilebilen girdi veri setleri makine öğrenimi için örnekler ve özellikler içerir

Örnek, gerçek dünya örneğinin bir örneğidir. Bir veritabanındaki kayıtlara eşdeğerdir. Özellikler, örnekteki bireysel niteliklerdir. Örnekte bir çalışan veri setimiz var. Her çalışan kaydı bir örneği temsil eder. Yaş, maaş ve hizmet gibi bireysel özellikler olarak kabul edilir. Metin verileri için her belge bir örnektir ve sayısal gösterimi onun özellikleri haline gelir. Görüntüler için her görüntü bir örnektir ve piksel gösterimi onun özellikleri olur. Normal makine öğrenimine benzer şekilde giriş verilerinin önceden işlenmesi gerekir ve bir sinir ağına beslenmeden önce uygun sayısal değerlere dönüştürülür.

İşte kullanılan bazı ön işleme teknikleri.

Input verileri için genellikle değerleri normalleştirmek için bunları ortalar ve ölçeklendiriririz. Kategorik değişkenler için integer encoding ya da one hot encoding uyguluyoruz.

Embedings, derin öğrenme dünyasında daha popüşer hale geliyor. Görüntüler piksellerle temsil edilir. Bu liste hiçbir şekilde ayrıntılı değildir. Verileri derin öğrenmeye hazırlamak için uygulanan bir dizi gelişmiş ön işleme tekniği vardır. Bu çalışan verilerin nasıl önceden işlenebileceğinin bir örneğidir.

Burada yaş, maaş ve hizmet gibi her bir özelliği ayrı özellikler x1,x2,x3 olarak temsil ediyoruz. Standart aralıklara normalleştirmek için değerleri ortalayacak ve ölçeklendireceğiz. İsteğe bağlı olarak bunları her örneği bir sütun örneği olarak temsil edecek şekilde değiştireceğiz.

Hidden Layers(Gizli Katmanlar)

Bir sinir ağındaki hidden layers, bilginin edinildiği ve kullanıldığı beyni oluşturur.

Bir sinir ağı bir veya daha fazla gizli katmana sahip olabilir.

Katman sayısı ne kadar fazlaysa ağ o kadar derindir.

Her hidden layers bir veya daha fazla düğüme sahip olabilir.

Tipik olarak düğüm sayısı 2 güç aralığında yapılandırılır. N örnek sayımlar 8,16, 32, 64, 128 vb. olabilir.

Bir sinir ağı mimarisi, o katmandaki katman ve düğüm sayısı ile tanımlanır.

Girişler ve çıkışlar nasıl bağlanır ?

Önce katmandaki her bir düğümün çıktısı sonraki katmandaki her düğüme iletilir.

Gösterilen örnekte, ilk hidden layers da aktivasyon fonksiyonlarından dört çıktı üreten dört düğüm vardır. İkinci katmanda beş düğüm vardır.Birinci katmandan gelen 4 çıktı, ikinci katmandaki beş düğümün her birine iletilir.

Bir ağdaki doğru sayıda katman ve düğüm olduğunu nasıl belirleriz ?

Sinir ağındaki her düğüm, özellik değişkenleri ve hedef değişkenler arasındaki ilişki hakkında bir şeyler öğrenir. Bu bilgi, ağırlıklarında ve biaslarda ısrarlıdırlar. Daha fazla düğüm ve katman olduğğunda genellikle daha iyi doğruluktadır.(Bunun her zaman doğru olmadığını unutmayın.)

Daha fazla katman, hem eğitim hem de çıkarım için daha fazla hesaplama kaynağı ve zaman anlamına gelir.

Belirli bir problem olduğı için doğru mimari deneylerle belirlenir. Genel bir uygulama olarak, küçük sayılarla başlayıp ve kabul edilebilir doğruluk seviyeleri elde edene kadar eklemeye devam etmeliyiz.

Weights and Biases,

Derin öğrenme algoritmalarının temelini oluşturur. Belirli bir sinir ağı mimarisi için nasıl yapılandırırılırlar ?

Weights ve Biases, bir sinir ağındaki eğitilebilir parametrelerdir. Eğitim süresince, bu weights ve biases, sayısal değerlerin koleksiyonundan başka bir şey değildir. Her düğüm için her girdi, kendisiyle ilişkili bir ağa sahip olacaktır. Katman düzeyinde bu weights ve biases RA’lar olarak ele alınır.

Örnek ağ için ağırlıkların sayısını ve yanlılık değerlerini hesaplayalım .

İlk gizli katman için üç giriş ve dört katman vardır.

Her düğüm daha sonra üç ağırlık değerine sahip olacaktır, bu nedenle dört katmanın tümü için 12 ağırlık olacaktır.

Düğüm başına bir sapma değeri vardır, dolayısıyla o katman için toplam dört sapma değeri olacaktır.

Benzer bir kesirde, kalan gizli katmanları ve çıktı katmanını hesaplayabiliriz.

Bu ağın toplam 53 ağırlığı ve 14 bias değeri vardır. Ağın toplam 67 parametresi vardır.

Bir Sinir Ağı eğitirken , gizli katman için hesaplama birlikte yapılır, ve optimizasyon nedenleriyle her düğüm için değil. Her katman için weights ve biases matris olarak korunur. Girdi de matris olarak alınır ve çıktı matris olarak üretilir. Bu örnek , dört girişi ve beş düğümü olan gizli katman iki için hesaplamayı göstermektedir . Dört girdi, birer dörtlük bir metrik olarak alınır. Katmandaki tüm düğümlerin ağırlıkları dörde beş matris olarak tutulur. Bias, katmandaki beş düğümü kapsayan bire beş bir matristir . Girdi ve ağırlık matrisleri arasında birer beşer çıktı elde etmek için matris çarpımı yapılır, bu, beşte bir çıktı üretmek için sapma metriklerine eklenir . Çıktı matrisi daha sonra bir sonraki katmana girdi olarak iletilir. Derin öğrenme uygulamaları , yapılandırılmış girişlere ve ayarlara dayalı olarak perde arkasındaki hesaplama çalışmalarını halleder .

Aktivastion Functions

Bir Aktivasyon işlevi , sinir ağındaki bir düğümün çıktısını oluşturmada önemli bir rol oynar .

Bir Aktivasyon işlevi, düğümün matris çıktısını alır ve düğümün bilgilerini bir sonraki katmana yayıp yaymayacağını ve nasıl yayacağını belirler .

Aktivasyon işlevleri , gürültüyü azaltmak ve ayrıca matris çarpımları nedeniyle oldukça büyük olabilen çıktıyı normalleştirmek için filtre görevi görür . Çıktıyı doğrusal olmayan(nonlinear) bir değere dönüştürür. Bir sinir ağının verilerdeki belirli kalıpları öğrenmesine yardımcı olmada kritik bir adım olarak hizmet ederler .

İşte bazılarının listesi en popüler aktivasyon fonksiyonlarından biridir.

Bu işlevlerin her birinin belirli avantajları, eksiklikleri ve uygulamaları vardır. Bir çıktı matrisi alabilir ve aynı boyutta başka bir çıktı matrisi sunabilirler . Bir sigmoid işlevi, giriş değerlerine bağlı olarak sıfırdan bire kadar bir çıktı verir. Sıfır değerine sahip olduğunda, öğrenmelerini bir sonraki katmana geçirmediği anlamına gelir . Tanh işlevi, çıktıyı eksi bir ile artı bir aralığında normalleştirir. Doğrultulmuş bir doğrusal birim veya ReLU, çıktı negatifse sıfır üretir. Aksi takdirde, aynı girişi kelimesi kelimesine yeniden üretir. Sınıflandırma sorunları olması durumunda bir Softmax etkinleştirme işlevi kullanılır . Sonuçtaki olası sınıfların her biri için bir olasılık vektörü üretir . Olasılıkların toplamı bire eşit olacaktır.

Tahmin için en yüksek olasılığa sahip sınıf dikkate alınacaktır.

The Output Layer

- Çıktı katmanı, sinir ağındaki istenen tahminlerin elde edildiği son katmandır.

Bir sinir ağında istenen nihai tahmini üreten bir çıktı katmanı vardır.

Nihai çıktı türetilmeden önce uygulanan kendi ağırlıkları ve önyargıları vardır.

Çıktı katmanı için aktivasyon fonksiyonu , probleme bağlı olarak gizli katmanlardan farklı olabilir .

Örneğin, bir sınıflandırma probleminde son sınıfları türetmek için Softmax aktivasyonu kullanılır .

Çıktı, onları işle ilgili değerlere dönüştürmek için daha fazla son işleme gerektirebilecek bir değerler vektörüdür .

Örneğin, bir sınıflandırma probleminde çıktı, ilgili işletme sınıflarına eşlenmesi gereken bir dizi olasılıktır .

Çıktı katmanındaki nota sayısını nasıl belirleriz ?

Soruna bağlı. İkili sınıflandırma probleminde, pozitif sonucun olasılığını sağlayan sadece 1 not vardır . n-sınıfı sınıflandırması durumunda , her biri belirli bir sınıf için olasılığı üreten n not vardır. Regresyon için çıktıyı üreten sadece 1 not vardır. Bu şekilde, çözülmekte olan problemin türüne göre not sayısı değişebilir . Bu , sinir ağının yapısı hakkındaki tartışmamızı tamamlar .

Measuring accuracy and error

Loss ve cost funciton bir dizi örnekteki ortalama hatayı ölçmek için kullanılır.

Not: Loss function: tek bir örnek için tahmin hatasını ölçer

Cost Function: bir dizi örnekteki hatayı ölçer.

Ortalama Kare Hatası veya MSE , regresyon sorunları durumunda hataları ölçer. Tahmin edici ile gerçek değerler arasındaki farkı hesaplar, bunların karesini alır ve tüm örneklerde toplar ve son olarak örnek sayısına böler.

Kök Ortalama Kare Hatası veya RMSE daha popülerdir, hedef değişkenlerle aynı ölçekte hata değerleri sağladığı için. Bu yine regresyon problemleri için kullanılır.

İkili sınıflandırma için hatayı hesaplamak için İkili Çapraz Entropi kullanıyoruz.

Çok sınıflı sınıflandırma problemleri için Kategorik Çapraz Entropi adı verilen benzer bir fonksiyon mevcuttur.

Peki maliyet fonksiyonu ile doğruluğu nasıl ölçeriz?

İleri yayılım için YSA aracılığıyla bir dizi örnek göndeririz ve sonuçları tahmin ederiz. Tahmin hatasını tahmin ediyoruz Bir maliyet fonksiyonu kullanılarak tahmin edilen sonuç ile beklenen sonuç arasındaki Daha sonra elde edilen hataya dayalı olarak modeldeki ağırlıkları ve önyargıları ayarlamak için geriye yayılımı kullanıyoruz.

Geri yayılım(Back Propagation)

Bu bölümde konuşma metni satırlarını seçmek, videodaki zaman damgasına gidecek

- (Eğitimci) İleri yayılımdan tahmin hatasını tahmin ettikten sonra , ağırlıkları ve önyargıları ayarlamak için geri yayılıma gitmemiz gerekiyor . Geri yayılımın amacı nedir? İleri yayılım sırasında tüm ağa dayalı genel bir hata bulduk . Sinir ağındaki her düğüm bu genel hataya katkıda bulunur. Ve düğümlerin katkısı, sahip olduğu ağırlıklar ve önyargılar için değerler tarafından belirlenir. Farklı düğümler , ağırlıklarının ve önyargılarının , özellik ve hedef değişkenler arasındaki ilişkiyi ne kadar iyi modellediğine bağlı olarak farklı şekilde katkıda bulunur.

Ağı ayarlarken, Hata katkısını o düğüm tarafından azaltmak için her bir düğüm için ağırlıkların ve önyargıların ayarlanması gerekir . Geri yayılım nasıl çalışır? İleri yayılım olarak ters yönde çalışır . Çıktı katmanından başlıyoruz. Genel hataya dayalı olarak bu katman için bir delta değeri hesaplayacağız . Bu delta değeri, daha sonra katmandaki tüm ağırlıklara ve sapmalara uygulanan bir ayarlamadır . Bu, yeni ağırlık ve önyargı değerleriyle sonuçlanır. Ardından , mevcut katmandaki yeni değerlere dayalı olarak önceki katman için yeni bir delta değeri türetiyoruz , ardından ağırlıklara ve önyargılara uygulanıyor. önceki katmanda. Deltaları hesaplama , ağırlıklara ve önyargılara uygulama ve ardından geri yayılım süreci, biz girdi katmanına ulaşana kadar devam eder. Bu görüntü, ağ örneği için aynı geri yayılım sürecini göstermektedir . D1'den D4'e kadar olan deltalar her katmanda hesaplanır ve ağırlıklarına ve sapmalarına uygulanır. Ayrıca önceki katmana yayılırlar ve deltalarını etkilerler. Bu hesaplamaların arkasındaki matematikle ilgileniyorsanız, ek okumalar öneririm. Yine, derin öğrenme kitaplıkları bu hesaplamalarla ilgilenir. Geri yayılım sürecinin sonunda, genel tahmin hatasını azaltacak güncellenmiş bir ağırlık ve önyargı setimiz olacak. Hatayı azaltmaya ve doğruluğu artırmaya nasıl devam edeceğiz?

Gradient Descent(Dereceli alçalma)

  • Gradyan iniş, hatayı azaltmak ve istenen modele yaklaşmak için ileri ve geri yayılımların tekrarlanması işlemidir . İleri yayılımın bir çalışmasını hatırlamak , sonuçların weight ve biases dayalı olarak tahmin edilmesine neden olur. Bir maliyet fonksiyonu kullanarak hatayı hesaplıyoruz. Daha sonra weight ve biases yaymak, düzenlemek ve ayarlamak için geri yayılımı kullanırız . Bu bir öğrenme geçişidir. weight ve biases düzeldikçe ve hata azaldıkça bu geçişi tekrar tekrar tekrar etmemiz gerekiyor. Buna gradyan inişi denir. Gradyan inişte, tekrarlıyoruz ileriye doğru yayılma, tahmin hatası, geriye doğru yayılma ve weight ve biases ayarlama öğrenme süreci.

Bunu yaptığımızda , maliyet fonksiyonu tarafından tahmin edilen toplam hata salınım yapacak ve sıfıra yaklaşmaya başlayacaktır. Bireysel notların hata katkısını en aza indirecek hatayı ve hesaplama deltalarını ölçmeye devam ediyoruz . Hatanın üretmeyi durduracağı durumlar vardır ve bunu kontrol etmek için ek hiperparametreler vardır. Öğrenme sürecini hızlandırmak veya yavaşlatmak için hiperparametreler de vardır. Onları takip kursunda tartışacağız, derin öğrenme modeli optimizasyonu ve ayarlama.

Batches and Epochs

İki farklı gradyan inişi vardır.

Validation and Evaluation

Doğrulama ve test

Modeller oluştururken, örneklem dışı hatayı ölçmek için bunları bağımsız veri kümelerine karşı doğrulamamız ve test etmemiz gerekir . Girdi hazırlama sürecinde, genellikle bu amaç için doğrulama ve test veri setlerini izole ederiz .

Doğrulama(validation) nedir? Gerçekleştirirken, öğrenirken ve model geliştirirken, sinir ağının eğitim örnekleri için sağladığı tahminleri gerçek değerleri ve ölçüm hatalarıyla karşılaştırıyoruz. Ancak bu bir örneklem hatasıdır ve modelin aynısını bağımsız veri kümelerine karşı gerçekleştireceğinin garantisi yoktur . Yani her çağ tamamlandıktan sonra ve ağırlıklar ve önyargılar güncellendi, ayrıca ağı doğrulama veri setini tahmin etmek için kullanacağız. Doğrulama veri seti için doğruluğu ve kaybı ölçeceğiz ve ayrıca gözlemlenen örnek hatalarından önemli ölçüde sapmadığından emin olmak için aynısını araştıracağız . Modelde ince ayar yapılabilir ve doğrulama veri setinde görülen sonuçlara dayalı olarak öğrenme süreci tekrarlanabilir . Model oluşturmanın son adımı değerlendirmedir. Tüm ince ayar tamamlandıktan ve nihai model elde edildikten sonra , modeli değerlendirmek için test veri seti kullanılır. Bu, sonunda yalnızca bir kez yapılır. Değerlendirme sonuçları daha sonra modelin performansını nihai doğruluk ve hata oranları açısından ölçmek için kullanılır.

ANN Models

Parameters

  • Weights
  • Biases

Hyperparameters

--

--