Artificial Intelligence - هوش مصنوعی  
انجمن را در گوگل محبوب کنيد :

بازگشت   Artificial Intelligence - هوش مصنوعی > محاسبات نرم > شبکه های عصبی (Neural Networks)


 
تبليغات سايت
Iranian Association for the Advancement of Artificial Intelligence
ارسال تاپيک جديد  پاسخ
 
LinkBack ابزارهاي تاپيک نحوه نمايش
قديمي ۰۲-۷-۱۳۸۷, ۰۲:۱۹ قبل از ظهر   #1 (لینک دائم)
Administrator
 
آواتار Siavash
 
تاريخ عضويت: ارديبهشت ۱۳۸۷
محل سكونت: تهران
پست ها: 179
تشكرها: 27
439 تشكر در 108 پست
My Mood: Mehrabon
پيش فرض مقدمه ای بر شبکه های عصبی

شبکه ی عصبی یا Neural Network یکی از مباحثیه که تو هوش مصنوعی این روزا خیلی خوب داره پیشرفت میکنه و خیلیم روش کار میشه!
حالا اصلا چی هست؟
با چند تا سوال شروع می کنم.
تا حالا به این فکر کردی که مثلا تو یه آدمیو 10 سال قبل دیدی، بعد اتفاقا امروز دوباره اونو بعد از 10 سال می بینی! همه چی کلی تغییر کرده، صورتش، مقدار موش، صداش، قدش و خیلی چیزای دیگه. اما تو باز میشناسیش! خیلی جالبه ها! آخه از کجا؟؟؟ چطوری؟؟؟ مغز آدم خیلی انعطاف پذیری داره توی تغییرات یا خطا ها، همین مغز آدم رو خیلی جالب و پیچیده می کنه!

من یه مثال دیگه الان در این باره به ذهنم رسید، بگم؟
" بله حتما، خیلی خوبه که فعال باشی! "
مثلا من دوستامو امروز می بینم! بعد فردا میبینم بازم میشناسمشون!
خوب این که هنر نیس!
هنر نیس؟؟؟ تو که دوستای منو ندیدی هر روز میرن آرایشگاه، یه روز موهاشون آبیه یه روز زرد یه روز نارنجی! تازه صورتشونو که نگوووو.
آهان از اون لحاظ!
منم یه مثال بزنم؟
" بله، چه خوب که انقدر فعال شدین! "
امممم، آهان، مثلا من میام به این خانوم با شخصیتی می گم شماره موبایلم 0912...
" عزیز من! بابا چند بار بگم این کارارو بگذارید بعدا! آخه کلاس که جای شماره دادن نیس! "

