Python ile Kendi Yapay Zekanızı Yazma Rehberi ∞

Python ile Kendi Yapay Zekanızı Yazma Rehberi

Python ile Kendi Yapay Zeka

Python ve yapay zeka kavramları, özellikle son dönemlerin yazılım dünyasında yan yana anılır oldu. Python için özel olarak yazılmış PyCharm, Tensorflow ve Keras gibi yapay zeka kütüphaneleri, bunlarla uyumlu çalışan MatPlotLib ve Seaborn gibi veri görselleştirme kütüphaneleri ile bunlarla geliştirilen farklı çözümler Python dilini yapay zeka uygulamaları oluşturma konusundaki bir numaralı seçenek yapıyor.

Haliyle bu alanlara ilgi duyan kullanıcılar yapay zeka nasıl yapılır sorusunu soruyor ve İnternet üzerindeki çeşitli kaynaklardan, her bir kaynaktan topladığı üç beş şeyi bir araya getirerek kendi yapay zeka uygulamalarını yazıyor. Bu yazı, kütüphane bağımsız olarak genel geçer bir yapay zeka uygulaması yazma rehberi işlevi görecek ve kullanıcıya/programcıya sadece kullanmak istediği kütüphaneleri seçip o kütüphanelerle kendi uygulamasını yazmak kalacak.

Python ve Yapay Zeka Tanımları

Bu güçlü rehbere başlamadan önce Python ve yapay zeka konularında biraz genel kültür bilgisi vermek yerinde olacaktır.

Python programlama dili, 1989 yılında geliştirilmiş ve günümüze kadar geçirdiği 35 yıllık serüvende genel programlamada en çok kullanılan dillerden birisi haline gelmiştir. Terminal uygulamalarından görsel uygulamalara, Web arka plan uygulamalarından yapay zeka uygulamalarına kadar pek çok alanda kullanılan Python, kurulum ve kodlama kolaylığı ile öne çıkan bir programlama dilidir. Öğrenmesi çok kolay olan Python, bir programlamaya giriş dili olarak kullanılabilir.

Yapay zeka ise, 1950’li yıllardan beri geliştirilmekte olan bir kavramdır. Alan Turing’in “Makineler düşünebilir mi?” sorusu ile temelleri atılan yapay zeka, insan gibi davranış sergileyen makineler geliştirme amacını gütmektedir. Günümüzde geliştirilen yapay zeka modelleri; matematiksel hesaplama, iletişim botları (chatbot), görsel/metin üretici ve/veya bunların bir arada kullanıldığı uygulama alanları başta olmak üzere pek çok farklı alanda kullanılmaktadır.

Yapay Zeka Türleri

Günümüzde kullanılan ve/veya bahsi geçen iki ana yapay zeka uygulama türü, şu anda kullanımda ve geliştirme aşamasında olan tüm yapay zeka modellerini kapsayan dar/kısıtlı yapay zeka (Narrow Artificial Intelligence) ve bir konsept olarak var olan, ancak kullanıma geçmemiş olan genel/gelişmiş yapay zeka (General Artificial Intelligence) olmak üzere ikiye ayrılır. Bu modeller genel olarak edindiği bilgileri bir veya birkaç alanda mı, yoksa genel olarak mı kullanabildiğine göre ayrılmaktadır.

Genel yapay zeka modelleri henüz kullanıma geçmediği için de, doğal olarak bu yazıda bizi ilgilendiren kısım dar yapay zeka modelleri olacaktır. Bu dar yapay zeka modelleri genel olarak dörde ayrılır.

Reaktif Yapay Zeka

Reaktif Yapay Zeka, yapay zekanın en basit formu olarak nitelendirilebilir. Bu yapay zekalar sadece o an ellerinde olan bilgilere göre hesaplama yapıp çıktı verirler ve hafızaları yoktur. Doğal olarak da diğer yapay zeka modellerine kıyasla çok daha az yer tutarlar. Bir sayı dizisinin elemanlarını alan ve bir sonraki sayıyı tahmin eden program Reaktif Yapay Zeka örneğidir.

Kısıtlı Hafıza Yapay Zeka

Günümüzde en çok kullanılan yapay zeka türü kısıtlı hafıza yapay zekadır. Bu yapay zekalar Reaktif Yapay Zekalardan farklı olarak bir veritabanına sahiptirler ve bu veritabanında tuttukları veriler üzerinden eğitilir ve aldıkları eğitimin sonucunda işlem yaparlar. Kısıtlı Hafıza modelleri hafıza büyüklüğü, hafızanın teorik tutulma süresi ve girdilerden daimi öğrenme durumu gibi kıstaslarda farklı kategorilere ayrılır, o yüzden oldukça geniş bir sınıftır.

