Python ile Basit Reactive AI Geliştirme ∞

Python ile Basit Reactive AI Geliştirme

Python ile Basit Reactive AI Geliştirme

Günümüzde gittikçe daha çok ivme kazanan yapay zeka uygulamaları, şirketler kadar kendi yapay zeka uygulamalarını yazmak isteyenlerin de ilgi odağı haline geliyor. Python hakkında bilgisi ve tecrübesi olup yapay zeka kodlama alanına girmek isteyenler de doğal olarak nereden başlayacağını merak ediyor. Eğer bu durumda iseniz ve yapay zeka dünyasına bir geliştirici veya geliştirici adayı olarak ilk adımı atmak istiyorsanız yapay zekanın en basit hali olan reaktif yapay zeka modeli ile başlayabilirsiniz. Bu yazıda reaktif yapay zekanın ne olduğu, nasıl çalıştığı ve akabinde nasıl yazıldığı anlatılacaktır.

Reaktif Yapay Zeka (Reactive AI) Nedir?

Yapay zekanın en ilkel hali olarak kabul edilen, kronolojik olarak ortaya çıkan ilk evrimi olan ve yabancı literatürde “reactive AI” olarak geçen reaktif yapay zeka, gerçek zamanlı veri alımı ve bu verilerin işlenmesi mantığı üzerine kurulu bir yapay zeka sistemidir. Bu tür yapay zeka sistemlerinin örneği otonom arabalar, sensörlü robotlar, chatbot/sanal asistan yapay zeka sistemleridir. Bu tür bir yapay zeka sistemi, kullanıcıdan girdiyi alır ve bu girdiyi işleyerek girdiden elde ettiği sonucu döndürür. Bu sistemler genel olarak “kendi kendine öğrenen yapay zeka” olarak geçer.

Reaktif özellik gösteren bir yapay zeka, halihazırda veri tuttuğu bir veritabanına, yani hafızaya, sahip olabilir, ancak bu hafızaya sahip olmayan, sadece kullanıcı girdisiyle çalışan yapay zeka modelleri de bulunmaktadır. Bu tür yapay zeka sistemleri “stateless” (durumsuz) alt kategorisine ayrılır. “Stateless” olan bütün yapay zekalar, bilgiyi bir yerden almak zorunda olduklarından dolayı reaktif yapay zeka kategorisine girerler.

Reaktif Yapay Zeka Yazmak

Reaktif yapay zeka yazmak için kesin olarak gerek duyacağınız ilk şey Python programlama dili olmakla beraber, bunu hangi tür bir yapay zeka yazmak istiyor iseniz ona uygun şekilde kullanacağınız bir algoritma içeren yapay zeka paketleri ve (eğer dahil etmeyi düşünüyorsanız) veritabanı ya da bir yapay zeka modeli izler.

Bu yazıda Python dilini ve scikit-learn kütüphanesini kullanarak basit bir sayı tahmin uygulaması yapacağız. Bu uygulamamızda kullanıcıdan bir sayı dizisi isteyeceğiz ve bu sayı dizisine göre programımız bu dizinin bir sonraki sayısını tahmin edecek.

Aşama 1: Gerekli Kütüphaneyi İndirme

Bu örneğimiz için gerekli olan scikit-learn kütüphanesi, Komut İstemi üzerinden aşağıdaki komut girilerek indirilir:

pip install scikit-learn

Aşama 2: Uygulamayı Yazma

Daha sonra kod editörümüzü açıp oluşturduğumuz boş .py dosyasının ilk satırına aşağıdaki ifadeyi yazıyoruz:

from sklearn.linear_model import LinearRegression

 Bu satır ile örneğimiz için scikit-learn kütüphanesinin linear_model alt modülünün LinearRegression sınıfını projemize dahil ediyoruz.

Hemen ardından programımızda en çok işimize yarayacak iki değişkenimizi tanımlıyoruz. Bunlar sırasıyla kullanıcı girişi ve sonraki sayısını tahmin edeceğimiz diziyi tutan dizi değişkenimiz:

userInput = None

sequence = []

Bu değişkenleri programımızın girdi alma kısmında şu şekilde kullanacağız:

