Jump to content
  • entries
    6
  • comments
    0
  • views
    385

YSA - Tek Bir Nöronun Kodlanması


Doğuhan ELMA

54 views

Diyelim ki tek bir nöronumuz var ve bu nöronun üç girişi var. Çoğu durumda olduğu gibi, sinir ağlarında parametreleri başlattığınızda, ağımızda ağırlıklar rastgele başlatılacak ve önyargılar başlangıç için sıfır olarak ayarlanacaktır. Bunu neden yaptığımız daha sonra ortaya çıkacak. Girdi ya gerçek eğitim verileri ya da sinir ağındaki önceki katmandaki nöronların çıktıları olacaktır. Şimdilik giriş olarak başlamak üzere değerleri oluşturacağız:

inputs = [1, 2, 3]

Her girdinin kendisiyle ilişkilendirilmiş bir ağırlığa da ihtiyacı vardır. Girdiler, istenen çıktıları elde etmek için modele aktardığımız verilerdir; ağırlıklar ise daha sonra bu sonuçları elde etmek için ayarlayacağımız parametrelerdir. Ağırlıklar, eğitim sırasında değişen önyargıların yanı sıra, eğitim aşamasında modelin içinde değişen değer türlerinden biridir. Ağırlıklar ve önyargı değerleri "eğitimli" olanlardır ve bir modelin gerçekten çalışmasını (ya da çalışmamasını) sağlayan şeylerdir. Şimdilik ağırlıkları telafi ederek başlayacağız. Diyelim ki 0 endeksindeki 1 olan ilk girdinin ağırlığı 0,2, ikinci girdinin ağırlığı 0,8 ve üçüncü girdinin ağırlığı -0,5. Giriş ve ağırlık listelerimiz artık şöyle olmalıdır:

inputs = [1, 2, 3]
weights = [0.2, 0.8, -0.5]

Daha sonra önyargıya ihtiyacımız var. Şu anda üç girişi olan tek bir nöronu modelliyoruz. Tek bir nöronu modellediğimiz için, nöron başına yalnızca bir önyargı değeri olduğundan yalnızca bir önyargıya sahibiz. Önyargı, ayarlanabilir ek bir değerdir ancak ağırlıkların aksine herhangi bir girdiyle ilişkili değildir. Bu örnekte önyargı olarak rastgele 2 değerini seçeceğiz:

inputs = [1, 2, 3]
weights = [0.2, 0.8, -0.5]
bias = 2

Bu nöron, her girdiyi o girdinin ağırlığıyla çarparak toplar ve ardından önyargıyı ekler. Nöronun yaptığı tek şey, girdilerin kesirlerini almaktır; burada bu kesirler (ağırlıklar) ayarlanabilir parametrelerdir ve başka bir ayarlanabilir parametre olan önyargıyı ekler ve ardından sonucu verir. Çıktımız bu noktaya kadar şu şekilde hesaplanacaktır:

output = (inputs[0]*weights[0] +
inputs[1]*weights[1] +
inputs[2]*weights[2] + bias)
print(output)
>>>
2.3

1.png

 

Az önce gösterdiğimiz 3 giriş yerine 4 girişimiz varsa neyi değiştirmemiz gerekebilir? Ek girdinin yanına, bu yeni girdinin çarpılacağı ilgili ağırlığı da eklememiz gerekiyor. Bu yeni ağırlığa da bir değer biçeceğiz. Bu verinin kodu şöyle olabilir:

inputs = [1.0, 2.0, 3.0, 2.5]
weights = [0.2, 0.8, -0.5, 1.0]
bias = 2.0

1.png

import numpy as np

inputs = [1.0, 2.0, 3.0, 2.5]
weights = [0.2, 0.8, -0.5, 1.0]
bias = 2.0

output = np.dot(inputs,weights) + bias

print(output)
4.8

Burada iki vektörü çarpımı kullanılmıştır. İlk örnekteki çarpım ve toplamları numpy dot fonksiyonu yapabilmektedir. 

0 Comments


Recommended Comments

There are no comments to display.

Guest
Add a comment...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...