Makine öğreniminin altı ana geliştirme dili

Makine öğrenme Yeni başlayanlar genellikle bir sorunla yüzleşmelidir:

Hangisini öğrenmeli Programlama dili ?

Cevap sizi şaşırtabilir: Ustalar için çok önemli değil . Makine öğrenimi kitaplıklarını ve seçtiğiniz dilin araçlarını anladığınız sürece, dilin kendisi aslında o kadar önemli değildir. Oldukça az sayıda makine öğrenimi kitaplığı birden çok programlama dilini destekler. Tabii ki, şirketteki geliştirme rolünüze ve gerçekleştirmeniz gereken görevlere bağlı olarak, bazı diller, kütüphaneler ve araçlar diğerlerinden daha verimli olacaktır. Aşağıda altı ana makine öğrenme diline bir göz atalım: R dili, MATLAB, Python, Java, C / C ++ ve Lisp.

R dili

R, veri hesaplaması için özel olarak tasarlanmış bir dil aracıdır. Büyük ölçekli veri madenciliği, görselleştirme ve raporlama uygulama senaryolarında lider konumdadır. CRAN kaynak kitaplığı aracılığıyla, neredeyse tüm makine öğrenimi algoritmalarına, veri testlerine ve analiz süreçlerine uygulanabilen çok sayıda araç setini kolayca elde edebilirsiniz. İlişkileri ifade etmek, verileri dönüştürmek ve paralel işlemleri gerçekleştirmek için R dilinin sözdizimi çok zarif, ancak biraz ezoterik.

Leifeng.com'a göre, KDNuggets tarafından yakın zamanda yapılan bir araştırma şunu buldu: Analiz, veri madenciliği ve diğer veri bilimi görevlerinde R en popüler ve yaygın olarak kullanılan dildir . Ancak son yıllarda, Python giderek daha fazla kullanıcıyı elinden aldı.

KDNuggets 2015 anketi: Analiz, veri madenciliği ve veri bilimi görevleri için en yaygın kullanılan programlama dili R.

MATLAB

MATLAB akademide çok popülerdir, çünkü:

  • Güçlü matematiksel işleme yetenekleri;

  • Cebir ve matematik için zengin destek;

  • Sembolik hesaplamayı destekleyin;

  • Farklı disiplinler için (dijital sinyal işlemeden hesaplamalı biyolojiye kadar) zengin bir araç kutusu seti vardır.

Bu matris tabanlı dil, genellikle makine öğrenimi algoritmalarının prototiplenmesinde kullanılır ve bazen karmaşık çözümler geliştirmek için kullanılır. . Ticari lisansı özellikle pahalıdır, ancak bazı kurumsal kullanıcılar için faydalı olabilir, çünkü geliştirme ve araştırma için harcanan zamanı ve çabayı büyük ölçüde azaltabilir. AI Daniel Wu Enda açık Yeni başlayanlara başlamak için Octave veya MATLAB kullanmalarını önerin . Aksine, Octave MATLAB'a ücretsiz bir alternatiftir, birbirine çok benzer ve neredeyse aynı sözdizimine sahiptirler. Sadece Octave'de daha az araç kutusu var ve IDE, MATLAB kadar olgun değil.

Python

Python genel amaçlı bir programlama ve komut dosyası dili olmasına rağmen, veri bilimcileri ve makine öğrenimi mühendisleri arasında giderek popüler hale geldi. R ve MATLAB'ın aksine, Veri işleme ve bilimsel hesaplamanın deyimsel grameri Python dilinde yerleşik değildir, ancak NumPy, SciPy ve Pandas gibi kütüphaneler Python'un işlevselliğini R ve MATLAB ile aynı seviyeye getirir. . Diğerleri bunun Python'un sözdiziminin kullanımını kolaylaştırdığını düşünüyor.

Python'u destekleyen çok sayıda açık kaynaklı çerçeve vardır: Scikit-learn, Theano, TensorFlow gibi. Bu profesyonel makine öğrenimi kitaplıkları, geliştiricilerin makine öğrenimi modellerini eğitmesini kolaylaştırır ve bazıları dağıtılmış bilgi işlemi de destekleyebilir. Genellikle, bu veritabanlarındaki performansla ilgili kodların çoğu hala C veya C ++ ile yazılır ve hatta bazıları Fortran kullanır; Python'un rolü esas olarak sarmalayıcılar veya API'dir . R dil paketi benzerdir.