Empatik Yapay Zeka

Empatik yapay zeka denilen kavram, özellikle insanların inanışlarını, isteklerini ve duygularını anlama kapasitesine sahip olan yapay zeka modellerine denir. Bu seviyedeki yapay zekalar daha karmaşık ve detaylı işlemler yapar ve buna bağlı olarak da daha detaylı kararlar verirler. Yazının yazıldığı an itibariyle ancak bu yapay zeka konseptinin özelliklerini gösterebilen Kısıtlı Hafıza Yapay Zeka modelleri denenmiştir.

Kendinin Farkında Olan Yapay Zeka

Bu yapay zeka konsepti, kendi varlığının farkında olan ve bilinç sahibi olan yapay zeka modellerini tabir eder. Günümüzde hala bir konsept olan ve bilinç konusunda bazı zorlayıcı sorulara önayak olan bu konseptin nasıl uygulamaya geçeceği henüz kesinleşmemiştir.

Gereksinimler

Eğer kendi yapay zeka uygulamanızı yazmaya karar verdiyseniz artık yavaştan bu iş için hazırlanmaya başlayabiliriz. Öncelikle kendi yapay zeka uygulamanızı yazmak için gerek duyacağınız yazılımlardan başlayalım.

Python

Python dili, yapay zeka uygulamaları için tek çözüm olmasa da günümüze olmazsa olmaz denilebilecek kadar önemli bir yere sahiptir, ki bu yazıda anlatacağımız şeyler tamamı ile bu dilde yapabileceğiniz şeyleri kapsamaktadır. Bu dili edinmeniz için yapmanız gereken tek şey Python’un resmi websitesinden bilgisayarınıza uygun olan sürümünü indirip kurulumunu yapmaktır.

SQLite

Eğer sıfırdan kendi modelinizi oluşturacaksanız ve bu model için eğitim veri seti tutacaksanız bunun için bir veritabanı sistemine ihtiyacınız olacaktır. Python uygulamalarında sıklıkla tercih edilen veritabanı sistemi, tabii ki sunucusuz bir mimariye sahip olan ve dünyada en çok kullanılan veritabanı sistemi olma özelliğini taşıyan SQLite’tır. Python dilinde yerleşik bir kütüphanesi bulunan SQLite, bilgisayarınıza indirip sistem değişkenleri arasında tanıtıldıktan sonra hiçbir yeni paket indirmeye gerek kalmadan kullanılabilir. Tabii ki SQLite veritabanını kullanmak için SQL bilgisine sahip olmanız gerekir.

Kod Editörü

Herhangi bir programlama dili üzerinde bir program yazacaksak bu işi bizim için mümkün olduğunca kolaylaştıracak bir kod editörü bulmak bizim için önemli bir noktadır. Günümüzde en çok kullanılan kod editörü olan Visual Studio Code veya Python’a özel yazılmış olan Spyder ve Jupiter Notebook gibi kod editörleri işimizi görecektir.

Bu iki temel gereksinimimizi karşıladıktan sonra temel hatlarıyla bir yapay zeka nasıl yazılır ona bakacağız.

Python’da Basit Bir Yapay Zeka Uygulaması Mimarisi

Python’da bir yapay zeka uygulaması oluşturacaksanız bu uygulamanızı üç ana parçaya ayırabilirsiniz, bu bölmeler sırayla;

  • Arayüz: Kullanıcının veri girişinde bulunacağı, istendiği takdirde veritabanı üzerinde değişiklik yapabileceği parça. Arayüzünüz terminal (CLI), görsel (GUI) veya Web olabilir.
  • Yapay Zeka: Eğitim, test ve kullanım fonksiyonlarını bu parçada yazabilirsiniz. İsterseniz aynı dosyaya, isterseniz farklı dosyalara bölebilirsiniz.
  • Veri: Veritabanı, toplu veritabanı oluşturmak için özel modüller, İnternetten indirdiğiniz hazır yapay zeka modelleri vb. uygulamanın bu parçasında yer alır. Eğer veritabanına manuel veri eklemesi yapabilmek istiyorsanız bunun için yazacağınız uygulama(lar) da bu bölüme girer. Eğer Reaktif Yapay Zeka yapacaksanız bu parçaya ihtiyacınız olmayacak.

Eğer son derece küçük ve basit bir yapay zeka uygulaması üstünde çalışıyorsanız (özellikle yapay zekayı öğrenme aşamasında iseniz) bu aşamaları tek bir dosyanın içinde birleştirmeniz mümkün. Ancak çok küçük olmayan projelerden itibaren; yazma, okuma ve düzeltme konularında kolaylık sağlanması için uygulamanızı veritabanı hariç en az üç (Reaktif Yapay Zeka ise iki) dosyaya bölmenizi tavsiye ediyoruz.

