Günlük arşivler: 13/04/2024

Yapay Zeka Terimleri

Dünyanın en karmaşık makinesi şüphesiz insan beynidir. Sayısal bir işlemi birkaç dakikada yapabildiği gibi, çevresinde oluşan olayları idrak edebilme, öğrenme ve sonrasında tekrarlamamak için önlem alma gibi özelliklere sahiptir. Bu durumlar ile ilgili basit örnekler vermek gerekirse; yürümek, araba sürmek, karşıdan karşıya geçmek, yürüme hızını veya araba sürme hızını çevredeki duruma göre karar vermek gibi düşünebiliriz. Akla ilk gelen soru, bu saydığımız özellikler ile bir makineyi yönetebilir miyiz? Makine çevresine göre nasıl davranacağını belirleyebilir mi? Oluşan olayları idrak etme ve deneyimlerle kazanılmış bilgileri ileride tekrar kullanabilir mi? Bu durumlarda insan beynini makinelere göre üstün kılan temel özellik, sinirsel algılayıcılar vasıtası ile kazanılmış ve göreli olarak sınıflandırılmış bilgileri tekrar kullanabilmesidir. Bu durumda akla gelen ilk soru var olan sinirsel ağı algoritma ile yazabilir miyiz? Bu soru ile günümüzde oluşan Yapay Zeka terimleri; Uzman Sistemler(US), Bulanık Mantık(BM), Genetik Algoritma(GA) ve Yapay Sinir Ağları(YSA) çıkmıştır. Her bir terim Yapay Zeka alanının alt dalıdır. Araştırma ve geliştirmeler bu terimler üzerinden yapılmaktadır.

Uzman sistemler temel anlamda insan beynindeki düşünceleri gerçekleştirmek amacıyla bilgisayar tarafından işlenen bir yazılımdır. Oluşan belirli bir bilgi ve birikimleri bilgisayarlara algoritmalar yoluyla bilgisayarlara aktarmadan oluşan bir yapay zeka dalıdır.

Bulanık mantık, bulanık küme teorisine dayanan bir matematiksel durumdur. Daha basit bir mantığa dayalıdır. Soğuk- Sıcak, Kısa-Uzun yerine Sıcak-Ilık-Soğuk, Kısa-(Kısa-Orta)-(Orta-Uzun)-Uzun gibi ara değerler ile çalışma prensibini benimser.

Genetik algoritmalar evrimsel hesaplamanın bir parçası olarak düşünülebilir. Bir veri öbeğinden özel bir veriyi bulmak için kullanılan bir arama yöntemidir. En iyi, en özeli bulmaya yönelik algoritmalar geliştirilir. Genellikle çözümü zor hatta imkansız olan problemlerin çözümü için kullanılır.

Yapay sinir ağları, insan beyninin sinir ağlarını taklit eden bilgisayar programlarıdır. Herhangi bir olaya ait örnekler ile eğitilerek bilgiler programa aktarılır. Böylelikle, örnekler sayesinde açığa çıkarılmış özellikler üzerinde çeşitli genellemeler yapılarak daha sonradan ortaya çıkma ihtimali olan durumlar için çözümler üretilmesi beklenmektedir.

Yapay Zeka Teknolojisinin Tarihçesi

Teknolojinin ilerlemesi ile insanların hayatındaki zaman daha değerli bir duruma geldi. Her bir dakikanın para ile ölçülebilecek bir değer haline geldiği günümüzde, bütün teknolojik çalışmaların odak noktası insan hayatını kolaylaştırmak üzere olmuştur. Bunun üzerine birçok çalışmalar ve geliştirmeler yapılmaktadır. Biz teknolojinin yeni bir dalı olan “Yapay Zeka” konusunu ele alacağız.

