یادگیری ماشین

من یک مهندس فناوری اطلاعات هستم که علاقه زیادی به دنیای فناوری اطلاعات، برنامه نویسی، امنیت و شبکه دارم.

زبان برنامه نویسی پایتون ابزاری برای یادگیری ماشین و هوش مصنوعی

۵۱۲ بازديد
توسعه دهندگان واقعا از زبان برنامه نویسی Python استفاده می کنند؟

با توجه به نظرسنجی توسعه دهندگان توسط JetBrains (که همچنین Kotlin را معرفی کرد، زبان پیشرفته برای توسعه اندروید)، 49 درصد از آنها می گویند از تحلیل Python برای تحلیل داده ها استفاده می کنند، پیش از توسعه وب (46 درصد)، یادگیری ماشین (42 درصد ) و مدیریت سیستم (37 درصد).

تعداد قابل توجهی از توسعه دهندگان نیز از زبان برای تست نرم افزار (25 درصد)، نمونه اولیه نرم افزار (22 درصد) و "اهداف آموزشی" (20 درصد) استفاده می کنند. هرچند کمتر آن را برای گرافیک، توسعه جاسازی شده یا بازی / توسعه تلفن همراه انتخاب کردیم.


این داده ها فقط ایده کلی را تقویت می کند که پایتون بلای فضای تجزیه و تحلیل داده ها است. اگرچه زبانهای بسیار تخصصی مانند R جایگاه خود را در میان دانشگاهیان و تحلیلگران محققان بیشتر محسوب می شوند، اما واضح است که سهولت استفاده نسبی پایتون (به جز در همه جا آن)، آن را در بین کسانی که نیاز به اطلاعات را برای برخی از جنبه ها دارند، بسیار دوست دارند از مشاغل آنها.

این روند نیز برای مدت زمان زیادی ادامه دارد: در فوریه 2018، نظرسنجی KDnuggets نشان داد که کاهش مصرف R به نفع Python در بین جوانانی که از هر دو زبان استفاده می کنند، کاهش می یابد. در طول همان دوره، یک نظرسنجی جداگانه از Burtch Works نشان داد که استفاده از زبان در میان متخصصان تجزیه و تحلیل، از 53 درصد به 69 درصد در طی مدت مشابه دو سال افزایش یافته است، در حالی که پایگاه کاربری R تقریبا یک سوم کاهش یافته است.

اما شما همچنین نمی توانید از استفاده پایتون در یادگیری ماشین نادیده بگیرید، که به طور گسترده ای به عنوان بخش مهمی از تقریبا هر استراتژی فناوری آینده هر شرکتی مورد توجه است. اگر توسعه دهندگان از پایتون برای ساخت ابزار یادگیری ماشین استفاده می کنند، به این معنی است که زبان یک قفل بزرگ در ML / A.I دارد. اکوسیستم به نظر می رسد که چگونه نرم افزار آینده توسعه می یابد.


اگر پایتون را نمی دانید، این یک زبان حیاتی برای یادگیری است. خوشبختانه انواع وب سایت ها، کتاب ها و سایر منابع وجود دارد که می تواند شما را سریع کند.

کدام نسخه از پایتون را استفاده می کنید؟
داده های JetBrains نشان می دهد که اکثریت قابل توجه توسعه دهندگان (87 درصد) در پایتون 3 هستند، در حالی که 13 درصد هنوز در پایتون 2 هستند. این رشد بسیار سریع برای پایتون 3 است که سه چهارم بازار در سال گذشته داشت.

زبان به نسخه 3.7.3 است و تکرارهای جدید ویژگی های مفیدی را برای توسعه دهندگان اضافه می کند. به عنوان مثال، 3.7.0 شامل توابع زمان جدید، حالت UTF-8 مجازی، نقطه بوق ساخته شده، کلاس داده ها و حالت زمان اجرا است. به عبارت دیگر، توسعه دهندگان برای ادامه کار با نسخه قدیمی تر سخت است که در نسخه های بعدی به کار خود ادامه دهد تا زندگی آنها را ساده تر کند، مگر اینکه کار آنها مستلزم مبارزه با کد های میراثی باشند که قابل ارتقا نیست.

بسته به آنچه میخواهید انجام دهید، ممکن است بخواهید از پایتون 2 استفاده کنید. از این صفحه برای مقایسه 2.x و 3.x استفاده کنید، که شاید فرآیند تصمیمگیری شما را سادهتر کند.