Yapay Zeka Uygulamasını Geliştirme

Gereksinimlerinizi karşıladıktan ve bir yapay zeka uygulamasının sahip olması gereken mimariyi öğrendikten sonra sıra geldi bu uygulamaları yazmaya.

Gerekli Paketleri İndirip Uygulamaya Dahil Etme

Yapmak istediğiniz yapay zeka uygulamasının hangi işlemleri yapmasını istediğinize farklı olarak ihtiyaç duyacağınız Python yapay zeka kütüphanesi de farklılık gösterecektir. Kullanmak istediğiniz yapay zeka kütüphanesini seçtikten sonra Komut İstemi’ni açıp “pip install kütüphaneAdı” kodunu yazıp Enter’a basarak istediğiniz paketi ve o paketin ihtiyaç duyduğu tüm paketleri kolayca kurabilirsiniz.

Paketleri indirip kurduktan sonra oluşturduğumuz Python dosyasının en başına “import kütüphaneAdı” veya “from kütüphaneAdı import fonksiyon/classAdı” satırlarıyla kullanmak istediğimiz fonksiyonları ve kütüphaneleri dosyamıza dahil edebiliriz.

Verilerin Oluşturulması

Yapacağınız uygulamanın Reaktif olup olmamasına göre verileri oluşturma şekliniz değişkenlik gösterecektir.

  • Eğer Reaktif bir yapay zeka uygulaması yazıyorsanız verilerinizin tamamı kullanıcıdan alınacaktır. O yüzden bir veritabanı oluşturup veri saklamanıza gerek olmayacaktır (eğer Reaktif olarak çalışıp hafıza oluşturan ve bu hafızayı da hesaplarında kullanan bir uygulama yapmak isterseniz orası ayrı).
  • Eğer Kısıtlı Hafıza Yapay Zekası yazacaksanız veritabanınızı farklı yollarla oluşturabilirsiniz. Az sayıda veri için manuel giriş yeterli olurken, çok sayıda veri için toplu veri seti gerekecektir. Bu veri setini direk hafıza olarak kullanabileceğiniz gibi, bu dosyadaki verileri bir SQLite (.db) dosyasına atarak kendinize düzenli bir veritabanı oluşturmanız da mümkün. Her iki senaryoda da verilere erişimin ve veriler üstünde düzenleme yapmanın kolay olması açısından SQLite veritabanının kullanılması önerilir.
  • Bir yapay zeka uygulaması geliştirilirken veritabanına eklenen veriler girdi (input) ve çıktı (output) olmak üzere ikiye ayrılır, ancak girdi ve çıktı aynı sütun içerisinde yer alır ve çıktı o satırın en son sütunu olur. Örneğin 3 ve 5 girdilerinden elde edilen sonuç 2 ise girdiler ve çıktı veritabanına (3, 5, 2) satırı olarak kaydedilir.

Yapay Zekanın Oluşturulması

İş geldi en eğlenceli (ve en zorlu) kısma. Kullandığınız paketlere ve fonksiyonlara uyumlu, onlaın işleyebileceği veriler üzerinde çalışan bir yapay zeka sistemi oluşturmak önemli ölçüde deneme-yanılma gerektirebilir. Kullanacağınız fonksiyonların işini kolaylaştırmak için veride ön işleme yapmanız, yeni diziler/listeler oluşturmanız vs. gerekebilir.

Eğer Kısıtlı Hafıza Yapay Zekası kullanıyorsanız oluşturduğunuz veritabanından verileri çekip eğitimi (ve testi) gerçekleştirmeniz gerekecektir. Eğer basit bir Reaktif Yapay Zeka yapıyorsanız kullanıcı girdilerini geçici olarak depolayıp onlar üstünde işlem yapacak bir algoritma yazabilirsiniz.

Girdi Arayüzünün Yazılması

Yapay zekanızın arka yüzünü oluşturduktan sonra sıra geldi ön yüze. Bunun için terminal, görsel veya Web arayüzü seçebilirsiniz. Bu arayüzde uygulamayı doğru çalıştıracak girdi sistemini oluşturup bu girdiler verildikten sonra çıktısını (veya çıktılarını) kullanıcıya döndürecek bir sistem oluşturmalısınız. Bu arayüzü nasıl oluşturacağınız, kurduğunuz veri sistemine ve yaratıcılığınıza bağlı 🙂

Uygulamanın Geliştirilmesi

