Makine Öğrenimi nedir?

Makine öğrenimi, deneyim yoluyla iyileştirilebilen algoritmalarla ilgilenen bir AI alt kümesidir. Bu durumda deneyim, genellikle çok miktarda veri beslenmesi anlamına gelir. Makine öğreniminin ne olduğundan daha ilginç olan şey, yapabilecekleridir. Tahta oyunlarında insanları yenmek, araba kullanmak, e-postanızdaki istenmeyen postaları filtrelemek veya bir görüntüdeki yiyecekleri seçmek; makine öğrenimi uygulamaları görünüşte sonsuzdur. Web geliştirme söz konusu olduğunda, makine öğrenimi için daha yaygın kullanım örneklerinden bazıları, kullanıcı girişini veya kullanıcı tarafından gönderilen içeriği kategorilere ayırmak veya filtrelemek, öneriler üretmek veya web kameranızla bir video oyunu oynamak gibi kullanıcılar için ilginç ve etkileşimli deneyimler yaratmak gibi şeylerdir .

JS Bunun Neresinde?

Birkaç yıl öncesine kadar olmadı ya da en azından iyi değildi. Python her zaman makine öğrenimi için tercih edilen dil olmuştur. Bunun büyük bir nedeni, numpy ve scikit-learn gibi kütüphanelerin varlığıdır . Hesaplama ve makine öğrenimi için zengin destek sağlarlar ve daha düşük seviyeli uygulamalara bağlanarak, performansa bağlı kod için Python gibi yorumlanmış bir dil kullanmanın olumsuz yanlarını ortadan kaldırırlar. 

Diğer bir neden ise momentumdur. En kapsamlı, en iyi korunan makine öğrenimi kitaplıkları Python'da yazılma eğiliminde olduğundan, makine öğrenimi yapan herkes Python öğrenerek bir geri bildirim döngüsü oluşturacaktı. Bunlar hala doğrudur, ancak son birkaç yılda, dil değiştirmeden makine öğrenimini öğrenmek isteyen JavaScript geliştiricileri için durum çok daha iyi hale geldi. 

ML için JS kullanmanın fizibilitesini artırmadaki belki de en büyük güç, TensorFlow.js projesinin getirdiği iyileştirmeler olmuştur . WebGL hızlandırmayı destekleyen TensorFlow JS'nin 1.0.0 sürümü 2019'un başlarında piyasaya sürüldü. Aynı zamanda, kitaplığın düğüm sürümüne bir C API'ye bağlanma ve bir GPU'dan yararlanma desteği eklendi. Bu gelişmeler ve JS ile makine öğrenimi için diğer kitaplıkların devam eden ortaya çıkışı, oyun alanını Python ile tam olarak eşitlemedi, ancak JS kullanarak makine öğrenimi ile ciddi bir şekilde ilgilenmeyi çok daha makul hale getirdiler. 

Bu kütüphaneler ve diğerleri gelişmeye devam ettikçe ve WebGPU gibi standartlar ilerlemeye devam ettikçe, bu eğilim muhtemelen devam edecek. Python'da bir model oluşturmak ve eğitmek istediğinizi fark etseniz bile, bunu tahmin için kullanılabilecek veya hatta web'de daha fazla eğitilebilecek bir formata dönüştürmek mümkündür. Bir sınıflandırma yapmak için sunucu tarafı aramasına gerek olmadığında, sunucu yükünü artırmadan ve gizlilikle ilgili endişeler olmadan kullanıcı deneyimini geliştirmek için makine öğrenimini kullanmak için birçok olasılık ortaya çıkar.

Ya bir neural networke ihtiyacım yoksa?

An artificial neural network, often referred to as just a neural network, is a type of system inspired by the way neurons are connected in the brain, which can be used for a wide variety of machine learning tasks. Due to the success and popularity of deep learning, which uses neural networks, it’s also become synonymous with machine learning in some people’s minds.  There are other algorithms and techniques used in machine learning though, and the no free lunch theorem tells us that a neural network is not always the right solution. TensorFlow does provide support for other common machine learning algorithms but their focus is clearly on applications of neural networks. Other libraries like ml.js and machinelearn.js provide implementations of a wide array of ML algorithms in JS, and machinelearn.js supports C++ and GPU binding. However, there is still no one-stop shop for machine learning with JavaScript that parallels the performance and versatility of a library like scikit-learn.

Sonuç

JS'de makine öğrenimi öğrenmek ve bunlarla etkileşim kurmak artık her zamankinden daha pratik. Hızlı bir şekilde çalışan etkileşimli bir modeli elde etmek için mevcut kaynaklar, mevcut geniş kitaplık yelpazesi ve bu alandaki sürekli yatırım ve açık kaynak geliştirme, makine öğrenimini öğrenmek isteyen bir JavaScript geliştiricisi için bunu öğrenmek zorunda kalmadan yapmak için artık makul olduğu anlamına geliyor. aynı zamanda yeni bir dil. 

Pek çok pratik kullanım durumu, bu araçlar tarafından yeterince ele alınabilir, özellikle de kendinizi bir sinir ağına ihtiyaç duyuyorsanız ve bilgisayarınıza araba kullanmayı öğretmeye çalışmıyorsanız. Bununla birlikte, daha büyük miktarda veriyle veya daha belirli sorun alanlarıyla uğraşmaya başladığınızda, kendinizi yine de Python'a ve onun daha olgun ekosistemine doğru itilmiş bulabilirsiniz.

Daha fazla bilgi için, bir sistemin "iyi" olması için gereken makine öğrenimi eğitiminin kapsamı ve programlama sırasında nasıl eğlenileceği konusunda Charlie Gerard ile yaptığımız bir podcast'e bakın .