زبان برنامه نویسی R یا پایتون؟ کدامیک برای تحلیل داده بهتر هستند؟

۵۳۸ بازديد
بحث در مورد Python در مقابل R در جامعه دانشمند اطلاعات، در اینجا نحوه دو زبان برنامه نویسی مطابقت دارد.

پایتون در مقابل R یک بحث مشترک در بین دانشمندان داده است، زیرا هر دو زبان برای کار داده ها و در میان مهارت های اغلب ذکر شده در پست های شغلی برای موقعیت های داده های علمی مفید هستند. هر زبان مزایا و معایب مختلفی برای کار علمی داده است و باید بسته به کار شما انجام شود.

Norm Matloff، استاد علوم رایانه ای در دانشگاه کالیفرنیا دیویس، برای کمک به دانشمندان داده ها، یک زبان گیتفا را برای هدف قرار دادن برخی از نکات در این بحث نوشت.

Matloff R و Python را در 10 دامنه زیر مقایسه کرد تا تعیین کنند کدام زبان برنامه نویسی بهتر انتخاب شده است:

ظرافت
برنده: دوره آموزشی پایتون
در حالی که این ذهنیت است، پتون در هنگام برنامه نویسی به طور چشمگیری استفاده از پرانتز و پرانتز را کاهش می دهد، و آن را براق تر می کند، Matloff در پست نوشت.

منحنی یادگیری
برنده: R

در حالی که دانشمندان داده ها با پایتون باید بسیاری از مواد را برای شروع به یادگیری، از جمله NumPy، Pandas و matplotlib یاد بگیرند، انواع ماتریس و گرافیک پایه در پایه R ساخته شده است، Matloff نوشت.

وی با افزودن "R"، تازه کار می تواند تجزیه و تحلیل داده ها را در عرض چند دقیقه انجام دهد. "کتابخانه های پایتون می توانند برای پیکربندی، حتی برای سیستم های هوشمندانه، پیکربندی شوند، در حالی که اکثر بسته های R درست از جعبه خارج می شوند."

کتابخانه های موجود
برنده: جفت

شاخص بسته پایتون (PyPI) دارای بیش از 183000 بسته است، در حالی که شبکه جامع R Archive (CRAN) بیش از 12،000 دارد. Matloff نوشت، با این حال، PyPI نسبت به علوم داده بسیار نازک است.

"برای مثال، من یک بار به کد نیاز داشتم تا محاسبات سریع از نزدیکترین همسایگان یک نقطه داده داده شده را انجام دهم. (متاسفم کد را با استفاده از آن برای طبقه بندی انجام دهید)" ماتلوف نوشت. "من توانستم بلافاصله بجای دو بسته برای انجام این کار پیدا کنم. در مقابل، در حال حاضر من سعی کردم نزدیکترین کد همسایه برای پایتون را پیدا کنم و حداقل با جستجوی پرطرفدار من، دستیابی خالی به دست آمد؛ فقط یک پیاده سازی وجود داشت که خود را ساده و سر راست توصیف کرد، هیچ چیز سریع نیست. "

هنگامی که شرایط زیر را در PyPI جستجو می کنید، هیچ چیز نمی آید، Matloff افزود: مدل log-line؛ رگرسیون پواسون؛ متغیرهای ابزار؛ داده های فضایی؛ نرخ خطای خانوادگی.

یادگیری ماشین
برنده: پایتون (اما نه خیلی زیاد)

رشد گسترده پایتون در سال های اخیر بخشی از افزایش یادگیری ماشین و هوش مصنوعی (AI) است. Matloff نوشت: در حالی که دوره Python تعدادی از کتابخانه های دقیق را برای تشخیص تصویر ارائه می دهد، مانند AlexNet، نسخه های R نیز به آسانی قابل توسعه می باشند.

"قدرت کتابخانه های پایتون از تنظیم برخی از عملیات تشخیص تصویر است که می تواند به راحتی در پوشه Reras Keras اجرا شود و از این رو، یک نسخه خالص از TensorFlow می تواند توسعه یابد"، Matloff نوشت. "در همین حال، من می خواهم ادعا کنم که در دسترس بودن بسته های R برای جنگ های تصادفی و تقویت شیب قابل توجه است."

