In: Genel


Julia programlama dili, makine öğrenimi uygulamaları oluşturmada çok popüler hale geldiğinden, avantajlarını açıklıyor ve bunlardan nasıl yararlanılacağını öneriyoruz.

Python ve ekosistemi, makine öğrenimi dünyasına hükmetti – bu yadsınamaz bir gerçektir. Ve bir sebepten dolayı oldu. Kullanım kolaylığı ve basit sözdizimi, şüphesiz hala artan popülerliğe katkıda bulundu. Kod insanlar tarafından anlaşılabilir ve geliştiriciler, dilin teknik nüanslarına odaklanmak yerine bir ML problemini çözmeye odaklanabilirler. Ancak kesinlikle, teknoloji başarısının en önemli kaynağı, topluluk çabalarından ve faydalı kitaplıkların mevcudiyetinden gelir.

Bu bağlamda Python ortamı gerçekten parlıyor. Akıllı uygulamamızın veya bilimsel çalışmamızın teorik ve pratik yönleri de dahil olmak üzere dil, kütüphaneler ve faydalı örneklerle ilgili sorunların büyük çoğunluğu için olası bir çözümü beş saniyede google’da bulabiliriz. Makine öğrenimi ile ilgili öğreticilerin ve çevrimiçi kursların çoğu Python ekosistemine yerleştirilmiştir. Eğer bir ML veya AI algoritması topluluğun dikkatini çekmeye değerse, birisinin bunu bir Python açık kaynak kitaplığı olarak uygulama olasılığı çok yüksektir.

Python ayrıca “2020’nin Programlama Dili” ödülünün sahibidir. Ödül, TIOBE programlama topluluğu endeksine (programlama dillerinin popülaritesinin bir ölçüsü) göre bir yıl içinde en yüksek reyting artışına sahip programlama diline verilir. Python dili popülaritesinin yükselişinin, makine öğrenimi popülaritesinin yükselişi ile güçlü bir şekilde ilişkili olduğunu belirtmekte fayda var.

Bu kadar harika bir teknolojiyle donatılmışken, neden hala daha iyi bir şey aramak için çok zaman harcamaya hevesliyiz? Sıkılmak ya da birçok insanın yılanları sevmemesi gibi nedenler dışında (adı “Monty Python’un Uçan Sirki”nden gelmesine rağmen, piton hala yılan olarak kalır). Cevabın oldukça basit olduğunu düşünüyoruz: çünkü daha iyisini yapabiliriz.

Python’dan Julia’ya

İyileştirme potansiyeli olduğunu anlamak için Python’un yaratıldığı doksanların başlarına geri dönebiliriz. Yapay zeka popülerliğinin 3. dalgası ve derin öğrenmeye olan ilginin katlanarak artmasından önceydi. Modern makine öğrenimi yaklaşımlarına uymayan, değiştirilmesi zor bazı tasarım kararları kaçınılmazdı. Python eskidir, bu bir gerçek, büyük bir avantaj ama aynı zamanda bir dezavantaj. Python’un doğduğu zamanlardan beri birçok harika ve çığır açan şey oldu.

Python, ML dünyasına hakim olurken, daha fazlasını bekleyen herkes için harika bir alternatif ortaya çıktı. Julia Dili 2009 yılında MIT’den dört kişilik bir ekip tarafından oluşturuldu ve 2012’de piyasaya sürüldü. Yazarlar Python ve diğer dillerdeki eksiklikleri gidermek istediler. Ayrıca, bilim insanı oldukları için, MATLAB tarafından işgal edilen, bu uygulama için çok iyi olan ancak özgür olmayan ve açık kaynak olmayan bir niş olan bilimsel ve sayısal hesaplamaya odaklandılar. Julia programlama dili, hem bilim adamlarını hem de yazılım geliştiricileri memnun etmek için C’nin hızını Python’un kullanım kolaylığıyla birleştirir. Ve hepsiyle sorunsuz bir şekilde bütünleşir.

