Yapay zeka uygulaması nasıl daha iyi hale getirilir?

yapay-zekanın-geliştirlmesi

Neredeyse beş yıl öncesine kadar, çoğu insan için yapay zeka denildiğinde akıllarda oluşan bilim kurgu filmlerindeki çok zeki robotlar iken, günümüzde kullandığımız birçok kişisel uygulamanın ya da profesyonel sistemlerin arkasında işleyen yapay zeka modellerinin olduğundan artık hepimiz haberdarız. Özellikle konu hakkında biraz bilgisi olanlar için, yapay zeka denilince ilk olarak “veri” kelimesi, bu veriyi hızlıca analiz ederek, anlamlı sonuçlar üretebilen sistemler ve tabii ki en önemli araç olarak bilgisayar programcılığı hemen akıllarda canlanıyor.

Kimilerimiz yapay zekâ denilince, komplo teorilerine dayanan bazı fikirler dolayısıyla kaygılansa da, konuyla ilgilenen uzmanlar geleceği inşa edecek, otomatik ve öğrenebilen algoritma temelli sistemlerin heyecanını hissediyor. Sibernetik (robotbilim) alanında da temel teşkil eden yapay zeka uygulamaları günümüzde yoğun biçimde çalışılan alanlardan biridir. Yine günümüzde, üzerinde belki de en çok çalışılan yapay zeka konularından biri ise veri analizdir. Herkesin yanından ayırmadığı cep telefonlarında yer alan, bireysel tanımlamalarda ve kararlarda her gün başvurduğumuz yapay zekâ temelli uygulamaların kullanımı olsun, dev şirketlerin ya da ülkelerin en önemli kurumlarının stratejilerini belirlemede ya da verilecek hayati kararların alınmasında yine yapay zeka temelli uygulamalarının kullanımı oldukça yaygınlaşmıştır.

Peki, insan hayatının böylesine vazgeçilmezi olmuş yapay zeka uygulamaları kusursuz mudur? Eksik noktaları ya da zayıf noktaları var mıdır?

Yapay Zeka’nın Eksikleri

Elbette ki, insanın ürettiği hiçbir teknoloji kusursuz değildir. Hayatın altın kuralı burada da geçerlidir: “Değişmeyen tek şey değişimdir.” Bahsedilen değişim, “gelişim” sözcüğüne referans etmektedir. Üretmeyi başardığımız her teknolojik üründe olduğu gibi daima bir ilerleme sürecindeyizdir. Zaman ilerledikçe ilgili teknoloji daima daha da gelişir. Ve o teknolojiden daha iyisi bulunana dek ya da ilgili teknoloji gereksiz olana dek gelişmeye hep devam eder.

Benzer şekilde, yapay zekâ uygulamalarının geliştirilmesi için akademisyenler ve sahadan uzmanlar yoğun biçimde çalışmaktadırlar. Daha hızlı yanıt veren, daha az hatayla çalışan, riski minimize eden, daha ucuz maliyetle işleyen, daha iyi sonuçlar üreten ve bunun gibi amaçlarla yapay zekâ uygulamalarının daha da güçlendirilmesi, geliştirilmesi süreci hızla devam etmektedir. Görüldüğü gibi “geliştirme” sürecinin başlangıç noktası “amaçtır”. Belirlenen amaca göre geliştirme süreci yönlendirilir ve işletilir.

Peki, yapay zekâ uygulamalarının üretilmesi sürecine de dahil edebileceğimiz ve belirlenen amaca göre yönlenecek bu “geliştirme” süreci nasıl işler?

Yapay Zeka’nın Geliştirilmesi

Buraya kadar verilen genel açıklamalardan da hemen kendini belli eden, “geliştirme” sürecinin yapay zekâ uygulamalarında ne kadar hayati öneme sahip olduğu, konunun uzmanları tarafından çok iyi bilinir. Ve belki de üzerinde en büyük hassasiyetle durdukları süreçlerin başında gelir.

Bahsedilen bu hayati “geliştirme” sürecinin temeli şu önemli dayanak noktası soruya dayar sırtını: “Geliştirilmesi düşünülen yapay zekâ uygulamasının eksikleri nelerdir?”

Evet, eğer bir sistem, bir model geliştirilmek isteniyorsa, öncelikle var olan eksikler, zayıflıklar, sorunlar çok iyi bilinmelidir ki, buna göre eksiklikler giderilerek, sorunlar çözülerek ilgili sistem ya da model geliştirilebilsin. Bunun için, kuramsal bilginin çok yüksek olması yani, ilgili sitemin arkasında yatan işleyişin tam anlamıyla iyi biliniyor olması gereklidir.

