PyBrain - Genel Bakış

Pybrain, python kullanılarak uygulanan Makine öğrenimi için açık kaynaklı bir kitaplıktır. Kütüphane size ağları eğitmek ve test etmek için ağlar, veri kümeleri, eğitmenler için bazı kullanımı kolay eğitim algoritmaları sunar.

Pybrain'in resmi belgelerine göre tanımı aşağıdaki gibidir -

PyBrain, Python için modüler bir Makine Öğrenimi Kitaplığıdır. Amacı, Makine Öğrenimi Görevleri için esnek, kullanımı kolay ancak yine de güçlü algoritmalar ve algoritmalarınızı test etmek ve karşılaştırmak için önceden tanımlanmış çeşitli ortamlar sunmaktır.

PyBrain, Python Tabanlı Güçlendirmeli Öğrenme, Yapay Zeka ve Sinir Ağı Kitaplığı'nın kısaltmasıdır. Aslında, önce adını bulduk ve daha sonra bu oldukça açıklayıcı "Backronym" i tersine mühendislik uyguladık.

Pybrain'in Özellikleri

Aşağıdakiler Pybrain'in özellikleridir -

Ağlar

Bir ağ, modüllerden oluşur ve bağlantılar kullanılarak bağlanır. Pybrain, İleri Besleme Ağı, Tekrarlayan Ağ vb. Gibi sinir ağlarını destekler.

feed-forward networkdüğümler arasındaki bilgilerin ileri yönde hareket ettiği ve asla geriye gitmeyeceği bir sinir ağıdır. Feed Forward ağı, yapay sinir ağında bulunan ağlar arasında ilk ve en basit olanıdır.

Bilgi, gizli düğümlerin yanındaki giriş düğümlerinden ve daha sonra çıkış düğümüne iletilir.

Recurrent NetworksFeed Forward Network'e benzer; tek fark, her adımda verileri hatırlamak zorunda olmasıdır. Her adımın geçmişi kaydedilmelidir.

Veri kümeleri

Veri kümeleri, ağları test etmek, doğrulamak ve eğitmek için verilecek verilerdir. Kullanılacak veri kümesinin türü, Makine Öğrenimi ile yapacağımız görevlere bağlıdır. Pybrain'in desteklediği en yaygın kullanılan veri kümeleri şunlardır:SupervisedDataSet ve ClassificationDataSet.

SupervisedDataSet - Aşağıdaki alanlardan oluşur input ve target. Bir veri kümesinin en basit şeklidir ve esas olarak denetimli öğrenme görevleri için kullanılır.

ClassificationDataSet- Esas olarak sınıflandırma problemlerini çözmek için kullanılır. Alırinput, targetalan ve ayrıca verilen hedeflerin otomatik olarak yedeklendiği "sınıf" adı verilen ekstra bir alan. Örneğin, çıktı 1 veya 0 olacaktır veya çıktı verilen girdiye dayalı değerlerle birlikte gruplandırılacaktır, yani ya belirli bir sınıfa girecektir.

Eğitimci

Bir ağ, yani sinir ağı oluşturduğumuzda, kendisine verilen eğitim verilerine göre eğitim alacaktır. Artık ağın doğru eğitilip eğitilmediği, o ağda test edilen test verilerinin tahminine bağlı olacaktır. Pybrain Training'deki en önemli kavram BackpropTrainer ve TrainUntilConvergence'ın kullanılmasıdır.

BackpropTrainer - Denetimli veya ClassificationDataSet veri kümesine (potansiyel olarak sıralı) göre bir modülün parametrelerini, hataları geri yayarak (zaman içinde) eğiten bir eğitmen.

TrainUntilConvergence − Modülü yakınlaşana kadar veri setinde eğitmek için kullanılır.

Araçlar

Pybrain, paketi içe aktararak bir ağ oluşturmaya yardımcı olabilecek araç modülleri sunar: pybrain.tools.shortcuts.buildNetwork

Görselleştirme

Test verileri pybrain kullanılarak görselleştirilemez. Ancak Pybrain, verileri görselleştirmek için Mathplotlib, pyplot gibi diğer çerçevelerle çalışabilir.

Pybrain'in Avantajları

