En Sıcak Konular

Algoritma: Koddaki Kod - 1

20 Nisan 2020 09:27 tsi
Algoritma: Koddaki Kod - 1 Y. Murat Yiğit Yazdı: Algoritma: Koddaki Kod - 1

Algoritma: Koddaki Kod - 1

 

 

Son zamanlarda yerli basın yayında da artan sıklıkta adı duyulmaya başlanan algoritma kavramının anlamı, “mantık reçetesi”dir. Tıpki bir ilacın reçetesinde o ilacın hangi maddelerden oluştuğunun, hangi şartlarda ve ne şekilde kullanılacağının, yan etkilerinin ve asla kullanılmaması gereken durumların işaret ettiği sınırlamaların belirtildiği gibi; bir algoritmanın da bileşen parçaları, parçaların işlemesi gereken belli ölçüleri, sıralarama öncelikleri ve sınırları vardır.

 

Algoritmayı, herkesin kolaylıkla anlayacağı şekilde benzeştirebileceğimiz bir örnek de “yemek tarifi”dir. Bu bağlamda ev hanımları, insanlığın var olduğu andan itibaren birer algoritma uzmanı olarak tanımlanabilir. Tecrübe arttıkça, algoritma geliştiricilerin uzmanlığı da artar; bundan dolayı ninelerin ve yaşlı ustaların yaptıkları yemekler, tadı en güzel olanlardır. Sözgelimi ciğer yemeği yapılacak. Öncelikle hedef belirlenir: şiş mi, tava mı, sote mi, kavurma mı, arnavut ciğeri mi, yaprak ciğer mi? Yani algoritma (yemek tarifi) işini bitirdikten sonra eldeki son ürün ne olacak, bu sorunun cavabı verilir. Diyelim ki arnavut ciğeri yapılacak. Son ürüne ulaştıracak sistem girdileri neler? Başlangıçta elde hangi verilerin (malzemelerin) olması gerekiyor? Malzemeler: ciğer, soğan, un, maydanoz, sıvı yağ, tuz. Peki dana ciğer mi, kuzu ciğer mi? Kuzu ciğeri seçelim. Kasaptan mı alınacak, marketten mi, yoksa güvenilir başka bir tedarikçiden mi? Güvendiğimiz mahalle ciğercisine yarım kilo kuzu ciğer almak üzere gittik. Ciğerin önce zarı soyulacak, sonra içinde hiç sinir kalmaması üzerine ciğerci tembihlenecek ve ufak parçalara doğratılacak. Pakedi alıp eve geldik.

 

Şimdi bu nokta, tam bir iş döngüsü içermektedir; yani buraya kadar anlatılanları bu sırayla kim yaparsa (evden çıkma ve eve gelme arası sıralı işlemler), elde ürün olarak zarı ve sinirleri ayıklanmış, küçük parçalar halinde doğranmış yarım kilo kuzu ciğeri elde eder. Bu eylemi artık arnavut ciğeri yapma amacıyla gerçekleştirilen bir ciğer satın alma algoritması olarak tanımlayabiliriz; ancak ana algoritmamız (arnavut ciğeri) bu değil, bu bir ara algoritmaydı ve ana ürüne götürecek bir ara ürün elde etmiş olduk. Aynı şekilde soğan,maydanoz, vs. diğer temel malzemelerin girdisiyle oluşturulan ara algoritmalar sonucunda da doğranmış soğan, ince kıyılmış maydanoz,vs. gibi ara ürünler elde edilir.

 

Bu ara algoritmaların kendi iç işlemlerinin belli bir sıraya göre yapılması gerektiği gibi, bunlardan çıkan ara ürünler de ana algoritmanın (arnavut ciğeri) oluşturulması için kendi aralarında belli bir sıraya uymak zorundadır. Tavaya ciğer atıldıktan sonra yağ atılmaz; önce tavaya yağ konur, sonra ciğer atılır. Yağa önce un atılmaz, önce ciğer una batırılıp sonra ikisi bu şekilde yağa atılır,vs.  Ana algoritma adımları özetle şu şekilde sıralayalım:

 

1. Soğanı doğrayın.

2. Soğana tuz katıp ovun.

3. Maydanozu ince kıyın.

