هوش مصنوعی و روانشناسی

هوش مصنوعی و روانشناسی





چرا باید تئوریهای روانشناسی ، انسان شناسی و علوم شناختی در توسعه و نگهداری هوش مصنوعی اعمال شوند.

هوش مصنوعی در حلقه مشترک بسیاری از زمینه های مختلف تحصیلی ، از جمله روانشناسی ، فلسفه و اخلاق ،

علم داده های علوم رایانه و انسان شناسی می باشد. در روزهای ابتدایی پیدایش آن ، تأکید بسیاری بر هوش مصنوعی

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

و می شوند، نسبتاً متفاوت است.هوش مصنوعی واقعی ، همچنین به عنوان هوش عمومی مصنوعی یا AGI شناخته

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

بسیاری از اشکال هوش مصنوعی موجود در این روزها صرفاً سیستم های یادگیری ماشینی است و در بسیاری موارد

تمام سیستم در حال انجام تنظیم دقیق یک عملکرد غیر خطی پیچیده است.

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

بهبود تکنیک های یادگیری ماشین بخش مهمی از تحقیق است و یادگیری ماشین از بسیاری جهات زندگی ما

را آسان تر کرده است. به جای مدل های کدگذاری سخت ، توسعه دهندگان نرم افزار می توانند چارچوب هایی

را برای این مدل ها ایجاد کرده و به یادگیری ماشین اجازه دهند تا الگوهای خاص را مشخص کند. به عنوان

مثال ، به جای ایجاد الگوریتمی که یک بیماری را براساس پیش بینی های شناخته شده مشخص کند ، می توانیم

الگوریتمی ایجاد کنیم که بتواند در وهله اول یاد بگیرد که  عوامل پیش بینی کننده، در کدام حالت قرار دارند.

اما در حالی که یادگیری ماشین مهم است ، دقیقاً علاقه اصلی بسیاری از محققان نیست. آنها اکثرا به AGI

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

روانشناسان بهره مند شود. مقاله بن فرولند درباره بیماری روانی سایبرنتیک بسیار جالب است. مقاله بحث

خوبی در مورد اهمیت روانشناسی در AGI است. اگر واقعاً سیستم های نرم افزاری یا سخت افزاری داریم

که اساساً با انسان ها همخوانی دارند ، پس می توانیم انتظار داشته باشیم که آنها مانند انسانها دچار مشکل روانی

شوند. بیماری روانی در ماشین آلات به همان اندازه مشکل است که در انسان وجود دارد.اما دلیل دیگری

وجود دارد که چرا ما برای AGI نیاز به روانشناسی داریم. قبل از اینکه بتوانیم بیماری روانی AGI  را

درمان کنیم ، باید در وهله اول AGI ایجاد کنیم. و اینجاست که روانشناسی و علوم اعصاب شناختی و انسان

شناسی به این فرایند وارد می شوند.

چگونه می توانیم بفهمیم که یک ماشین هوشمند است ؟

لپ تاپ ها من می تواند خیلی سریعتر از آنچه که ما می توانیم معادلات را حل کنند. می توانند چندین عدد

بزرگ را در هم ضرب کند با مراجعه به سایت هایی مانند Wolfram Alpha می توانیم یک معادله نسبتاً

پیچیده را  تقریباً بلافاصله حل می کنیم. اما با این حال ، ما این سیستم ها را هوشمند نمی دانیم. در واقع ما

نمی دانیم که هوشمندی و یا هوش انسانی چیست. بنابراین نمی توئانیم تایید کنیم که آیا چیز دیگری دارای

این هوش هست یا خیر. اما آلن تورینگ ، یک دانشمند فوق العاده مهم رایانه که در اوایل قرن بیستم

زندگی می کرد، با یک ایده جالب ارائه داد. تورینگ به جای گفتن اینکه یک برنامه کاملاً هوشمند

است یا نه، یک تست کور را در نظر گرفت که در آن تست شخص باید حدس بزند که آیا با یک رایانه

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

سر گذاشته بود و هوشمند تلقی می شد.

آزمون تورینگ پیشرفته

متاسفانه این آزمون باعث نمی شود تا برنامه ها بهتر شوند. دراین مرحله روانشناسی دخیل می شود.

اگر بتوانیم پروتکلی را برای تجزیه و تحلیل کاربردهای مختلف AGI تهیه کنیم ، تا ببینیم کدام یک از

آنها به داشتن هوش انسانی مانند نزدیکتر هستند ، می توانیم روشهایی را انتخاب کنیم که ما را در

جهت درست حرکت دهد. کارهای زیادی وجود دارد که باید در ایجاد ارزیابی ها برای برنامه های

هوش مصنوعی انجام شود. یکی از بزرگترین مشکلات این است که بیشتر تعامل بین هوش مصنوعی

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

با صدای رباتیک به طور خودکار شخصیت واقعی فرد را نشان می دهد ، مگر اینکه صدای مشارکت

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

دارای اجزای بینایی هستند. با این وجود ، می توان یک تست ضریب هوشی صرفاً شفاهی ایجاد کرد ،

در جایی که پرسشنامه سؤالات کلامی را می پرسد ، و جواب در یک پاسخ کلامی ارائه می شود ، بدون

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