صحت آماری
برنده: R (تا کنون)

متلوف نوشت که متخصصان در یادگیری ماشین که برای پایتون طرفداری می کنند گاهی اوقات درک درستی از مسائل مربوط به آماری دارند. از سوی دیگر، از سوی آمارگیران، برای آمارگیران نوشته شده است.

محاسبات موازی
برنده: جفت

متلوف نوشت: نسخه های پایه R و Python پشتیبانی زیادی برای محاسبات چندگانه ندارند. بسته multiprocessing پایتون یک راه حل خوب برای مسائل دیگر آن نیست، و بسته موازی R نیز نیست.

ماتلوف نوشت: "کتابخانه های خارجی که از محاسبه خوشه پشتیبانی می کنند در هر دو زبان خوب هستند." "در حال حاضر پایتون رابط کاربری بهتر را به GPU ها دارد."

رابط C / C ++
برنده: R (اما نه خیلی زیاد)

متلوف نوشت: Rcpp R یک ابزار قدرتمند برای اتصال R به C / C ++ است. در حالی که پایتون ابزارهایی مانند swig برای انجام این کار دارد، آنقدر قدرتمند نیست و بسته Pybind11 هنوز در حال توسعه است. ماتلوف نوشت: ایده جدید ALTREP R همچنین دارای قابلیت بالقوه برای افزایش عملکرد و قابلیت استفاده است. با این حال، انواع Cython و PyPy از Python گاهی اوقات می تواند نیاز به رابط C / C ++ صریح را حذف کند.

جهت گیری شی، metaprogramming
برنده: R (اما نه خیلی زیاد)

ماتلوف نوشت، اگرچه توابع اشیا در هر دو R و Python هستند، R آن را جدی تر می گیرد.

او گفت: "هر زمان که من در پایتون کار می کنم، من از این واقعیت که من نمی توانم یک تابع را به ترمینال، که من در R بسیار کار می کنم، ناراحت هستم." پایتون تنها یک پارادایم OOP دارد. در R، شما انتخاب خود را از چند، هر چند برخی ممکن است بحث که این خوب است. با توجه به ویژگی های متالورژیم جادویی R (کد تولید کد)، دانشمندان کامپیوتر باید روی R قرار بگیرند. "

اتحاد زبان
برنده: پایتون (تا کنون)

در حالی که پایتون از نسخه 2.7 به 3.x منتقل می شود، این باعث ایجاد اختلال زیادی نمی شود. با این حال، متولف نوشت: R به دلیل تاثیرات RStudio: R و Tidyverse به دو گویش متفاوت تبدیل شده است.
ماتلوف نوشت: "شاید بهتر باشد اگر Tidyverse برتر از R معمولی باشد، اما به نظر من این نیست." "این باعث می شود همه چیز برای مبتدیان مشکل تر است."

ساختارهای داده مرتبط هستند
برنده: پایتون (به احتمال زیاد)

ماتلوف نوشت: "ساختار داده های کلاسیک علوم رایانه، مانند درخت های باینری، در پیونس آسان است." "در حالی که این را می توان در R با استفاده از کلاس" لیست "خود انجام داد، می توان حدس زد که آن آهسته است."

طبق یک گزارش آکادمی ابر 2018، هنگامی که به پست های کاری می آید، تقاضا برای مهندسان داده با R در مقایسه با افرادی که در پایتون مهارت دارند، کم است. تقریبا 66٪ از پست های پست شده توسط مهندسین داده مربوط به پایتون بوده است، در مقایسه با فقط 18٪ از پست هایی که اشاره کردید.

طبق گفته Cloud Academy، خارج از R و Python، دیگر مهارت های درخواستی برای مهندسان داده شامل SQL، Spark، Hadoop، Java، Amazon Web Services (AWS)، Scala و کافکا هستند.

5 زبان برنامه نویسی برتر برای یادگیری ماشین

۵۱۸ بازديد
یادگیری ماشین توسط Andrew Ng، دانشمند کامپیوتر در دانشگاه استنفورد، به عنوان "دانش کامپیوتری برای انجام کار بدون برنامه صریحا برنامه ریزی شده" تعریف شده است. این اولین بار در دهه 1950 درک شد، اما پیشرفت محدودی را تا دوران نوامبر 21 قرن. از آن به بعد، یادگیری ماشین نیروی محرکه ای در پشت تعدادی از نوآوری ها، به ویژه هوش مصنوعی بوده است.