def main():

    global userInput

    global sequence

    print("0 sayısını girerek diziyi sonlandırın.")

    while userInput != '0':

        userInput = input("Bir sayı girin: ")

        try:

          if userInput != ‘0’:

            sequence.append(int(userInput))

        except:

            pass

    result = round(guess(sequence))

    print(f"Sonraki sayı: {result}")

 Burada userInput ve sequence değişkenlerimizi main fonksiyonumuza tanıtmak için o değişkenlerin global olduğunu değişken adı önüne “global” takısı ile fonksiyonun en başında belirtiyoruz. Daha sonra kullanıcıya girdi girmesi için bir mesaj veriyoruz ve girdiği girdi 0 olmadığı sürece kullanıcı girdisini diziye ekleyip kullanıcıdan yeni bir girdi istiyoruz. Eğer girilen girdi ‘0’ değil ise girdiden sonra girdiyi tam sayı değerine çevirip diziye ekliyoruz, çünkü input fonksiyonu standart olarak String tipi bir girdi alır. Bunu bir try-except bloğuna alarak girdinin hatalı olması durumunda programın patlamadan sadece girdi almaya devam etmesini sağlıyoruz.

Girdiyi aldıktan sonraki iki satırda karşımıza guess isimli bir fonksiyon çıkıyor. Bu fonksiyon örneğimiz için yazılmış olup aşağıdaki şekilde çalışıyor ve programımızın yapay zeka kısmını oluşturuyor:

def guess(sequence):

    if len(sequence) < 2:

        return sequence[0]

    else:

        X = [[x] for x in sequence[:-1]]

        y = [x for x in sequence[1:]]

        model = LinearRegression()

        model.fit(X, y)

        return model.predict([[sequence[-1]]])[0]

 Bu fonksiyonumuz kullanıcı girdileriyle oluşturduğumuz listeyi parametre olarak alıyor ve öncelikle dizinin uzunluğunu (eleman adedini) kontrol ediyor. Eğer dizi tek bir elemandan oluşuyorsa ortada bir diziden söz edilemeyeceği için fonksiyon o tek sayıyı döndürüyor. Aksi takdirde Doğrusal Regresyon modelinde kullanılacak olan iki değişkeni oluşturuyor (X ve Y). İlk değişken dizinin son elemanını görmezden gelerek yeni bir alt dizi oluştururken, ikinci değişken olan Y’de ilk eleman görmezden geliniyor. Modelde X modelin girdi değerlerini temsil ederken, Y ise çıktı değerlerini temsil ediyor.

Daha sonra LinearRegression sınıfında bir model değişkeni oluşturuluyor ve X ile Y değişkenleri “fit” ediliyor. Akabinde modelin tahmini “return” ifadesiyle döndürülüyor ve main fonksiyonunun son satırında çıktı olarak döndürülüyor. Modelin tahmini tek sayı değil de bir dizi olarak döndürüldüğü için bu dizinin sıfırıncı elemanı alınıyor.

Aşama 3: Uygulamayı Çalıştırma

Kodumuzun en alt satırına main fonksiyonunu çağırıp uygulamamızı çalıştırabilmek için “main()” kod satırı yazılarak kod kaydedilir. Komut isteminden ya da üstüne çift tıklama ile de uygulama çalıştırılır.

pyhton test

Yukarıdaki görsel bu programın örnek bir kullanımına aittir. Burada gördüğünüz gibi 1’den 5’e kadar sıralı bir dizi girersek uygulamanın sonunda tahmin olarak “6” cevabını alacağız.

Aşama 4: Uygulamayı Geliştirme

Bu örnek ile Python programlama dili üzerinden büyük ihtimalle ilk yapay zeka yazma deneyiminizi kazanmış oldunuz. Kodun okunabilirliği için gerekli olacak boşluklar dahil sadece 30 satır tutan bu basit uygulama, veritabanı ihtiyacı duymadan sadece kullanıcıdan aldığı girdiyle çalışıp çıktı üretir. Bu uygulama ile sıralı, toplam dizisi, Fibonacci dizisi gibi sayı dizilerini bulabilirsiniz, ancak ikinci veya üçüncü dereceden polinom içeren dizilerden girdiler aldığında alacağınız cevaplar pek de doğru veya tatmin edici olmayacaktır.