Python ekosisteminin en büyük avantajı, Django veya Flask kullanan web uygulamaları, PyQt kullanan masaüstü uygulamaları ve hatta ROS kullanan otonom robot aracıları gibi karmaşık uçtan uca ürün veya hizmeti bir araya getirmek için kullanmanın nispeten kolay olmasıdır. .

Üç MOOC'un (edX, Coursera ve Udacity) hepsinin Python'da giriş dersleri sunduğunu belirtmek gerekir. Buna ek olarak, MIT ve California Üniversitesi, Berkeley de dahil olmak üzere Amerika Birleşik Devletleri'ndeki en iyi üniversiteler, Python'u bilgisayar birinci sınıf öğrencileri için zorunlu bir dil haline getirmiştir. Gelecekte, sektördeki artan popülaritesinin aksine, daha fazla BT okulunun Python'a yönelmesi beklenebilir.

Sonuç olarak, makine öğrenimi alanında Python çok yönlüdür ve birçok insan bunun gelecekteki trend olduğunu düşünür.

Java

Java, çoğu yazılım mühendisinin seçimidir. Bunun nedeni, nesne yönelimli programlamadaki temiz ve tutarlı yürütülmesi ve JVM'leri kullanmanın platformdan bağımsız olmasıdır. Kodu daha net hale getirmek ve güvenilirliği artırmak için basitlik ve esneklikten ödün verir. Bu, önemli kurumsal yazılım sistemlerinde yaygın olarak kullanılmasını sağlar. Aynı güvenilirlik düzeyini korumak ve karmaşık arayüzler yazmaktan kaçınmak için, Java kullanan şirketler dili makine öğrenimi uygulamalarında kullanmaya devam etme eğilimindedir.

Prototipleri analiz ederken ve tasarlarken, Java'nın birçok yararlı aracı ve kütüphanesi vardır (Weka gibi). Ek olarak, Büyük ölçekli dağıtılmış öğrenme sistemlerinin geliştirilmesinde, Java'nın birçok birinci sınıf seçeneği vardır : Spark + MLlib, Mahout, H2O ve Deeplearning4j gibi. Tencent'in açık kaynaklı büyük veri bilgi işlem platformu Angel da bir ay önce Java'yı kullandı. Bu çerçeveler / kitaplıklar, endüstri standardı veri işleme ve depolama sistemleri (Hadoop / HDFS gibi) için oldukça dostudur. Aralarındaki uyumluluk ve entegrasyon çok uygundur .

C / C ++

C / C ++, düşük seviyeli yazılım yazmak için ideal bir dildir , Bir işletim sisteminin parçası veya bir ağ taslağı gibi. Bu uygulama senaryolarında hesaplama hızı ve bellek verimliliği kritik öneme sahiptir. Aynı nedenle, makine öğreniminin düşük seviyeli adımlarını gerçekleştirmek için de yaygın seçeneklerdir. Bununla birlikte, veri işlemenin deyimsel soyutlamasının olmaması ve bellek yönetiminin kod yazma yükünü artırması nedeniyle, yeni başlayanlar için çok düşmanca davranırlar. Eksiksiz bir uçtan uca sistem geliştirirken C / C ++ kullanmak da bir yüktür.

Akıllı cihazlar, arabalar ve sensörler gibi gömülü sistemler söz konusu olduğunda, C veya C ++ kullanmak gerekli olabilir. C / C ++ mevcut platform temellerinde veya belirli uygulamalarda zaten kullanılıyorsa, bunları kullanmak daha uygun olacaktır. Ek olarak, LibSVM, Shark ve mlpack gibi C / C ++ tabanlı birçok makine öğrenimi kitaplığı vardır.

Lisp

Bu, AI programlama dilinin atasıdır. Leifeng.com'un bildiği kadarıyla Lisp 1958'de doğdu. Yapay zeka için şimdiye kadar kullanılan ilk bilgisayar dilidir. Dil çok esnek ve genişletilebilir. Hızlı prototip oluşturma ve kullanışlı "makro yardımcı programı" gibi özelliklerinden bazıları, AI geliştirmede çok kullanışlıdır. Lisp kullanarak karmaşık programlar yazmak nispeten kolaydır. Basit bir şekilde güçlü algoritmalar oluşturabilen bir dildir.