Yapay zeka mantığı çok eski tarihlere dayanmaktadır. En basit mantığı ile cansız nesnelere hayat verip zeki nesneler haline getirmek olarak tanımlanabilir. Yapay zeka ile ilgili çalışmalar ilk olarak 1884 yılında görülmüştür. Charles Babbage mekanik bir makinenin kendi kendine karar verebilecek zeki davranışlar göstermesine yönelik çalışmalar yapmıştır. Bu çalışmalar sonunda hiçbir nesnenin insan gibi karar verebilen, düşünebilen, öğrenebilen varlıklar olamayacağına kanaat getirilmiştir.

Yapay zeka ile ilgili çalışmalar 1940 yıllarında bilgisayarların üretilmesi ile daha büyük bir önem kazanmıştır. Bilgisayarların ortaya çıkması ile modellenebilmesi, kendine ait bir karar mekanizması olabilir mi düşünceleri de beraberinde ortaya çıkmıştır. 1950 yılında Alan Turing bir makine kendi kendine düşünebilir mi sorusu üzerine giderek bir makine tasarlamış ve insanların yazışmasını istemiştir. Yazışma esnasında insanlardan karşıdaki kişinin makine mı yoksa insan mı olduğu sorulmuştur. Testler esnasında insan olarak değerlendirilen makinelerin zekası geçerli sayılmıştır.

Programlama dünyasında bir devrim olarak görülen bir olay; 1957 yılında MIT’den John McCarthy tarafından geliştirilmiş olan LISP(List Processing Language) programlama dilidir. Esnek programlar yapmaya imkan sağlayan yapay zeka için geliştirilmiş eski ve köklü olarak sayılan programdır.

Tam anlamıyla başarılı ve istenen sonuçlar alınamadığı için uzun süreli geliştirilmesine ara verilen “Yapay Zeka” kavramı 1970’li yıllarının başlarıyla tekrar ivme kazanmıştır. İlk uygulama alanları arasında yer alan Tıp uygulamaları arasında yer almıştır. Hastalık teşhisi gibi konular üzerinde çalışmalar yapılmış ve sonuçları başarılı olduğu gözlemlenmiştir. Bu uygulama alanında gösterilen başarı ile diğer uygulama alanlarında da kullanımı için çeşitli çalışmalar yapılmıştır.

1980’li yıllara geldiğimizde çeşitli uygulama alanları ile büyük projelerde de yer almaya başlamıştır. Geçen süre içerisinde neredeyse tüm uygulama alanlarında boy gösteren yapay zeka kavramı, günümüzde başka bir hal alarak devam etmektedir.

Bu zamana kadar yapay zeka ile ilgili uygulamalar tek kanal üzerinden ve daha basit otomasyon işleri için kullanılmaktaydı. Günümüzde bununda tam olarak yeterli olmadığının anlaşılması ile yapay sinir ağlarının geliştirilmesi çalışmaları hız kazanmıştır.

Yapay zeka ile beklenen artık insan gibi düşünebilen, kendi kendine öğrenebilen, doğru ve yanlış gibi basit kavramları rahatlıkla idrak edebilen düzeye gelmesidir. Otomasyon haricinde tekrarlı olan her işte rol alması ve bir insan gibi yapmış olduğu işten tecrübe kazanarak ileriki zamanda daha iyi bir hizmet verebilmesi gibi çalışmalar yürütülmektedir. Yapay zekanın bir alanı olan “Chatbot” konusu da tam olarak bu hizmete karşılık gelmektedir. Bir ürün düşünelim bir insan gibi sorulan sorulara doğru cevaplar versin, bir insan gibi bir defalığına öğrendiği bir şeyi ileriki bir durumda tekrar kullanabilsin ve daha önemlisi kendi kendini geliştirip, yönetebilsin.

API Nedir? Entegrasyonu nasıl yapılır?

API(Application Programming Interface) bizim dilimizde “Uygulama Programlama Arayüzü”, bir uygulamanın işlevlerine dışarıdan veya uzaktan erişilip bu işlevlerin kullanılmasını sağlayan arayüzdür. API, bir sunucunun üzerindeki uygulamaya farklı platformlardan ulaşılmasını ve response dönmesine olanak sağlar. Web API’lerinin tamamı REST(REpresentational State Transfer) mimarisi üzerinde dizayn edilir. Bundan dolayı platform bağımsız çalışır. Bu mimari GET, POST, PUT, DELETE metotlarının hepsini desteklemektedir. Web API çıktıları talebe göre JSON, XML gibi çeşitli çıktıları olabilir.

