- Katılım
- 2 Ocak 2026
- Mesajlar
- 17
- Tepkime puanı
- 26
- Puan
- 13
Merhaba! Bugün 0 dan yapay sinir ağları oluşturmayı öğreneceğiz, tensorflow vs.. kullanmadan sadece python ve numpy kullanacağız. Kullanacağımız datasetimiz mnist-dataset olacak. Bu datasette el yazısı şeklinde yazılmış sayılarımız var ve bizim amacımız bu görselleri yükleyip hangi sayıya tekabül ettiğini bulan sinir ağını oluşturmaktır.

Bu bir sinir ağı örneğidir. Girdiler input geliyor hücrelere uğruyor ve oradan outputa geçiyor. Bu sinir ağımız 4 katmanlı bir sinir ağıdır. Burada sadece hidden1 ve hidden2 öğrenebilir parametrelere sahiptir diğerleri zaten giriş ve çıkış oluyor. Amacımızda inputumuzu gireceğiz layerlerimizden geçecek outputa çıkacak ve istediğimiz sonuca yakınlığına göre değişiklikler yapacağız.

Bu durumda bir Forward pass ve Backward passimiz var her bir forward pass de çıktıyı bulacağız backward passdede çıktıya göre öğrenebilir parametrelerimizi güncelleyeceğiz. feedback gibi düşünebilir yani bir projede işte sonucu gördük tekrardan değişiklikle en yakın sonuca ulaşma çabası.

Örnek akış şemasıda bunun gibidir. Baştaki değişkenimizi x diye düşünürsek aslında bizim sinir ağımız bir fonksiyon şeklinde yani f(x) olarak çalışıyor çünkü sonuç y çıkıyor.

Burada elimizde küçük bir örnek var, Burdaki modellemede girdimizi sola çıktımızı sağa yazıyoruz. buradaki öğrenebilir parametrelerimiz w1 ve w2 dir. aradada hangi işlemler olacağı var. inputtan başlıyoruz, 10 + -2 geliyor = 8, 8 x 3 = 24 sonucu geliyor.
Aslında buradaki tüm fonksiyonumuz şundan ibaret;
Yani yukarıdaki işlemin fonksiyon hali budur.

Şemamızın böyle olduğunu söylüyoruz, burada bizim inputumuz 784 çünkü fotoğraflarımız 28*28 özellikteydi yani 784 matrisimiz var.

w1 öğrenebilir parametremiz (10,784) bir matrise sahip, w2 öğrenebilir parametremizde (10,10) bir matrise sahip, yani bu durumda aslında şunu söyleyebiliriz, her verimizin matrisi kendinden bir öncekiyle kendi arasında değer alıyor. örnek veriyorum 5 layerli bir durumda layer3 ü varsayarsak, formülümüz


burda birde ReLU fonksiyonumuz 0 dan küçük değerleri 0 a eşitler, 0 dan büyük olan değerleri olduğu gibi bırakır. İlk adımımızı geçtik 2. adıma geliyoruz.

bu sefer gördüğümüz farklılık, ilk durumdaki W1.x yerine W2.H1 Gelmiş olması. yine bununda ReLU’sunu alıyoruz.

Buda burada 3. işlemimizdir. Forward pass işlemi bu kısımda bitti artık backward pass işlemine geçiyoruz ve türev kullanacağız.

Şöyle bir durum olduğunu var sayalım bu bizim loss fonksiyonumuz yani modelin ne kadar iyi çalıştığını belirten bir fonksiyon. Burada bizim lossumuz ne kadar düşükse modelimiz o kadar iyi çalışıyordur.

Evet bu durumdayken asıl amacımız neydi lossu düşürmekti işte lossu nasıl düşüreceğiz sorusunu sorduğumuzdada asıl olayın kendisi olan türev devreye giriyor.

Şimdi bu durumda yükselen grafikte olduğu için noktamız, türevimiz pozitif çıkar ve bizim amacımız aslında tam tersi tarafa götürmekti yani türevin tersini almak. Çünkü yukarı doğru çıkarsak loss artacak aşşağı doğru inmemiz lazım. yani formülde

Burada forward pass’de dümdüz ilerlemiştik, backward passde napıyorduk az önce anlattığımız gibi türevini alma durumu söz konusu.


burada y nin w1 e göre olan türevini bulabilmek için
Formülünü kullanıyoruz, yapay sinir ağları için temel düzeyde bir yazıydı. Umarım anlaşılır olmuştur. İyi okumalar.