یادآوری اطلاعات و سنتز دانش جدید و همچنین تجزیه و تحلیل هوش هیجانی و اجتماعی متمرکز شود.

تدوین این نوع از آزمایشات هوش مصنوعی به تعدادی افراد با سابقه و ماهر مختلف از جمله روانشناسی ،

رشد کودک ، پزشکان بهداشت روان و البته دانشمندان رایانه احتیاج دارد. اما این یک آزمایش مهم برای

پیشرفت AGI واقعی و همچنین ارزیابی سلامت اعضای آینده جامعه ما است.

تعریف راسل و نورویگ

راسل و نورویگ (2009) پذیرفته ترین تعریف را برای هوش مصنوعی امروزه ارائه می دهند ، یعنی

طراحی و ساختن مأمورانی که از محیط برداشت می کنند و اقداماتی را انجام می دهند که بر آن محیط تأثیر

می گذارد. علاوه بر این ، توجه AI در حال حاضر توجه بسیار متفاوت از مورد توجه از دهه نود است.

در آن زمان ، توجه بر هوش مصنوعی مبتنی بر منطق ، معمولاً تحت عنوان بازنمایی دانش (KR) انجام

می شد ، در حالی که تمرکز امروز بر یادگیری ماشین (ML) و الگوریتم های آماری است. اولی برای انجام

تخفیف نیاز به یک سیستم بدیهی دارد و چنین سیستم با بازیابی قوانین تولید از طرف متخصصان ایجاد می شود.

حالت دوم برای ایجاد استنتاج نیاز به سوابق تاریخی ، معمولاً به میزان بسیار زیادی ، برای ایجاد استنتاج ، نیاز

دارد.

شبکه عصبی مصنوعی چیست ؟

شبکه عصبی مصنوعی چیست ؟





شبکه عصبی مصنوعی یا Artificial Neural Network یک سیستم هوش مصنوعی است که در واقع

طراحی شده تا عملکرد مغز بیولوژیکی را برای تصمیم گیری باز سازی کند. برای درک بهتر این موضوع

بهتر است اول بدانیم که شبکه عصبی چیست ؟ شبکه عصبی مجموعه ای از الگوریتم ها است که تلاش

می کند از طریق فرآیندی که می تواند روابط عملکرد مغز انسان را انجام دهد، روابط اساسی را در

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

ساختگی اطلاق می شوند. شبکه های عصبی می توانند با تغییر ورودی سازگار شوند. بنابراین شبکه بدون

نیاز به طراحی مجدد معیارهای خروجی، بهترین نتیجه ممکن را ایجاد می کند.

فهمیدن یک شبکه عصبی مصنوعی

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

مغز انسان صدها میلیارد سلول به نام سلولهای عصبی دارد. هر نورون از سلولی تشکیل شده است که وظیفه

پردازش اطلاعات و حمل آن اطلاعات را به مغز (ورودی) و دادن جواب (خروجی) را انجام می دهد. “نورون”

در این شبکه های مصنوعی یک عملکرد ریاضی است که اطلاعات را طبق معماری خاص جمع آوری و

طبقه بندی می کند. شبکه شباهت کاملی با روشهای آماری مانند برازش منحنی و تحلیل رگرسیون دارد.

ANN صدها یا هزاران نورون مصنوعی به نام واحد پردازش دارد که توسط گره ها به هم پیوسته اند. این واحد

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

و ساختارهای مختلف اطلاعات را دریافت می کنند و شبکه عصبی سعی در کسب اطلاعات در مورد داده های

ارائه شده برای تهیه یک گزارش خروجی دارد. درست مانند انسان برای رسیدن به نتیجه یا خروجی به قوانین

و دستورالعمل ها نیز نیاز است ، ANN ها همچنین برای تکمیل نتایج خروجی خود از مجموعه ای از قوانین

یادگیری به نام backpropagation ، مخفف انتشار خطاها به سمت عقب استفاده می کنند تا نتایج خروجی

را بهبود ببخشند.

مراحل اولیه پردازش 

ANN در ابتدا یک مرحله آموزشی را طی می کند که می آموزد الگوهای موجود در داده ها را بطور

بصری یا متنی تشخیص دهد. در طی این مرحله نظارت شده ، شبکه، خروجی واقعی تولید شده خود را

با آنچه برای تولید مد نظر بوده است مقایسه می کند  تفاوت بین هر دو نتیجه با استفاده از پردازش پشتی

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

ورودی می رود تا وزن اتصالات خود را بین واحدها تنظیم کند تا اینکه اختلاف بین نتیجه واقعی و مورد

نظر کمترین خطای ممکن را ایجاد کند.در طول دوره آموزش و نظارت ، به ANN آموزش داده می شود

که با استفاده از انواع سؤال بله / خیر با شماره های باینری، به دنبال چه چیزی باشد و متوجه بشود که نتیجه

آن چیست؟ به عنوان مثال ، بانکی که می خواهد به موقع کلاهبرداری کارت اعتباری را تشخیص دهد ،

ممکن است چهار واحد ورودی دارای این سؤالات باشد: (1) آیا معامله در کشور دیگری از کشور مقیم

