1. GİRİŞ
Günümüzde tarım üzerinde birçok teknolojik çalışmalar yapılmıştır. Bunların bir çoğu iş gücünü azaltma, kaliteli ürün elde etmek ve zamandan tasarruf etmek için yapılmaktadır. Özellikle bu alanda insansız olarak yapılan birçok gelişme ortaya çıkmıştır. Artık kendi kendini eğitebilen sistemler ile birçok iş gücü azaltılmış ve daha hızlı yapılmaya başlanmıştır[1]. İnsanların elinde devasa bilgi yığınları olup, bu bilgiyi kullanabilen, sınıflayabilen, faydalı bilgiye çevirebilen toplumlar bir adım öne çıkmakta, geleceği şekillendirmektedir**.** Bu alanda kullanılan teknoloji yapay zeka teknolojisidir. Bu teknolojide kullanılan en önde gelen metodlardan birisi ise Yapay Sinir Ağlarıdır (YSA). Yapay sinir ağları (YSA), insan beyninin öğrenme yolunu taklit ederek beynin öğrenme, hatırlama, genelleme yapma yolu ile topladığı verilerden yeni veri üretebilme gibi temel işlevlerin gerçekleştirildiği bilgisayar yazılımlarıdır[2]. YSA’lar sınıflandırma, görüntü işleme, süreç modelleme, geleceği tahmin algoritmalarında, kontrol mekanizmalarında vb. birçok alanda yaygın olarak kullanılmaktadır[3].
Bu teknoloji sayesinde bir kamera vb. cihazdan alınan örüntüler Yapay Sinir Ağları ile tanıtılmaktadır. Daha sonra bu örüntülerin belli bir kısmı, genelde %75-80 arasında eğitilir. Kalan %20-25’lik kısmı ise Test ve Validation kısmına ayrılır. Bu aşamadan sonraki test sonucuna bakılarak algoritmanın ne kadar başarılı olduğuna karar verilir. Bu çalışmada bir arazideki buğday sınıflandırması yapılmış olup; çalışmada geriye yayılım algoritması tercih edilmiştir. Bunun nedeni olarak işlem yükünü zaman karşısında hafifletmek amaçlanmıştır. Bu işlemler MATLAB üzerinden ilk önce hazır YSA araçları ile daha sonrasında belirlenen algoritmayla yazılmış program ile gerçekleştirilmiştir.
2. Literatür Araştırması
Buğday sınıflandırması için birçok çalışma yapılmış ve bu çalışmalarda birbirinden farklı birçok metod/metodlar kullanılmıştır. Bunlardan bazıları aşağıdaki gibidir.
Ahmet BABALIK, Yapay Sinir Ağları ile buğday tanelerinin kalite tespiti üzerine bir çalışma yapmıştır. Çalışmasında buğday partilerindeki yabancı maddelerin, diğer hububat tanelerinin, dönmüş tanelerin ve süne emgili tanelerin sağlam tanelerden ayıklanmasında kullanılabilecek, gerçek zamanda çalışabilecek bir sistem geliştirilmesi amaçlamıştır. Önerdiği sistemde, tanelerin etkin olarak tanınabilmesi için buğdayın ışık geçirgenliği özelliği kullanılmıştır. Işık kaynağından yayılan ışığın buğday tanesinden geçen kısmı analog olarak algılanıp yapay sinir ağları kullanılarak işlenmiştir. Böylece önerilen sistemin kullanılabilirliği irdelenmiştir [4].
Alper TANER, Ali TEKGÜLER ve Hüseyin SAUK Yapay sinir ağları ile makarnalık buğday çeşitlerinin sınıflandırılması üzerine bir çalışma gerçekleştirmiştir. Çalışmalarında makarnalık buğdaylara ait fiziksel özellikler belirlenmiş ve YSA teknikleri kullanılmışlardır. Ülkemizde yetiştirilmekte olan on bir adet makarnalık buğday çeşidinin fiziksel özelliklerinden olan bin dane ağırlığı, geometrik ortalama çap, küresellik, dane hacmi, yüzey alanı, hacim ağırlığı, özgül ağırlık, porozite ve renk belirlemiş ve bu özelliklerin çeşitlere göre istatistiksel olarak farklı olduğu tespit etmişlerdir. Oluşturdukları ysa modelinde ağın yapısı, 11 giriş, 2 ara ve 1 çıkış katmanı olarak dizayn edilmiştir. Giriş parametresi olarak bin dane ağırlığı, geometrik ortalama çap, küresellik, dane hacmi, yüzey alanı, hacim ağırlığı, özgül ağırlık, porozite ve renk, çıkış parametresi olarak ise çeşitler kullanılmışlar. Bu çalışma sonucunda ortalama hata değeri %0.009 olarak bulmuşlardır [5].
Müslüm ÖZTÜRK ve Turan PAKSOY Buğday Tipi Sınıflandırma için Yapay Sinir Ağı Uygulaması tasarlamışlardır. Bu çalışmada, yapay sinir ağlarının eğitiminde kullanılmak üzere .NET ortamında C# programlama dili kullanılarak görsel arayüze sahip bir eğitim yazılımı geliştirilmiştir. Gerçekleştirilen yapay sinir ağı sınıflandırma yazılımı buğday türü sınıflandırılması örneğine uygulanmış ve başarılı sonuçlar alınmıştır. Ayrıca çalışmada, yapay sinir ağları konusunun önemine değinilmiştir. Yapay sinir ağlarının eğitilmesi aşamasında kullanılan mevcut yazılımların kullanım karmaşıklığının ve zorluğunun önüne geçmek için geliştirilen yazılımda buğday türlerinin sınıflandırılmasında geriye yayılım (backprogration) algoritmasından yararlanılmıştır. Ayrıca geliştirilen bu yazılım yapay sinir ağları ile çözülebilecek uygulamalarda ve diğer bütün çalışmalarda kullanılabilecek esneklik ve yapıda tasarlanmıştır [6].
Abbas MASOUMI Görüntü işleme tekniğiile ekmeklik buğday çeşidinde kaliteye esas bazı özellikleri belirlemiştir. Çalışmasında ekmeklik buğday çeşidinin bazı kalite kriterlerinin; kırık tane, yabancı ot (yabani hardal ve yabani yulaf), ve diğer hububat (mısır ve arpa), “MATLAB” programı yardımıyla görüntü işleme ve yapay sinir ağı (YSA) tekniklerini kullanarak belirlemiştir. Bu amaçla, farklı oranlarda yabancı madde, kırık tane ve diğer hububatların bulunduğu bir birinden ayrı olarak yerleştirilmiş 100 taneden oluşan buğday örneklerinin görüntüleri bir dijital kamera vasıtasıyla 3 farklı arka plan ve 3 farklı ışık ortamında alınarak, Matlab programında yapay sinir ağları yöntemiyle değerlendirmiştir [7].
Gabriele-Maria LOZITO ve arkadaşları yaptıkları çalışmada FPGA mimarisi üzerindeki yapay sinir ağları uygulamalarında kayan nokta hızlandırıcılar (floating point accelerators) kullanarak farklı mimari çözümlerin analizini yapmışlardır. Bu çözümlerin FPGA kaynak kullanımı ve elde edilen performanslarının kıyaslanması yapılmıştır [8].
Tuncay Soylu, gerçek zamanlı olarak yüksek doğrulukta ve hızlarda trafik sınıflandırma yapabilmek için donanım üzerinde gerçeklenen makine öğrenmesi tabanlı sınıflandırma yöntemlerini incelemiş, pipeline (paralel boru hatlı) mimariler üzerinde uygulanan makine öğrenmesi tabanlı yüksek doğruluk ve hızlarda sınıflandırma yapabilen Genişletilmiş Basit CART (Sınıflandırma ve Regresyon Ağacı) mimarisini önermiştir. Benzer katkıları sağlamak maksadıyla her bir uygulama sınıfından bir ağaç elde edilerek ağaçları Bitmaplerle zenginleştirilmiş iki aşamalı hibrit yapı olan Basit CART Ormanları mimarisi üzerinde çalışmıştır. Sonuç olarak düşük sınıflandırma gecikmesi ve yüksek doğruluk sağlayan tek adımlı Bitmap Kodlu Basit CART veri yapısını FPGA üzerinde tasarlamıştır [3], [9].
3. Çalışmanın Amacı
Bu çalışmanın amacı elde edilmiş buğday çeşitlerine ait veri setlerini seri bir şekilde eğiterek eğitilmiş verileri teste sokmak ve bu sonuçda verimli sonuçlar elde etmeyi başarmaktır. Ayrıca bu çalışamada birden fazla öğrenme algoritması denenip aralarında en avantajlı olan algoritma probleme uygulanmıştır. Böylece buğday sınıflandırması (İncelenen grup, üç farklı buğday türü) işlemi hem daha verimli hem daha hızlı yapılacaktır. Bu sonuçlar doğrultusunda sınıflandırma işlemi yapmak isteyen uzman kişiler için objektif bir çözüm sunacaktır.
Çalışmada seri ve paralel işlem yapan platformlar üzerinde ileri beslemeli ağ ile geriye yayılım algoritmalarını kullanan yapay sinir ağları oluşturulmuş, paralel işlem yapan platformların üstünlükleri ortaya konmuştur. Diğer yandan buğday sınıflandırması tamamlandığında mevcut veriler doğrultusunda sınıflandırılan buğday miktarına göre ayrım yapılarak ekonomik hesaplar yapılabilir buna göre bir pazar oluşturulabilir. Bu sayede üretici emeğinin karşılığını daha verimli almış olur. Bu çalışmada genel olarak diğer eğitim algoritmaları da denenmiştir. Çalışmanın bir diğer amacı ise yapay sinir ağının eğitim süresini kısaltmaktır.2
4. HATAYI GERİYE YAYMA ALGORİTMASININ VERİLEN PROBLEME UYGULANMASI (TEORİK)
4.1. İleri Doğru Hesaplama
Hatayı geriye yayma algoritmasından önce yapılması gereken hesaplamadır. Bu hesaplama örnek uzayındaki bir örneğin girdi katmanından ağa gösterilmesi ile başlar. Daha sonra bu girdiler ara katmana yollanır
Xim = Xm
𝑁𝐸𝑇ja = ∑m=1 AmjXim.
olmaktadır. Ancak sigmoid fonksiyon kullandığımız için çıktı aşağıdaki gibi olur.
Xaj =

