Algoritmalar

Ne oldukları & neden önemli oldukları

Bir algoritma, belirli bir görevi yerine getirmek veya belirli bir sorunu çözmek için tasarlanmış adım adım talimatların bir listesidir. Bu şekilde düşündüğünüzde, algoritmalar her yere yayılmıştır. Örneğin bir Fransız soğan çorbası tarifi bir algoritmadır. Bir çıktı oluşturmak için bu girdileri birleştirin. Algoritmalar temelde bilgisayarlarda da aynı şekilde çalışır. İster tabletinizin ekranındakileri okuyabilmeniz için ikili sayıları harflere dönüştürüyor olsunlar, ister risk toleransınıza göre hisse senedi öneriyor olsunlar, algoritmalar modern bilişimin temelini oluşturur. Bu sayfa bilgisayar algoritmalarına odaklanacaktır.

Algoritmaların kısa tarihçesi

Algoritmalar yeni bir buluş gibi görünebilir, ancak bu terim aslında İranlı matematikçi Muhammed ibn Mūsā al-Khwārizmī'nin (Latincesi "Algoritmi") matematiğe önemli katkılarda bulunduğu bin yıl öncesine dayanmaktadır. Bu kavram 1800'lerde Alman matematikçi Carl Friedrich Gauss'un Paskalya'nın takvim yılının hangi gününe denk geldiğini belirlemek için basit bir algoritma icat etmesiyle daha da benimsenmiştir.

Algoritmalar ilk kez 20. yüzyılın ortalarında, ünlü İngiliz bilgisayar bilimcisi Alan Turing'in makinelerin karmaşık bir dizi talimatı nasıl yerine getirebileceğine dair bir teori geliştirmesiyle ortaya çıkmıştır. Kaba satranç oynama algoritması "Turochamp" Turing'in yaşamı boyunca hiçbir insanı yenememiş olsa da, bugün yapay zeka olarak bildiğimiz şeyin temelini oluşturdu.

Sonraki yıllarda bilgisayarların gücü arttıkça, daha karmaşık algoritmalara duyulan ihtiyaç da arttı. Günümüzde algoritmalar modern bilişimin temelini oluşturmakta, A noktasından B noktasına gitmemize, izleyeceğimiz bir sonraki filme karar vermemize ve hatta aşık olmamıza yardımcı olmaktadır.

Birçok bilgisayar programı temelde bilgisayarın anlayabileceği şekilde yazılmış bir dizi algoritmadan oluşur.

Üretim

Tahmine dayalı analitik ve yapay zeka kazanan bir müşteri deneyimi sunuyor

Orlando Magic, taraftar deneyimini kişiselleştirmek ve uygulama satın alımlarında dört kat artış sağlamak için mobil uygulama verilerini ve makine öğrenimi algoritmalarını kullandı.

Günümüz dünyasında algoritmalar

Algoritmalar toplum genelinde giderek daha fazla insan kararının yerini alırken, bazıları hayatları değiştirme potansiyeline sahip. Bu nedenle bazıları, özellikle ceza adaleti ve sağlık hizmetlerinde algoritmalarda adaleti daha fazla araştırmamız gerektiğini savunuyor.

Toplumu gözlerinizin önünde dönüştüren algoritmaları kimin geliştirdiğini merak ediyor musunuz? Harvard Business Review'un bu teknik incelemesi, dünyayı ileriye götüren bilişim ve otomasyon gelişmelerinin ardındaki insan yüzlerine odaklanıyor.

Algoritmalar yağmur ormanlarını kurtarmaya yardımcı olabilir. Bilgisayarla görme algoritmaları, her gün milyonlarca görüntüde ormansızlaşmanın erken belirtilerini arayarak, hükümet politika yapıcılarının ve yardım kuruluşlarının çok geç olmadan tehlike altındaki ormanları korumak için müdahale etmelerine yardımcı olabilir.

Netflix algoritması