یادگیری ماشین را می توان به چند دسته تقسیم کرد، از جمله آموزش تحت نظارت، بدون نظارت، نیمه نظارت و تقویت یادگیری. در حالی که یادگیری تحت نظارت بر داده های ورودی برچسب شده به منظور به دست آوردن روابط خود با نتایج خروجی متکی است، یادگیری بی نظیر الگوهای بین داده های ورودی بدون برچسب را تشخیص می دهد. یادگیری نیمه نظارتی ترکیبی از هر دو روش را استفاده می کند و یادگیری تقویت می کند برنامه ها را برای تکرار یا تعمق در فرآیند با نتایج مطلوب در حالی که اجتناب از اشتباهات را تسریع می کند. (برای یادگیری در مورد تاریخ برنامه نویسی، بررسی برنامه نویسی کامپیوتر: از زبان ماشین به هوش مصنوعی.)

چندین صنایع مختلف در حال حاضر از یادگیری ماشین بهره می برند و تقاضای روزافزون برای محصولات و خدمات ML در سراسر جهان توسعه یافته وجود دارد. بنگاه های مختلفی از قابلیت های پیش بینی شده خود بهره می برند و به دنبال توسعه روش های یادگیری ماشین های مجزا برای تصمیم گیری های آگاهانه هستند. راه های مختلفی برای شرکت ها وجود دارد که بتوانند به این تکنولوژی دست یابند، از جمله چند زبان برنامه نویسی که در این زمینه برجسته هستند.

پایتون
آموزش پایتون که توسط بنیاد پایتون در اوایل دهه 1990 توسعه یافته است، یک زبان برنامه نویسی سطح بالا است که دارای بسیاری از کاربردهای مختلف، از جمله دانش داده ها و توسعه وب است. به عنوان ابزار قدرتمند تجزیه و تحلیل داده ها، آن را به طور گسترده ای در فن آوری داده های بزرگ استفاده می شود، و جامعه قوی از توسعه دهنده های ماشین های یادگیری کمک کرده است وضعیت خود را در زمینه رشد هوش مصنوعی افزایش یافته است.

با توجه به این جامعه پر جنب و جوش، در حال حاضر بسیاری از کتابخانه های پیش ساخته شده برای یادگیری ماشین در پایتون وجود دارد. و پایتون پلت فرم آگنوستیک است، به این معنی که آن را به تقریبا هر سیستم عامل سازگار است. این نیز منبع باز است، که باعث می شود آن را برای عموم قابل دسترس باشد.

پایتون یک زبان پویا است که می تواند مشکلات را در محیط های یادگیری ماشین ایجاد کند. برای یک، خطاها وقتی می توانند برنامه های بزرگتر و پیچیده تر رشد کنند، مشکل می شود. این می تواند نقایص گرانقیمت و همچنین کاهش عملکرد را ایجاد کند.

R
همچنین در اوایل دهه 1990 توسعه یافت، R بخشی از پروژه گنو است. این روش به طور گسترده ای در تجزیه و تحلیل داده ها مورد استفاده قرار می گیرد و به طور معمول به وظایف یادگیری ماشین های رایج مثل رگرسیون، طبقه بندی و شکل گیری درخت تصمیم می پردازد. این یک زبان برنامه نویسی بسیار محبوب در میان آمارگیران است.

R همچنین منبع باز است و به طور گسترده ای مشهور است که نسبتا آسان برای نصب، پیکربندی و استفاده است. این پدیده آگنستیک است و با دیگر زبانهای برنامه نویسی هماهنگ است. در کنار تجزیه و تحلیل داده ها، R دارای قابلیت ویژوال بی نظیر اطلاعات است.

علیرغم اینکه نسبت به دیگر ابزارها نسبتا آسان است، R دارای برخی از خصوصیات منحصر به فرد است که می تواند تا حدودی اشتباه در یادگیری، مانند ساختارهای داده های غیر متعارف و نمایه سازی (که از 1 به جای 0 شروع می شود). این نیز کمتر از پایتون محبوب است و در نتیجه مستندات زیادی برای برنامه های کاربردی برای یادگیری ماشین موجود نیست. (برای اطلاعات بیشتر در مورد این دو زبان، نگاه کنید به بحث بین R و پایتون.)

