Siber güvenlikte makine öğrenmesi son yılların en önemli araştırmalarından biri olarak karşımıza geliyor. Saldırganlar, sistemlere saldırmak için her geçen gün daha farklı ve daha karmaşık yollar geliştirmektedirler. Bu durumun sonucu olarak geliştirilen bu yeni saldırı yöntemlerinin tespit edilmesi de zorlaşmaktadır. Ağ yöneticileri çoğu zaman bu saldırıları tespit edip gerekli önlemleri almakta yeterli olamamaktadır. Bu nedenle, sistemleri verimli bir şekilde koruyabilmek ve yönetebilmek adına insanları desteklemek için şimdiye kadar birçok yazılım geliştirilmiştir.
Tarihteki ilk yazılımlar, insanlar için çok karmaşık görünen matematiksel hesaplamalar gibi bazı işlemlerin kolayca çözülebilmesi için geliştirilmişti. Ancak zamanla çok daha fazlasına ihtiyaç duyduk. Gelişen teknoloji ve yapılan bilimsel araştırmalarla yapay zeka ve makine öğrenmesi tekniklerinin kullanıldığı daha akıllı sistemler geliştirilmeye başlandı. Bu sayede faydalı birçok işleve sahip sistemler ortaya çıkmaya başlamıştır.
Teknoloji ilerledikçe ve internetin yaygın olarak kullanılmaya başlanmasıyla, her gün ve her saat işlenmek üzere büyük miktarlarda veri üretilmektedir. Bu durum, “Büyük Veri” kavramının doğmasına ve insanların bu verileri işlemek ve anlamlandırmak için daha akıllı sistemlere ihtiyaç duymasına neden oldu. Verilerin işlenebilmesi amacıyla, günümüze kadar bir çok algoritma geliştirilmiştir. Bu algoritmalar birçok farklı araştırma alanında kullanılarak birçok alanda faydalı sistemler geliştirilmiştir. Bu araştırma alanlarından bazıları; Görüntü işleme, konuşma tanıma, biyomedikal alan ve elbette siber güvenlik alanıdır.
Stratejik ve Uluslararası Çalışmalar Merkezinin (The Centre for Strategic and Intenational Studies) 2014 yılında yayımladıkları raporda, siber suçların küresel ekonomiye yıllık maliyeti 375 milyar dolar – 575 milyar dolar arasında olduğu belirtilmiştir. Aynı raporda, büyük şirketlere gerçekleştirilen siber saldırıların firmalara ortalama maliyeti 3 milyon doları aşmaktadır. Araştırmacılar, bu maliyeti azaltmak amacıyla firmaların siber güvenlik altyapılarını geliştiren sistemler tasarlamıştır. Son yıllarda Makine Öğrenmesi tekniklerinin de sıkılıkla kullanıldığı bu sistemler, daha güvenli sistemler oluşturulmasına büyük katkı sağlamıştır.
Siber Güvenlikte Makine Öğrenmesi
Makine öğrenimi, bilgisayarlara açık bir şekilde programlanmadan öğrenme yeteneği kazandıran bir Yapay Zeka (YZ) türüdür. Makine öğrenimi, değişen şartlarda bile verilerin anlamlandırılabilmesi amacıyla bilgisayar programlarının geliştirilmesine odaklanmaktadır. Her ne kadar son yıllarda büyük bir ivme kazanmış olsa da, makine öğrenmesi aslında bilgisayar tarihi kadar eskidir. İlk bilgisayarların kullanılmaya başlanmasından bu yana veriler bir çok farklı yollarla işlenerek anlamlandırılmaktadır.
Peki neden makine öğrenimi son yıllarda bu kadar popüler?
Çünkü işlenecek daha önce hiç olmadığı kadar çok veri var ve bu verileri anlamamız gerekiyor. Bu durum Büyük Veri (Big Data) kavramı olarak karşımıza çıkmaktadır.
Büyük veriler çevremizdeki her şey tarafından her zaman üretilmektedir. Her dijital süreç ve sosyal medya akışı bol miktarlarda veri üretilmesine neden olmaktadır. Sistemler, sensörler ve mobil cihazlar bu verileri bir noktadan başka noktaya aktarmaktadırlar. Büyük Verinin karakteristik özellikleri 3 V ile ifade edilebilir: aşırı miktarda çok veri (volume), çok fazla türde veri (variety of data) ve verinin işlenmesi için gereken hız (velocity). Büyük Veriyi ifade eden belirli bir boyuttan söz edilemese de kastedilen aslında terabayt, petabayt ve hatta exabayt boyutlarıdır. IoT teknolojisinin yaygın bir şekilde kullanılmaya başlanmasıyla, işlenecek verilerin gün geçtikçe büyük bir ivme ile büyümesi kaçınılmazdır.
Bu miktarlardaki verilerin bir insan tarafından doğrudan analiz edilmesi imkansızdır. Dolayısıyla insanlar bu veriyi işleyebilmek için yardımcı uygulamalara ihtiyaç duymaktadır. Bu nedenle büyük verilerin daha kolay analiz edilebilmesi için Yapay Zeka (YZ) / Makine Öğrenmesi (ML) tekniklerinden faydalanılarak birçok faydalı/zeki birçok uygulama geliştirilmiştir.
Büyük Veri ve Makine Öğrenimi, birbirini tamamlayan iki bileşendir.
Büyük Verileri analiz etmek istersek, Makine Öğrenme tekniklerini kullanmamız gerekir; diğer yandan, makine öğrenimi ile akıllı bir sistem oluşturmak istiyorsak çok miktarda veri kullanmak zorundayız.
Derin Öğrenme, makine öğrenmede en çok ilgi gören konulardan biridir. Çünkü bu teknik, büyük verilerin gücünden faydalanarak akıllı sistemlerin yüksek başarı oranlarına sahip olmasına olanak tanımaktadır. Yapay zeka, makine öğrenimi ve derin öğrenme ile bu kavramların birbirleri olan
İlişkilerini ifade eden temsili şekil yanda verilmiştir.
Makine Öğrenmesi teknikleri, dünya çapında çok çeşitli uygulama alanlarında kullanılmaktadır. Dünya üzerindeki hemen hemen her insan, makine öğrenmesi teknikleriyle geliştirilmiş sayısız akıllı sistemi tek bir günde dahi sayısız kez kullanmaktadır. Bir cep telefonu kullanırken, internette gezinirken, internet üzerinden bir şeyler satın alırken çok fazla akıllı sistemle karşı karşıyayız. Teknoloji geliştiren şirketler, daha akıllı sistemler geliştirmek için şimdiye dek çok para harcadılar ve artan bir şekilde harcamaya devam etmektedirler. Akıllı sistemler yaşamı kolaylaştırmaktalar ve bu nedenle gelecekte neredeyse tüm sistemler bu yenilikten faydalanacak.
Hepimizin bildiği gibi, elbette, insanlar yaşamı kolaylaştıran uygulamaları severler.
Gartner, gelişen teknoloji trendlerini inceleyen ve her yıl bu alan üzerine araştırmalarını yayımlayan bir araştırma firmasıdır. Her yıl gelişen teknoloji trendleri hype cycle formatında yayınlanır. Bu format, bir teknolojinin dünya çapında yaygın olarak kullanılmasından önce aşılması gereken 5 adımın olduğunu öne sürmektedir. Bu adımlar şunlardır.
(1) İnovasyon tetikleyicisi (Innovation trigger),
(2) Beklentilerin Doruk Noktası (Peak of Inflated Expectations),
(3) Hayal kırıklığı adımı (Through of disillusionment),
(4) Aydınlanma Eğimi (Slope of Enlightenment),
(5) Verimlilik Platosu (Plateau of Productivity).
Hype Cycle formatı ayrıca, platoya ulaşmak için gerekli tahmini zamanı da gösterir. 2016 için Gelişen Teknolojiler için Gartner Hype Cycle aşağıda verilmiştir.
Bir teknoloji platoya ulaşması, o teknolojinin dünya çapında kullanılmaya başlanması anlamına gelmektedir. Bazı teknolojiler için platoya ulaşmak uzun sürebilirken, bazı teknolojiler hızlı bir şekilde platoya ulaşabilir.
Şekilde görüldüğü gibi, Makine Öğrenimi Beklentilerin Doruk Noktasında ve platoya ulaşmak için gereken süre yaklaşık 2 ila 5 yıl olarak tahmin edilmiştir. Diğer teknolojilere kıyasla zaman çok az. Google, Facebook, Apple gibi büyük şirketler hali hazırda yapay zekanın ve makine öğreniminin geliştirilmesi için büyük miktarda para harcıyorlar. Teknolojiye yön veren büyük firmaların çoğu, projelerinin bazılarında Derin Öğrenme (Deep Learning) tekniği kullanıyor. Ayrıntılı örnekler bir sonraki bölümde verilmiştir.
İnternetin yaygın kullanımı ile internette çok miktarda veri akmaktadır. Zararlı aktivitelerin tespit edilmesi artan bu veri akışında daha zorlaşmaktadır. Diğer uygulama alanları gibi, siber güvenlik alanı da makine öğrenmesi teknikleri kullanarak yapılarını güçlendirmeye ihtiyaç duymaktadır.
Yazının ilerleyen kısımlarında, makine öğrenmesinin gücünün daha açık bir şekilde anlaşılabilmesi adına makine öğrenmesi uygulama alanlarına dair örnekler verilmiştir. Daha sonra, derin öğrenme ve dünyadaki derin öğrenme uygulama örnekleri hakkında kısa bir giriş yapılmıştır. Ardından, bu bölümde bahsedilen makine öğrenmesi teknikleri hakkında teknik inceleme yapılmıştır.
Günlük Yaşamdaki Uygulama Alanları
Deep Blue Yapay Zeka (YZ) tarihinin en önemli kilometre taşlarından biridir. Deep Blue, IBM tarafından geliştirilmiş satranç oynayabilen bir süper bilgisayardır. Bu bilgisayar, dünya satranç şampiyonunu turnuva standartlarında gerçekleştirilen satranç oyununda yenmesi ile tanınır. Deep Blue, 10 Şubat 1996’da o zamanların dünya şampiyonu Garry Kasparov aleyhine ilk maçını kazandı. Ancak Kasparov üç maçı kazandı ve ardından gerçekleştirilen oyunlarla Deep Blue’yu 4-2 yendi. Bunun ardından geliştiricileri, Deep Blue’yu önemli ölçüde güncellediler. Mayıs 1997’de Deep Blue ve Kasparov bir satranç oyununda tekrar rakip olarak karşılaştılar. Deep Blue altı oyunlu karşılaşmada 3½-2½ kazandı ve standart satranç turnuvası süresi boyunca bir maçta dünya şampiyonunu yenen ilk bilgisayar sistemi olarak tarihe geçti. (Deep Blue sağda verilmiştir.)
Satranç, bir zeka oyunudur. İleri seviyede satranç oynamak insanlar için bile oldukça zor bir iştir. Bu nedenle, dünya şampiyonuna karşı bir bilgisayar tarafından kazanılan ilk satranç maçı o yıllarda çok fazla konuşuldu.
Peki bu nasıl mümkün olabildi? Gelin olaya biraz yakından bakalım.
Shannon sayısı, her beyaz hamlesine karşılık bir siyah hamlesinin gerçekleşmesi durumunda her hamle çifti için 103 farklı olasılık olmasına dayanarak 40 hamleye sahip standart bir satranç oyunun karmaşıklığını 10120 olarak ifade eden sayıdır. Shannon bu sayıyı, 1950’de yayınlanan “Programming a Computer for Playing Chess” başlıklı kitabında satrancın kaba kuvvetle çözülmesinin uygulanamazlığını gösterebilmek için hesaplamıştır. 10120 sayısı oldukça büyük bir sayıdır, evrendeki toplam atom sayısının 1079 – 1081 arasında bir sayı olduğu düşünüldüğünde bu sayının ne kadar büyük olduğu daha iyi anlaşılmaktadır. Bir varyasyonun hesaplaması 1 mikro saniye sürerse, her varyasyonun hesaplanması için 1090 yıl gerekmektedir. Bu durumu gerçekleştirmek için bilgisayarların çok fazla işlemci kapasitesine ihtiyaçları vardır. O günlerde teknoloji buna izin vermediği için, hesaplanan ağacın derinliği sınırlı tutularak işlemci gücünden tasarruf edilmiştir.
YZ, insan beyninin karar mekanizmasına yakın bir karar mekanizmasının bir yazılım aracılığıyla oluşturulmaya çalışılması ile doğmuştur. Bazı nedenlerden ötürü, YZ, tamamen insan beynin çalışmasını taklit edebilecek kapasiteye ulaşamamıştır. Bu nedenle çalışmaları bazı özel uygulama alanlarında akıllı karar mekanizmaları oluşturmaya doğru kaymıştır. Satranç, belirli bir uygulama alanına başarıyla uygulanmış yapay zeka örneklerinden biridir.
Yapay zeka tarihinde çözülebilmesi adına ” insanlara karşı meydan okuma” niteliğinde bir başka zihin oyunu da vardır. Bu oyunun ismi GO. Çin’de icat edilmiş olan GO, iki oyuncu ile oynanan bir strateji oyunudur, amacı rakibin yenmektir. Deep Blue’nin Kasparov’u yenilgiye uğrattığı yıllarda, bazı insanlar GO’da insanların bir bilgisayar tarafından yenilemeyeceği veya bu işin çok uzun süreceği düşünmüşlerdi. Ancak 1997’den neredeyse yirmi yıl sonra, bir YZ uygulaması, GO oyununda insanları yenmeyi başarmıştır.
Peki bir YZ uygulamasının GO’da insanları yenmesi neden bu kadar zordu ve YZ insanları nasıl yendi? Sayılara yakından bir göz atalım.
GO, karelerden oluşan bir tahta üzerinde oynanır. GO tahtasının boyutu değişebilmektedir, yani GO’yu 7×7, 9×9, 19×19 veya 21×21 tahta boyutlarında oynanabilir. Örneğimizde, bilgisayara karşı 19 x 19 boyutlu GO’yu oynamak istediğimizi düşünüyoruz. Uzmanlar tarafından oynanan oyunda gerçekleştirilen ortalama hamle sayısının yaklaşık 200 olduğunu düşünelim.Her hamle için ortalama seçim olasılığı sayısı yaklaşık 250’dir. Tablo boyutu 19×19 olduğunda bilgisayar tarafından hesaplanacak toplam varyasyon sayısı 3 × 10511’dir. Bu sayı satrançtakinden oldukça fazladır. (Evrendeki tüm atomların sayısının 1079 – 1081arasında olduğunu unutmayın.) Profesyonel oyunlarda toplam hareket sayısı 350 alabilir. Bu hareket sayısı için bilgisayar tarafından hesaplanması gereken toplam varyasyon sayısı ise 1.3 × 10895 . Bu rakam, bir yapay zekanın insanları yenmesinin neden çok zor olduğunun düşünüldüğünü açıkça ortaya koymaktadır.
ALPHA GO isminde bir yapay zeka uygulaması, insanları GO oyununda yenmeyi başardı. Bu yapay zeka uygulaması, GO oynamak için Google DeepMind tarafından Londra’da geliştirilen bir bilgisayar programıdır. Alpha GO, Ekim 2015’te, 19 × 19 boyutlu oyun tahtasında profesyonel bir GO oyuncusu yenen ilk bilgisayar programı oldu. Mart 2016’da beşli oyunda Lee Sedol’u (dünyanın en iyi GO oyuncusu) yendi. Tarihte ilk kez bir bilgisayar, GO oyununu oynayanların alabileceği en yüksek seviye olan 9-dan seviyesinde kabul gördü. Bu olay YZ tarihinin en önemli kilometre taşlarından birisidir.
Alpha GO bunu nasıl başardı? Nasıl böylesine zor bir problemin üstesinden gelebildi?
Geleneksel makine öğrenmesi teknikleri GO oyunun bir bilgisayar tarafından başarılı bir şekilde oynayabilmesi için yetersiz kalmıştı. Bu nedenle Alpha GO, daha modern bir teknik olan Derin Öğrenme yöntemiyle eğitilmiştir. Bu sayede bu başarıyı elde edebilmiştir.
Yukarıda açıklanan iki örnek, zeka gerektiren alanlarda insanı yenmeye odaklanan yapay zeka uygulamalarına yönelikti. Fakat YZ’nın günümüzdeki uygulamalarının çoğu, insanları yenecek sistemler yerine insanlara destek olacak sistemeler üzerine odaklanmaktadır. Bu tür uygulamalar, insanları desteklemek amacıyla belirli bir problemi öğrenmek için makine öğrenmesi tekniğini kullanılarak geliştirilmektedir.
Dünyadaki her insan günlük hayatında makine öğrenmesi teknikleri ile geliştirilmiş uygulamaları bilinçli veya bilinçsiz olarak birçok kez kullanmaktadır. Aşağıda bu tip uygulamaların bazı örnekleri verilmiştir.
Öneri Sistemleri (Recommendation Systems), akademik literatürde ve işletme sektöründe en iyi bilinen makine öğrenmesi konularından biridir. Öneri Sistemleri, bir kullanıcıya o kullanıcının beğenme olasılığı yüksek olan ürünleri (kitap, müzik, video …) önerme özelliğine sahip olan sistemlere verilen isimdir. Yapılan öneriler, kullanıcıların hangi öğeleri satın almayı isteyebilecekleri, hangi müzikleri dinlemekten zevk alabilecekleri, hangi filmleri izleyebilecekleri veya hangi haberleri okumak isteyebilecekleri gibi önerilerdir. Bu sistemler, tasarlanan karar mekanizması ile kullanıcılara öneriler yapmayı amaçlamaktadır. Öneri sistemleri, bu alanda yeteneklerini kanıtlayarak elektronik marketlerde oldukça büyük başarılar elde ederek bu alanda vazgeçilmez bir yer edinmiştir. Çevrimiçi kullanıcılar tarafından üretilen Büyük Veri’nin işlenmesi ve başarılı bir şekilde anlamlandırılması, bu başarının en büyük etkenlerinden birisidir. Günümüzde öneri sistemlerinin geliştirilmesinin için yapılan birçok akademik çalışmalara paralel olarak bu sistemlerin bir çoğu ticari ortamlara da başarı ile uygulanmış ve her geçen gün yenilerek uygulanmaya devam etmektedir.
Bu konuda asıl ilgi çekici nokta, sistemin öğeler hakkındaki bilgileri hesaplaması ve bir kullanıcının daha önce görmediği bir öğeye ne kadar oy vereceğini tahmin edebilmesidir. Amazon, kullanıcının muhtemelen okumaktan hoşlanacağı bir kitabı veya diğer bazı ürünleri önerebilmektedir. Facebook, kullanıcıların ilgisini çekebilecek reklamları kullanıcılara önerecek bir sistem tasarlayarak internet ortamındaki reklam gelirlerinde büyük bir pay sahibi olmayı başarmıştır. Facebook ayrıca, kullanıcılara arkadaş önerisi yada gerçekleşecek bir aktivite önerisi de yapabilmektedir. Youtube bir kullanıcıya izlemekten hoşlanabileceği video önerisi yapabilmektedir. Benzer şekilde, Spotify, kullanıcıya dinlemekten hoşlanabileceği müzikler önerebilmektedir. Bu konuda örnekler çoğaltılabilir.
Öneri sistemleri ticari amaçla tüm dünyada yaygın olarak kullanılmaktadır. 2014’te NetFlix tarafından yayınlanan bir rapora göre, NetFlix’te izlenen filmlerin ⅔’ü yapılan öneriler sonucu izlenmiştir. Yapılan öneriler sayesinde Google Haberler % 38 daha fazla tıklama elde ediyor. Benzer şekilde, amazon satışlarının %35’i öneri sistemleri aracılığıyla yapılmaktadır. Youtube ve diğer bazı firmalar da elbette öneri sistemleri kullanmaktadır. Son zamanlarda öneri sistemleri Derin Öğrenme yöntemi kullanılarak geliştirilmektedir. Google ve Facebook gibi büyük şirketler, Derin Öğrenme’nin gücünden bol miktarda faydalanmaktadırlar.
Makine Öğrenmesinin günlük hayatta en çok kullanılan uygulama alanlarından bir diğeri ise aktivite tanıma (aktivite tanıma) uygulamalarıdır. Bu tür uygulamalarda amaç, kullanıcı tarafından gerçekleştirilen aktivitelerin tanınması, sınıflandırılması ve uygun bir şekilde raporlanmasıdır. Tanıma işlemi, cep telefonu üzerinde bulunan sensörlerden elde edilen verilerin Makine Öğrenmesi teknikleri işlenmesi ile yapılmaktadır. İvme ölçer, gyroscop, gps aktivite tanıma için yaygın olarak kullanılan sensörlerdir. Aktivite tanıma işlemi, cep telefonu üzerinde bulunan uygulamalar aracıyla yapılabildiği gibi harici olarak vücuda takılan ek donanımlar aracılığıyla da yapılabilmektedir. Büyük cep telefonu üreticileri bu konuda çokça araştırmalar yaptılar. Örneğin; Apple ve Samsung, kendi geliştirdikleri aktivite tanıma uygulamalarını ürettikleri telefonlar için varsayılan uygulamalardan birisi olarak kullanıcılara sunmaktadırlar. Bu tür uygulamalar bize; günlük yakılan kalori miktarı, yürüme mesafesi, koşma mesafesi, merdiven inme ve çıkma sayısı gibi günlük yaşam aktivitelerimize dair faydalı bilgiler sunmaktadır. Bu sayede kullanıcılar, günlük yaşamlarının ne kadar sağlıklı olduğuna ilişkin bilgiler elde etmiş olur.
Makine Öğrenimi, gelecekle ilgili tahminler yapmak amacıyla da kullanılabilmektedir. Örneğin, hava tahmini uygulamalarında mevcut hava durumu verileri ve geçmiş veriler işlenerek geleceğe yönelik hava koşulları hakkında bilgiler çıkarılabilmektedir.
Geleceğe yönelik tahmin uygulamalarına bir diğer örnek, ATM’lerde bulunan nakit para optimizasyonudur. ATM içerisinde bulunan para, müşteriler tarafından kullanılmadığında bir banka için faydalı bir kaynak olmaktan çıkmaktadır. Bu durumda nakit para, hem müşteri hem de banka için kullanılamaz. Haftalık veya aylık olarak ATM içerisinde bulunması gereken en uygun miktarı tahmin etmek için akıllı bir sistem geliştirilirse, bankalar bu parayı başka amaçlarla kullanarak bu parayı değerlendirebilirler. Bu konu ile ilgili son zamanlarda yapılan çalışmalar, ATM’lerde bulunması gereken optimum para miktarını tahmin edecek akıllı bir sistem oluşturulması ile ATM’lerde bulunan toplam para miktarını değiştirmeden ATM sayısının iki katına çıkarılabildiğini göstermektedir. Geleceğe yönelik tahmin için bir başka örnek ise konut fiyat tahmini örneğidir. Bu tür problemlerde sistem; ev, ev konumu, yakınlardaki ulaşım araçları bilgisi veya arazi değeri gibi bilgileri kullanarak evin gerçek değerini tahmin etmeye çalışır. Geleceğe yönelik yapılan tahminler Makine Öğrenmesi alanında üzerine sıklıkla çalışılan bir konudur. Örnekler çoğaltılabilir.
Görüntü işleme, makine öğrenmesi tekniklerinin sıklıkla kullanıldığı bir başka uygulama alanıdır. Görüntü işleme, makine öğrenmesi tekniklerinin herhangi bir biçimini kullanarak görüntülerden bazı bilgilerin elde edilmesini sağlar. Bu yöntemler, algoritma girdisi olarak; resim, fotoğraf veya fotoğraf serisinden oluşan bir video olabilir. Algoritma çıktısı ise bir görüntü veya görüntüyle ilgili bir dizi özellik veya parametre olabilir. Makine öğrenmesi tekniklerinin kullanıldığı bazı görüntü işleme uygulama örnekleri şunlardır; yüz tanıma, parmak izi tanıma, hareketli nesne tanıma, tıbbi uygulamalar. Ayrıca, hareketli nesne tanıma gibi özellikler, askeri amaçlar için veya trafik yoğunluğu tespit edilmesine yönelik uygulamalarda da yaygın olarak kullanılmaktadır. Bu alanda yürütülen bir çok akademik ve iş dünyasına yönelik çalışmalar vardır.
Görüntü pixellerden oluşur, artan görüntüleme teknolojileri sayesinde daha net görüntüler elde edilebilmektedir. Görüntülerin işlenebilmesi için pixel bazlı işlemler uygulanmalıdır. Artan görüntü çözünürlükleriyle birlikte bu görüntülerin işlenmesi için yüksek işlemci gücüne ihtiyaç duyulmaktadır. Bu nedenle son yıllarda yapılan çalışmalarda; görüntü işleme uygulamalarında Derin Öğrenme tekniği uygulanmaya başlanmıştır. Bu sayede yüksek hızda çalışma kapasitesi ile yüksek başarı oranları elde edilebilmektedir. Bu durum, gerçek zamanlı görüntü işleme uygulamalarının gerçekleştirilmesine ve performanslarının artırılabilmesine olanak sağlamıştır.
Makine öğrenme alanının bir diğer önemli konusu Otonom Araçlardır (Autonomous Car). Otonom Arabalar; şoförsüz araba (driverless car), kendi kendine çalışan otomobil (self-driving car), robotik araba(robotik car) olarak da bilinir. Bu araçlar, bir insandan alacağı direktiflere ihtiyaç duymaksızın çevreyi algılayabilen ve algıladığı çevreye uygun bir sürüş modeli gerçekleyebilen özel araçlardır. Bu işlem için radar, lidar, GPS, odometri sensörlerinden alınan veriler ve görüntü işleme tekniklerinin kullanılması sayesinde mümkün olabilmektedir. Bu alanda geliştirilmekte olan birçok ticari ürün bulunmaktadır. Örneğin; Google bunlardan bir tanesidir. Otonom bir aracın oluşturulması için elbette kuvvetli bir yapay zeka ile donatılmış olması gerekmektedir.
Proje 2009 yılında başlamış ve 2015 yılında tamamlanmıştır. Bu proje, kamuya açık olmayan yollarda ilk sürücüsüz sürüşünü tamamlamıştır. Bu proje şu an Austin Texas’ta halen test edilmektedir. Aralık 2016’da Google, projeyi Google’ın ana şirketi Alphabet’ın altında yer alan Waymo adlı yeni bir şirkete aktardı. Alphabet, Waymo’yu “insanların ve eşyaların güvenli ve kolay dolaşımını sağlamak için kendi kendine çalışan bir teknoloji şirketi” olarak tanımlıyor. Yeni şirket,otonom araçlarını 2020’de halka açmayı planlıyor. Google’ın otonom aracı, sürücüsüz bir seyahat için tasarlandığından, bu otomobilin içinde pedal veya direksiyon bulunmamakta. Tüm karar verme işlemleri sensörlerden elde edilen bilgilerin makine öğrenmesi teknikleri ile işlenmesi sayesinde gerçekleştirilmektedir.
Google bu alanda tek firma değil elbette. Otomobil sektöründeki birçok firma ve birçok teknoloji firması bu alanda çalışmalar yapmaktadır. Klasik araçların yerini otonom araçların aldığı bir gelecek çok da uzak değil…
Derin Öğrenme Nedir?
Derin Öğrenme, yapay sinir ağları adı verilen beynin yapısı ve fonksiyonundan esinlenen algoritmalarla ilgili makine öğrenmesinin bir alt alanıdır. Yapay zeka, makine öğrenmesi ve derin öğrenme kavramları birbirleriyle iç içe kavramlardır. Bu kavramların birbirleriyle olan ilişkileri aşağıdaki şekilde ifade edilmiştir.
Yapay Sinir Ağlarının (YSA) geliştirilen ilk modeli olan Perceptron Learning algoritmasıdır. Derin Öğrenme bu ilk yaklaşımın geliştirilmiş hali olarak düşünülebilir. İlk geliştirilen Perceptron modelinde nöron sayısı çok azdı, bu nedenle karmaşık problemlerin çözümü mümkün olamıyordu. Bu duruma örnek verecek olursak, ilk Perceptron modelinde Logic olarak “And” yapısı başarılı bir şekilde oluşturulabilirken, “OR” yapısı oluşturulamamaktaydı. “OR” yapısının oluşturulması için ek katmanlara ihtiyaç duyuldu. Yapay sinir ağlarında, karmaşıklığı artan bir problemin YSA ile çözülmesi artan katman sayısı ile mümkün olmuştur. Artan katman sayısı, daha derin bir karar mekanizması anlamına gelmektedir. Derin Öğrenmenin geleneksel YSA modellerine göre en önemli farklarından birisi çok çok sayıda katman ile çalışabilmesidir. Klasik YSA’daki her hücre (node) bir önceki ve bir sonraki katmanlardaki tüm hücrelere bağlıdır. Her bağlantı için hesaplanması gereken matematiksel işlemler bulunmaktadır. Katman sayısının ve hücre sayısının artması yüksek miktarda CPU gücü gerektirmektedir. Gerçekten derin bir ağ oluşturmak için kişisel bilgisayarlar içerisindeki CPU gücü tam manasıyla yeterli olamamaktadır.
İşte burası GPU’ların devreye girdiği nokta.
GPU Hızlandırmalı Hesaplama (GPU-Accelerated Computing), GPU’nun CPU ile birlikte kullanılarak, büyük miktarda işlem gücü gerektiren hesaplamaların hızlı bir şekilde yapılabilmesine olanak sağlar. Bu özellik, Derin Öğrenme uygulamalarının geliştirilmesinde hayati derecede önem taşımaktadır.
CPU ve GPU arasındaki farka bir göz atalım.
En temel anlamda, GPU ve CPU arasındaki fark bir process’i işleme biçimidir. Günümüzdeki CPU’lar birkaç tane çekirdek barındırırlar. Her çekirdek yüksek işlem kapasitesine sahiptir. İşlemler, bu çekirdeklere dağıtılarak seri bir şekilde işlenir. Bir işlemin paralelleştirilme imkanı CPU’larda çok azdır. CPU’nun aksine GPU’larda yüzlerce çekirdek bulunur. Her çekirdeğin işlem kapasitesi (CPU’ya kıyasla) daha azdır. Ancak bu çok sayıdaki çekirdeğe sahip mimari, yüksek paralel işlem gücüne sahiptir. Bu sayede eş zamanlı bir çok işlem yapılabilmektedir.
Derin Öğrenmenin, son yıllarda bu denli önem kazanmasındaki en büyük etkenlerden birisi GPU’ların bu iş için kullanılabilmesidir. Şu an işlemci kapasitesi yeterince yüksek bilgisayarlara sahip olduğumuz için çok büyük YSA’ları eğitebilmekteyiz. Yani kısaca GPU üzerinde yapılan teknolojik gelişmeler Derin Öğrenmenin uygulanabilmesi için çok önemli bir noktadır. Bu gelişmeler sayesinde çok çok büyük miktarda veriler ile sistemi eğitebilmekteyiz. Ayrıca yüksek miktarda veri ile yapılan eğitimde performans da artmaya devam ediyor. İşte bu nokta Derin Öğrenme’yi geleneksel Makine Öğrenmesi tekniklerinden ayıran noktadır. Çünkü eski Makine Öğrenmesi uygulamalarında yüksek miktarda veri, başaranın bir miktar artmasına ve daha sonra başarının sabit bir seyir izlemesine neden olmaktadır.
Elimizde çok miktarda veri olmasının avantajını kullanamamaktaydık. Son yıllarda Big Data’nın artması ve artan veri miktarı ile daha başarılı sistemlerin oluşturabilmesi, Derin Öğrenmeyi son yollarda sıkça üzerine çalışılan bir konu haline getirmiştir. Derin Öğrenme ile Eski Makine Öğrenmesi algoritmalarının artan veri miktarına ilişkin elde edebildikleri başarı oranları aşağıdaki grafikte verilmiştir.
Derin Öğrenme Nasıl Çalışıyor?
Derin Öğrenme yöntemleri, verilen çok sayıda inputa göre ayırt edici özellikleri kendisi öğrenir. Bu özellik öğrenme işleminin başarı ile yapılabilmesi için sistem, yeterince eğitilmelidir. Özellik öğrenme aşaması katmanlardan oluşur. Alt seviyedeki özellikler daha az ayırt ediciliğe sahipken alt seviyedeki katmanların birleştirilmesinden oluşan üst seviye katmanlardaki özellikle daha fazla ayırt ediciliğe sahiptir. Alt seviyedeki özellikler daha anlamlı özellikler üretilebilmesi için temel oluştururlar. Bu tarz bir öğrenme yöntemi, geleneksel Makine Öğrenmesi algoritmalarından farklıdır. Çünkü geleneksel Makine Öğrenmesi algoritmalarında eğitim aşamasından önce bir insan tarafından belirlenen özelliklerin hesaplanması gerekir. Öğrenme işlemi hesaplanan bu özelliklere göre yapılır.
Kısaca eski algoritmalar insan bağımlı özellikler ile çalışabilirken, Derin Öğrenme insan bağımsız özellikler ile çalışmaktadır. Bu, Derin Öğrenme algoritmasının ayırt edici özellikleri kendi kendine öğrenmesi anlamına gelir. Bu yetenek Derin Öğrenme yaklaşımlarının başarısında çok önemli bir etkendir. Derin Öğrenme yaklaşımlarının çalışma prensibini gösteren temsili bir şekil aşağıda verilmiştir. Bu şekli dikkatle incelemenizi öneririm, zira yukarıda anlattığım karmaşık işlemleri özetleyen ve basitleştiren muhteşem bir şekildir.
Derin Öğrenme ile akıllı sistemler oluşturma, son yıllarda büyük teknoloji firmalarının gündeminde olan bir konu. Aşağıda bazı büyük teknoloji firmalarının Derin Öğrenme üzerine yaptıkları araştırmalara dair bilgiler sunulmuştur.
Bir Startup olan Deep Genomics, tonlarca canlı hücresi bilgisinden genom değişikliklerinden kaynaklanan sonuçları tahmin etmeleri için Derin Öğrenme kullanmaktadır. Geliştirilen sistem, kişinin belirli bir hastalığını anlamada veya anormallik durumlarının tespit edilmesinde kullanılmakta.
Günümüzde çok fazla cihaz internete erişebilmektedir, hackerlar için bir sisteme sızabilmek adına bir çok giriş noktası bulunmakta ve bu giriş noktalarının sayısı gün geçtikçe artmaktadır. Siber güvenlik alanı geliştirilen uygulamalar daha güvenli bir sistem oluşturmanın yanı sıra, bir sonraki saldırının nereden olacağını da tahmin edebilme kapasitesine sahip olmalıdır. Her geçen gün saldırganlar, hedef sistemi hackleyecek bir uç birim arayışı içerisindeler. Bu nedenle siber saldırılara karşı güçlü bir savunmaya sahip olmak saldırgan gibi düşünmekten geçmektedir. Deep Instinct gibi şirketler, daha önce hiç tespit edilmemiş yeni tehditleri tanımak ve bu sayede siber suç örgütlerinden bir adım önde olmasını sağlamak amacıyla Derin Öğrenme yöntemleri kullanmaktadırlar.
Sürücü-Yardımı servislerinin kullanıldığı birçok araç günümüzde kullanılmaktadır. Ancak bu tip araçlar beklenmedik olayların oluşması durumunda kullanıcıların devreye girmesine ihtiyaç duyuyorlar. Günümüzde bu araçların yerini sürücüye hiç bir şekilde ihtiyaç duymadan seyahat edilebilen araçlar almaktadır. Otonom araçlar üzerine çalışmalar yapan birçok firma bulunmaktadır. Drive.ai da bunlardan birisidir. Drive AI, aracın çeşitli sürüş koşullarını simule ederek hatasız bir otonom sürüş gerçekleştirebilmek amacıyla Derin Öğrenmenin gücünden faydalanmaktadır. Benzer şekilde Nvidia firması da Otonom Araçlar üzerine çalışmalar yapmaktadır. Nvidia ayrıca yüksek paralel işlem gücüne sahip ekran kartlarının üretilmesiyle Derin Öğrenme’yi performans noktasında destelemesiyle de tanınmaktadır. Ayrıca bu sektörde Google, Tesla ve otomobil endüstrisindeki büyük şirketlerin çoğu da sürücüsüz arabalar üzerinde araştırmalar yapmaktadır ve bunlardan bir kısmı bu araştırmalarında Derin Öğrenme tekniklerinden faydalanmaktadırlar.
Google, dünyada en çok kullanılan arama motorlarından birisidir. Google ve diğer arama motorlarının işleyiş mekanizmasında metin analizi çok önemli bir yer tutmaktadır. Bir sitenin indexlenmesi, rank değerinin üretilmesi, arama motorunda mantıklı sıralamalar ile kullanıcıya sunulabilmesi bir arama motoru için çok önemli özelliklerdir. Google, arama motoru için kullandığı algoritmalarında Derin Öğrenme tekniklerinin kullanıldığı büyük miktarda güncellemeler yapmış durumdadır. 2015 yılında kullanılamaya başlanan Derin Öğrenme tabanlı olan RankBrain teknolojisi arama sorgularının otomatik tamamlanmasında ve arama sorguların yönetilmesinde kullanılmaktadır. Bu teknoloji daha hiç kullanılmamış sorguların dahi yönetilebilmesine imkan tanımaktadır.
Son olarak teknoloji devi Apple yapay zeka tabanlı kullanıcı asistanı uygulaması olan Siri’yi tamamen Yapay Sinir Ağı tabanlı bir öğrenme altyapısına taşımıştır. Derin Öğrenme ile güncellenen yeni Siri ilk olarak Amerika Birleşik Devletlerinde kullanılmaya başlandı. Daha sonra 15 Ağustos 2014’te tüm dünya da kullanılmaya başlandı. Güncellenen Siri’nin görünümü eskisiyle aynı, ancak çalışma mekanizması Derin Öğrenme ile güçlendirilmiştir.