Lisp'in net bir haritası vardır ve sistematik değişiklikler yapmak için onu kullanmak nispeten kolaydır. Read-eval-print döngüsü (REPL olarak anılan okuma-değerlendirme-çıktı döngüsü) etkileşimli bir geliştirme ortamı sağlar. Dinamik yazım, koşul sistemi ve güçlü nesne sistemi Lisp'in temel özellikleridir ve onu AI alanında en yaygın kullanılan dillerden biri yapar. Ülkede nispeten küçük olmasına rağmen, sektörde en güçlü makine öğrenimi dillerinden biri olarak kabul edilmektedir.

Kurumsal Çözüm

Bu dillere ek olarak, veri modelleme ve kurumsal analiz için kullanılan ve daha yüksek kontrol edilebilirliğe sahip bir veri işleme ortamında makine öğrenimi modellerini uygulayabilen birkaç ticari ürün vardır. RapidMiner, IBM SPSS, SAS + JMP ve Stata bu kategoriye girer. Veri analizi için güvenilir uçtan uca çözümler sağlamak üzere tasarlanmışlardır ve genellikle programlanabilir API'lere ve yazılabilir sözdizimlerine sahiptirler.

Makine öğrenimine dayalı bulut hizmetlerinin artan popülaritesi , Bu alandaki son gelişmedir. Buna Amazon Machine Learning, Google Prediction, DataRobot, IBM Watson (Watson) ve Microsoft Azure dahildir. Müşterilere, öğrenme programını büyük miktarda verinin işlenmesine ve farklı modellerle hızlı bir şekilde test etmeye genişletmek için çözümler sunarlar. Makine öğreniminde sağlam bir temele sahip olduğunuz sürece, yeni bir ürün veya platform kullanmak, yeni bir aracın nasıl kullanılacağını öğrenmeye eşdeğerdir.

Yeni başlayanlar için tavsiyeler:

Bir dil / kütüphane seçerken göz önünde bulundurulması gereken önemli bir husus, Geliştirme süresini ve yürütme süresini dengeleyin . Geliştirilmesi aylar sürerse, veri işlemeyi birkaç dakika içinde tamamlayabilen bir öğrenme kanalı değersiz olabilir. Prototipleri hızlı bir şekilde oluşturmak ve test etmek çok önemlidir çünkü ilk deneme genellikle başarısız olur ve geliştiricilerin tekrar etmesi gerekir.

Deneyimli makine öğrenimi mühendislerinin bu kadar popüler olmasının nedeni budur: Geliştirme yaptıklarında, kullanışlı olan her türlü aracı / dili / kitaplığı kullanırlar. Leifeng.com'un bildiği kadarıyla, yapay zeka ürünlerinin geliştirilmesinde bu sıkça ortaya çıkan bir senaryodur: Python ve R gibi yüksek seviyeli dillerde algoritma prototipleri geliştirin ve ardından son ürünleri üretmek için çözümü Java veya C / C ++ 'ya aktarın. Bu nedenle, üst düzey bir makine öğrenimi geliştiricisi olmak için yalnızca bir dil yeterli değildir.

udacity aracılığıyla, letzgro

29. Altın Kartal Ödülleri açıklandı, Li Yifeng, Di Lieba en büyük kazanan oldu, netizenler: Sıkıntılı Yang Zi!
önceki
2018 Dünya Kupası başlıyor, güvenli bir izleme rehberine ihtiyacınız var
Sonraki
Model oyun kontrolü: aristokrat mizaç, altın rengi ters X'e
Daoxian: İyi sebzeler yetiştirmek için iyi barakalar
15 günde 940 milyon gişe hasılatı elde eden 63 yaşındaki süperstar hala kral!
"Mario" ya da animasyon filmi başlatacak Minion Man Company prodüksiyona liderlik edecek
WeChat, hesabınızı iptal ederek size yeniden başlama şansı verebilir
Onun yüzünden 20 yıl boyunca duygularının kapısını kapattı!
CES Fashion Taobao Crowdfunding'in başlangıcı, Detu Twin VR panoramik kamera minimum 899 yuan sınırlı
Kirli masaüstü elektrikli süpürgeye veda edin, savaşı 30 saniyede çözün ve mükemmel hayatınızı geri kazanın Smart Planet
Yeni ve eski tam ekran büyük PK: Tam ekranı, vivo NEX veya iPhone X'i kim temsil edecek
Model oyun kontrolü: adamın romantizmi! Zaku Siyah Üçlü Yıldız
Lingling: Gönüllüler "Lei Feng ruhunu" sevgiyle yorumlarlar
Mac'te bir uygulamanın yükleme klasörü nasıl hızlı bir şekilde bulunur? Hafif bir işin var 152
To Top