• Sonuç bulunamadı

2. MALZEME VE YÖNTEM

2.3. Yapay Sinir Ağı Yapısı

YSA bu çalışmanın ana temasını ve altyapısını oluşturmaktadır. Daha önce de ifade edildiği gibi, YSA tahmin değeri üretebilen bir araç olarak görülebilir. Özellikle lineer olmayan ilişkileri modellemede yardımcı olmaktadır. Yazılım efor tahmini düzleminde, eldeki parametrelere göre basit olmayan bir ilişki ağı ile tahmin değeri üretme noktasında faydalıdır.

İşlem katmanı, ilgili şekildeki gösterimden de anlaşılabileceği gibi, temelde YSA, K- Means ve bu yapılar arasındaki bağlantıyı içermektedir. Bir başka ifadeyle sistemin çalışan yönü, iş yükünü karşılayan bölümüdür. İşlem katmanına girdi olarak verilen eğitim ve test kümeleri, YSA için de girdi olmakta ve bu değerlere göre hesaplamalar yapılmaktadır.

YSA ve çeşitleri konusuna referansla bu çalışmada ileri beslemeli ve geri yayımlı algoritmasını kullanan çeşit benimsenmiştir. YSA 3 katmandan oluşturulmuştur ve katmanlarda herhangi bir bias nöron bulunmamaktadır. İlk katman, sistemin genel yapısı gibi, girdi katmanıdır. Bu katmanda COCOMO parametreleri sayısı kadar nöron, ek olarak LOC değerini karşılayacak bir nöron bulundurur. YSA içerisinde tek gizli katman vardır ve bu katmanda da 5 nöron bulunmaktadır. Girdi katmanındaki her bir nöron, tüm gizli katman nöronlarına bağlıdır. Yani girdi ve gizli katman nöronları kartezyen olarak bağlanmıştır. Ancak bu bağlantı, YSA formuna

31

uygun şekilde, girdi katmanından çıktı katmanı yönünedir yani tek yönlü bir bağlantı vardır. Çıktı katmanında ise tek nöron vardır ve bu nöron efor tahmin değerini ifade eder. Gizli katmandaki tüm nöronlar, 5 nöron, bu katmandaki tek nörona bağlanmıştır. Ayrıca, dış bir girdi değeri, döngüsel nöron bağlantısı ya da katman harici bir bağlantı yoktur. Düz bir ilişki mevcuttur. Şekil 2.3 genel yapıyı göstermektedir. Burada gösterim kolaylığı için girdi katmanında sadece birkaç nöron eklenmiştir. Nöron sayısı, parametre sayısı kadardır. Yine okların yönü basit bir gösterim ifade eder ve sadece belli nöronlar üzerinde, çizim karışıklığı olmaması için, belli nöronlarla bağlanmıştır. Bağlantı her bir katmanda bir önceki katmanladır. Nöronlar üzerinde ağırlık değerleri, katman bağlantıları, aktivasyon fonksiyonu ve hata değerleri vardır. Bu değerler ileride izah edilmiş, şekil içerisine eklenmemiştir.

Şekil 2.3. YSA Yapısının Gösterimi

Girdi katmanındaki sayı, doğrudan doğruya COCOMO parametreleri ile belirlenmiştir. Sistem içerisinde herhangi bir özellik indirgeme işlemi uygulanmamıştır. Bu durumda tüm COCOMO nitelik değerleri sistemde girdi olarak bulunmaktadır. Ek olarak bu çalışmada LOC değeri de girdi olarak dâhil edilmiştir. COCOMO hesaplamalarında LOC değeri kıymet ifade eden, sonuca doğrudan etkisi olan bir değerdir. Bu nedenle bu çalışmada da bir girdi olarak dâhil edilmiştir.

Gizli katmanın sayısı, yani YSA içerisinde kaç gizli katman olacağı noktasında önceki çalışmalar referans alınmıştır [5,8,9]. Bu çalışmalarda tek gizli katman

32

bulunmaktadır. Katmanın sayısının tahmin değeri üretmede yeterli olduğu belirtilmiştir. Katmandaki nöron sayısı da benzer şekilde önceki çalışmaların ışığında ve bazı ön denemeler neticesinde belirlenmiştir[5]. 5 adet nöron, hem özellik sayısı hem de eğitim kümesindeki eleman sayısı göz önünde bulundurularak belirlenmiştir. Her bir gizli katman nöronunda girdi katmanındaki eleman sayısını karşılayacak şekilde ağırlık değerleri vardır. Katmandaki nöronlar birbirleri ile bağlı değildir. Girdi katmanından girdi değerlerini alır ve ağırlıklara göre işleyerek çıktı katmanına iletir.

Çıktı katmanında tek nöron bulunmaktadır. Bu nöronun girdi değerleri, gizli katmandaki nöronlardan gelen ağırlıklandırılmış hesaplama değerleridir. Toplam işlemi sonucunda efor tahmin değeri ortaya çıkmaktadır. Bu değer sistemdeki en önemli sonuç değerlerindendir çünkü bu değer hem tahmin anlamını ifade eder hem de bu tahmine göre üst ve alt limitler bulunur. Eğitim ve test kümeleri normalize edilmiş olduğundan, sonuç değeri de normalizasyon formuna uygun olarak 0 ve 1 aralığında bir sayı olacaktır.

YSA nöronları içerisindeki ağırlık değerleri -1 ve 1 aralığındaki rastgele değerlere göre atanmıştır. Tüm ağ öncelikle bir başlangıç işleminden geçirilmiş, ağırlıklar verilmiştir. Aktivasyon fonksiyonu olarak Sigmoid fonksiyonu tercih edilmiştir. Bu tercih temelde diğer çalışmalar baz alınarak yapılmıştır; ilgili fonksiyonun mevcut veri yapısına uygun olduğu ifade edilebilir. Bununla beraber, kullanıcıya ilgili katmanlarda hangi fonksiyonun kullanılacağı konusunda bir liste içerisinden seçim yapma olanağı da sağlanmıştır. Sigmoid tercihine ek olarak, çalışmalar sırasında olası alternatif fonksiyonlar da denenmiş ve bu seçimin mevcut veri kümeleri için en uygun olduğu şeklinde, önceki çalışmalardan da yola çıkılarak karar kılınmıştır[5]. YSA ve nöron veri yapısı, basitçe bir nesneler ağı şeklindedir. Burada her bir nöron için, ilgili katmanın ihtiyacına göre, ağırlık değeri, nöron değeri, hata oranı ve aktivasyon fonksiyonu bulunur. Ek olarak, her bir nöron için bağlı olacağı diğer katman nöron listesi vardır.

YSA ileri beslemeli, geri yayımlı olarak çalışır. Bu durumda eğitim kümesi için her bir döngüde önce bir sonuç değeri bulunur sonra da bu sonuç değeri ile gerçek değer arasındaki fark ağa geri yansıtılır. Ağın eğitim aşamasında bu durum geçerlidir.

33

Ancak, test aşamasında sadece ileri yönlü bir akış gerçekleştirilmiştir. Buradaki tercihin sebebi, her bir değerin ağ içerisindeki ürettiği sonucu ayrı ayrı gözlemleyebilme isteğidir. Eğer geri yayılım gerçekleştirilecek olursa, her bir test satırı için ağ yeniden öğrenme işlemini yapacak ve muhtemelen bir sonraki satır için daha farklı bir sonuç üretecektir. Sistemin daha sağlıklı değerlendirilmesi amacıyla test aşamasında bir öğrenme işlemi yoktur.

Benzer Belgeler