#مرد_میهن_آبادی #زن_زندگی_آزادی
زبان های برنامه نویسی توسعه هوش مصنوعی
سلام من تازه یک حساب کاربرب در ویرگول راه انداختم و تصمیم گرفتم اولین پستم رو درباره زبان های برنامه نویسی توسعه هوش مصنوعی بنویسم.
در دنیایی که امروز ما داریم در آن زندگی می کنیم، فناوری با سرعت فوق العاده ای پیشرفت می کند
و حوزه هوش مصنوعی یکی از زیر مجموعه های حوزه ی فناوری می باشد. هوش مصنوعی جزئی از
ربات ها، خودران ها و … را تشکیل می دهد. شاید تا به حال به این فکر کرده باشید که زبان برنامه نویسی
توسعه ی هوش مصنوعی (AI) چیست؟ کدام کمپانی ها چنین زبان های برنامه نویسی را توسعه داده باشند؟
توسعه هوش مصنوعی (AI) در حال رشد است، در حالی که با کسب موفقیت های متوالی برای ما مهیج میباشد. زبانهای AI بسیاری وجود دارد، ما از میان آنها بهترینهایشان را مورد بررسی قرار میدهیم.
اگر می خواهید موج توسعه را به دست آورید، باید یکی از زبان های مناسب مورد استفاده در توسعه هوش مصنوعی را فرا گیرید، زیرا همه زبان های برنامه نویسی برای استفاده رایج نیستند. در اینجا لیستی از بهترین زبان های برنامه نویسی مورد استفاده در توسعه AI وجود دارد.
Python
پایتون در صدر بهترین زبان های برنامه نویسی AI قرار گرفته است. از آنجا که بیشتر زمان صرف شده در
توسعه AI نباید به اشکال زدایی و پیدا کردن خطاها اختصاص یابد، پایتون برای این کار مناسب است.
هسته پایتون کدنویسی را موثر و ساده می سازد. الگوریتم های پیاده سازی در پایتون واقعا ساده هستند
و پایتون با بسیاری از کتابخانه های تعبیه شده برای برنامه های AI و ML مجهز شده است،
از جمله Pylearng، Pybrain، sickit و AIMA که الگوریتم ها را در کتاب مشهور Russell and Norvig اجرا می کنند.
در نهایت، پایتون open source بوده و خیلی خوب مستندسازی شده است بنابراین موارد بسیاری
برای شروع خوب شما وجود دارد. اگر می خواهید کدهای Python ML را بررسی کنید،
میتوانید خودتان طبقه بندی ساده MNIST را امتحان کنید. یادگیری پایتون بسیار آسان است بنابراین حتی
اگر قبلا از پایتون استفاده نکرده اید با داشتن پایه ای از برنامه نویسی، مباحثی را به دست خواهید آورد که بتوانید برنامه را اجرا کنید.
++C
وقتی سرعت و کارایی پایین می آید، قطعا ++C به کمک شما می آید. ++C با بیشترین حافظه موثر سریع
ترین است. در بسیاری از برنامه های شبکه عصبی، سعی می کنید برنامه خود را بهینهسازی کنید تا بهترین
استفاده را از منابع موجود داشته باشید. شما اساسا سعی می کنید تا هر اونس پردازش قدرت را داشته باشید،
و در اینجا زبان سطح پایینی مثل ++C شما را قادر به انجام این کار می سازد.
با این حال یادگیری زبان ++C در این لیست ممکن است سخت تر باشد، زیرا در برابر سادگی کدنویسی بسیار انعطاف پذیر می باشد.
برای استفاده از ++C کتابخانه ها و فریم ورک های زیادی وجود دارد مثل Tensorflow، CNTK، Caffe و موارد دیگر.
R
R یکی از زبان هایی است که برای برنامه های خاص، به ویژه مطالعات آماری، تحلیل و تجسم داده ها
توسعه داده شده است. آن ها برای دانشمندان و مهندسان بسیار مقرون به صرفه هستند و R در طی
سال ها رشد کرده است تا یکی از غول های ML و داده های بزرگ شده است.
با وجود سینتکس عجیب آن، منحنی یادگیری آن شیب دار است. R دارای رابط های خط فرمان وسیع با معروف ترین IDE می باشد.
Rنسبت به پایتون در مقایسه با ضریب ماتریس و ساختارهای مربوط به داده مانند بردارها برتر است.
پیاده سازی و استفاده از آن قدرتمند و ساده میباشد، حتی بعضیها می گویند از پایتون هم ساده تر است.
R دارای یک مخزن متمرکز حاوی مقدار زیادی از بسته های مناسب برای تعداد زیادی از برنامه ها می باشد.
Java
جاوا یکی از محبوب ترین زبان های موجود است. جامعه بزرگی دارد اما شهرت آن تنها دلیل
انطباق رایج آن در AI نیست. استفاده از آن آسان بوده و در عین سادگی اجازه توسعه در مقیاس بزرگ را می دهد.
اشکال زدایی آن نیز آسان است و این امری است مهم زیرا وقت خود را برای پیدا کردن اشکالات هدر نمی دهید.
دارای انباری از کیت ها است که گرافیک و رابط ها را بسیار جذاب میسازد.
جاوا یک بخش عالی با ماشین مجازی خود ارائه می دهد که اجازه می دهد کد آن به طور یکپارچه
بر روی چندین پلت فرم اجرا شود. دارای کتابخانه ها و فریم ورک هایی برای برنامه ها AI و ML است.
LISP
LISP یکی از اولین زبان های مورد استفاده در برنامه های AI از سال ۱۹۸۰ می باشد.
این زبان سطح بالا مجهز به مجموعه ای از ویژگی هایی است که آن را بسیار مناسب برای توسعه
و تست برنامه های سمبولیک AI با سطح بالایی از فرمان ساخته است.
از طریق نشانه گذاری های نوشتاری نیز می تواند به عنوان یک زبان سطح پایین عمل کند
و دارای یک بازیافت حافظه (garbage collector) است که می تواند حتی بخش های غیرقابل استفاده
از کد را جمع آوری کند. این زبان بسیار انعطاف پذیر و قدرتمند است و به عنوان عضو قدیمی جامعه AI، دارای مستندهای عالی میباشد.
PROLOG
PROLOG یک زبان تخصصی در AI، مخصوصا، منطق و محاسبات سمبلیک، می باشد.
این زبان از مجموعه کوچکی از مکانیسم های بسیار اساسی تشکیل شده است که همگی یک
چارچوب قدرتمند و انعطاف پذیر را تشکیل می دهند. هنگامی که با ساختار اشیاء و روابط همراه است،
قدرت واقعی آن مشهود میشود. وقتی پای برنامه های منطقی وسط می آید، استدلال خاص خود را دارد.
#C
مایکروسافت در حال حاضر تلاش می کند تا #C را توسط چند سکویی (cross-platform) ساختن آن با تمام
ویژگی های اساسی توسعه امروز، فراتر از حد انتظارات خود بسازد.
فقط طبیعی است که برای رسیدن به این هدف، باید تقریبا توسعه AI در #C وجود داشته باشد تا این شکاف را از بین ببرد.
مایکروسافت در واقع برخی مدل های از پیش آموزش دیده (pre-trained) را ارائه می دهد
که می توانید به طور مستقیم در برنامه های Net. خود استفاده کنید. البته می توانید مدل های خودتان را بسازید.
مثلا فریم ورک Accord.Net وجود دارد که به شما اجازه می دهد در پردازش تصویر و صدا
در #C راحت تر کار کنید. می توانید این بار در اینجا همان برنامه MNIST (که HelloWorld از ML است) را با استفاده از #C امتحان کنید.
نتیجه
این لیست در واقع ادامه دارد. اگر مجبور باشیم به صورت جامع آن ها را بیان کنیم، باید Scala، Julian، Haskell، AIML و بسیاری موارد دیگر را نیز ذکر کنیم.
هر زبان قدرت خود را دارد که می توانید در صورت لزوم استفاده کنید.
شما باید هر کدام از ویژگی ها را بررسی کنید، بنابراین بهتر است در مورد هدف خود دقیق باشید.
اگر فقط می خواهید در زمینه AI تفحص کنید، ما پایتون را به عنوان یک مورد قدرتمند و آسان پیشنهاد می کنیم. اگر دانشی در زبان دیگری دارید، پس آن را معیار خود قرار دهید.
مطلبی دیگر از این انتشارات
آشنایی با ترسیم داده ها (رسم نمودار) در پایتون
مطلبی دیگر از این انتشارات
نگاهی به داده های مسکن در شهر تهران
مطلبی دیگر از این انتشارات
آمریکا چگونه با یادگیری ماشین و کلان داده میخواهد جلوی دور زدن تحریم نفتی ایران را بگیرد؟