Burada çok önemli bir noktaya daha geliyoruz: “Neyin nasıl olduğu hakkında yeterli bilgi birikimine sahip miyiz?”

Örneğin herhangi bir açık kaynak kodlu bir programlama dili kullanılarak bir yapay zekâ uygulaması gerçekleştirilmiş olsun. Bahsedilen uygulama için kod yazılırken çeşitli yöntemler için bazı hazır fonksiyonlar kullanılmıştır. Eğer, bu hazır fonksiyonların satır satır nasıl çalıştığı bilinmiyorsa, hazır fonksiyonun yazılma nedeni olan ilgili yöntem bilinmiyorsa, söz konusu yapay zekâ uygulamasını bırakın daha da geliştirmeyi, o uygulamanın doğru çalışıp çalışmadığı bile yanlış değerlendirilebilir.

Geliştirme sürecinin başlayabilmesi için amacı doğru olarak belirledik. Belirtilen amaca göre ilgilenilecek eksiklikleri ya da çözümlenecek sorunları ortaya koyduk. Bunu yapabilmek için kullanılan yöntemler ve bu yöntemleri uygulayan yazılımın kodları hakkında derin bir bilgiye sahibiz, yani teknik detaylar hakkında yeterli bilgi ve birikime sahibiz. Şimdi ilgili yapay zekâ uygulamamızı daha da geliştirmemiz için son bir bileşen kaldı: “İlgili uygulamayı kullandığımız problem hakkında yeterli uzman bilgisine sahip miyiz?”

Bir yapay zekâ temelli sistemi geliştirebilmek için gerekli tüm anahtar soruları yani adımları yukarıda sıraladıktan sonra tam bu noktada, anahtar soruların çeşitliliğinin açıkça işaret ettiği yapının da altını çizmek gerekir. Tıpkı bir yapay zekâ temelli sistem üretebilmek için olduğu gibi, o sistemi geliştirebilmek için de en sağlıklı yaklaşım, ilgili sorulara cevap verebilecek her alandan yetkin ve bilgili uzmanların sürecin içinde var olması gerekir. Amacı belirlemek için hem uygulamanın yapıldığı sahanın uzmanı hem de teknik detaylar hakkında bilgi birikimi olan uzman ya da uzmanlar gerekir. Eksikler ya da sorunların belirlenmesinde, kullanılacak yöntemin kuramsal yapısına hakim akademisyen ya da akademik eğitime sahip araştırmacılar bulunmalıdır. Ve yine bu adımda, kullanılan yöntemlerin kodlara ne ölçüde yansıdığının değerlendirilmesinde yazılımcıların ve ilgili akademik bilgiye sahip kişilerin birlikte bulunması yararlı olacaktır. Uygulama geliştirildikten sonra, amaca uygun gerekli kazançlara ulaşılıp ulaşılmadığının belirlenmesi, sistemin bütün olarak doğru çalışıp çalışmadığının denetlenmesi için yine ekipte yer alan tüm uzmanların bir araya gelmesi gerekecektir.

Örneklerle Yapay Zeka’nın Geliştirilmesi

Şimdi örneklerle “geliştirme” sürecini daha da net bir biçimde ortaya koymaya çalışalım. Örneğin zamana bağlı gerçekleşen deprem verileri elde bulunsun. Eldeki verilere göre gelecekte oluşabilecek depremleri tahmin edecek yapay zekâ temelli bir sistem var ve bu sistem geliştirilmek istensin. Belirtilen sistemde de, en etkili makine öğrenme yöntemlerinden biri olan yapay sinir ağları yöntemi kullanılıyor olsun.

Öncelikle deprem konusuna hakim, jeoloji, jeomorfoloji, jeofizik, jeodezi ve sismoloji gibi bilim dallarından uzman kişiler, eldeki veriyi yönetecek ve ilgili yazılımı geliştirebilecek uzman bilgisayar bilimciler ve yapay sinir ağları yöntemi hakkında akademik bilgi birikimine sahip uzmanlardan oluşan bir ekip kurulmalıdır. Yapay sinir ağları bu uygulamada zamana bağlı verilerin analizi için kullanılacağından ilgili veri analizine hakim istatistikçilerin ekipte yer alması yine büyük bir artı olacaktır. Tabii ki veri analizi yöntemi olarak seçilen yapay sinir ağlarının kullanımında uzman istatistikçilerin ekipte bulunması ilk tercih olacaktır.

Öncelikle, deprem uzmanı kişiler eldeki sitemin hangi açıdan geliştirilmesine gerek olduğunu belirleyebilirler. Bu uzmanlar sistemin daha önce ürettiği tahminleri değerlendirirler ve örneğin, sistemin daha güvenilir öngörüler üretmesi gerektiğini amaç olarak belirleyebilirler. Yani, yapılacak deprem tahminlerinin daha doğru, daha gerçekleşene yakın olması amaç olarak seçilebilir.

