Penterjemah |. Liu Tao
Pengulas|. Sun Shujuan
Kecerdasan buatan (AI) dan pembelajaran mesin (ML) adalah teman harian kami macam mana hidup nanti. Setiap kali kita mendengar perkataan pembelajaran mesin, perkara pertama yang terlintas di fikiran ialah Python. Oleh kerana Python telah lama menjadi suara pembelajaran mesin, ia telah memainkan peranan penting dalam membantu melaksanakan aspek teknikal pembelajaran mesin.
Python mungkin bahasa pembelajaran mesin yang paling indah, digunakan oleh 48.24% pembangun. Oleh kerana Python mempunyai pakej peringkat rendah yang berkuasa dan mudah serta antara muka API peringkat tinggi, ia mempunyai kelebihan yang tiada tandingan dalam semua bidang pengkomputeran saintifik, tetapi ia juga mempunyai beberapa kelemahan apabila digunakan untuk tugas tertentu. Oleh itu, keperluan untuk bahasa alternatif kepada Python menjadi semakin biasa.
Pada masa ini, banyak bahasa baru muncul setanding atau lebih baik daripada Python dari segi prestasi. Jadi ia bukan lagi satu-satunya pilihan untuk pembelajaran mesin. Scala, Julia, MQL5 dan bahasa lain yang bukan superset Python boleh digunakan untuk membangunkan dan menyediakan aplikasi pembelajaran mesin. Jadi pembelajaran mesin tidak lagi terhad kepada Python.
Artikel ini akan meneroka kemunculan bahasa pembelajaran mesin baharu, cara bahasa tersebut menghakis bahagian pasaran Python dan cara pembelajaran mesin akan berubah pada masa hadapan.
Mari kita bincangkan beberapa keburukan Python , kelemahan ini sering dihadapi oleh pembangun dan saintis data.
Pembangunan python adalah pantas, tetapi pengiraan sangat perlahan. Ia menggunakan penterjemah dan bukannya penyusun. Ia lebih perlahan daripada bahasa pengaturcaraan sains data lain kerana melaksanakan kod berjujukan. Python lebih perlahan daripada C kerana C mempunyai banyak alat dan perpustakaan yang berguna. Melainkan anda menguasai kod vektor, anda akan melihat betapa perlahannya kod itu.
Cython ialah superset Python Ia menyusun kod sumber Python ke dalam kod bahasa C Perkara yang paling penting ialah menyediakan kelajuan pengkomputeran tahap bahasa C tanpa sumber pengkomputeran tambahan. Ramai pengaturcara menggunakan Cython untuk menulis kod Python yang berjalan sepantas bahasa C, tetapi lebih ringkas dan mudah dibaca.
Python mempunyai kelemahan besar dalam reka bentuknya, yang disebabkan oleh penaipan dinamiknya. Secara amnya, pembolehubah yang ditaip secara dinamik dalam bahasa pengaturcaraan tidak memerlukan pengisytiharan khas. Python menggunakan menaip itik, yang boleh mengelirukan. Dalam menaip itik, kelas atau sifat objek adalah kurang penting daripada fungsinya. Menaip itik tidak memerlukan pemeriksaan jenis. Anda juga boleh mengesahkan proses atau sifat.
Python mengambil banyak memori kerana strukturnya yang besar. Selain itu, jenis data Python adalah fleksibel dari segi penggunaan memori. Ia tidak sesuai untuk tugas intensif memori. Jenis datanya yang fleksibel juga mengakibatkan penggunaan memori. Oleh itu, pengurusan memori dalam Python menjadi mencabar apabila anda mencipta sistem Python yang besar dan lama.
Berbanding dengan bahasa lain, Python kurang cekap benang. Walaupun Python berbilang benang, hanya satu utas boleh dilaksanakan pada satu masa. Oleh itu, Python berbilang benang menyediakan kecekapan pemprosesan satu benang. Python mempunyai kunci penterjemah global (GIL) yang hanya membenarkan satu utas untuk menggunakannya pada satu masa. Berbilang benang boleh dijalankan serentak hanya jika Python menggunakan perpustakaan asli. Di samping itu, Jython, superset Python, boleh melaksanakan multi-threading, manakala Python tidak boleh.
Python memang hebat. Tetapi ia tidak boleh menjadi The Flash dan The Incredible Hulk pada masa yang sama! Seseorang mungkin mahu The Flash, seseorang mungkin mahu Hulk. Keperluan pengguna adalah pelbagai. Begitu juga, Python tidak direka untuk aplikasi matematik dan sains data. Ia memerlukan perpustakaan pihak ketiga seperti NumPy atau Tensorflow, khusus untuk algoritma pembelajaran mendalam. Oleh itu, bahasa pengaturcaraan khusus data mempunyai kelebihan berbanding Python.
Sebagai contoh, dalam dunia perniagaan, pembelajaran mesin memerlukan kelajuan dan kebolehskalaan untuk mengurangkan masa pelaksanaan. Anda tidak boleh membuat pelanggan menunggu terlalu lama. Jadi anda memerlukan bahasa ML yang lebih pantas (Bahasa Pengaturcaraan Fungsian Tujuan Umum) untuk melaksanakannya. Lagi cepat lagi bagus.
Kini, Python adalah pantas, tetapi apa lagi yang lebih pantas daripada Python? Ya, itu Julia, atau Scala!
Dalam kes ini, saintis data lebih suka menggunakan bahasa pengaturcaraan yang berbeza daripada Python.
dalam pelbagai persekitaran aplikasi , terdapat beberapa alternatif Python yang berprestasi baik atau lebih baik daripada Python. Berikut ialah beberapa alternatif kepada Python untuk sains data:
Julia ialah bahasa pengaturcaraan dinamik peringkat tinggi baharu yang inovatif, pantas dan selesa. Ia adalah bahasa tujuan umum yang mampu menulis pelbagai aplikasi. Perlu dinyatakan bahawa sebahagian besar ekosistem dan fungsi pakejnya ditujukan kepada pengiraan berangka lanjutan, menjadikannya ideal untuk pembelajaran mesin.
Julia dibina pada berbilang bahasa, termasuk C dan bahasa kelas dinamik peringkat tinggi seperti Python, R dan MATLAB. Julia menggunakan jenis pilihan, sintaks dan ciri bahasa ini kerana matlamat Julia adalah untuk menggabungkan kekuatan mereka dan menghapuskan kelemahan mereka.
Pencipta Julia ingin membangunkan bahasa yang boleh mengendalikan pengkomputeran saintifik, pembelajaran mesin, perlombongan data, algebra linear berskala besar sepantas C , teragih dan selari pengkomputeran. Walau bagaimanapun, mereka akhirnya membangunkan bahasa yang lebih pantas. Walaupun Python semakin pantas, Julia masih mengatasinya.
Julia memudahkan banyak tatatanda matematik yang digunakan dalam pembelajaran mesin. Ia menyediakan pakej pengaturcaraan GPU yang pelbagai seperti ArrayFire, yang membolehkan GPU melaksanakan kod tujuan umum. Setiap pakej mempunyai model pengaturcaraan tersendiri, contohnya, NVIDIA mempunyai CUDA Jl, AMD mempunyai AMDGPU dan oneAPI.
Jurutera pembelajaran mesin boleh menggunakan Julia dalam kelompok besar dengan pantas, memanfaatkan alatan berkuasanya seperti MLBase.jl, Flux.jl (pembelajaran mendalam), MLJ.j (pembelajaran mesin am) dan Knet.jl ( pembelajaran mendalam). Flux ialah perpustakaan pembelajaran mesin dalam berkelajuan tinggi yang didatangkan pramuat dengan alatan tambahan untuk memaksimumkan keupayaan Julia. Begitu juga, ScikitLearn.jl, TensorFlow.jl dan MXNet.jl untuk aplikasi ML disertakan.
Julia pandai menyelesaikan masalah pengiraan yang kompleks. Oleh itu, banyak universiti terkenal, termasuk Universiti Stanford dan Universiti Metropolitan Tokyo, menawarkan kursus Julia. Prestasinya juga sangat mantap berbanding Python.
Ramai eksekutif industri seperti Logan Kilpatrick percaya bahawa Julia ialah masa depan pembelajaran mesin dan sains data.
Ciri utama Julia:
Ciri Utama Scala
Scala mempunyai beberapa ciri teras yang membolehkan pengiraan sains data yang cekap:Scala lebih pantas daripada Python 10 kali ganda ;
Mempunyai mekanisme inferens jenis lanjutan; Kelas kes dan padanan corak; -fungsi pesanan;
Gunakan objek Singleton dan bukannya pembolehubah statik; yang dilaksanakan pada JVM.
Dokumentasi bahasa MQL5 menyenaraikan fungsi, operasi, perkataan terpelihara, dsb. Selain itu, ia menyediakan jenis data seperti integer, Boolean, literal, rentetan, tarikh dan masa. Ia mempunyai struktur dan kelas yang kompleks. Selain itu, dokumentasi termasuk definisi kelas perpustakaan standard untuk strategi perdagangan, panel kawalan, kesan visual tersuai, akses fail, dsb.
Selain itu, MQL5 mempunyai lebih daripada 1,500 perpustakaan kod sumber untuk pembangunan aplikasi baharu. Anda boleh menggunakan perpustakaan ALGLIB yang mengandungi sejumlah besar fungsi analisis berangka. Begitu juga, terdapat perpustakaan TimeSeries untuk memproses siri masa dan perpustakaan Fuzzy untuk membangunkan model fuzzy dan pelbagai perpustakaan lain.
MQL5 ialah bahasa pengaturcaraan berkuasa yang boleh membantu anda membina sistem masa nyata dan memberikan bantuan visual membuat keputusan. MQL5 menyokong penghitungan, struktur, kelas dan peristiwa. Dengan menambah bilangan fungsi terbenam utama, program MQL5 boleh berkomunikasi dengan DLL.
MQL5 mempunyai sintaks yang serupa dengan C++, menjadikannya mudah untuk menukar atur cara yang ditulis dalam bahasa pengaturcaraan berbeza ke dalam program MQL5. Oleh itu, anda boleh mencapai kecekapan yang sama seperti C++ apabila menggunakan analisis data, kecerdasan buatan atau alat kewangan sebagai robot dagangan.
Ciri utama MQL5
Sesetengah fungsi teras MQL5 membolehkan pengiraan sains data yang cekap:
5.
RingkasanPembelajaran mesin ialah proses yang berterusan dan berkembang. Lama kelamaan, ia muncul dengan bahasa Standardized ML (SML) dan menjadi popular dalam Python. Hari ini, terdapat pelbagai perkembangan dalam bahasa pembelajaran mesin dengan keperluan yang berbeza.
Ringkasnya, Python ialah bahasa pembelajaran mesin yang sangat baik. Tetapi Python bukanlah bahasa khusus sains data, dan terdapat lebih banyak bahasa pengaturcaraan moden yang boleh melaksanakan tugas tertentu dengan lebih cekap.
Liu Tao, editor komuniti 51CTO, adalah orang yang bertanggungjawab dalam pengesanan dan kawalan pelancaran sistem untuk perusahaan pusat yang besar adalah untuk menyemak dengan ketat imbasan yang tidak dijawab, ujian penembusan, pemeriksaan garis dasar dan tugas pengesanan lain untuk penerimaan pelancaran sistem mempunyai pengalaman bertahun-tahun dalam pengurusan keselamatan rangkaian Pengalaman dalam pembangunan dan pertahanan PHP dan Web, pengalaman penggunaan dan pengurusan Linux, dan pengalaman yang kaya dalam pengauditan kod, ujian keselamatan rangkaian dan perlombongan ancaman. Mahir dalam pengauditan SQL, pengesanan automatik SQLMAP, pengauditan XSS, pengauditan Metasploit, pengauditan CSRF, pengauditan webshell, pengauditan maltego dan teknologi lain di bawah Kali.
Atas ialah kandungan terperinci Mengapa tergesa-gesa mencari pengganti Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!