Makine öğrenmesi ve derin öğrenmede CPU ve GPU tabanlı hızlandırma tekniklerinin karşılaştırılması
Comparison of CPU and GPU based acceleration techniques in machine learning and deep learning
Yazar: GÖKHAN EGEMEN ÖĞÜT
Danışman: DOÇ. DR. HÜSEYİN GÜRÜLER
Muğla Sıtkı Koçman Üniversitesi / Fen Bilimleri Enstitüsü / Bilişim Sistemleri Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2019
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control

Özet:
Günümüzde makine öğrenmesi ve derin öğrenme kullanım alanları hızla artmaktadır. Makine öğrenmesi esas olarak 1959 yılında bilgisayar biliminde, yapay zekada sayısal öğrenme ve model tanıma çalışmaları için geliştirilmiş bir alt dalıdır. Derin öğrenme bir veya daha fazla gizli katman içeren yapay sinir ağları ve benzeri makine öğrenme algoritmalarını kapsayan çalışma alanıdır. Ayrıca, daha hızlı sonuç alma gereksinimleri nedeni ile paralel hesaplama yöntemlerinin bu metotlar içerisinde kullanımı büyük önem kazanmıştır. 
Tez kapsamında, hem CPU hem de GPU çekirdekleri ile makine öğrenmesi ve derin öğrenme algoritmaları üzerinde paralel hesaplama yöntemleri kullanılmıştır. Paralel hesaplama yöntemlerinin ne kadar hız artışı sağladıkları karşılaştırılmıştır. Bu kapsamda, öncelikle Intel firmasının CPU hızlandırmalı Python kütüphaneleri kullanılmıştır. Bu yöntemin farklı algoritmalarda 1.3 ile 30 kat arasında farklı performans artışı sağladığı tespit edilmiştir. Nvidia firmasının GPU hızlandırmalı CUDA platformu ile gerçekleştirilen evrişimsel sinir ağlarında 9 kat hız artışı sağladığı tespit edilmiştir. Çalışmadaki uygulamaların test edildiği donanım değiştikçe alınan sonuçların da değişeceği öngörülmektedir. 
Sonuç olarak bu tez çalışmasının paralel hesaplama yöntemlerinin makine öğrenmesi ve derin öğrenme işlemlerindeki hızlandırma miktarlarını betimleyerek katkı sağlayacağı düşünülmektedir.

Anahtar Kelimeler:  Paralel Hesaplama, Makine Öğrenmesi, Derin Öğrenme, 
Scikit-learn, Intel Python, Cuda, CNN

Abstract:
Nowadays, the areas of machine and deep learnings are widening rapidly. Machine learning is essentially a sub-branch of computer science developed in 1959 from the studies of numerical learning and model recognition in artificial intelligence. Deep learning involves machine learning algorithms and artificial neural networks that contain one or more hidden layers. In addition, parallel computation methods are gaining importance due to the requirements for faster results in these methods.
Within the scope of the thesis; parallel computing methods have been used on CPU and GPU cores. The speed increase of parallel calculation methods was compared. In this context, first Intel's CPU accelerated Python libraries were used. This method speeded up from 1.3 to 30 times in different algorithms. Nvidia's GPU accelerated CUDA platform has increased the speed of convolutional neural networks by 9 times. The results obtained predicts the change in the hardware in which the application changes. 
As a result, it is thought that this study will contribute by describing the acceleration amounts of parallel computing in machine learning and deep learning processes. 

Keywords: 	Machine Learning, Deep Learning, Parallel  Computing, scikit-learn, Intel Python, Cuda, CNN