Python - bugungi kunda ishlab chiquvchilar tomonidan qo'llaniladigan eng mashhur dasturlash tillaridan biri. Gvido Van Rossum uni 1991 yilda yaratgan va yaratilganidan beri C ++, Java va boshqalar bilan birga eng ko'p ishlatiladigan tillardan biri hisoblanadi.

      Bizning sun'iy intellekt va neyron tarmoq uchun eng yaxshi dasturlash tilini aniqlashda Python katta etakchilik qiladi. Python bilan sun'iy aql nima uchun eng yaxshi g'oyalardan biri ekanligini ko'rib chiqamiz .

      Python-ning xususiyatlari va afzalliklari

    Python - bu "Interpretated" tili, ya'ni odam so'zlari bilan aytganda, uni ijro etishdan oldin mashina tili qo'llanmasida kompilyatsiya qilish shart emas va dastur tomonidan to'g'ridan-to'g'ri dasturni ishlatish uchun ishlatilishi mumkin. Bu tilni emulyator yoki virtual mashina tomonida. Bu yuqori darajadagi dasturlash tili va murakkab stsenariylar uchun ishlatilishi mumkin. Yuqori darajadagi tillar o'zgaruvchilar, massivlar, ob'ektlar, murakkab arifmetik yoki mantiqiy ifodalar va boshqa mavhum informatika tushunchalari bilan shug'ullanadi, bu esa uni yanada keng qamrovli qiladi va shu bilan uning foydalanish imkoniyatini oshiradi.

    Python shuningdek, umumiy maqsadli dasturlash tili bo'lib, uni domenlarda va texnologiyalarda ishlatilishini anglatadi. Python shuningdek, dinamik turdagi tizim va avtomatik xotira boshqaruvi bilan dasturlashning turli xil paradigmalarini qo'llab-quvvatlaydi, shu qatorda ob'ektga yo'naltirilgan, imperativ, funktsional va protsessual. Python barcha operatsion tizimlar uchun mavjud, shuningdek, keng ommalashgan CPython nomli ochiq manba taklifiga ega.

    Keling, sun'iy nafislik uchun Pythondan foydalanish bizni boshqa mashhur dasturlash tillaridan ustunlikka ega bo'lishiga qaraylik.

AI va Python: Nima uchun?

 Biz sun'iy intellekt uchun Pythonni tanlashimiz kerak?

Python boshqalar orasida eng kam kodni taklif qiladi va aslida boshqa OOP tillari bilan taqqoslaganda 1/5 raqamni tashkil qiladi. Bugungi kunda bu bozorda eng mashhurlaridan biri ekanligi ajablanarli emas.

  • Pythonda ilmiy hisoblash uchun Numpy, rivojlangan hisoblash uchun Scipy va mashinani o'rganish uchun Pybrain (Python Machine Learning) kabi prebuilt kutubxonalari mavjud bo'lib, uni sun'iy intellekt uchun eng yaxshi tillardan biriga aylantiradi.
  • Dunyo bo'ylab Python dasturchilari forumlar va o'quv qo'llanmalari orqali keng qamrovli qo'llab-quvvatlash va yordam berishadi, bu koderning ishini boshqa mashhur tillarga qaraganda osonlashtiradi.
  • Python Mustaqil platformadir va shuning uchun turli xil platformalar va texnologiyalarda foydalanish uchun eng moslashuvchan va ommabop tanlovlardan biri hisoblanadi asosiy kodlashda eng kam o'zgarishlarga ega.
  • Python - bu OOP-larga yondashuv va skriptlarni tanlash variantlari bilan ajralib turadigan boshqalar qatori. Ko'pgina kodlarni tekshirish uchun IDE-dan o'zi ham foydalanishingiz mumkin va bu turli algoritmlar bilan kurashayotgan ishlab chiquvchilar uchun foydali narsadir.

     Pythonni AI bilan birga dekodlash

     Python NumPy, scikit-learn, iPython Notebook va matplotlib kabi paketlar bilan birgalikda sun'iy intellekt loyihasini boshlash uchun asos bo'lib xizmat qiladi.