Eğer yaptığınız yapay zeka uygulaması size göre biraz yetersiz kalıyorsa veya onu geliştirmeye değer görüyorsanız temel olarak yapabileceğiniz iki şey var.

  • Veri sayısını arttırma: Veritabanınızda bulunan veri sayısını ve detayını (veritabanında bir kayıttaki sütun sayısı) arttırarak yapay zekanızın doğruluk payını arttırabilir, birbirinden farklı kulvarlarda veriler ekleyerek nispeten uçuk diyebileceğiniz (parametreleri çok büyük ya da çok küçük) veriler üzerindeki performansını arttırabilirsiniz.
  • Kullanıcı girdisinden öğrenme: “Self-learning” olarak geçen sistemi kendi uygulamanıza kurabilirsiniz. Bunun için yapmanız gereken şey girdileri ve çıkan sonucu mevcut veritabanınıza eklemek ve uygulamanızı tekrar eğitmektir. Bunun için sıfırdan yeni bir model değişkeni oluşturup eğitim yapabilir veya direk mevcut eğitimin üzerine koyabilirsiniz.
  • Algoritma Değiştirme: Veri ön işleme, kısıtlar ve uygulamanızda kullandığınız kütüphaneler gibi pek çok detay gelişime ve değişime açıktır. O yüzden eğer mevcut sisteminizin yeterince iyi çalışmadığını düşünüyorsanız farklı algoritmaları, farklı ön işlemeleri deneyerek işinize daha çok yarayacak olan sistemi oluşturmaya çalışabilirsiniz.

Python dilinde yapay zeka uygulaması geliştirme süreci genel hatlarıyla bu şekilde işlemektedir. Sizin Python dilinde ve yapay zeka alanındaki ilginiz, deneyiminiz ve fikirleriniz size gittikçe daha sağlam ve kullanışlı yapay zeka uygulamaları yazma fırsatı sunacaktır. Burada öğrendiklerinizin üstüne uygulama ile katacağınız bilgiler ile oldukça güzel yapay zeka uygulamaları yazmanız işten bile değil.

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 ...
pyhton flask

Python Flask Nedir ve Python Flask ile Web Geliştirme

Python ile uygulama geliştirme dendiğinde akla genellikle konsol uygulamaları, veri uygulamaları ve yapay zeka gelir, ancak Python dilinin yoğun olarak kullanıldığı alanlardan birisi de ...

Microsoft Copilot Nedir ve Nasıl Kullanılır?

Microsoft Copilot, Microsoft'un Windows, Edge, mobil ve Office 365 için yapay zeka aracıdır. Yapay zekanın gelişmesi ve OpenAI GPT'nin popüler olması ile birlikte teknoloji ...
Gmail akıllı yazma

G-mail Akıllı Yazma Özelliğini Açma Kapatma

Akıllı yazma aracı, e-mailler için otomatik tamamlama gibi çalışır. E-maillerin nasıl yazılacağını öğrenir ve cümlelerin tamamlanmasını sağlar. E-mail metinlerinin hızlıca oluşmasını sağlar. Yazarken öneriler ...
IMAP

İmap Nedir? İmap Kullanımının Faydaları

Birçok insan imap nedir bilmemektedir. Gerek günlük hayatta gerekse iş hayatında e-mail kullanımı çok önemlidir. E-mail protokolü sayesinde kişiler her cihazdan e-mailerini kontrol edebilir, ...
mac windows

Mac vs Windows Bilgisayar Özet Karşılaştırma

Bilgisayar teknolojisi, günümüzde büyük ölçüde Windows ve Mac işletim sistemleri üzerine odaklanmış durumda. Her iki işletim sistemi de benzersiz özelliklere ve kullanıcı deneyimine sahiptir ...
Gmail görev oluşturma

G-mail Görev Oluşturma G-mail Alanlar Düzenleme

G-Mail’den görev oluşumu çok basittir. Öncelikle, G-Mail hesabına giriş yaparak, sağ üstteki alan "Görevler"e tıklanmalıdır. Açılacak pencerede, yeni görevin eklenebilmesi için "Görev Ekle"ye tıklanmalıdır ...
MAPI EWS

MAPI EWS Nedir Ne İşe Yarar Ne Amaçla Kullanılır?

Teknolojinin gelişim göstermesi ile birlikte MAPI EWS nedir ne amaçla kullanılır pek çok kişi tarafından merak edilmektedir. İnternet önemli iletişim kaynaklarındandır. Gere iş alanlarında ...
Shopify

Shopify DNS Yönlendirmesini Yapmak Adım Adım

Sahip olduğunuz alan adını Shopify’e yönlendirmek istediğinizde hangi işlemleri gerçekleştirmeniz gerektiğini merak ediyor olabilirsiniz. Shopify DNS Yönlendirmesini Yapmak Adım Adım aktaracağımız bu yazımız sizler ...