Bu bir sinir ağı örneğidir. Girdiler input geliyor hücrelere uğruyor ve oradan outputa geçiyor. Bu sinir ağımız 4 katmanlı bir sinir ağıdır. Burada sadece hidden1 ve hidden2 öğrenebilir parametrelere sahiptir diğerleri zaten giriş ve çıkış oluyor. Amacımızda inputumuzu gireceğiz layerlerimizden geçecek outputa çıkacak ve istediğimiz sonuca yakınlığına göre değişiklikler yapacağız.

Bu durumda bir Forward pass ve Backward passimiz var her bir forward pass de çıktıyı bulacağız backward passdede çıktıya göre öğrenebilir parametrelerimizi güncelleyeceğiz. feedback gibi düşünebilir yani bir projede işte sonucu gördük tekrardan değişiklikle en yakın sonuca ulaşma çabası.

Örnek akış şemasıda bunun gibidir. Baştaki değişkenimizi x diye düşünürsek aslında bizim sinir ağımız bir fonksiyon şeklinde yani f(x) olarak çalışıyor çünkü sonuç y çıkıyor.

Burada elimizde küçük bir örnek var, Burdaki modellemede girdimizi sola çıktımızı sağa yazıyoruz. buradaki öğrenebilir parametrelerimiz w1 ve w2 dir. aradada hangi işlemler olacağı var. inputtan başlıyoruz, 10 + -2 geliyor = 8, 8 x 3 = 24 sonucu geliyor.
Aslında buradaki tüm fonksiyonumuz şundan ibaret;
(f(x) + w1). w2 = y
Yani yukarıdaki işlemin fonksiyon hali budur.

Şemamızın böyle olduğunu söylüyoruz, burada bizim inputumuz 784 çünkü fotoğraflarımız 28*28 özellikteydi yani 784 matrisimiz var.

w1 öğrenebilir parametremiz (10,784) bir matrise sahip, w2 öğrenebilir parametremizde (10,10) bir matrise sahip, yani bu durumda aslında şunu söyleyebiliriz, her verimizin matrisi kendinden bir öncekiyle kendi arasında değer alıyor. örnek veriyorum 5 layerli bir durumda layer3 ü varsayarsak, formülümüz
y cıktımız yani outputumuzda bu durumda,(layer3-1, layer3) durumunu alıyor; (layerx-1, layerx) de diyebiliriz.
w1 durumumuzda matrisi (784, 10) durumundaydı yani 7840 tane değer alabilir, bu durumda w2 değerimiz (10,10) yani 100, y değerimizde (10,1) 10 değer alır. Sadece öğrenebilir parametrelerimize baktığımızda 7840+100 = 7940 adet öğrenebilir parametremiz var.(layer4-1, layer4) yani (layer3,layer4) = (10,1) durumunu alır.


burda birde ReLU fonksiyonumuz 0 dan küçük değerleri 0 a eşitler, 0 dan büyük olan değerleri olduğu gibi bırakır. İlk adımımızı geçtik 2. adıma geliyoruz.

bu sefer gördüğümüz farklılık, ilk durumdaki W1.x yerine W2.H1 Gelmiş olması. yine bununda ReLU’sunu alıyoruz.

Buda burada 3. işlemimizdir. Forward pass işlemi bu kısımda bitti artık backward pass işlemine geçiyoruz ve türev kullanacağız.

Şöyle bir durum olduğunu var sayalım bu bizim loss fonksiyonumuz yani modelin ne kadar iyi çalıştığını belirten bir fonksiyon. Burada bizim lossumuz ne kadar düşükse modelimiz o kadar iyi çalışıyordur.

Evet bu durumdayken asıl amacımız neydi lossu düşürmekti işte lossu nasıl düşüreceğiz sorusunu sorduğumuzdada asıl olayın kendisi olan türev devreye giriyor.

Şimdi bu durumda yükselen grafikte olduğu için noktamız, türevimiz pozitif çıkar ve bizim amacımız aslında tam tersi tarafa götürmekti yani türevin tersini almak. Çünkü yukarı doğru çıkarsak loss artacak aşşağı doğru inmemiz lazım. yani formülde
Şimdi bu olay için başta verdiğimiz küçük örnek üzerinden gideceğiz.w - türev = w

Burada forward pass’de dümdüz ilerlemiştik, backward passde napıyorduk az önce anlattığımız gibi türevini alma durumu söz konusu.


burada y nin w1 e göre olan türevini bulabilmek için
dy/dh . dh/dw1
Formülünü kullanıyoruz, yapay sinir ağları için temel düzeyde bir yazıydı. Umarım anlaşılır olmuştur. İyi okumalar.