Pybrain'in avantajları:

  • Pybrain, Makine Öğrenimini öğrenmek için açık kaynaklı ücretsiz bir kütüphanedir. Makine Öğrenimi ile ilgilenen yeni başlayanlar için iyi bir başlangıçtır.

  • Pybrain, uygulamak için python kullanır ve bu, Java / C ++ gibi dillere kıyasla geliştirme sürecini hızlandırır.

  • Pybrain, verileri görselleştirmek için diğer python kütüphaneleriyle kolayca çalışır.

  • Pybrain, Feed-Forward Network, Recurrent Networks, Neural Networks gibi popüler ağları destekler.

  • Pybrain'de veri kümelerini yüklemek için .csv ile çalışmak çok kolaydır. Ayrıca başka bir kitaplıktaki veri kümelerinin kullanılmasına da izin verir.

  • Pybrain eğitmenleri kullanılarak verilerin eğitimi ve test edilmesi kolaydır.

Pybrain'in Sınırlamaları

Pybrain karşılaşılan sorunlar için daha az yardım sunar. Tarihinde cevaplanmamış bazı sorgular varstackoverflow ve üzerinde Google Group.

Pybrain'in İş Akışı

Pybrain belgelerine göre, makine öğreniminin akışı aşağıdaki şekilde gösterilmektedir -

Başlangıçta, ön işlemeden sonra Pybrain ile kullanılabilecek ham verilerimiz var.

Pybrain'in akışı, eğitimli ve test verilerine bölünmüş veri kümeleriyle başlar.

  • ağ oluşturulur ve veri seti ve ağ eğitmene verilir.

  • Eğitmen ağdaki verileri eğitir ve çıktıları eğitimli hata ve görselleştirilebilen doğrulama hatası olarak sınıflandırır.

  • test edilen veriler, çıktının eğitilmiş verilerle eşleşip eşleşmediğini görmek için doğrulanabilir.

Terminoloji

Makine öğrenimi için Pybrain ile çalışırken dikkate alınması gereken önemli terimler vardır. Bunlar aşağıdaki gibidir -

Total Error- Ağ eğitildikten sonra gösterilen hatayı ifade eder. Hata her yinelemede değişmeye devam ederse, yineleme arasında sabit bir hata göstermeye başlayana kadar çözülmesi için hala zamana ihtiyacı olduğu anlamına gelir. Sabit hata numaralarını göstermeye başladığında, ağın yakınsadığı ve uygulanan herhangi bir ek eğitimden bağımsız olarak aynı kalacağı anlamına gelir.

Trained data - Pybrain ağını eğitmek için kullanılan verilerdir.

Testing data - Eğitimli Pybrain ağını test etmek için kullanılan verilerdir.

Trainer- Bir ağ, yani sinir ağı oluşturduğumuzda, kendisine verilen eğitim verilerine göre eğitim alacaktır. Artık ağın doğru eğitilip eğitilmediği, o ağda test edilen test verilerinin tahminine bağlı olacaktır. Pybrain Training'deki en önemli kavram BackpropTrainer ve TrainUntilConvergence'ın kullanılmasıdır.

BackpropTrainer - Denetimli veya ClassificationDataSet veri kümesine (potansiyel olarak sıralı) göre bir modülün parametrelerini, hataları geri yayarak (zaman içinde) eğiten bir eğitmen.

TrainUntilConvergence - Modülü yakınsayıncaya kadar veri setinde eğitmek için kullanılır.

Layers - Katmanlar, temelde bir ağın gizli katmanlarında kullanılan bir dizi işlevdir.

Connections- Bir bağlantı, bir katmana benzer şekilde çalışır; tek fark, verileri bir ağda bir düğümden diğerine kaydırmasıdır.

Modules - Modüller, giriş ve çıkış tamponlarından oluşan ağlardır.

Supervised Learning- Bu durumda, bir girdi ve çıktıya sahibiz ve girdiyi çıktıyla eşlemek için bir algoritma kullanabiliriz. Algoritma, verilen ve üzerinde yinelenen eğitim verilerini öğrenmek için yapılır ve algoritma doğru veriyi tahmin ettiğinde yineleme işlemi durur.

Unsupervised- Bu durumda, girdimiz var ama çıktıyı bilmiyoruz. Denetimsiz öğrenmenin rolü, verilen verilerle mümkün olduğunca eğitilmektir.