”
Çıktı 20 katmanındaki nöronların çıktıları bulununca ileri doğru hesaplama aşaması tamamlanmış olur.
4.2. Geriye Yayma Algoritmasına Matematiksel Yaklaşım
Bir yapay sinir ağı, her birinde özel hesaplamaların yapıldığı nöronlardan oluşmaktadır ve bu nöronların özelleştiği 3 tür katmandan bahsedilmektedir. Bunlar; girdi katmanı, gizli katman ve çıktı katmanıdır. Girdi katmanı, amaca özel olarak türü değişen verilerin sinir ağına sunulduğu katmandır.
i = [i1 i2 i3]
Bir sinir ağındaki katmanlar arasında, her bir katmandaki nöronu bir sonraki katmandaki nöronlara bağlayan bağlantılar ve her bir bağlantının sayısal olarak bir değeri vardır. Bu değerlere ağırlık denir.



Ağırlık Değerleri
Ağırlık değerleri, bağlı oldukları her bir nöronun, eğitimin sonucunda alınacak çıktı değeri için ne kadar öneme sahip olduğunu gösterir [10].
Geriye yayılım algoritması için ilk ağırlıklar 0’a yakın rastgele küçük değerler atanır. Bu adımdan sonra Aktifleşmenin hesaplanması yapılır. Bu hesaplamada ise ağa ilk giriş değerleri (kombinasyonu) verilir. Gizli katmandaki her bir nöron için aktifleşme aşağıdaki ifadelere göre hesaplanır [11].
Netj = ∑i=1 xiwij
Fj =

