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.
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 nasıl çalışır?
Algoritmaların çalışabilmesi için beş özelliğe sahip olması gerekir:
- Girdiler: Hesaplama sırasında dönüştürülecek olan iyi tanımlanmış veriler.
- Çıktılar: Hesaplamadan elde edilen veriler.
- Kesinlik: Belirli hesaplama adımları.
- Etkililik: Yapılabilir hesaplama adımları.
- 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ı?
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.