خوب یه مثال دیگه می زنم بعد یکم بیشتر وارد میشیم!
شما نوشتن و خوندن رو یاد گرفتین! تا حالا به این فکر کردید که دست خط هر کسی با اون یکی فرق داره اما شما همه ی اونا رو می تونید بخونید؟ این دوباره منعطف بودن مغز آدم رو می رسونه! یا یه نکته ی دیگه، شما هر چقدر بیشتر تمرین کنید دست خطتون بهتر میشه! اینم نشون میده مغز آدم خودشو در طی تمرین به یه معیاری که به نظرش بهتره نزدیک تر می کنه!
اما چطوری؟ مغز آدم چجوری کار میکنه؟ تا حالا از خودتون پرسیدید چجوری یه چیز جدید یاد می گیرید یا چطوری فکر می کنید؟ هر آدمی باید اینو بدونه بنظر من! لا اقل باید یکم خودمونو بشناسیم.
مغز آدم از یه سری سلول عصبی (Neuron) تشکیل شده که هر کدوم سیگنال هایی برای هم میفرستند! جالبه بدونید این سلول های عصبی کاری که می کنن خیلییی سادست مثلا مثل حمع دو تا عدده اما چیزی که باعث میشه بتونن این کارای پیچیدرو انجام بدن اینه که تعداد این سلول ها خیلییی زیاده! مغز آدم حدود 10 به توان 11 تا از این سلول ها داره! تصور این عدد خیلی آسون نیست!
هر نورون تعدادی axom داره که مثل خروجی عمل می کنن و تعداد خیلی زیادی هم dendrite که به عنوان ورودی عمل می کنن. نورون ها یه مقدار مشخصی قدرت سیگنال نیاز دارن تا فعال شن، وقتی فعال شدن یه سیگنال الکتریکی برای سایر نورون ها میفرستن! هر چقدر نورون ها بیشتر استفاده بشن ارتباط بینشون (axonها و dendriteها) قوی تر میشه.
حالا ما همین سیستم رو سعی می کنیم کوچیکترش رو توی کامپیوتر شبیه سازی کنیم. کامپیوتر هایی که الان به اونا دسترسی داریم حتی قدرت پردازش 20 بیلیون نورون رو هم ندارن، ولی با تعداد کمی نورون هم می شه پاسخ های مناسبی از شبکه ی عصبی گرفت.
خوب حالا تو کامپیوتر چطوری نورون ها رو سازمان می دیم؟
نورون ها همونطوری که تو عکس می بینین توی لایه های مختلف قرار می گیرن، لایه ی اول رو لایه ی ورودی (Input Layer) می گن که ورودی ها رو میگیره و بر حسب قدرت ارتباطش با هر نورون توی لایه ی بعدی سیگنال ورودی رو به لایه ی بعد میفرسته! از این به بعد به قدرت ارتباط هر نورون با نورون دیگه وزن (Weight) اون نورون می گیم. مقدار هر نورون توی هر لایه به وزن و مقدار نورون های لایه ی قبلش بستگی داره. در نهایت ما یه لایه ی خروجی داریم که توی این شکل دو تا نورون توشه! لایه های میانی تعدادشون می تونه هر اندازه ای باشه، و تعداد نورون هاشم مثل بقیه ی لایه ها می تونه هر چقدر که بخوایم باشه. بعدا اشاره می کنیم که چطوری انتخاب کنیم تعداد لایه ها و نورون های هر لایه رو.


حالا اینو ما درست کردیم، به چه دردی می خوره؟
یه شبکه ی عصبی مثل یه تابع عمل می کنه که به تعداد نورون های ورودی، ورودی می گیره و به تعداد نورون های خروجی هم خروجی میده! مثلا این شبکه عصبی که تو شکل می بینید به این صورته:
كد:
f(x1, x2, x3, x4, x5) = y1 , y2
حالا این تابع چه تابعیه؟ اینجاس که قدرت شبکه ی عصبی معلوم میشه!
ما میایم و به این تابع 100 تا مثال که جوابشو می دونیم میگیم و هر بار عملیات بازپخشانی (Back propagating) رو انجام میدیم! بازپخشانی یه عملیاتیه که طی اون وزن نورون ها رو طوری تغییر میدیم که جواب های شبکه به جواب هایی که انتظار داشتیم نزدیک تر بشن! یعنی ما در اصل یه تابع می سازیم که خودمون نمیدونیم اون تابع چی هست و فقط چند تا مثال از اون رو داریم!
بگذارید یه مثال بزنم. مثلا شما چطوری جمع کردن رو یاد گرفتین؟ بهتون گفتن 2+2 میشه 4، 2+3 میشه 5 و ... انقدر مثال دیدید تا فهمیدید آهان پس جمع یعنی این!
دقیقا میتونیم همین رو به کامپیوتر یاد بدیم! یعنی یه شبکه عصبی با دو نورون ورودی طراحی می کنیم و یه لایه ی میانی با 3 تا نورون و در نهایت یه لایه ی خروجی با یه نورون (چون تابع جمع دو تا ورودی داره و یک خروجی)
بعد برای کامپیوتر چند تا جواب معلوم رو میگیم! مثلا میگیم 2 و 2 باید بده 4، 2 و 3 باید بده 5 و براش 1000 تا مثال میزنیم! در نهایت ازش میپرسیم حالا بگو 100 و 23 چی میشه؟ (اعدادی که تا بحال برای شبکه عصبیمون مثال نزدیم). و جواب میگیریم مثلا 123.0223! تعجب نکنید شبکه عصبی همیشه قرار نیست جواب قطعی بده، در نهایت می تونیم به یه روشی اونو به جواب قطعی تبدیل کنیم، مثلا توی این مثال روند کردن جواب میده!