کاربر است؟ (2) آیا این وب سایت که از کارت ویزیت وابسته به شرکت ها یا کشورهایی در لیست تماشای

بانک استفاده می شود ، استفاده می شود؟ (3) آیا مبلغ معامله از 2000 دلار بیشتراست؟ (4) آیا نام موجود

در صورتحساب معامله همانند نام دارنده کارت است؟ بانک می خواهد پاسخ های “تقلب تشخیص داده شده”

بله بله بله خیر باشد ، که در قالب باینری 1 1 1 0 خواهد بود. اگر خروجی واقعی شبکه 1 0 1 0 باشد ،

نتایج خود را تنظیم می کند تا زمانی که خروجی  با 1 1 1 0 یکسان باشد. پس از آموزش ، سیستم رایانه ای

می تواند به بانک  معامله های جعلی و در جهت صرفه جویی در پول بانک ، هشدار دهد.

برنامه های کاربردی عملی برای شبکه های عصبی مصنوعی (ANN)

شبکه های عصبی مصنوعی زمینه را برای توسعه برنامه های کاربردی در حال تغییر جهت استفاده در کلیه

بخش های اقتصاد فراهم می کند. سکوهای هوش مصنوعی که بر روی ANN ساخته شده اند ، روشهای سنتی

انجام کارها را عوض می کنند. از ترجمه صفحات وب به زبان های دیگر گرفته تا داشتن یک دستیار مجازی

برای سفارش آنلاین ، مکالمه با چت بات ها برای حل مشکلات ، سیستم عامل های هوش مصنوعی در حال

ساده سازی معاملات هستند و خدمات را با هزینه های ناچیز در دسترس همه قرار می دهند.

اجزاء شبکه های عصبی مصنوعی

شبکه های عصبی از چندین جز تشکیل شده اند که هر کدام کارایی خاصی را در این سیستم ها دارند.

وزنه ها مقادیر عددی است که با ورودی ها ضرب می شود. در backpropagation ، آنها اصلاح

می شوند تا ضرر را کاهش دهند. به عبارت ساده ، وزنه ها مقادیر آموخته شده از ماشین توسط شبکه

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

خودتنظیم می شوند. عملکرد فعال سازی یک فرمول ریاضی است که به نورون کمک می کند تا روشن

یا خاموش شود. لایه ورودی ابعاد بردار ورودی را نشان می دهد. لایه پنهان گره های واسطه ای را نشان

می دهد که فضای ورودی را به مناطقی با مرز نرم تقسیم می کنند. این مجموعه ورودی، وزنی را به خود

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

خروجی شبکه عصبی است.

انواع شبکه عصبی مصنوعی

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

بسته به نوع : ساختار ، جریان داده ، نورونهای مورد استفاده و تراکم آنها ، لایه ها و فیلترهای فعال سازی عمق

شبکه‌های پیش خور (Feed Forward Neural Network) آن دسته از شبکه ها هستند که الگوریتم آنها

همواره در مسیر رو به جلو حرکت می کند .به این معنی که خروجی هر لایه تنها بر لایه بعد اثر میگذارد و

در لایه‌ی خودش تغییری ایجاد نمی‌کند. شبکه‌های پس‌خور (Feed Back Neural Network) که بر خلاف

مورد قبلی مسیربرگشتی دارند و خروجی نرون در لحظه حال نه تنها به ورودی در آن لحظه بلکه به مقدار

خروجی خود نرون در لحظه ی گذشته نیز وابسته است. یکی دیگر از این شبکه ها شبکه های عصبی کانولوشن

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

با استفاده از ایم سیستم ها می توانیم هوش مصنوعی تولید کنیم که می تواند کاربرد خود را بهتر کند تا نتایج

خواسته شده را به ما بدهد.

هوش مصنوعی با پایتون

هوش مصنوعی با پایتون





پایتون یک زبان برنامه نویسی است که در با هوش مصنوعی درآمیخته و بسیار کاربرد دارد.

با توجه به نظرات توسعه دهندگان پایتون با داشتن 57% آرا، نسبت به زبان C++ محبوب تر

است. دلیل این امر یادگیری و اجرای آسان پایتون است.با وجود بسیاری از کتابخانه ها ، می توان

از آنها برای تجزیه و تحلیل داده ها نیز استفاده کرد. در صورتی که برای یادگیری و استفاده از

 به این دلیل که برنامه ابتدایی تری است بسیار سخت تر است. پایتون زبان برنامه نویسی C++

 جدیدی نیست اما در سال های اخیر جایگاه ویژهای را برای خود به دست آورده.

پایتون چیست ؟

پایتون (به انگلیسی: Python) یک محیط یکپارچه توسعه نرم‌افزار همه منظوره سطح بالا، شیءگرا،

اِسکریپتی و متن باز است که توسط خیدو فان روســـــوم در سال ۱۹۹۱ در کشور هلند طــراحی شــد.

فلسفهٔ ایجاد آن تأکید بر دو هدف اصلی خوانایی بالای برنامه‌های نوشته شده و کوتاهی و بازدهی نسبی

بالای آن است. کلمات کلیدی و اصلی این زبان به صورت حداقلی تهیه شده‌اند و در مقابل کتابخانه‌هایی

که در اختیار کاربر است بسیار وسیع هستند.