Fij değeri
4.3. Hatanın Hesaplanması
Her bir çıkış nöronu için geriye yayılma hatasının hesaplanması:
d__j = Fj (1-Fj) (Tj - Fj)
Burada Fj gizli katmandaki j. nöronun önceki adımda hesaplanmış olan çıkış değeridir.
Bu adımda önce verilmiş bütün çıkış hedefleri ile elde edilmiş çıkış değerleri kıyaslanır. Eğer bu değerler farklı ise hesaplama devam eder. Farklı değilse hesaplama bitmiştir. Genelde hesaplamanın bitmesi çıkış hatasının ortalama karesine göre bulunur:
E = (1/2)∑j(Tj-Fj)2.
Bütün giriş kombinasyonları için uygun çıkışların E değeri “0” veya bu değer önceden verilmiş bir hata değerinden eşit veya küçük olduğunda eğitim bitirilir (Bazen belirli bir eğitim adımı da (N) verilebilir ve eğitme adımlarının sayısı bu değere ulaşıldığında eğitme bitirilir) [11].
Gizli katmanlardan en son katmandaki nöronlar için hatanın hesaplanması:
dj = Fj (1-Fj) ∑j(Tj-Fj)2.
Burada Fj bir önceki gizli katmandaki (eğer varsa) nöronların çıkış değerleridir. Eğer gizli katman bir tane ise, o zaman Fj yerine xj yani uygun giriş değerleri kullanılır.
Bu adımdan sonra yeni ağırlıklar hesaplanır;
Bütün katmanlar için ağırlık değerleri yeniden hesaplanılır. Bunun için aşağıdaki ifadeler kullanılır:
wji_= a . di . xj_
wji (t+1) = wji (t) + wji
Burada a - eğitim hızı (0 < a < 1, örneğin a=0,45); di- i. birimin hatasıdır. Çalışma algoritmasında en verimli eğitim hızı 0.65 olarak belirlenmiştir. Bu işlemler ağın öğrenmesi tamamlanana kadar tekrarlanmıştır.
Sınıflandırma probleminin çözümünde giriş nöron sayısı 8, gizli katman sayısı 1, gizli katman nöron sayısı 3, çıkış nöron sayısı 3 olan bir yapay sinir ağı oluşturulmuştur. Yapay sinir ağının hata oranı (alt sınırı) E ≤ 0,0001 olmuştur. Başlangıç ağırlık değerleri -1 ile +1 arasında alınmıştır. İterasyon sayısı 10.000 olarak belirlenmiştir. Verilerin eğitim oranı %75 kalan %25 kısmı ise test aşamasında kullanılmıştır. Bu çalışma matlab üzerinde yazılmış ve seri işlem yapan 64 bit işletim sistemi Windows 10 Enterprise (10.0, Derleme 19042) kurulu olan intel i710750H CPU 2.60 GHz işlemcisine sahip 16 GB ram belleğine sahip M2 SSD ile veri okuyabilen bir bilgisayarda uygulanmıştır.
Veri seti çok temiz olduğu için normalize etmeye gerek olmamıştır. Ancak veri setinin değişmesi durumuna karşılık normalize kodları yine de eklenmiştir.Hata oranı program üzerinde MAPE (Ortalama mutlak yüzde hatası) yöntemi ile de bulunmuştur. Mape yöntemi:
MAPEE = ∑ (|NN Çıktısız - Gerçekleşen Çıktı |/k)
Burada n = 1 den başlayarak içerideki değerleri k = 210’a kadar toplayıp daha sonrasında bu işlemi veri sayısına bölerek ortalaması alınır. Böylece ortalama mutlak yüzde hatası hesaplanmış olur.
4.4. Yöntemin problem üzerine uygulanması
Eğitim aşamasında ağırlık değerlerinin bulunması işlemiyle uygulama başlamaktadır. Bunun için aşağıdaki işlemler yapılır.