JavaScript
در اواسط دهه 1990، به عنوان یک ابزار برای بهبود شیوه های توسعه وب، جاوا اسکریپت از آن زمان به یکی از زبان های به کار رفته در این زمینه تبدیل شده است. این یک زبان سطح بالا و به صورت پویا است که انعطاف پذیر و چند پارادایم است. اگرچه برنامه های کاربردی آن در یادگیری ماشین محدود شده است، پروژه های پرطرفدار مانند Tensorflow.js گوگل بر اساس جاوا اسکریپت است.

یکی از امیدوار کننده ترین ویژگی های جاوا اسکریپت در زمینه یادگیری ماشین این است که فرصت هایی را برای توسعه دهندگان وب و جلویی ایجاد می کند که قبلا به خوبی با آن آشنا هستند و بنابراین یک نقطه قابل دسترسی برای وارد شدن به موارد دیگر تا حدی ناشناخته و طاقچه دشوار

همانطور که در حال حاضر وجود دارد، با این حال، اکوسیستم برای یادگیری ماشین با جاوا اسکریپت هنوز تا حدودی نابالغ است، بنابراین پشتیبانی از این نوع توسعه در حال حاضر محدود است. همچنین دارای طیف وسیعی از قابلیت های علمی داده ها است که زبان ها مانند R و Python در آنها ساخته شده اند.

سی ++
در میان رایج ترین زبان های برنامه نویسی امروز، C ++ احتمالا قدیمی ترین است. C ++ در اوائل دهه 1980 توسط Bell Labs توسعه یافت و C ++ از تحقیقات دکترا خارج شد که به دنبال گسترش زبان C بود. C ++ با هر دو توانایی برنامه نویسی کم و سطح بالا را فعال می کند، C ++ اجازه می دهد تا سطح بالایی از کنترل و کارایی را نسبت به زبان های دیگر برنامه نویسی در زمینه های یادگیری ماشین فراهم کند.

C + + به ویژه برای برنامه های کاربردی با فشردگی کار می کند، که بخشی از چیزی است که برای یادگیری ماشین عالی است. و به عنوان یک زبان استاتیک تایپ شده، می تواند وظایف را با سرعت نسبتا بالا انجام دهد.

با این حال، C ++ نیاز به یک مقدار زیادی از کد پیچیده برای ساخت برنامه های جدید، که می تواند بسیار وقت گیر باشد و می تواند مقدار زیادی از مشکلات تعمیر و نگهداری را ایجاد کند. این می تواند برای مبتدیان برای ایجاد اشتباهات بسیار آسان باشد.

جاوا
Java در اواسط دهه 1990 طراحی شده توسط Sun Microsystems به عنوان یک زبان برنامه نویسی سطح بالا و شی گرا ساخته شده است که به نظر می رسد و مشابه C ++ است. همراه با بسیار محبوب، جاوا می تواند طیف وسیعی از الگوریتم ها را اجرا کند که برای جامعه یادگیری ماشین بسیار مفید است.

جاوا به عنوان یکی از امن ترین زبان های برنامه نویسی محسوب می شود، عمدتا به دلیل استفاده از آن از بایت کدی و سندباکس. جاوا موفق به استفاده از قدرت C ++ می شود، در حالی که از مسائل امنیتی و پیچیدگی کلی آن عبور می کند.

اما با تمام پیشرفت های آن در C ++، آموزش جاوا شهرت دارد که از بسیاری از زبان های دیگر برنامه نویسی کندتر است. علاوه بر این، تا سال 2019، جاوا مجوز تجاری را برای برنامه های کاربردی خاص تجاری اعمال می کند که می تواند هزینه ای باشد.

نتیجه
از تمامی زبانهای برنامه نویسی که برای یادگیری ماشین استفاده می شود، پایتون محبوب ترین است. با این وجود، زبان هایی مانند جاوا اسکریپت به احتمال زیاد می تواند به عنوان محبوبیت به عنوان چشم انداز تغییر در طول زمان. و اگر چه برنامه های انسانی هرگز ناپدید نمی شوند (یا حداقل در هر زمان در آینده ای نزدیک)، برنامه نویسی برای یادگیری ماشین، در سال های آینده، کمتر به کد متمرکز خواهد شد؛ زیرا ماشین ها برای خودشان آموزش داده می شوند.