بر خلاف برخی زبان‌های برنامه ‌نویسی رایج دیگر که بلاک‌های کد در آکولاد تعریف می‌شوند (به‌ ویژه

زبان‌هایی که از گرامر زبان سی پیروی می‌کنند) در زبان پایتون از فــــاصله و جلو بــردن متن برنامه

برای مشخص کردن بلاک‌های کد استفاده می‌شود. به این معنی که تعدادی یکسان از نویسه فاصله در

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

ترتیب بلاک‌های کد به صورت خودکار ظاهری مرتب دارند.پایتون مدل‌های مختلف برنامه ‌نویسی

(از جمله شی‌گرا و برنامه‌نویسی دستوری و تابع محور) را پشتیبانی می‌کند و برای مشخص کردن نوع

متغیرها از یک سامانهٔ پویا استفاده می‌کند.به همین دلایل است که پایتون با هوش مصنوعی بسیار همخوانی

دارد و مناسب است.

چرا هوش مصنوعی را با پایتون می نویسند ؟

پایتون با تعداد زیادی کتابخانه داخلی ساخته شده است. بسیاری از کتابخانه ها برای هوش مصنوعی

و یادگیری ماشین است. برخی از کتابخانه ها عبارتند از Tensorflow (که کتابخانه شبکه عصبی

سطح بالایی است) ، scikit-Learn (برای داده کاوی ، تجزیه و تحلیل داده ها و یادگیری ماشین)

، pylearn2 (انعطاف پذیر تر از scikit-Learn) البته تمام کتابخانه ها نیستند و این لیست کتابخانه ها

ادامه دارد.پایتون یک پیاده سازی آسان برای OpenCV دارد. آنچه پایتون را برای همه محبوب می کند،

اجرای قدرتمند و آسان آن است. برای سایر زبانها ، دانشجویان و محققان باید قبل از نوشتن کد های

یادگیری ماشینی یا هوش مصنوعی با آن زبان ، باید شناخت کاملی از آن زبان مورد نظر را بدانند. اما

در مورد پایتون اینگونه نیست. حتی یک برنامه نویس با دانش بسیار پایه ای می تواند به راحتی پایتون

را اداره کند. گذشته از آن ، زمانی که کسی در نوشتن و اشکال زدایی کد در پایتون سپری می کند،

در مقایسه با C ، C ++ یا Java ، بسیار کمتر می شود.

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

اولین مزیتی که خیلی ها را به سمت پایتون سوق می دهد همانطور که قبلا ذکر کردیم داشتن تعداد بالای

کتابخانه ها برای این زبان برنامه نویسی است. کتابخانه یک ماژول یا گروهی از ماژولهایی

منتشر شده توسط منابع مختلف مانند PyPi است که شامل یکسری کد از پیش نوشته شده است که به

کاربران امکان می دهد تا به برخی عملکردهای مختلف برسند. کتابخانه های Python

موارد سطح پایه ای را ارائه می دهند ، بنابراین توسعه دهندگان مجبور نیستند که از همان ابتدا هر

بار کد نویسی کنند. موانع کم برای ورودی، دانشمندان داده بیشتری را مجاب می کند تا

پایتون را انتخاب کنند و بدون هدر دادن زمان و تلاش زیاد برای یادگیری زبان برنامه نویسی ، از

آن برای توسعه هوش مصنوعی استفاده کنند. زبان برنامه نویسی پایتون شباهت زیادی به زبان انگلیسی

دارد و این روند یادگیری را آسانتر می کند. نحو ساده آن به شما امکان می دهد تا با سیستمهای

پیچیده راحت کار کنید و روابط صریح بین عناصر سیستم را تضمین کنید. پایتون برنامه بسیار انعطاف

پذیری است و به کاربر اجازه می دهد تا با  بسیاری از داده های موجود بتواند کار کند. پایتون یک پلتفرم

مستقل است و می تواند روی سیستم عامل هایی مثل ویندوز، مک او اس، لینوکسو خیلی از

سیستم عامل دیگر اجرا شود. خواندن کد های این برنامه بسیار آسان است و می توانید به راحتی

کد دیگر توسعه دهندگان را بخوانید. این برنامه قابلیت تجسم سازی خوبی دارد برای مثال کتابخانه Matplotlib

اجازه می دهید نمودارها ، و طرح هایی برای درک بهتر داده ها ، ارائه مؤثر و تجسم

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

برنامه هایی که با پایتون نوشته شده