İlerleyen bölümlerde size Julia Dilinin nasıl olabileceğini göstereceğiz. her Makine Öğrenimi sorununa uyarlanmıştır. Makine öğrenimindeki yararları bağlamında gösterilen dilin temel özelliklerini ve diğer dillerle karşılaştırmayı ele alacağız. Julia’da bulunan makine öğrenimi araçlarına ve çerçevelerine kısa bir genel bakış da dahildir. Veri hazırlama, sonuçların görselleştirilmesi ve üretim hatlarının oluşturulması için araçlar da kapsanmaktadır. Julia dilinin güçlü metaprogramlama özelliklerini kullanarak Python, MATLAB veya C/C++ gibi diğer dillerde yazılmış ML kitaplıklarını ne kadar kolay kullanabileceğinizi göreceksiniz. Son bölüm, hem hızlı prototipleme hem de bulut tabanlı üretim işlem hatları oluşturmak için Julia’nın pratikte nasıl kullanılacağını sunar.

Julia Dili

Birisi Python’un birinci sınıf bir BMW sedanı (yalnızca benzin, sanırım, nihai hibrit) ise Julia’nın bir amiral gemisi Tesla olduğunu söyledi. BMW, ihtiyacınız olan her şeye sahip, ancak giderek daha fazla insan Tesla’yı satın alıyor. Buna bir şekilde katılabilirim ve Julia’yı bu kadar özel yapan ve LISP, Scala veya Kotlin gibi harika oyuncularla TIOBE sıralamasında bir yer için rekabet etmesine izin veren dilin temel özelliklerini açıklamama izin verin (Mart 2021’de 31. sıra). ).

Olağandışı JIT/AOT uyumlu

Julia, çok basit ve dinamik sözdizimini makine koduna çevirmek için perde arkasında LLVM derleyici çerçevesini kullanır. Bu iki ana adımda gerçekleşir. İlk adım, son kod yürütmeden önce ön derlemedir ve bu şaşırtıcı olabilir, aslında kodu çalıştırır ve bazı ön derleme etkilerini önbellekte depolar. Çalışma zamanını daha hızlı ancak daha yavaş oluşturmayı sağlar – genellikle bu kabul edilebilir bir maliyettir.

İkinci adım, çalışma zamanında gerçekleşir. Derleyici, çalışma zamanı türlerine ve statik kod analizine dayalı olarak yürütmeden hemen önce kod üretir. Örneğin Java’da geleneksel tam zamanında derleyiciler bu şekilde çalışmaz. “Saf” JIT’de derleyici, derlenecek kodun önemli sayıda yürütülmesinden sonraya kadar çağrılmaz. Bu bağlamda Julia’nın C veya C++ ile hemen hemen aynı şekilde çalıştığını söyleyebiliriz. Bu nedenle bazı insanlar Julia derleyicisine tam zamanlı bir derleyici derler ve bu nedenle Julia birçok durumda Python gibi dinamik bir dil olarak kalırken C kadar hızlı çalışabilir. Ve bu sadece harika.

Okuma-değerlendirme-baskı döngüsü

Okuma-değerlendirme-yazdırma döngüsü (REPL), birçok modern programlama dilinde bulunabilen etkileşimli bir komut satırıdır. Ancak Julia örneğinde, REPL tüm geliştirme sürecinin gerçek kalbi olarak kullanılabilir. Sanal ortamları yönetmenize olanak tanır, paket yöneticisi, belgeler ve sistem kabuğu etkileşimleri için özel bir sözdizimi sunar, kodunuzun herhangi bir bölümünü, dili, kitaplıkları ve daha fazlasını test etmenize olanak tanır.

Dostu sözdizimi

Sözdizimi MATLAB ve Python’a benzer, ancak LISP gibi diğer dillerin en iyisini de alır. Bilim adamları, Unicode karakterlerinin doğrudan kaynak kodunda kullanılabileceğini takdir edeceklerdir, örneğin şu denklem: f(X,u,σᵀ∇u,p,t) = -λ * sum(σᵀ∇u.^2) 
tamamen geçerli bir Julia kodudur. Makine öğrenimi açısından ne kadar havalı olabileceğini fark edebilirsiniz. Bu sembolleri makine öğrenimi ile ilgili kitap ve makalelerde kullanıyoruz, neden kaynak kodunda kullanmayalım?

İsteğe bağlı yazma