4. İkinci adımda elde ettiğiniz ara ürün olan tuzlu soğanla üçüncü adımda elde ettiğiniz ince kıyılmış maydanozu karıştırıp tabağa alın.

5. Tavada yağı kızdırın.

6. Unu bir miktar tuzla karıştırıp ayrı bir tabağa alın.

7. Ciğerleri altıncı adımdaki tabağa alarak malzemeleri karıştırın.

8. Una bulanmış ciğerleri sıkıştırmadan hafifçe silkeleyerek beşinci adımdaki tava içindeki kızgın yağa bırakın.

9. Az pişmiş mi, yoksa tam pişmiş mi seviyorsunuz? Az pişmiş ise onuncu adıma, çok pişmiş ise onbirinci adıma gidin.

10. 1 dakika karıştırarak kızartın.

11. 2 dakika karıştırarak kızartın.

12. Kızarmış ciğerleri soğan tabağının üzerine alın.

13. Tavadaki yağdan bir çorba kaşığı alıp ciğerlerin üzerinde gezdirin.

14. Sıcak veya soğuk servis yapın.

 

Tabi böyle bir yemek tarifi, hiçbir yerde olmaz. Özellikle algoritmik mantığın birtakım temellerini daha net anlatabilmek adına bilgisayara anlatıyormuş gibi anlatmaya çalıştık. Hatta bu anlatış şekli, bir insana göre gereksiz detaylar içerse de bir bilgisayara göre çok sayıda eksik detay içermektedir. İnsan tavanın, ciğerin, tuzun, vs. ne olduğunu bilir ancak bilgisayar bilmez. Önce bu malzemeleri, yani eldeki verileri tanımlamak gerekir. Daha sonra da mantık döngüleri, evet/hayır şeklindeki karar alma eklemleri gibi kısımlar algoritmaya işlenir.

 

Şimdi arnavut ciğerini bir usta bu sırayla yapabilir, diğer bir başka usta aynı son ürünü elde etmek kaydıyla bazı maddelerin sırasını ve içeriğini değiştirip ayrı bir lezzet katabilir. Algoritma, diğer bir deyişle kendisini kurgulayanın “yoğurt yiyiş” şeklidir.

 