اینستاگرام (Instagram): نرم‌افزار اشتراک‌گذاری تصاویر و ویدیوها
بیت‌تورنت (نرم‌افزار) (BitTorrent): نرم‌افزار کلاینت برای فایل‌های به اشتراک گذاشته شدهٔ (p2p) توسط پروتکل بیت‌تورنت
چندلر (Chandler): مدیر اطلاعات شخصی شامل تقویم، میل، کارهای روزانه، یادداشت‌ها و…
Civilization IV: یک گیم کامپیوتری بر مبنای پایتون که از boost.python استفاده می‌کند
میلمن (Mailman): یکی از معروفترین نرم‌افزارهای مرتبط با ایمیل
کمبیلو (Kombilo): مدیر پایگاه داده و مرورگر بازی‌های go
موین‌موین (MoinMoin): یکی از قدرتمندترین و معروفترین ویکی‌های موجود
پلون (Plone): یک ابزار مدیریتی محتوایی متن باز، قدرتمند و کاربر پسند
پورتاژ (Portage): قلب توزیع جنتو. یک مدیر بستهای سیستم لینوکس
زوپ (zope): یک پلتفورم شیء گرای مبتنی بر وب. زوپ شامل یک سرور نرم‌افزار به همراه پایگاه داده شیء گرا و یک رابط مدیریتی درونی مبتنی بر وب می‌باشد
اس‌پی‌ای (SPE): یک IDE رایگان، متن باز برای سیستم‌عامل‌های ویندوز، لینوکس، مک که از wxGlade(طراحی رابط کاربر),PyChecker (دکتر کد) (Blender(3D پشتیبانی می‌کند
یام (Yum): یک برنامه مدیریت بسته متن‌باز برای توزیع‌های سازگار با آرپی‌ام.
آباکوس(Abaqus):نرم‌افزار شبیه‌سازی با روش المان محدود که امکان اسکریپت‌نویسی به زبان پایتون را به کاربر می‌دهد.

زبان های دیگر که تحت تاثیر پایتون نوشته شده اند

طراحی و فلسفه پایتون بر بسیاری از زبانهای برنامه نویسی دیگر تأثیر گذاشته است:

بو از حالت تورفتگی ، نحو مشابه و الگویی مشابه شی استفاده می کند.
کبرا از اصطلاح و نحو مشابه استفاده می کند ، و سند تأیید آن ، پایتون را برای اولین بار در بین زبان هایی که بر آن تأثیر گذاشته اند ، لیست می کند.
CafeScript ، یک زبان برنامه نویسی است که به زبان JavaScript کامپایل می شود ، دارای نحوی الهام گرفته از پایتون است.
ECMAScript / جاوا اسکریپت تکرار کننده و ژنراتورها را از پایتون گرفته است.
GDScript ، یک زبان برنامه نویسی بسیار شبیه به پایتون ، که در موتور بازی گودوتساخته شده .
Go برای “سرعت کار با زبانی پویا مانند پایتون” طراحی شده است و همین نحو را برای برش آرایه ها به اشتراک می گذارد.
گرووی از میل به آوردن فلسفه طراحی پایتون به جاوا انگیزه گرفت.
جولیا به گونه ای طراحی شده بود که برای برنامه نویسی عمومی به مانند پایتون قابل استفاده باشد.
نیم از عملکرد  و نحو مشابهی استفاده می کند.
یوکیهیرو ماتسوموتو ، خالق روبی گفته است: “من می خواهم یک زبان برنامه نویسی داشته باشم که از پرل قدرتمندتر باشد و از پیتون شیء گرا باشد. به همین دلیل تصمیم گرفتم که زبان خودم را طراحی کنم.”
سوئیفت ، یک زبان برنامه نویسی است که توسط اپل ساخته شده است و دارای نحوی با الهام از پایتون است.
شیوه های توسعه پایتون نیز توسط زبان های دیگر تقلید شده است. به عنوان مثال ، تمرین نیاز به سندی که توضیحات منطقی را برای آن شرح می دهد ، و مسائل مربوط به آن ، تغییر زبان (در پایتون ، یک PEP) در Tcl ،  Erlang ، ​​و Swift نیز مورد استفاده قرار می گیرد.

یادگیری ماشینی چیست ؟

یادگیری ماشینی چیست ؟




یادگیری ماشینی چیست ؟ این عبارتی است که اخیرا بسیار شنیده می شود ولی بسیاری از مردم از

معنی دقیق آن آگاهی ندارند. برخی فکر می کنند که یک برنامه ساده هنگامی که بر روی یک کامپیوتر

نصب می شود کامپیوتر به اصطلاح یاد می گیرد اما این تعریف نا درست است. یادگیری ماشینی کاربردی

از هوش مصنوعی (AI) است که به سیستم ها امکان یادگیری و پیشرفت خودکار با کسب کردن تجربه را

بدون برنامه ریزی صریح فراهم می کند. یادگیری ماشینی برای توسعه برنامه های رایانه ای است که

می توانند به داده ها دسترسی پیدا کرده و از آن برای یادگیری خود استفاده کنند.

کارایی یادگیری ماشینی چیست ؟

بخاطر تکنولوژی های محاسباتی و قدرت بالای کامپیوتر هایی که امروزه در دسترس قرار دارند یادگیری

ماشینی که امروز ما می شناسیم با یادگیری که در گذشته بود متفاوت است. این فناوری جدید نیست اما به

تازگی فرصت این را پیدا کرده تا شکوفا شود. این فناوری از دل تشخیص الگو و این ایده که کامپیوتر ها

بدون برنامه ریزی دقیق می توانند یاد بگیرند و یک وظیفه مشخص را انجام دهند، زاده شد. محققانی که به

رشته هوش مصنوعی علاقه داشتند می خواستند ببینند که کامپیوتر ها می توانند از داده ها به صورت مستقل

یاد بگیرند.جنبه تکراری یادگیری ماشینی مهم است زیرا مدل ها در معرض داده های جدید هستند ، وقادر به

سازگاری به صورت مستقل هستند. آنها از محاسبات قبلی یاد می گیرند که بتوانند تصمیمات و نتایج قابل اعتماد

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

شروع می شود تا به دنبال الگوهایی در داده ها  باشد و تصمیم گیری های بهتری در آینده بر اساس مثالهایی که

ارائه می دهیم انجام دهد. هدف اصلی این است که کامپیوترها بدون دخالت یا کمک انسان یاد بگیرند و اقدامات

خود را بر این اساس تنظیم کنند.

دلیل مهم بودن یادگیری ماشینی چیست ؟

چیزهایی مثل رشد حجم و انواع داده های در دسترس، پردازش محاسباتی که ارزان تر و قدرتمند تر است،

و ذخیره سازی داده مقرون به صرفه، دلایلی است که علاقه مندی مجدد به یادگیری ماشین را مانند داده کاوی

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

می توان به سرعت و به صورت خودکار مدل هایی تولید کرد که بتوانند داده های بزرگتر ، پیچیده تر را

تجزیه و تحلیل کرده و نتایج سریعتر و دقیق تری را ارائه دهند و با ایجاد مدل های دقیق ، یک سازمان

شانس بهتری برای شناسایی فرصت های سودآور و جلوگیری از خطرات ناشناخته  دارد. برای ایجاد

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

اتوماسیون و فرآیندهای تکراری، مقیاس پذیری و مدل سازی کلی را در نظر گرفت.

چه مجموعه هایی از یادگیری ماشینی استفاده می کنند؟

بیشتر صنایعی که با مقادیر زیادی از داده کار می کنند ، ارزش فن آوری یادگیری ماشین را به خوبی می دانند.

با جمع آوری بینش از این داده ها که غالباً در زمان واقعی اتفاق می افتد سازمان ها قادر هستند نسبت به رقبا

کارآمد تر و یا برتر باشند.

مجموعه های مالی

مجموعه های مالی مانند بانک ها و بیمه ها یکی از ارگان هایی هستند که از این فناوری استفاده می کنند. این

مراکز عمدتا به دو دلیل از یادگیری ماشینی استفاده می کنند: برای شناسایی بینشهای مهم در داده ها و جلوگیری

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

کند تا بدانند چه زمان تجارت کنند. داده کاوی همچنین می تواند مشتریانی را که دارای پروفایل های پر ریسک

هستند شناسایی کنند ، یا از نظارت سایبری برای مشخص کردن علائم هشدار دهنده کلاهبرداری استفاده کنند.

دولت

دولت ها ارگان های بعدی هستند که از یادگیری ماشین استفاده می کنند. آژانسهای دولتی مانند امنیت عمومی

و خدمات عمومی نیاز ویژه ای به یادگیری ماشین دارند زیرا از چندین منبع داده ای برخوردار هستند که

می توانند برای برنامه های آینده از آنها استخراج شوند. به عنوان مثال ، تجزیه و تحلیل داده های سنسور ،

روش های افزایش بهره وری و پس انداز پول را مشخص می کند. یادگیری ماشینی همچنین می تواند به

تشخیص کلاهبرداری و به حداقل رساندن سرقت هویت کمک کند.

بخش بهداشت و سلامت

بهداشت و سلامت هم بخشی است که در حال استفاده از ML یادگیری ماشینی به لطف ظهور دستگاه های پوشیدنی

و حسگرها که می توانند از داده ها برای ارزیابی سلامت یک بیمار در زمان واقعی استفاده کنند. این فناوری

همچنین می تواند به متخصصان پزشکی کمک کند تا داده ها را تجزیه و تحلیل کنند تا روندها  را شناسایی کنند

که ممکن است منجر به بهبود تشخیص و درمان شود.

خرده فروشی

وب سایت هایی که مواردی را که ممکن است بر اساس خریدهای قبلی دوست داشته باشید توصیه می کنند ،

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

تجزیه و تحلیل و استفاده از آن برای شخصی سازی یک تجربه خرید ، پیاده سازی یک بازاریابی بازاریابی،

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

فراورده های نفتی و گازی

شاید از خودتان بپرسید که استفاده یادگیری ماشینی در صنعت نفت و گاز چیست ؟ یافتن منابع انرژی جدید.

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

و مقرون به صرفه تر بودن آن. تعداد موارد استفاده از یادگیری ماشین برای این صنعت بسیار گسترده است که هنوز

هم در حال گسترش است.

حمل و نقل

تجزیه و تحلیل داده ها برای شناسایی الگوها و روندها ،یک امر مهم در صنعت حمل و نقل است که به کارآمدتر

شدن مسیرها و پیش بینی مشکلات احتمالی برای افزایش سودآوری تکیه دارد. تجزیه و تحلیل داده ها و جنبه های

مدل سازی یادگیری ماشین ابزار مهمی برای شرکت های تحویل ، حمل و نقل عمومی و سایر سازمان های

حمل و نقل است.

متد های یادگیری ماشینی 
یادگیری نظارت شده (Supervised learning )

الگوریتم یادگیری مجموعه ای از ورودی ها را با خروجی های صحیح مربوطه دریافت می کند ، و الگوریتم با

مقایسه خروجی واقعی خود با خروجی های صحیح برای پیدا کردن خطاها می آموزد. سپس مدل را بر این اساس

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

از الگوهای استفاده می کند تا مقادیر برچسب را بر روی داده های بدون برچسب اضافی پیش بینی کند.

یادگیری نیمه نظارت شده (Semi-supervised learning)

یادگیری نیمه نظارت شده برای برنامه های مشابه یادگیری نظارت شده استفاده می شود. اما برای آموزش از داده های

دارای برچسب و بدون برچسب استفاده می کند یادگیری نیمه نظارت شده هنگامی مفید است که هزینه های مربوط به

برچسب زدن بسیار بالا باشد تا بتواند یک فرایند آموزش کاملاً برچسب خورده را فراهم کند. نمونه های اولیه این متد

شامل شناسایی چهره شخص در وب کم است.

یادگیری بدون نظارت (Unsupervised learning)

یادگیری بدون نظارت در برابر داده هایی استفاده می شود که هیچ برچسب ثبت شده ای ندارند.در این حالت به سیستم

“جواب درست” گفته نمی شود. الگوریتم باید مشخص کند آنچه نشان داده شده استدر ست است یا خیر و به بیان دیگر

آن را درک کند. هدف این است که داده ها را کشف کرده و ساختار درون آن پیدا کنیم. یادگیری بدون نظارت بر روی

داده های معامله ای کار می کند.

یادگیری تقویت شده (Reinforcement learning)

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

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

است: عامل (یادگیرنده یا تصمیم گیرنده) ، محیط (هر کاری که عامل با آن تعامل دارد) و اقدامات (آنچه عامل می تواند

انجام دهد). هدف این است که عامل اقداماتی را انتخاب کند که پاداش مورد انتظار را در مدت زمان مشخصی به

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

تقویت شده یادگیری بهترین خط مشی است.

پس می توانیم نتیجه بگیریم برای اینکه بگوییم یادگیری ماشینی چیست باید جنبه های مختلفی از کاربرد ها متد و روش ها

را در نظر بگیریم

هوش مصنوعی برنامه نویسی

هوش مصنوعی برنامه نویسی




برای ساختن یک هوش مصنوعی ابتدا باید دانست که از چه زبان های برنامه نویسی باید استفاده کرد.

هنگامی که با این زبان ها آشنایی داشته باشید می توانید از میان آنها بهترین را برای شروع پروژه

انتخاب کنید ، و بر مبنای آن شروع به نوشتن کد ها بکنید. هوش مصنوعی اکنون با تمام مزایایی که در

صدها مورد و موقعیت های کاربردی منحصر به فرد در اختیار شما قرار می دهد ، به بخشی جدایی

ناپذیر از زندگی روزمره ما تبدیل شده است ، لازم به ذکر نیست که چقدرکار ها را برای ما راحت تر

کرده است.

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

با افزایش روند استفاده از هوش مصنوعی در سالهای اخیر ، هوش مصنوعی مسیری طولانی را برای

کمک به رشد مشاغل و دستیابی به پتانسیل های کامل خود در پیش گرفته است. این پیشرفت ها در

هوش مصنوعی بدون پیشرفت های اساسی در زبان های برنامه نویسی اساسی امکان پذیر نمی باشد.

با رونق در هوش مصنوعی ، نیاز به برنامه نویسان و مهندسین کارآمد و ماهر به همراه پیشرفت در

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

کار با AI وجود دارد ، هیچ زبان برنامه نویسی یک راه حل یک مرحله ای برای برنامه نویسی هوش –

مصنوعی نیست زیرا اهداف مختلف برای هر پروژه نیاز به یک رویکرد خاص دارد.

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

پایتون که در سال 1991 ایجاد شد ،در یک نظرسنجی نشان می دهد که بیش از 57٪ از توسعه دهندگان

به احتمال زیاد پایتون را نسبت به C ++ به عنوان زبان برنامه نویسی خود برای توسعه راه حل های AI

انتخاب می کنند. یادگیری آسان پایتون برای برنامه نویسان و دانشمندان داده به راحتی امکان ورود به

دنیای توسعه هوش مصنوعی را فراهم می کند.

به گفته گوییدو ون رزوم: پایتون آزمایشی است که نشان می دهد برنامه نویسان، به چه میزان آزادی نیاز دارند.

 اگر آزادی بسیار زیاد باشد  هیچ کس نمی تواند کد دیگران را بخواند. و اگر خیلی کم باشد صراحت کد نویسی در

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

برخوردار می شوید بلکه از انعطاف پذیری ارائه شده توسط زبان برنامه نویسی نیز بهره مند می شوید. برخی از

ویژگی هایی که ممکن است بیشترین بهره را از پایتون داشته باشید ، استقلال پلتفرم  و چهارچوبهای گسترده برای

یادگیری عمیق و یادگیری ماشین است. ون رزوم می گوید : لذت کد نویسی پایتون باید در دیدن کلاس های کوتاه ،

مختصر و خواندنی باشد که اکثر اقدامات را با مقدار کمی کد واضح بیان می کند  نه اینکه به صورت ردیف کد های

بی معنی باشد  که خواننده را به کام مرگ می کشاند.

برخی از محبوب ترین کتابخانه های پایتون :
  • TensorFlow ، برای بارگیری از یادگیری ماشینی و کار با مجموعه داده ها
  • scikit-learn، برای آموزش مدلهای یادگیری ماشین
  • PyTorch ،برای دید رایانه و پردازش زبان طبیعی
  • Keras، به عنوان واسط کد برای محاسبات و عملیات ریاضی بسیار پیچیده
  • SparkMLlib، مانند کتابخانه یادگیری ماشینی Apache Spark ، یادگیری ماشین را با ابزارهایی مانند الگوریتم ها و برنامه های کاربردی آسان می کند
  • MXNet، به عنوان یکی دیگر از کتابخانه آپاچی برای سهولت در کارکردن با یادگیری عمیق کاربرد دارد
  • Theano، به عنوان کتابخانه برای تعریف ، بهینه سازی و ارزیابی عبارات ریاضی استفاده می شود
  • Pybrain، برای الگوریتم های یادگیری قدرتمند ماشین استفاده می شود

همچنین ، پایتون با توجه به مشارکتهای مخازن GitHub از جاوا پیشی گرفته است و به رتبه دوم زبان برنامه نویسی

تبدیل شده است. در واقع ، Stack Overflow آن را “سریعترین رشد” زبان اصلی برنامه نویسی می نامد. “

java

جاوا یکی از بهترین زبان های برنامه نویسی است که وجود دارد و گواه آن 20 سال استفاده بهینه از این نرم افزار

می باشد. جاوا با دارا بودن رابط کاربری آسان، طبیعت انعطاف پذیر و استقلال پلتفرم ، برای توسعه هوش مصنوعی

از روش های مختلفی استفاده می کند:

  • TensorFlow، لیست زبانهای برنامه نویسی پشتیبانی شده TensorFlow نیز شامل Java با API است. این پشتیبانی به اندازه سایر زبانهای کاملاً پشتیبانی شده از نظر ویژگی غنی نیست ، اما در آنجا وجود دارد و با سرعتی سریع بهبود می یابد.
  • Deep Java Library، ساخته شده توسط آمازون برای ایجاد و استقرار توانایی های یادگیری عمیق با استفاده از جاوا.
  • Kubeflow، Kubeflow استقرار آسان و مدیریت پشته های آموزش ماشین را روی Kubernetes تسهیل می کند ، و آمادگی استفاده از راه حل های ML را فراهم می آورد.
  • OpenNLP، OpenNLP Apache یک ابزار یادگیری ماشین برای پردازش زبان طبیعی است.
  • ● Java Machine Learning Library، Java-ML چندین الگوریتم یادگیری ماشین را در اختیار توسعه دهندگان قرار می دهد.
  • Neuroph، Neuroph طراحی شبکه های عصبی را با استفاده از چارچوب منبع باز جاوا با کمک رابط کاربری گرافیکی Neuroph امکان پذیر می کند.
R

R توسط رز ایهاکا و رابرت جنتلمن ساخته شد و نسخه اول آن در سال 1995 راه اندازی شد. R در حال حاضر

توسط R Development Core Team نگهداری می شود ، R اجرای زبان برنامه نویسی S و کمک به توسعه

نرم افزار آماری و تجزیه و تحلیل داده ها است.

Prolog

این کلمه مختصر شده Logic Programming است ، Prolog برای اولین بار در سال 1972 ظاهر شد.

این یک ابزار جالب برای توسعه هوش مصنوعی ، به ویژه پردازش زبان طبیعی است. Prolog بهترین کار را

برای ایجاد chatbots انجام می دهد ، ELIZA اولین chatbot است که با Prolog ایجاد شده است و تاکنون

وجود داشته است.

Lisp

این کلمه مختصر List Processingمی باشد که دومین زبان برنامه نویسی قدیمی در کنار Fortran

است. لیپس که به عنوان یکی از بنیانگذاران هوش مصنوعی (AI) شناخته می شود ، توسط جان مک کارتی

در سال 1958 ساخته شد. Lisp به عنوان یک یادداشت عملی ریاضی برای برنامه ها ، به سرعت انتخاب

زبان برنامه نویسی AI برای توسعه دهندگان شد.  برخی از ویژگی ها در  Lisp وجود دارد که آن را به یکی

از بهترین گزینه ها برای پروژه های هوش مصنوعی در Machine Machine تبدیل می کند.

البته زبان های دیگری هم وجود دارند که در حوضه هوش مصنوعی و برنامه نویسی از آنها استفاده می شود

که ما به آنها اشاره نکرده ایم. اما باید بدانید که هر کدام از این زبان ها نقاط قوت و ضعفی دارند که با ترکیب

آنها می توان از این مشکلات کاهید همچنین شما باید مد نظر داشته باشید که بهد از برنامه نویسی باید با نرم افزار

های دیگری مثل مانگو دی بی پایگاه داده خود را بسارید و یک رابطه با آنها بر قرار کنید. در نهایت با استفاده

از مجموعه ای از این برنامه ها می توان هوش مصنوعی ساخت تا کار های مد نظرمان را انجام دهد و روز

به روز هم هوشمند تر شود .