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

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





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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

دارد.

فلسفه هوش مصنوعی

فلسفه هوش مصنوعی




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

این قاعده مستثنا نیست. هوش مصنوعی در سال 1956 به عنوان یک زمینه تحقیقاتی

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

که این تحقیقات دارای این اهداف بود: ساخت ماشین هایی که مانند انسان تفکر کنند یا

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

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

نمایش اطلاعاتی که می تواند در برنامه های کاربردی مفید باشد بوجود آمد.این مشکلات

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

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

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

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

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

ماهیت محدود هوش مصنوعی برای این امر را نشان دهند.

هربرت درفیوس

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

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

بیشتر به فلسفه ضد عقل گرایی قرن بیستم ، همانطور که در آثار هایدگر ، مرلو-پونتی و

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

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

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

شهودی و حسی عمل می کند.رویکرد منطقی هوش مصنوعی در مبانی آنچه که هوش مصنوعی

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

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

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

<< فرض روانشناختی ، که بیان می کند که هوش انسانی دستکاری نماد مبتنی بر قانون است >>

<< فرض معرفت شناختی ، با بیان اینکه همه دانش قابل رسم هستند >>

<< فرض هستی شناختی ، که بیان می کند واقعیت دارای یک ساختار رسم پذیر است >>

دریفوس نه تنها از این فرضیات انتقاد کرد ، بلکه مفاهیمی را نیز ارائه کرد که به نظر وی برای

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

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

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

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

نظر Dreyfus کارکرد ماشین های دستکاری نماد را در خارج از یک حوزه رسمی کاملاً تعریف شده

غیرممکن می کند.

مشاهدات عمومی در مورد اراده آزاد

اراده آزاد مفهومی عجیب است. در فلسفه می توان ذهن انسان را از هر طریق مورد بحث قرار داد ،

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

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

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

می شود اگر من در چنین بحثی بیان کنم که اراده آزاد انسان وجود ندارد؟ اگر صحیح نباشد ، من

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

این کار بکنم. انکار اراده آزاد یک تضاد عملی است. هیچ کس نمی تواند اراده آزاد انسان را انکار

کند بدون اینکه این انکار را بی معنی کند. هنوز مسئله اراده آزاد امری مهم به نظر می رسد ، زیرا

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

بنابراین ، یا اگر بخواهیم خودمان را از دستگاه های ارگانیسم قطعی نگیریم ، باید به انسان ویژگی های

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

فلسفی در ارتباط است ، اما بیشتر از همه با آنچه که دکارت اظهار داشت ، جهان را به دو ماده (روح و

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

، که از تحولات اخیر در فیزیک (نسبیت ، مکانیک کوانتومی) استفاده می کنند تا نشان دهند که اراده آزاد

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

اراده آزاد برای چیزهای دیگر غیر از انسان را انکار می کند. بنابراین بحث در مورد اراده آزاد و

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

به چنین بحثی مناسب تر است ، اما نتیجه گیری دیگری غیر از پیش فرض های جسمی که برای واگذاری

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

یک بحث فلسفی محض مرتبط باشد ، اما ارتباط چندانی با علم کامپیوتر ندارد.

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

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

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

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

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

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

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

کارهایی که انجام می دهند را گسترش دهیم.

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

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

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

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





شبکه عصبی مصنوعی یا 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)

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

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

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

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

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

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

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

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