Netflix'i izlediğinizde, algoritmalar sizi izler. Netflix Öneri Motoru, şirketin sizin hakkınızda bildiklerini dikkate alarak kataloğundaki belirli bir başlığı izleme olasılığınızı tahmin eden sofistike tescilli algoritmalardan oluşuyor. Bugün, Netflix ekran süresinin %80'i kişiselleştirme yoluyla elde ediliyor. Algoritma girdileri izleme geçmişinizi, favori türlerinizi ve günün hangi saatinde izlediğinizi içerir. Netflix'i ne kadar çok izlerseniz, algoritmalar o kadar doğru hale gelir, bu da sizi daha fazla Netflix izlemeye teşvik eder ve bu böyle devam eder. 

Algoritmalar nasıl çalışır?

Algoritmaların çalışabilmesi için beş özelliğe sahip olması gerekir:

  1. Girdiler: Hesaplama sırasında dönüştürülecek olan iyi tanımlanmış veriler. 
  2. Çıktılar: Hesaplamadan elde edilen veriler. 

  3. Kesinlik: Belirli hesaplama adımları. 
  4. Etkililik: Yapılabilir hesaplama adımları. 
  5. Sonluluk: Sınırlı sayıda adım.

Bu da bizi matematik tabanlı ve kural tabanlı algoritmalara götürüyor.

Matematik tabanlı algoritmalar
Çoğu algoritma doğası gereği sayısal olduğundan, birçoğunun matematik tabanlı olması şaşırtıcı değildir. En basit örneği ele alalım: 1 + 1 = 2. Bu, birlerin girdi ve ikinin çıktı olduğu matematik tabanlı bir algoritmadır. Bu örneği genişlettiğinizde, sinyalleri frekanslara ayıran, bilgisayarları kodlayan ve hatta bir web sitesinin Google arama sıralamasını belirleyen algoritmalar da dahil olmak üzere günümüzde kullanılan en önemli algoritmalardan bazılarını elde edersiniz.

Kural tabanlı algoritmalar
İnsanlar yapay zeka hakkında daha fazla şey öğrendikçe, bazı şeylerin tamamen matematiksel yapılarla açıklanamayacağını görüyoruz. Örneğin, metin analizi yazılımı geliştiriyorsanız ve bir ismi çoğul yapmak için bir algoritmaya ihtiyacınız varsa, her isme bir "lar" ekleyemezsiniz. Matris ve matrisler gibi istisnaları düşünün. Bu özel durumlar için kurallarımız var. Kural tabanlı algoritmalar, sayısal ve niteliksel özelliklerin bir karışımını içeren verileri analiz etmek için en iyisidir.

Elbette, belirli bir sorunu çözmek için birden fazla algoritma türü kullanabilirsiniz - örneğin, birinin gelirini tahmin etmek gibi. Bu hesaplamayı gerçekleştirmek için yaş, konum, eğitim gibi değişkenleri ağırlıklandırdığınız matematik tabanlı bir algoritma kullanabilirsiniz. Örneğin, geliri yaşa ve posta koduna göre tahmin eden kural tabanlı bir algoritma da kullanabilirsiniz. Peki hangisi en iyisi?

Bu da bizi rakip algoritmalara getiriyor. Algoritmalar genellikle hangisinin en etkili olduğunu görmek için birbirleriyle karşılaştırılır. Çorba örneğimize geri dönecek olursak, hepsi Fransız soğan çorbası ile sonuçlanan rakip tarifleriniz olabilir. Aynı şey bilgisayar algoritmaları için de geçerlidir. Belki A algoritması B algoritmasından daha yavaş ama daha doğrudur. Belirli bir görev için doğru algoritma, onu değerlendirmek için kullandığınız çeşitli kriterlere bağlıdır. Görevini yerine getirdi mi? Görevi hızlı bir şekilde yerine getirdi mi? Etkin bir şekilde başardı mı?

Doğadan esinlenildi