ifadesi ile gizli katmandaki nöronun çıkışını
Fj =

Fij değeri
ifadesi ile aktifleşmesini hesaplanır.

Şekil 1: Probleme Ait Nöron Ağ Yapısı
E = (1/2)∑j(Tj-Fj)2.
İfadesi ile hata oranına bakarak eğitimin bitip bitmediğini kontrol edilir. Aşağıdaki ifade ile ağırlık değerleri yenilenir.
wji_= a . di . xj_
wji (t+1) = wji (t) + wji
Hesaplamaların bitmesi epoktaki bütün adımlarda çıkış hatasının (E) sıfır (veya önceden verilmiş bir hata) değerine eşit olması ile belirlenmektedir. Bu çalışmanın python dilinde uygulaması ve çıktısı aşağıda verilmiştir. Output değerinde ortalma doğruluk (mean accuracy) yüzdesi verilmiştir (100,000%).
5. UYGULAMA (EKRAN ÇIKTILARI)
Çalışmaya ait uygulama çıktıları aşağıda verilmiştir. Bu çıktılara ait program kodları Ek kısmında paylaşılmıştır. Sonuçların birçoğu ekranda gözükse de 5. bölüm olan sonuç kısmında sözlü olarak anlatılmıştır.

Şekil 3: Çalışma İçin Oluşturulan YSA arayüzü