Yazdığınız yapay zeka modelinin bu sorununu çözmek için, elemanlar arasındaki farkları bir dizide tutup o dizi üzerinden işlem yapmaktan başlayıp daha gelişmiş modelleri uygulamaya dahil etmeye, hatta eğer kullanıma açacaksanız arayüz tasarlamaya kadar giden çözüm yöntemleri aracılığıyla uygulamanızı daha da geliştirebilirsiniz.

github

GitHub Nedir ve Neden Önemlidir?

GitHub, yazılım geliştiricilerin kodlarını depolamak, yönetmek ve diğer geliştiricilerle işbirliği yapmak için kullandıkları popüler bir platformdur. Bu platform, sadece kod deposundan çok daha fazlasını ...
World Wide Web

World Wide Web Nedir? WWW Hakkında Her Şey

World Wide Web (WWW), genellikle kısaca Web olarak adlandırılan, internet üzerindeki birbirine bağlı sayfaların oluşturduğu devasa bir bilgi sistemidir. Basitçe söylemek gerekirse, her gün ...
teamseak

TeamSpeak Sunucusu Kurma Rehberi: Kapsamlı Bir Anlatım

TeamSpeak, özellikle oyuncular ve ekipler arasında sesli iletişimi sağlayan popüler bir platformdur. Kendi sunucunuzun olması, size daha fazla özelleştirme ve kontrol imkanı sunar. Bu ...
discord

Discord’a DNS ile Nasıl Girilir? Kapsamlı Rehber

Discord'a DNS ile Giriş Yapmak: Adım Adım Anlatım Discord, oyuncular ve topluluklar için popüler bir iletişim platformudur. Ancak, bazı durumlarda erişim engelleriyle karşılaşabilirsiniz. Bu ...
win11

Windows 11 Sistem Gereksinimleri: Bilgisayarınız Hazır mı?

Windows 11, Microsoft'un en yeni işletim sistemi olarak büyük bir heyecanla karşılandı. Ancak bu yeni işletim sistemine geçebilmek için bilgisayarınızın belirli özelliklere sahip olması ...
mendix nedir

Mendix: Hızlı ve Verimli Uygulama Geliştirmenin Anahtarı

Mendix nedir? Mendix, kuruluşların görsel bir arayüz kullanarak, karmaşık kod yazmaya gerek kalmadan web ve mobil uygulamalar geliştirebilmelerini sağlayan bir düşük kod geliştirme platformudur ...
mavi dil hastalığı

Mavi Dil Hastalığı: Hayvanları Tehdit Eden Sessiz Katil

Mavi Dil Hastalığı Nedir? Mavi dil hastalığı, özellikle sığır, koyun, keçi gibi geviş getiren hayvanlarda görülen ciddi bir viral enfeksiyondur. Hastalık, adını hayvanların dilinde ...
kuantum bilgisayar

Kuantum Bilgisayarlar: Geleceğin Bilgisayarları

Kuantum bilgisayarlar, klasik bilgisayarların işlem gücünü aşan, yeni nesil bilgi işlem cihazlarıdır. Kuantum mekaniğinin ilginç özelliklerini kullanarak, karmaşık problemleri çok daha hızlı çözebilirler. Klasik ...
keyword

Anahtar Kelime Analizi Nedir, Nasıl Yapılır?

İnternet kullanıcılarının internet üzerinde arattıkları terimleri bulmak ve bunları SEO stratejilerinde kullanmak için gerçekleştirilen çalışmaya anahtar kelime analizi denir. Web sitesi oluşturmak isteyenlerin anahtar ...
Python ile Basit Reactive AI Geliştirme

Python ile Basit Reactive AI Geliştirme

Günümüzde gittikçe daha çok ivme kazanan yapay zeka uygulamaları, şirketler kadar kendi yapay zeka uygulamalarını yazmak isteyenlerin de ilgi odağı haline geliyor. Python hakkında ...