Günümüzde çoğu yapay zeka projesi birden fazla veri bilimi teknolojisine dayanıyor. Gartner'a göre, en iyi sonucu elde etmek için farklı yapay zeka tekniklerinin bir arada kullanılması kompozit yapay zeka olarak adlandırılıyor.

Algoritmalar insan düşüncesine kestirme bir yol olarak düşünülebilir. Bu nedenle, genellikle doğa unsurlarından ilham alırlar. Örneğin genetik algoritmalar, organizmaların zaman içinde nasıl evrimleştiğine dair biyolojiyi kopyalar. Bu algoritmalar, ebeveynlerinin özelliklerine sahip yavrular oluşturmak için kombinasyon karar noktalarını bir araya getirecektir. Benzer şekilde, sinir ağları da biyolojik beyinden esinlenmekte ve bilgisayarla görme ve doğal dil işleme gibi bazı farklı problemleri çözmek için kullanılmaktadır.

Popüler algoritma türleri

Algoritmalar temel ve gelişmiş kategorilere yerleştirilebilir

Temel

Farkında olmayabilirsiniz ama algoritmalar en temel bilgisayar işlevlerine bile güç verir. Günümüzde yaygın olarak kullanılan üç temel algoritmaya bir göz atalım.

Sıkıştırma algoritmaları
Çoğu insan bilgisayar kullanırken makale okumak veya resim görüntülemek gibi basit bir şey yapar.
Bu, dosyaları sıkıştıran algoritmalar sayesinde görüntülenebilir, paylaşılabilir ve geri yüklenebilir. Bir JPG dosyası düşünün. Yeğeninizin yeni ağaç evinin resmini görüntülerken, aslında milyonlarca sayısal piksel temsilini ekranınızdaki gülümseten görüntüye dönüştürmek için kayıplı bir sıkıştırma algoritmasından geçirilmiş bir bit eşlem görüntüsüne bakıyorsunuz. 

İkili arama algoritması
İkili arama, böl ve fethet temelinde çalışan hızlı bir arama algoritmasıdır. Dizüstü bilgisayarınızda 2020taxreturns.PDF dosyasını aradığınızı varsayalım. İkili arama ile algoritma veri setinin ortasından bir gözlem seçer ve bulunan konu_id'sinin istenen konu_id'si olup olmadığını kontrol eder. Eğer öyleyse, algoritma durur. Değilse, tablo sıralandığından, algoritma istenen gözlemin bulunanın üstünde mi yoksa altında mı olduğunu belirleyebilir ve arama aralığını orijinal dosyanın yarısı olacak şekilde yeniden tanımlayabilir. Algoritma daha sonra yeni arama aralığının ortasındaki gözlemi seçer ve süreç PDF bulunana kadar tekrarlanır. Evet, aslında geçen yıl eyalet vergilerini eksik ödediniz. 

Çarpma algoritması
Algoritmalar yukarıdakinden daha da basitleşir.
Aslında, en popüler algoritmalardan biri sayıları çarpan bir algoritmadır. Bir algoritma ile yaptığınız neredeyse her şey iki veya daha fazla sayının çarpılmasını gerektirir. Metin analizi gibi kelime tabanlı bir alanda bile, kelime sıklıkları ve belge sıklıkları gibi şeyleri değerlendiriyorsunuz ve genellikle orada bir çarpan var. 

Gelişmiş

Yelpazenin diğer ucunda ise gelişmiş algoritmalar yer almaktadır. Bunlar yeni fikirlerle temel algoritmalar üzerine inşa edilir. Ve genellikle büyük verisetlerininişlenmesini içerirler.

Makine öğrenimi algoritmaları
Makine öğren imi, kabul edilebilir bir aralıktaki çıktı değerlerini tahmin etmek için girdi verilerini alan ve analiz eden algoritmalar kullanır. Bu algoritmaların en güzel yanı, diğer algoritmalardan öğreniyor olmaları. Yeni veriler makine öğrenimi algoritmalarına beslendikçe, zaman içinde zeka geliştirerek performansı artırmak için operasyonlarını öğrenir ve optimize ederler. Dört tür makine öğrenimi algoritması vardır: denetimli, yarı denetimli, denetimsiz ve pekiştirmeli.