ببخشید، چرا تعداد نورون های لایه ی میانی رو گفتین 3 تا؟
" سوال خوبیه! تعداد نورون های لایه های میانی می تونه هر چیزی باشه به جای 3، اما باید توجه داشته باشین هر نورونی که اضافه می کنیم از یه طرف گپ خطا رو کمتر می کنی اما از طرف دیگه زمان بیشتری برای پردازش می گیره و چون تعداد نورون ها زیاد شده تعداد خطا های کوچک هم زیاد تر می شن و یه خطای بزرگ رو ایجاد می کنن! پس باید با روش های مختلف بهترین حالت رو انتخاب کنیم. توی این مثال با آزمایش و خطا به این نتیجه رسیدیم که 3 تا بهترین نتیجرو به ما میده! "

به اون پروسه ای که طی اون مثال میزنیم و عملیات بازپخشانی رو انجام میدیم پروسه ی تعلیم یا Training می گن!
پس بطور خلاصه ما اول یه شبکه ی عصبی طراحی می کنیم که در ابتدا می تونه هر نورونش وزن تصادفی داشته باشه، بعد شبکه ی عصبیمونو تعلیم میدیم با ورودی هایی که جوابشو داریم و بعد از تعلیم دادن به اون ورودی میدیم و ازش جواب می خوایم!
مثلا توی مسابقات شبیه سازی فوتبال خیلی وقت ها تیم ها بازی های دوستانه با هم میگذارن! هدف چیه؟ اینه که Agent ها شبکه ی عصبیشون تعلیم ببینه! جالب نیس؟ این یعنی کامپیوتر میتونه یاد بگیره و طی یادگیریاش تصمیم بگیره! بدون اینکه مغز داشته باشه.

منبع: سیاوش محمودیان - بلاگ - مقدمه ای بر هوش مصنوعی
__________________
Siavash آفلاين است   پاسخ با نقل قول
از Siavash تشكر كرده اند:
aimaryam (۰۶-۱۳-۱۳۸۹), mahdi.spirit (۱۰-۱۲-۱۳۸۹), saeed_goli144 (۰۸-۲۷-۱۳۸۹)

  #ADS
نشان دهنده تبلیغات
تبليغگر
 
 
 
تاريخ عضويت: -
محل سكونت: -
سن: 2010
پست ها: -
 

نشان دهنده تبلیغات is online  
قديمي ۰۸-۲۷-۱۳۸۹, ۰۸:۵۴ قبل از ظهر   #2 (لینک دائم)
عضو جدید
 
آواتار saeed_goli144
 
تاريخ عضويت: آبان ۱۳۸۹
پست ها: 3
تشكرها: 18
1 تشكر در 1 پست
My Mood: Khonsard
پيش فرض

سلام سیاوش
باهات حال می کنم
دمت گرم
saeed_goli144 آفلاين است   پاسخ با نقل قول
از saeed_goli144 تشكر كرده است:
setare22 (۰۸-۲۸-۱۳۸۹)
پاسخ



كاربران در حال ديدن تاپيک: 1 (0 عضو و 1 مهمان)
 

قوانين ارسال
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is فعال
شکلکها فعال است
كد [IMG] فعال است
كدهاي HTML غير فعال است
Trackbacks are فعال
Pingbacks are فعال
Refbacks are فعال




زمان محلي شما با تنظيم GMT +3.5 هم اکنون ۰۳:۴۸ قبل از ظهر ميباشد.


Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0 ©2007, Crawlability, Inc.

Teach and Learn at Hexib | Sponsored by www.Syavash.com and Product In Review

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

Inactive Reminders By Icora Web Design