NumPy N o'lchovli massiv ob'ekti, C / C ++ kodini integratsiya qilish vositalari, Furye konvertatsiyasi, tasodifiy raqamlar imkoniyatlari va boshqa funktsiyalarni o'z ichiga olgan umumiy ma'lumotlar uchun konteyner sifatida ishlatiladi.

Boshqa foydali kutubxona - pandalar, foydalanuvchilarga Python uchun oson foydalaniladigan ma'lumotlar tuzilmalari va analitik vositalarni taqdim etadigan ochiq manbali kutubxona.

Matplotlib - bu nashrning sifatli ko'rsatkichlarini yaratadigan 2-o'lchovli kutubxonadan biri bo'lib xizmat qiladi. Siz matplotlib-dan 6 tagacha grafik foydalanuvchi interfeysi uchun vositalar to'plami, veb-dastur serverlari va Python skriptlarini ishlatishingiz mumkin.

Sizning keyingi qadamingiz k-vositalari klasterini o'rganish, shuningdek qarorlar daraxtlari, doimiy raqamli prognoz, logistik regressiya va boshqalar haqida bilim to'plash bo'ladi.

Eng ko'p ishlatiladigan Python AI kutubxonalarining ba'zilari AIMA, pyDatalog, SimpleAI, EasyAi va boshqalar. Shuningdek PyBrain, MDP, scikit, PyML kabi mashinalarni o'rganish uchun Python kutubxonalari mavjud.

Keling, sun'iy intellektdagi turli xil Python kutubxonalari va nima uchun ushbu dasturlash tili sun'iy intellekt uchun ishlatilishi haqida batafsilroq ma'lumot beraylik.

    Umumiy sun'iy intellekt uchun Python kutubxonalari

AIMA - Rassell va Norvigning "Sun'iy intellekt: zamonaviy yondashuv" algoritmlarini Python-da amalga oshirish.

  • pyDatalog - Python-da mantiqiy dasturlash mexanizmi
  • SimpleAI - "Sun'iy aql, zamonaviy yondashuv" kitobida tasvirlangan ko'plab sun'iy intellekt algoritmlarini Python orqali amalga oshirish. U foydalanishga qulay, hujjatlashtirilgan va sinovdan o'tgan kutubxonani taqdim etishga qaratilgan.
  • EasyAI - sun'iy intellekt (Negamax, transpozitsiya jadvallari, o'yinlarni echish) bilan ikkita o'yinchi o'yinlari uchun oddiy Python dvigateli.

Python for Machine Language (ML)