Derin öğrenme algoritmaları
Derin öğrenme algoritmaları, giriş verilerinden daha üst düzey özellikleri aşamalı olarak çıkarmak için birden fazla katman kullanır. İnsan beynini taklit eden bu algoritmalar, yapay sinir ağları olarak adlandırılan şeyleri kullanarak verileri sürekli analiz ederek insanlarla benzer sonuçlar çıkarmaya çalışır. Bu karmaşık algoritmaların çıktıları, sürücüsüz arabaları mümkün kılmak veya kitapları göz açıp kapayıncaya kadar İngilizce'den Arapça'ya çevirmek gibi hayat değiştirici olabilir.

Gradient boosting algoritmaları
Tahmine dayalı modeller, işletmelerin beklenen talebe göre satış tahmini ve ürün fiyatı gibi konularda yardımcı olur.
Gradient boosting, bu tahmin modellerini oluşturmak için güçlü bir algoritmadır. Zayıf karar ağaçlarını güçlü karar ağaçlarına dönüştürerek çalışır ve böylece bir tahminin doğruluğunu artırır. Algoritma, özellikle büyük ve karmaşık veri setlerinde hızı ve doğruluğu ile bilinir. 

Hangi algoritmayı kullanmalısınız?

Yeni başlayanlar genellikle hangi algoritmayı kullanacaklarını bilmek isterler. Cevap, aşağıdakiler de dahil olmak üzere birçok faktöre bağlıdır:

  • Verinin boyutu, kalitesi ve niteliği. 
  • Mevcut hesaplama süresi. 
  • Görevin aciliyeti. 
  • Verilerle ne yapmak istediğiniz.

Deneyimli bir veri bilimci bile farklı algoritmaları denemeden önce hangi algoritmanın en iyi performansı göstereceğini söyleyemez. Bir algoritma seçerken şu hususları göz önünde bulundurmak akıllıca olacaktır: doğruluk, eğitim süresi ve kullanım kolaylığı. Birçok kullanıcı doğruluğu ilk sıraya koyarken, yeni başlayanlar en iyi bildikleri algoritmalara odaklanma eğilimindedir. Bir veri kümesi sunulduğunda, ilk düşünülmesi gereken şey, sonuçların nasıl elde edileceğidir; bu sonuçlar neye benziyor olursa olsun. Sonuçları elde ettikten ve verilere aşina olduktan sonra, veri anlayışınızı güçlendirmek için daha gelişmiş algoritmalar kullanarak daha fazla zaman harcamayı seçebilir ve böylece sonuçları daha da iyileştirebilirsiniz. Algoritma seçimi hakkında daha fazla bilgi edinin.

Sonraki Adımlar

Algoritmalar hakkında bilgi edinmek istiyorsanız, SAS bunu yapabileceğiniz yerdir.

Sadece on yıl önce, algoritmalarla çalışmak ileri bir derece ve ansiklopedik bir matematik ve bilgisayar bilimi anlayışı gerektiriyordu. Bugün, dünyanın en sofistike algoritmaları, uzman kullanıcıların bile formüllerle uğraşmak zorunda kalmadan çığır açan çalışmalar sunabilmeleri için düzgün bir şekilde yazılımda toplanmıştır.  

Bu çözümlerden biri "SAS® Visual Data Mining and Machine Learning." Bu üründe, tüm geçmişlere sahip kullanıcıların karmaşık analitik problemleri çözmelerine olanak tanıyan dünyadaki en gelişmiş algoritmalardan bazıları bulunmaktadır. Yüksek puan alan yazılımı tahmine dayalı modeller oluşturmak ve kârlı iş fırsatlarını belirlemek gibi konularda size yardımcı olacak çok sayıda algoritma sunar.

SAS ile bağlantı kurun ve sizin için neler yapabileceğimizi görün.