En etkili makine öğrenme  yöntemlerinden biri yapay sinir ağları yöntemidir.

Bu belirlenen amaca göre, ekipteki bilgisayar bilimciler ve yapay sinir ağı uzmanı veri analistleri sistemde kullanılan yapay sinir ağı modelinin eksikliklerini belirlemeye çalışır. Öncelikle akademik bilgi birikimine sahip yapay sinir ağı uzmanları, yöntemin kuramsal işleyişine hakim oldukları için, daha iyi, daha güvenilir tahminler için kullanılan yapay sinir ağı modellerinin eksiklerinin nasıl giderilebileceğini belirler. Ve daha sonra, bilgisayar bilimciler ve yazılımcılar ile birlikte bu güncelleştirmeleri gerçekleştirirler.

Örneğin şöyle bir güncelleştirme yapılmış olabilir: Yapay sinir ağları yaklaşımında verilerden öğrenmeyi sağlayan bileşen öğrenme algoritması ve nöronlarda kullanılan aktivasyon fonksiyonlarıdır. Eldeki veriden öğrenmeyi daha güçlü hale getirebilmek için, yapay sinir ağı uzmanı veri analistleri, verinin yapısına uygun olarak güncel yeni bir aktivasyon fonksiyonu kullanmayı düşünebilirler. Ve kullanılacak bu yeni aktivasyon fonksiyonunun eğrisel yapısına göre, öğrenmeyi daha da kuvvetlendirecek parçacık sürü optimizasyonu gibi daha etkin bir optimizasyon algoritmasını öğrenme algoritması olarak kullanmayı önerebilirler. Bahsedilen yapay sinir ağı uzmanı veri analistleri akademik bilgi birikimine sahip oldukları için, böylesi yararlı önerileri üretebilirler. Bu öneriler daha sonra önerileri yapan uzmanlar, bilgisayar bilimciler ve yazılımcılar tarafından kodlara dönüştürülerek ilgili sistem güncellenecektir.

Yenilenen sistem daha sonra değerlendirilmelidir. Yenilenen sistemin ürettiği sonuçlar, hem deprem uzmanı kişiler hem de ekibin diğer uzmanları tarafından kendi uzmanlıklarınca gözlemlenir. Elde edilen sonuçlar deprem uzmanları tarafından istenilen düzeyde anlamlı ve gerçekçi bulunursa, sistemin işleyişi teknik açılardan da uygunsa yeni sitem artık gelecekte kullanılabilir hale gelmiştir.

Sonuç

Çeşitli şekilde katkı verdiğim farklı yapay zekâ çalışmalarından, projelerinden ve takip ettiğim güncel ulusal ve uluslararası uygulamalardan elde ettiğim birikimlerimi özet şekilde paylaşmaya çalıştım. Akademik danışman olarak aralarında bulunmaktan büyük mutluluk duyduğum Artifica şirketi de gelecek vaat eden, kıymetli yapay zekâ uygulamaları geliştirmektedir.

Özet olarak bu yazıda, bir yapay zekâya dayalı sistem üretirken, “geliştirme” sürecinin nasıl olması gerektiğinden ve öneminden bahsedildi. Geliştirme amacının bu süreçteki yerine değinildi. Belirlenen amaca göre, eksikler, zayıf yönler ya da sorunların belirlenmesinin sürecin dayanak noktası olduğundan söz edildi. Bunu gerçekleştirmek için ilgili yöntemler hakkında ve kullanılan yazılımın kodları hakkında geçerli ve doğru bilgi birikimine sahip olmanın olmazsa olmaz olduğu vurgulandı. İlgili sistemin geliştirilmesinde nasıl bir disiplinler arası uzman ekip kurulmasının gerekliğinden bahsedildi. Sistemin uygulanacağı alanın uzmanlarının, sistemde kullanılacak yöntemlerin akademik uzmanlarının, kullanılacak veri yapısına göre veri analistlerinin, bilgisayar bilimciler ve yazılımcıların temel olarak böylesi bir ekipte var olmasından söz edildi. Ve son olarak, basit ama güncel bir örnekle tüm anlatılanlar daha somut biçimde ortaya konmaya çalışıldı.

Bu yazının orjinaline erişmek için tıklayın: https://medium.com/@chaladag/yapay-zek%C3%A2-uygulamas%C4%B1-nas%C4%B1l-daha-i%CC%87yi-hale-getirilir-717444a39ab8

Sosyal medya hesaplarımızı takip etmeyi unutmayın