API kullanımın asıl amacı bir uygulamanın bütün veya bazı metotlarını diğer uygulamalara kullanıma açarak uzaktan gelecek veri ve bilgi taleplerini kolayca ve hızlıca karşılamaktadır. Böylelikle tek bir uygulamada gerçekleşen işlemlerden izin verilen uzak kullanıcılar belirli parametreler sayesinde faydalanabileceklerdir. API genel olarak gerçek zamanlı veriyi tek tek işlemeye yarar. Sunucunun API üzerinden gönderdiği parametre içeren veya içermeyen girdiyi sunucu işler ve geriye bir sonuç kümesi veya sadece başarı bildirimi döner. Verinin sadece belli bir kısmında yapılacak güncellemeler bir parametre gerektirir. API ise bu işlemlerin hem hızlı hemde pratik olmasını sağlar.

Entegrasyon tarafına gelecek olursak, karşıdaki sunucunun API üzerinden izin verdiği fonksiyonları kullanabilmek için öncelikle istemciyi tanıtacak bir key gereklidir. Daha sonra bu key ile kullanılabilecek erişimi onaylayacak olan bir şifre almak gerekir. API hizmeti veren sunucu tarafındaki kurum, ilk olarak istemcinin başvurusunda key ve şifreyi ister. İstenen fonksiyonlar kullanılır ve istenen bilgiler karşı uygulamadan API’lerin döndüğü response’lar vasıtasıyla alınır. İsteğe göre API’lara erişim ile ilgili kısıt konulabilir, bunun nedeni API’leri aşırı meşgul olmasını istememeden kaynaklıdır.

Akıl ve Zeka

Yapay zeka ile ilgili ilk yazımı aslında “Yapay Zeka” konusunu özetleyen bir yazı olmasını istemiştim fakat internet üzerinden yapmış olduğum araştırmalarda boşluğun orada değil başlangıç için “Yapay Zeka” konusu öncesinde Akıl ve Zeka arasındaki ayrımın doğru yapılamadığını farketmemle ilk yazımı bu yöne kaydırmak durumunda kalmamdı. En temelde bu farkı iyi bilmemiz lazım. Bu iki terimin hiçbir şekilde birbirine karışmıyor olması lazım. O zaman başlayabiliriz.

Akıl kavramı genellikle zeka ile paralel anlamda kullanılır. Aslında ikisi farklı kavramlardır. Akıl, anlama, idrak etme, kavrama, karar verme ve önlem alma yetenekleri için kullanılır. Muhakeme ve bilgi edinme gibi yetilerimizde akıl ile ölçülmektedir. Zeka, çevrende oluşan olayları anlama, bu olayları yargılama ve oluşan olaylardan sonuç çıkarma gibi yetenekler olarak düşünülebilir.

Akıl, genetik yoldan geldiği gibi çevreden aldığımız etkileşimler ve kısıtlardan da etkilenir. Sevgi, korku, kıskançlık gibi doğal güdülerimizle akıl ile alakalı olgulardır. Bunlardan dolayı akıl sabit bir durum değildir. Hayat boyu gelişim gösterir ve bundan dolayı herhangi bir algoritma ile taklit edilmesi mümkün değildir.

Zeka, doğuştan belirli bir orana sahiptir. Belirli konular üzerinde çalışarak, öğrenerek, eğitilerek, öğrenilen bilgi ve birikimler ile geliştirilebilir. Herhangi yaşanan bir olayı algılama, öğrenme, analiz etme ve olaydan sonuç çıkarabilme zeka ile ilişiktir. Zeka bu durumdan dolayı taklit edilebilir ve bundan dolayı “Yapay Zeka” olarak adlandırılır.