Keling, Python nima uchun Machine Learning uchun ishlatilishini va shu maqsadda taqdim etadigan turli kutubxonalarni ko'rib chiqaylik.

  • PyBrain - ML vazifalari uchun moslashuvchan, sodda, ammo samarali algoritm. Shuningdek, bu Python uchun algoritmlarni sinash va taqqoslash uchun oldindan belgilangan turli xil muhitlarni taqdim etadigan Machine Learning kutubxonasi.
  • PyML - SVM va boshqa yadro usullariga e'tibor qaratadigan Python-da yozilgan ikki tomonlama ramka. Linux va Mac OS X da qo'llab-quvvatlanadi.
  • Scikit-learn - Scikit-learn - bu Python-dan foydalanish paytida ma'lumotlarni tahlil qilishning samarali vositasi. Bu ochiq manbali va eng ommabop umumiy mashina uchun mo'ljallangan kutubxona.
  • MDP-Toolkit - osonlikcha kengaytirilishi mumkin bo'lgan yana bir Python ma'lumotlarini qayta ishlash, shuningdek, u nazorat ostida va nazoratsiz o'qitish algoritmlari to'plamiga ega va ma'lumotlarni qayta ishlash ketma-ketligi va yanada murakkab yo'naltirilgan tarmoq arxitekturalariga birlashtirilishi mumkin bo'lgan boshqa ma'lumotlarni qayta ishlash birliklari. Yangi algoritmlarni amalga oshirish oson va intuitiv. Mavjud algoritmlar bazasi tobora o'sib bormoqda va signallarni qayta ishlash usullari (asosiy komponentlar tahlili, mustaqil komponentlar tahlili va sekin xususiyatlarni tahlil qilish), ko'p qirrali o'rganish usullari ([Hessian] mahalliy chiziqli ko'milish), bir nechta tasniflagichlar, ehtimollik usullari (Faktor tahlillari, RBM) ), ma'lumotlarni oldindan qayta ishlash usullari va boshqalar.

      Tabiiy til va matnni qayta ishlash uchun Python kutubxonalari

  • NLTK - Ochiq kodli Python modullari, Windows, Mac OSX va Linux uchun tarqatish bilan tabiiy tilni qayta ishlash va matnni tahlil qilish bo'yicha tadqiqot va rivojlantirish uchun lingvistik ma'lumotlar va hujjatlar.

    Python boshqa mashhur tillarga nisbatan

      Keling, Python C ++ va Java kabi sun'iy intellekt uchun boshqa kompyuter tili bilan qaerda turganini ko'rib chiqamiz.

   Python va sun'iy intellekt uchun C ++

  • Python - bu sun'iy intellekt uchun C ++ dan ko'ra ko'proq mashhur til va ishlab chiquvchilar orasida 57% ovoz bilan etakchilik qilmoqda. Buning sababi, Pythonni o'rganish va amalga oshirish oson. Ko'pgina kutubxonalari bilan ular ma'lumotlarni tahlil qilish uchun ham foydalanishlari mumkin.
  • Ishlash uchun aqlli C ++ Python-dan ustundir. Buning sababi shundaki, C ++ statik usulda yozilgan til bo'lishning afzalliklariga ega va shuning uchun ish paytida hech qanday xatolar mavjud emas. C ++ yana ixcham va tezroq ish vaqti kodini yaratadi.
  • Python dinamik (statikdan farqli o'laroq) til bo'lib, hamkorlik haqida gap ketganda murakkablikni pasaytiradi, ya'ni siz kamroq kod bilan funksionallikni amalga oshirishingiz mumkin. Barcha muhim kompilyatorlar o'ziga xos optimallashtirishga moyil bo'lgan va platformaga xos bo'lishi mumkin bo'lgan C ++ dan farqli o'laroq, Python kodini deyarli har qanday platformada muayyan konfiguratsiyalarga vaqt sarflamasdan ishlatish mumkin.
  • Parallellik uchun GPU tezlashtirilgan hisoblash imkoniyatlarining paydo bo'lishi bilan CUDA Python va cuDNN kabi kutubxonalar yaratilishiga olib keldi, Python C ++ dan ustun bo'ldi. Bu shuni anglatadiki, mashinani o'rganish ish yuklarini hisoblash uchun tobora ko'proq GPU-larga yuklanmoqda va natijada C ++ ning ishlash afzalliklari tobora ahamiyatsiz bo'lib qolmoqda.
  • Python kodning soddaligi, ayniqsa, yangi ishlab chiquvchilar orasida C ++ dan ustun keladi. C ++ pastki darajadagi til bo'lish uchun ko'proq tajriba va mahorat talab etiladi.
  • Python-ning sodda sintaksisi ham tabiiy va intuitiv ETL (Extract, Transform, Load) jarayonini amalga oshirishga imkon beradi va bu C ++ bilan taqqoslaganda rivojlanish uchun tezroq bo'lishini anglatadi, bu esa dasturchilarga tezkor ravishda amalga oshirmasdan, mashina o'rganish algoritmlarini sinab ko'rish imkonini beradi.

    C ++ va Python o'rtasida ikkinchisi ko'proq chekkaga ega va AI uchun ko'proq mos keladi. Oddiy sintaksis va o'qiydiganligi tufayli murakkab kompyuterlarni o'rganish algoritmlarini tezkor sinovdan o'tkazishga yordam beradi va Jupyter Notebooks va Google Colab singari hamkorlik vositalari yordamida rivojlanib borayotgan jamoatchilik Python tojni qo'lga kiritadi.

AI uchun LISP

Java bilan ishlashdan oldin, keling, sun'iy intellekt bilan LISP va ularning bir-biriga qanday mos kelishini ko'rib chiqamiz. LISP sun'iy intellektda turli universitetlarda ko'p yillik izlanishlar natijasida tezkor prototiplar tez bajarilish o'rniga tanlangan. Ma'lumot yig'ish, dinamik yozish, ma'lumotlar funktsiyalari, izchil sintaksis, interaktiv muhit va kengayish - bu tilni sun'iy intellektni dasturlash uchun moslashtiradigan ba'zi xususiyatlar.

AI bilan Java

Java-da sun'iy intellektni qanday dasturlashni o'rganish uchun Python bilan taqqoslaganda uning qaerdaligini bilish juda muhimdir.

  • Java kompilyatsiya qilingan til, Python esa talqin qilingan til.
  • Ikki til ham har xil yozilgan. Java-dagi struktura qavs ichiga olingan. Xuddi shu vazifalarni bajarish uchun Python indentatsiyadan foydalanadi.
  • Java shuningdek, ish samaradorligi sekinroq va sun'iy intellektda yuqori darajadagi dasturlarni ishlab chiqish uchun Python-ni ishlab chiquvchilar ko'proq afzal ko'rishadi.

Java sun'iy intellekt kutubxonasi Java-ning Python-ga javobidir, ammo aniq sabablarga ko'ra ishlab chiquvchilar uchun hali ham kamroq. Java Norvig Rassellning sun'iy intellektga zamonaviy yondoshishi ko'pchilik uchun foydali bo'ldi va nega bu asab tarmog'i uchun eng yaxshi til bo'lishi mumkinligini payqadi.

   Case Study

   Xodimlarning xulq-atvorini tahlil qilish uchun IoT ilovasini yaratish uchun AIni narsalar Internetida ishlatishga tajriba o'tkazildi. Dastur xodimlarning hissiyotlari va xulq-atvorini tahlil qilish orqali xodimlarga foydali mulohazalarni taqdim etadi, shu bilan menejment va ish odatlaridagi ijobiy o'zgarishlarni kuchaytiradi.

Python mashinalarini o'rganish kutubxonalari, dasturlarni o'qitish uchun ochiq va xaskadiy tushunchalardan foydalangan holda, turli xil nuqtalarda joylashgan simsiz kameralar orqali baxt, g'azab, qayg'u, nafrat, shubha, nafrat, kinoya va ajablanib kabi asosiy hissiyotlarni aniqlash uchun POC namunasi yaratilgan. To'plangan ma'lumotlar markazlashtirilgan bulutli ma'lumotlar bazasiga etkazib beriladi, bu erda kundalik hissiyotlarni, hatto butun idorani Android qurilmasi yoki ish stoli orqali tugmani bosish orqali olish mumkin edi.

    Xulosa: 

    Python sun'iy intellektni kodlash tilida juda muhim rol o'ynaydi, chunki uni skikit-learn kabi yaxshi asoslar bilan ta'minlaydi: Pythonda mashinani o'rganish, bu sohadagi deyarli barcha ehtiyojlarni qondiradi va D3.js - JS-dagi ma'lumotlarga asoslangan hujjatlar, bulardan biri vizualizatsiya uchun eng kuchli va ishlatish uchun qulay vositalar. Uning tezkor prototipi uni e'tibordan chetda qoldirmaslik uchun muhim tilga aylantiradi. AI juda ko'p izlanishlarga muhtoj va shuning uchun hech qachon loyihani oxiriga etkazmaydigan yangi gipotezani sinab ko'rish uchun Java-da 500 KB hajmdagi qozon kodini talab qilmaslik kerak. Python-da deyarli har bir g'oyani 20-30 satr kod orqali tezda tasdiqlash mumkin (libs bilan JS uchun bir xil). Shuning uchun, bu sun'iy intellekt uchun juda foydali til.

    Shunday qilib, Python quyosh ostida sun'iy intellektni dasturlashning eng yaxshi tili ekanligi aniq . Sun'iy intellekt uchun eng yaxshi til bo'lishdan tashqari, Python ko'plab boshqa maqsadlar uchun foydalidir.