Yapay Zeka (AI), son yıllarda önemli miktarda popülerlik kazanmıştır.
Bir yazılım mühendisi, bilgisayar bilimcisi veya genel olarak veri bilimi meraklısıysanız, muhtemelen bu alanın sunduğu muhteşem görüntü işleme, örüntü tanıma ve nesne algılama uygulamaları ilginizi çekmiştir.
Yapay zekanın muhtemelen duymuş olduğunuz en önemli alt alanı Derin Öğrenmedir. Bu alan, olarak bilinen insan beyni işlevselliğinden sonra modellenen güçlü algoritmalara (bilgisayar programı talimatları) odaklanır. Nöral ağlar.
Bu yazıda, Yapay Sinir Ağları kavramını ve bu modellerin nasıl oluşturulacağını, derleneceğini, uydurulacağını ve değerlendirileceğini inceleyeceğiz. Python.
Nöral ağlar
Sinir Ağları veya NN'ler, insan beyninin biyolojik aktivitesinden sonra modellenen bir dizi algoritmadır. Sinir Ağları, nöronlar olarak da adlandırılan düğümlerden oluşur.
Dikey düğümler topluluğu katmanlar olarak bilinir. Model bir girdi, bir çıktı ve bir dizi gizli katmandan oluşmaktadır. Her katman, hesaplamaların yapıldığı nöronlar olarak da adlandırılan düğümlerden oluşur.
Aşağıdaki şemada, daireler düğümleri, dikey düğümler topluluğu ise katmanları temsil etmektedir. Bu modelde üç katman vardır.
Bir katmanın düğümleri, aşağıda görüldüğü gibi iletim hatları aracılığıyla bir sonraki katmana bağlanır.
Veri setimiz etiketli verilerden oluşmaktadır. Bu, her veri varlığına belirli bir ad değeri atandığı anlamına gelir.
Bu nedenle, bir hayvan sınıflandırma veri seti için verilerimiz olarak kedi ve köpek resimlerine sahip olacağız ve etiketlerimiz olarak 'kedi' ve 'köpek' olacak.
Modelimizin onları anlamlandırması için etiketlerin sayısal değerlere dönüştürülmesi gerektiğine dikkat etmek önemlidir, bu nedenle hayvan etiketlerimiz kedi için '0' ve köpek için '1' olur. Hem veriler hem de etiketler modelden geçirilir.
Learning
Veriler, her seferinde bir varlık modele beslenir. Bu veriler parçalara ayrılır ve modelin her bir düğümünden geçirilir. Düğümler bu parçalar üzerinde matematiksel işlemler gerçekleştirir.
Bu öğretici için matematiksel işlevleri veya hesaplamaları bilmeniz gerekmez, ancak bu modellerin nasıl çalıştığı hakkında genel bir fikre sahip olmak önemlidir. Bir katmandaki bir dizi hesaplamadan sonra, veriler bir sonraki katmana geçirilir ve bu şekilde devam eder.
Tamamlandığında, modelimiz çıktı katmanındaki veri etiketini tahmin eder (örneğin, bir hayvan sınıflandırma probleminde bir kedi için bir '0' tahmini alırız).
Model daha sonra bu tahmin edilen değeri gerçek etiket değeriyle karşılaştırmaya devam eder.
Değerler eşleşirse, modelimiz bir sonraki girişi alacaktır, ancak değerler farklıysa, model, kayıp olarak adlandırılan her iki değer arasındaki farkı hesaplayacak ve bir dahaki sefere eşleşen etiketler üretmek için düğüm hesaplamalarını ayarlayacaktır.
Derin Öğrenme Çerçeveleri
Kodda Sinir Ağları oluşturmak için içe aktarmamız gerekiyor Derin Öğrenme çerçeveleri Entegre Geliştirme Ortamımızı (IDE) kullanan kitaplıklar olarak bilinir.
Bu çerçeveler, bu eğitimde bize yardımcı olacak önceden yazılmış işlevlerin bir koleksiyonudur. Modelimizi oluşturmak için Keras çerçevesini kullanacağız.
Keras, derin öğrenme ve yapay zeka arka ucunu kullanan bir Python kütüphanesidir. tensör akışı Kolaylıkla basit ardışık modeller şeklinde NN'ler oluşturmak.
Keras ayrıca kullanılabilecek kendi önceden var olan modelleri ile birlikte gelir. Bu ders için Keras'ı kullanarak kendi modelimizi oluşturacağız.
Bu Derin Öğrenme çerçevesi hakkında daha fazla bilgiyi şuradan edinebilirsiniz: Keras web sitesi.
Sinir Ağı Oluşturma (Eğitim)
Python kullanarak bir Sinir Ağı oluşturmaya devam edelim.
Sorun bildirimi
Sinir Ağları, AI tabanlı sorunlara bir tür çözümdür. Bu eğitim için, mevcut olan Pima Indians Diabetes Data'yı gözden geçireceğiz. okuyun.
UCI Machine Learning bu veri kümesini derledi ve Hintli hastaların tıbbi kaydını içerir. Modelimiz, hastanın diyabet başlangıcının 5 yıl içinde olup olmadığını tahmin etmelidir.
Veri Kümesi Yükleniyor
Veri kümemiz, Microsoft Excel kullanılarak kolayca değiştirilebilen 'diabetes.csv' adlı tek bir CSV dosyasıdır.
Modelimizi oluşturmadan önce veri setimizi import etmemiz gerekiyor. Aşağıdaki kodu kullanarak bunu yapabilirsiniz:
pandaları pd olarak içe aktar
veri = pd.read_csv('diabetes.csv')
x = data.drop(“Sonuç”)
y = veri[“Sonuç”]
İşte biz Pandalar CSV dosya verilerimizi manipüle edebilmek için kütüphane, read_csv(), dosyamızdaki değerleri 'data' adlı bir değişkende saklamamıza izin veren Pandaların yerleşik bir işlevidir.
x değişkeni, sonuç (etiket) verileri olmadan veri kümemizi içerir. Bunu, x için etiketleri kaldıran data.drop() işleviyle gerçekleştirirken, y yalnızca sonuç (etiket) verilerini içerir.
Sıralı Model Oluşturma
Adım 1: Kitaplıkları İçe Aktarma
Öncelikle, modelimiz için gerekli olan belirli parametrelerle birlikte TensorFlow ve Keras'ı içe aktarmamız gerekiyor. Aşağıdaki kod bunu yapmamızı sağlar:
tensorflow'u tf olarak içe aktar
tensorflow ithalat keralarından
tensorflow.keras.models'den sıralı içe aktar
tensorflow.keras.layers'dan içe aktarma Aktivasyon, Yoğun
tensorflow.keras.optimizer'dan Adam'ı içe aktarın
tensorflow.keras.metrics'den categorical_crossentropy'yi içe aktarın
Modelimiz için yoğun katmanları içe aktarıyoruz. Bunlar tamamen bağlantılı katmanlardır; yani, bir katmandaki her düğüm, bir sonraki katmandaki başka bir düğümle tamamen bağlantılıdır.
Biz de ithal ediyoruz etkinleştirme düğümlere gönderilen verileri ölçeklendirmek için gereken işlev. optimize kaybı en aza indirmek için de ithal edilmiştir.
Adam, model güncelleme düğümü hesaplamalarımızı daha verimli hale getiren ünlü bir optimize edicidir. categorical_crossentropy olan kullanacağımız kayıp fonksiyonunun türü (gerçek ve tahmin edilen etiket değerleri arasındaki farkı hesaplar).
Adım 2: Modelimizi Tasarlamak
Oluşturduğum modelin bir girişi (16 birimli), bir gizli (32 birimli) ve bir çıkış (2 birimli) katmanı var. Bu sayılar sabit değildir ve tamamen verilen probleme bağlı olacaktır.
Doğru sayıda birim ve katman ayarlamak, uygulama yoluyla fazla mesai geliştirilebilecek bir süreçtir. Aktivasyon, bir düğümden geçmeden önce verilerimiz üzerinde gerçekleştireceğimiz ölçeklemenin türüne karşılık gelir.
Relu ve Softmax, bu görev için bilinen etkinleştirme işlevleridir.
model = Sıralı([
Yoğun(birimler = 16, input_shape = (1,), aktivasyon = 'relu'),
Yoğun(birimler = 32, aktivasyon = 'relu'),
Yoğun(birimler = 2, aktivasyon = 'softmax')
])
Modelin özeti şöyle görünmelidir:
Modeli Eğitmek
Modelimiz iki adımda eğitilecek, ilki modeli derlemek (modeli bir araya getirmek) ve ikincisi modeli verilen bir veri kümesine uydurmak.
Bu, model.compile() işlevi ve ardından model.fit() işlevi kullanılarak yapılabilir.
model.compile(optimizer = Adam(learning_rate = 0.0001), kayıp = 'binary_crossentropy', metrikler = ['doğruluk'])
model.fit(x, y, dönemler = 30, toplu_boyut = 10)
'Doğruluk' metriğini belirtmek, eğitim sırasında modelimizin doğruluğunu gözlemlememizi sağlar.
Etiketlerimiz 1'ler ve 0'lar biçiminde olduğundan, gerçek ve tahmin edilen etiketler arasındaki farkı hesaplamak için bir ikili kayıp işlevi kullanacağız.
Veri kümesi ayrıca 10'lu gruplara (batch_size) bölünüyor ve modelden 30 kez (dönemler) geçirilecek. Belirli bir veri kümesi için x veri, y ise verilere karşılık gelen etiketler olacaktır.
Tahminleri Kullanarak Modeli Test Etme
Modelimizi değerlendirmek için, tahmin() işlevini kullanarak test verileri üzerinde tahminlerde bulunuruz.
tahminler = model.predict(x)
Ve bu kadar!
Şimdi iyi bir anlayışa sahip olmalısınız Derin Öğrenme uygulama, Sinir Ağları, genel olarak nasıl çalıştıkları ve Python kodunda bir modelin nasıl oluşturulacağı, eğitileceği ve test edileceği.
Umarım bu eğitim size kendi Derin Öğrenme modellerinizi oluşturmanız ve dağıtmanız için bir başlangıç sağlar.
Makalenin yardımcı olup olmadığını yorumlarda bize bildirin.
Yorum bırak