Julia’yı dinamik olarak yazılmış olarak düşünebiliriz, ancak tür açıklama sözdizimini kullanarak değişkenleri statik olarak yazılmış olarak ele alabilir ve derleyicinin türü otomatik olarak çıkaramadığı durumlarda performansı iyileştirebiliriz. Bu yaklaşıma isteğe bağlı yazma denir ve birçok programlama dilinde bulunabilir. Ancak Julia’da, düzgün kullanılırsa, bu yaklaşım Julia derleyicisinin çalışma şekline çok iyi uyduğu için büyük bir performans artışı sağlayabilir.

Bir ‘Yapıştırıcı’ Dili

Julia, tutkal kodu olmadan C, C++ ve Fortran ile yazılmış harici kitaplıklarla doğrudan arayüz oluşturabilir. Kullanarak Python koduyla arayüz PyCall kütüphane o kadar iyi çalışıyor ki Julia projesinde harika makine öğrenimi Python ekosisteminin neredeyse tüm faydalarını sanki yerel kodmuş gibi sorunsuz bir şekilde kullanabilirsiniz! Örneğin şunları yazabilirsiniz:
np = pyimport(numpy) 
ve Julia sözdizimini kullanarak Python ile yaptığınız gibi numpy kullanın. Ve her proje için ayrı bir miniconda Python yorumlayıcısı yapılandırabilir ve Docker veya benzeri araçlarda olduğu gibi her şeyi tek bir komutla kurabilirsiniz. Java, MATLAB veya R gibi diğer dillere de bağlamalar vardır.

Julia metaprogramlamayı destekler

Julia’nın en büyük avantajlarından biri, Lisp’ten ilham alan metaprogramlamadır. Ünlü bir cümleyle açıklanan homoiconicity adı verilen çok güçlü bir özellik: “kod veridir ve veri koddur” Julia programlarının başka Julia programları oluşturmasına ve hatta kendi kodlarını değiştirmesine izin verir. Metaprogramlamaya bu yaklaşım bize çok fazla esneklik sağlıyor ve geliştiriciler Julia’da bu şekilde sihir yapıyor.

fonksiyonel stil

Julia nesne yönelimli bir dil değildir. gibi bir şey model.fit() işlev çağrısı mümkündür (Julia çok esnektir) ancak Julia’da yaygın değildir. Onun yerine yazıyoruz fit(model)ve sözdizimi ile ilgili değil, programımızdaki tüm kodların organizasyonu ile ilgilidir (modüller, çoklu gönderiler, birinci sınıf vatandaş olarak işlevler ve daha fazlası).

Paralelleştirme ve dağıtılmış bilgi işlem

ML düşünülerek tasarlanan Julia, bilimsel bilgi işlem alanına ve paralel, dağıtılmış yoğun hesaplama görevleri gibi ihtiyaçlarına odaklanır. Ve sözdizimi yerel veya uzak paralellik için çok kolaydır.

Dezavantajları

Derleyici o kadar yavaş olmasaydı iyi olabilirdi, ama daha iyi olmaya devam ediyor. Bazen REPL daha hızlı olabilir, ancak yine daha iyi hale gelir ve ana bilgisayar işletim sistemine bağlıdır.

Çözüm

Bu bölümü bitirerek, bir kalite testi birkaç popüler dil ile Julia’yı karşılaştırıyor. Tüm dil kriterleri çok ciddiye alınmamalıdır, ancak yine de durum hakkında yaklaşık bir fikir verirler.

Julia giderek daha popüler hale geliyor. 2012 lansmanından bu yana Julia, Şubat 2021 itibarıyla bir yılda %87 artışla 25.000.000’den fazla indirildi.

Sonraki makalede, Makine Öğrenimi modelleri oluştururken Julia’yı kullanmaya odaklanacağız. Ayrıca bizim kontrol edebilirsiniz dile başlama rehberi.

Bir cevap yazın

Ready to Grow Your Business?

We Serve our Clients’ Best Interests with the Best Marketing Solutions. Find out More

How Can We Help You?

Need to bounce off ideas for an upcoming project or digital campaign? Looking to transform your business with the implementation of full potential digital marketing?

For any career inquiries, please visit our careers page here.
[contact-form-7 404 "Bulunamadı"]