Şekil 4: Çalışma Sonucunun Çizdirilmesi

Şekil 5: Çalışma Sonucunun Python Dilinde Spyder Üzerinden Gösterilmesi
6. SONUÇ
Bu çalışmanın amacı elde edilmiş buğday çeşitlerine ait veri setlerini seri bir şekilde eğiterek eğitilmiş verileri teste sokmak ve bu sonuçda verimli sonuçlar elde etmeyi başarmak amaçlanmıştı. Bu amaca ulaşabilmek için yapay sinir ağlarının hatayı geriye yayma algoritması kullanılmıştır. Bu algoritma sonuçları yukarıda vermiş olduğum ekran çıktılarında görülmektedir. Veri setinin eğitilip test edilme aşamaları diğer modellere göre daha hızlı olmuştur. Bu model ve problemin uygulanması kısmında bilgilerini verdiğim cihazın günümüzdeki en iyi işlemcilerden birine sahip olması ve yüksek bellek özelliği gibi pozitif yanlarıyla eskiden yapılmış çalışmalardan çok daha hızlı bir şekilde daha iyi sonuçlar elde edilmiştir. Hatta ağın hata değeri istenen hata değerinden çok daha küçük çıkmıştır. Böylece sonuçta sınıflandırma hem daha hızlı hemde daha doğru bir şekilde elde edilmiştir.
Uygulamada iki farklı dilde çalışma yapılmıştır. MATLAB üzerinde yapılan çalışmada arayüz kullanılmış ve kullanıcının daha kolay bir şekilde işlem yapabilmesine olanak sağlanmıştır. Bunun yanı sıra MATLAB’ın sağladığı daha kolay bir grafik görmesi ile sonuçlar daha net görülmüştür. Diğer yandan arayüz oluşturmadan Python’ın Spyder IDE’si üzerinden çalışma gerçekleştirilmiş olup bu çalışma hızı MATLAB’da yapılan çalışma hızından oldukça hızlı bir şekilde tamamlanmıştır. İki çalışmada da sonuçlar birbirine çok yakın çıkmakta olup sonuçların bu denli mükemmel olmasıda mevcut veri setinin çok temiz olduğunu göstermektedir. Sonuç olarak; eğitimde harcanan süre önceki çalışmalara göre oldukça (%400) azaltılmıştır. Bu daha çok mevcut çalışmanın yapıldığı bilgisayarın performansına dayalıdır. Eğitimde kullanılan örnek sayısı 158, test için kullanılan örnek sayısı 52 olarak belirlenmiştir. Öğrenme katsayısı 0.3 ten başlayarak 0.65’e kadar arttırılmıştır. Sınıflandırma için istenilen tüm değerler elde edilmiştir.
7. KULLANILAN KAYNAKLAR
-
Palabıyık DÇ, Ekim 2019, https://www.aa.com.tr/tr/turkiye/tarimda-uretim-artisina-teknoloji-katkisi-/1629307, Ankara Turkey, [Ziyaret Tarihi 29.04.2021].
-
Öztürk K, Şahin ME, Aralık 2018, Yapay Sinir Ağları ve Yapay Zekâ’ya Genel Bir Bakış, Takvim-i Vekayi, Cilt: 6, No: 2, Sayfa: 25-36.
-
Lortoğlu M, Haziran 2019, FPGA TABANLI YAPAY SİNİR AĞI KULLANILARAK BUĞDAY TÜRLERİNİN SINIFLANDIRILMASI, Yüksek Lisans Tezi, Fen Bilimleri Enstitüsü, KTO Karatay Üniversitesi Konya Türkiye.
-
Babalık A, 2007, YAPAY SİNİR AĞLARI İLE BUĞDAY TANELERİNİN KALİTE TESPİTİ, Doktora Tezi, Fen Bilimleri Enstitüsü Selçuk Üniversitesi, Konya Türkiye.
-
Taner A, Tekgüler A, Sauk H, 2015, Yapay sinir ağları ile makarnalık buğday çeşitlerinin sınıflandırılması, Anadolu Tarım Bilimleri Dergisi, Cilt 30, Sayı 1, Syf 51-59, doi/10.7161/anajas.2015.30.1.51-59.
-
Öztürk, M , Paksoy, T . (2018). Application of Artificial Neural Network for Wheat Type Classification: A Novel Artificial Intelligence Training Software . Kahramanmaraş Sütçü İmam Üniversitesi Mühendislik Bilimleri Dergisi , 21 (3) , 246-257 . DOI: 10.17780/ksujes.332770
-
MASOUMI Abbas, GÖRÜNTÜ İŞLEME TEKNİĞİ İLE EKMEKLİK BUĞDAY ÇEŞİDİNDE KALİTEYE ESAS BAZI ÖZELLİKLERİN BELİRLENMESİ, Yüksek Lisans Tezi, Tarım Makinaları Anabilim Dalı Tez Danışmanı: Prof.Dr. Engin ÇAKIR Şubat 2013, 131 sayfa.
-
Lozıto G. M., Laudani A., Fulginei F.R., Salvini A., FPGA Implementations of Feed Forward Neural Network by Using Floating Point Hardware Accelerators, Theoretical and Applied Electrical Engineering, 12(1), 30-39, 2014.
-
Soylu T., 2018, Makine Öğrenmesi Yöntemleri Kullanılarak FPGA Tabanlı Gerçek Zamanlı Yeni Bir Trafik Sınıflandırma Mimarisi Tasarımı, Doktora Tezi, Trakya Üniversitesi Fen Bilimleri Enstitüsü, Edirne.
-
Sonmez D, Haziran 2018, Geriye Yayılım Algoritmasına Matematiksel Yaklaşım, https://www.derinogrenme.com/2018/06/28/geri-yayilim-algoritmasina-matematiksel-yaklasim/, Türkiye, [Ziyaret Tarihi = 28.05.2021].
-
Allahverdi N, 2005, Hatayı Geriye Yayma Algoritması, http://farabi.sutef.gen.tr/ysa/ysa/bolum09a.htm, Konya, Türkiye, [Ziyaret Tarihi = 28.05.2021].
-
Charytanowicz M, Niewczas J, Kulczycki P, Kowalski P, Lukasik S, Zak S, 2010, Seeds Data Set, A Complete Gradient Clustering Algorithm for Features Analysis of X-ray Images, Information Technologies in Biomedicine, pp. 15-24.
Kod dosyası için iletişim kısmından bana ulaşabilirsiniz.