Machine learning (ML) üçün 5 proqramlaşdırma dili
  • Əli Kazımov
  • 28 İyul 2019

Machine learning (ML) üçün 5 proqramlaşdırma dili

Xüsusilə Machine Learning(ML) üçün yaxşı işləyən bir neçə proqramlaşdırma dili mövcuddur və onların hər birinin unikal üstünlükləri və mənfi cəhətləri var. Stanford Universitetinin kompüter alimi Endryu Ng (Andrew Ng) tərəfindən ML-ə "Kompüterlərin açıq proqramlaşdırma olmadan hərəkət etməyə məcbur edilməsi haqqında elm" kimi tərif verilmişdir. ML-in ilk 1950-ci illərdə yaradılmasına baxmayaraq, 21-ci əsrin əvvəllərinə qədər məhdud inkişaf yaşayıb. O zamandan bəri, ML bir sıra yeniliklərin (innovasiyaların), ilk növbədə süni intellektin hərəkətverici qüvvəsi olmuşdur.

ML nəzarət edilən öyrənmə (supervised), nəzarətsiz öyrənmə (unsupervised), yarı nəzarət edilən  (semi-supervised) və gücləndirilmiş öyrənmə (reinforcement learning) daxil olmaqla bir neçə kateqoriyaya bölünə bilər. Nəzarət olunan öyrənmə alınanlar (output) ilə verilənlərin (input) münasibətlərini aşkar etmək üçün işarələnmiş verilənlərə (labeled input) əsaslansa da, nəzarətsiz öyrənmə işarələnməmiş verilənlər (unlabeled input) arasında qanunauyğunluqları aşkar edir. Yarı-nəzarət edilən öyrənmə hər iki metodun birləşməsindən istifadə edir, amma gücləndirilmiş öyrənmə isə xətaların qarşısını alaraq arzuolunan nəticələri olan prosesləri təkrarlamaq və ya inkişaf etdirmək üçün proqramları hərəkətə keçirir.

Bir neçə müxtəlif sahə artıq ML-dən faydalanır və hal-hazırda inkişaf etmiş dünyada ML məhsulları və xidmətləri üçün artan tələbat var. İstənilən növ biznes sahəsi ML-in proqnoz vermə bacarıqlarından istifadə edir və məlumata söykənən qərarlar qəbul edə bilmək üçün ML üsullarını inkişaf etdirməyə çalışır. Şirkətlərin bu texnologiyaya yanaşmaq üçün bu sahəyə aid proqramlaşdırma dilləri də daxil olmaq şərtilə bir çox müxtəlif yolları vardır.

Python

1990-cı illərin əvvəllərində Python Foundation tərəfindən hazırlanmış Python, data science və daxili veb inkişafı (back-end web development) daxil olmaqla bir çox müxtəlif tətbiqlərə malik olan yüksək səviyyəli proqramlaşdırma dilidir. Güclü bir data analiz aləti olaraq, Python geniş şəkildə big data texnologiyasında istifadə olunur. ML mütəxəssislərindən ibarət olan güclü bir icma böyüyən süni intellekt sektorunda Python-un statusunu yüksəltməyə yardımçı oldu.

Bu dinamik icma sayəsində Python-da ML üçün bir çox hazır kitabxana artıq mövcuddur. Və Python platforma aqnostiki sayılır, bu o deməkdir ki, istənilən bir əməliyyat sisteminə tətbiq oluna bilər. Həm də Python açıq qaynaqlı proqramdır, bu da geniş ictimaiyyət üçün əlçatan olmasına səbəb olur.

Python ML mühitində problemlər yarada biləcək dinamik tipli dildir. Birincisi, proqram böyüyüb mürəkkəbləşdikcə xətaları izləmək çətin ola bilər. Bu baha başa gələcək çatışmazlıqlar yarada və həmçinin məhsuldarlığı aşağı sala bilər.

R

Bu porqamlaşdırma dili də həmçinin 1990-cı illərin əvvəllərində yaradılmışdır. R dili GNU layihəsinin bir hissəsidir. Bu dil data analizində geniş istifadə olunur və adətən reqressiya, təsnifatlaşdırma (classification) və qərar ağacı (decision tree formation) kimi ümumi ML tapşırıqlarına tətbiq edilir. Bu statistikaçılar arasında çox məşhur proqramlaşdırma dili kimi istifadə olunur.