Bu günlerde, özellikle korona virüs ile tanı koyma konusunda uzman kadroların haber kanallarına verdikleri röportajlarda “algoritma değişti” sözü de oldukça sık duyulmaktadır. İşin özü, yemek tarifi örneğindekinin aynısıdır; bu ister finans, ister tıp, ister ulusal güvenlik ve diğer konularda olsun. Hatta bir haber kanalının dün verdiği bir haberin başlığı da bu bağlamda oldukça ilginçtir: “Türkiye, kendi algoritmasını geliştirdi.”  Haberin başlangıç kısmı: “Koronavirüs algoritması. Yani tedavi süresince sağlık kuruluşlarının, doktorların, hemşirelerin tedavi süreci için izleyeceği yol haritası.” (https://www.cnnturk.com/video/turkiye/turkiye-kendi-algoritmasini-gelistirdi) Yol haritası, yani mantık reçetesi.

 

Diğer yandan işçinin makine başında çalışırken, çiftçinin tarlası başında tarlasını ekip biçerken, öğretmenin öğrencilere müfredatı uygularken, doktorun hastasını teşhis ve tedavi ederken, askerin ve emniyetin ulusal güvenlik risklerini değerlendirirken; hepsinin kendilerine özgü yol haritaları, mantık reçeteleri, algoritmaları vardır. Dolayısıyla algoritma kavramı, insanlığın var olduğu andan itibaren insanlarla beraberdir ve kimsenin de tekelinde değildir.

 

Hatta algoritma kavramı bizim için hem bir övünç, hem de utanç vesilesidir. Batı, bu kavramı Türk bilgin El-Harezmi’den almıştır. Bir çok kaynakta El-Harezmi, Pers olarak tanımlansa da araştırıldığında Türk olduğu görülecektir; bu konunun tarihselliğine girmeyeceğiz. İsmini düzgün telaffuz edemediklerinden en son “Al-Gorithm” olarak kalmış ve bu hitap, algoritma kavramını oluşturmuştur. Elin oğulları bu Türk bilginin çalışmalarını alıp geliştirerek bugünün bilişim çağına yön vermiş ve o oranda zenginleşmiş ve güçlenmiş iken, biz de her sahip çıkmadığımız öz değerimizin bir getirisi olarak o oranda fakirleşmiş ve sömürülmüşüz.

 

Algoritmanın günümüzde en etkin kullanıldığı alanlardan biri de yapay zeka uygulamalarıdır. Bu konudaki örneğe geçmeden önce önemli bir hususun altını net bir şekilde çizmekte fayda vardır.

 


 

 


Sene 1956: John McCarthy, Marvin Minsky, Nathaniel Rochester ve Claude Shannon, Dartmouth Üniversitesi’nde iki ay boyunca on kişilik bir ekiple gerçekleştirilmek üzere yapay zeka ile ilgili bir araştırma projesi önerisi sunarlar. Bugünkü yapay zeka (artificial intelligence) kavramının ilk kayda geçtiği belge, bu proje önerisi dökümanıdır. Bu bilimadamları, bugünkü yapay zekanın ilk temelini atanlardır. Özellikle öne çıkan iki kişi,  John McCarthy ve Marvin Minsky’dir. Bu adamların kafası normal bir matematikçi veya bilgisayarcı gibi çalışmamakta, bu alanlara ek olarak insan düşünüş ve  davranışlarının temelini oluşturan felsefe, psikoloji ve sinirbilim gibi alanlarda da çalışmalar yapmış ve tüm bu yetkinlikleri birleştirerek yapay zeka alanını kurmuşlardır. Proje önerisi dökümanındaki en can alıcı kısımlardan biri de “...bu makinelerin, kendilerini geliştirmek üzere...” vurgusudur. Cümledeki “kendilerini” kavramı , bugünkü dünya basınında genel anlamıyla kullanılan “kendilerini geliştiren makineler” vurgusundaki “kendileri”nden farklıdır. Çünkü şu an kendi kendini geliştiren şey, sistemdir; bir insan gibi özbenlik değildir. Sistemin gelişimi matematiksel olur; felsefik , psikolojik veya nörolojik açıdan olmaz. Son gelişmelerle sinirbilimden çok defa faydalanılmış olsa da bu faydalanma, orijinal sinir sistemi özelliklerinin matematiksel modellere kaydırılması şeklindedir; insandaki sinir sistemi işleyişi gibi değildir. Diğer yandan bu uygulamalarda felsefe veya psikoloji de yoktur. Ancak 1956’daki bu proje dökümanında bahsedilen “kendileri” sözcüğünün içinde makinelerin insan gibi bir özbenlikle hareket ederek felsefik, psikolojik ve nörolojik olarak düşünüp davranma yetisine vurgu vardır; çünkü normal bir matematikçi durup dururken süs olsun diye gidip felsefe, psikoloji ve sinirbilim alanlarında çalışma yapmaz…

 

Bugünkü tüm yapay zeka uygulamaları, özbenlik temelli değil, matematik temelli sistemsel işleyişlerle ilerler. Onun için, bu yazı dizimizde kavram kargaşasını önlemek adına yapay zekayı iki ayrı kavram olarak ele alacağız.

 

1. Yapay Zeka (Genel Yapay Zeka): Felsefik, psikolojik ve nörolojik olarak özbenlik kazanmış zeka ve vücut (makine). (Kulbak Bilge’de anlatıldığı gibi)

2. Makine Öğrenmesi: Sinirbilim gibi birçok farklı alandaki işleyişlerin matematiksel modellere aktarılarak geliştirilen algoritmalar.

 

Tanımlamayı yaptıktan sonra da artık makine öğrenmesi üzerine devam edebiliriz. Makine öğrenmesi algoritması ile çalışan bir yazılım, normal hesaplama işlemleri yapan bir yazılımdan farklıdır. Algoritma, kurgulandıktan sonra hangi programlama dili ile yazılım programlanıyorsa o dilin kurallarına göre kodlanarak bir makine öğrenmesi yazılımı haline getirilir.

 

 


Geleneksel programlamaya bir örnek olarak, hesap makinesi uygulaması gösterilebilir. Tüm işlemlerin bütün kuralları, ön tanımlı olarak yazılıma kodlanır. Yazılım bir kere ürün olarak çıktığı zaman artık her aynı tip işlem beklenen sonucu verir. Toplama işlemiyse toplam sonucu, çarpma işlemiyse çarpma sonucunu verir; işlemleri de önceden kendisine verilen dört işlem kuralları ile yapar; sürpriz sonuçlara yer yoktur.

 

Makine öğrenmesinde ise yazılımın can damarı, kurallar ve talimatlar değil; verinin kendisidir. Veri az olursa sonuç başka çıkar, çok olursa başka çıkar. Burdaki başkalık performans değerlendirmesi ölçüsündeki bir başkalıktır. Diyelim ki kedi ve köpek fotoğraflarını otomatik olarak  “bu kedi, bu da köpek” şeklinde yorumlayan bir makine öğrenmesi sistemi geliştirdik. Nasıl ki küçük bir çocuk hayatında ilk defa bir kedi veya köpek gördüğünde önce şaşıracak, bu şeyi beyninde daha önce gördüğü şeylerle ilişki kurup anlamdırmaya çalışacak, ama yüzlerce, binlerce kedi ve köpek gördüğünde artık görür görmez hangi hayvan olduğunu anlayacaksa, makine öğrenmesi sistemi de veriler azken çocuğun yorumlamasında olduğu gibi önceleri ayırımı tam yapamayacak, ancak binlerce ve hatta milyonlarca kedi ve köpek fotoğrafıyla beslendiğinde ise yeni bir resim görür görmez hangi hayvan olduğunu yüksek bir başarı oranıyla bulacaktır. Hesap makinesi yazılımında böyle bir durum yoktur. Yani makine öğrenmesinde, hesap makinesi yazılımda olduğu gibi bir insanın öğretmesine gerek yoktur; algoritma, veriyle beslenerek kendi kendine öğrenir.

 

Makine öğrenmesi, istatistik değildir. İstatistiksel modeller, makine öğrenmesi algoritmalarında kullanılıyor olsa da yeni nesil makine öğrenmesi algoritmaları, yapay sinir ağları modelleri ile çalışmakta ve daha iyi sonuçlar vermektedir.

 

2. bölümde, makine öğrenmesi uygulamalarının çeşitlerini ve pratik faydalarını, hem dünyadaki örneklerden, hem de daha önceden yapmış olduğumuz bazı çalışmaların örneklerinden kesitler sunarak anlatmaya gayret edeceğiz.

 

 

Y.Murat Yiğit

ymuratyigit@gmail.com

 

 



Bu haber 3,765 defa okundu.


Yorumlar

 + Yorum Ekle 
    kapat

    Değerli okuyucumuz,
    Yazdığınız yorumlar editör denetiminden sonra onaylanır ve sitede yayınlanır.
    Yorum yazarken aşağıda maddeler halinde belirtilmiş hususları okumuş, anlamış, kabul etmiş sayılırsınız.
    · Türkiye Cumhuriyeti kanunlarında açıkça suç olarak belirtilmiş konular için suçu ya da suçluyu övücü ifadeler kullanılamayağını,
    · Kişi ya da kurumlar için eleştiri sınırları ötesinde küçük düşürücü ifadeler kullanılamayacağını,
    · Kişi ya da kurumlara karşı tehdit, saldırı ya da tahkir içerikli ifadeler kullanılamayacağını,
    · Kişi veya kurumların telif haklarına konu olan fikir ve/veya sanat eserlerine ait hiçbir içerik yayınlanamayacağını,
    · Kişi veya kurumların ticari sırlarının ifşaı edilemeyeceğini,
    · Genel ahlaka aykırı söz, ifade ya da yakıştırmaların yapılamayacağını,
    · Yasal bir takip durumda, yorum tarih ve saati ile yorumu yazdığım cihaza ait IP numarasının adli makamlara iletileceğini,
    · Yorumumdan kaynaklanan her türlü hukuki sorumluluğun tarafıma ait olduğunu,
    Bu formu gönderdiğimde kabul ediyorum.




    En Çok Okunan Haberler


    ON ALTI YILDIZ'da Ara Internet'te Ara  

    Haber Sistemi altyapısı ile çalışmaktadır.
    7,072 µs