R da açıq qaynaqlıdır. Bu prqoqramlaşdırma dili quraşdırılması, konfiqurasiya edilməsi, istifadə edilməsi nisbətən asan olması ilə tanınır. R aqnostik platformadır və digər proqramlaşdırma dilləri ilə yaxşı inteqrasiya olunur. Məlumatların təhlili (data analizi) ilə yanaşı, R xüsusilə məlumatların vizuallaşdırılması üçün geniş imkanlara malikdir.

R digər alətlərlə nisbətən asanlıqla inteqrasiya olunmasına baxmayaraq, onun qeyri-ənənəvi məlumat strukturları və indeksləmə (1 əvəzinə 0-dan başlayan) kimi öyrənilməsini bir qədər dolaşıq hala gətirə biləcək bəzi unikal qəribəlikləri var. O, həmçinin Python-dan daha az populyardır və buna görə də ML proqramları üçün mövcud olan bir çox sənədlər R-da yoxdur.

JavaScript

1990-cı illərin ortalarında veb-inkişaf (web development) praktikasını yaxşılaşdırmaq üçün bir vasitə kimi nəzərdə tutulmuş JavaScript bu sahədə ən geniş istifadə olunan dillərdən birinə çevrilmişdir. ML-də tətbiqləri məhdud olmasına baxmayaraq, Google-dan Tensorfloy.js kimi yüksək səviyyəli layihələr JavaScript-ə əsaslanır.

JavaScript-in ML sahəsində ən perspektivli xüsusiyyətlərindən biri front-end və veb developer-lər üçün olduqca çox imkanlar açmasıdır.

Bununla belə, hazırda JavaScript ilə ML ekosistemi hələ də bir qədər inkişaf etməmişdir və buna görə də bu cür inkişafı dəstəkləmək hazırda limitlidir. JavaScript-də həmçinin R və Python kimi dillərdə qurulan, data science üçün olan bir sıra funksional imkanlar çatışmır.

C++

Müasir ümumi proqramlaşdırma dilləri arasında C++, yəqin ki, ən qoca olandır. 1980-ci illərin əvvəllərində Bell Labs tərəfindən hazırlanmış C++, C dilini genişləndirmək istəyən doktorluq tədqiqatlarından ortaya çıxdı. Həm aşağı, həm də yüksək səviyyədə proqramlaşdırma qabiliyyəti sayəsində C++ ML kontekstlərində digər proqramlaşdırma dillərinə nisbətən daha yüksək səviyyədə nəzarət və səmərəlilik təmin edir.

C++ xüsusilə ML vacib bir hissəsi olan resurs intensiv tətbiqlər (resource intensive apps) üçün yaxşı işləyir. Və statik tipli dil kimi, nisbətən yüksək sürətlə vəzifələri yerinə yetirə bilər.

Lakin C++ yeni tətbiqlər yaratmaq üçün komleks kodlar tələb edir ki, bu çox vaxt aparır və saxlanılmasında böyük çətinliklər baş verir. Bu, yeni başlayanlar üçün xəta etməyi çox asanlaşdıra bilər.

Java

1990-cı ilin ortalarında Sun Microsystems tərəfindən hazırlanmış Java əslində C++`a bənzəyən yüksək səviyyəli və obyekt yönümlü bir proqramlaşdırma dili olmaq üçün qurulmuşdur. Java son dərəcə populyar olmaqla yanaşı, ML icması üçün çox faydalı olan geniş çeşidli alqoritmlər yerinə yetirə bilir.

Əsasən bytecode və sandboxes-dan istifadə etdiyinə görə Java ən təhlükəsiz proqramlaşdırma dillərindən biri hesab olunur. Java C++-ın gücündən təhlükəsizlik problemlərini və ümumi mürəkkəbliyini aradan qaldıraraq istifadə edir.

Lakin Java-nın C++ üzərindəki bütün təkmilləşdirmələrinə baxmayaraq, bir çox digər proqramlaşdırma dilləri ilə müqayisədə daha az nüfuza malikdir. Bundan əlavə, 2019-cu ildən etibarən Java baha başa gələ biləcək müəyyən biznes tətbiqləri üçün kommersiya lisenziyasını tətbiq etdi.

Nəticə

ML üçün istifadə olunan bütün proqramlaşdırma dilləri arasında Python ən populyar olaraq qalır. Lakin, JavaScript kimi dillər yəqin ki, zamanla tələblərin dəyişməsilə populyarlıqlarını atıra bilər. İnsanların maşınları proqramlaşdırması heç vaxt son tapmasa də (ən azından yaxın gələcəkdə), ML üçün proqramlaşdırma gələcək illərdə kodlara daha az diqqət yetirəcəkdir. Çünki maşınlar, robotlar, avadanlıqlar özlərini kodlamağı öyrənirlər.


Paylaş: