EN-EZEL 13039 اشتراک گذاری ارسال شده در 7 شهریور، ۱۳۸۸ در مورد شبکه های عصبی چیزی شنیدید؟ این شبکه ها چیزی نیستند جز چند تا ماتریس که می تونند یاد بگیرند و تصمیم گیری کنند. از این شبکه ها می تونید در کار هایی که از یک الگوریتم دقیق پیروی نمی کنند استفاده کنید پس ادامه مطلب رو بخونید. این مطالب رو توی اینترنت دیدم گفتم بد نیست شما هم ببینید اینها از سایت آقای رضا روحی برداشته شده ( برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید. ورود یا ثبت نام ) متن سخنرانی دکتر سرايی 1. مقدمه پياده سازی ويژگی های شگفت انگيز مغز انسان در يک سيستم مصنوعی از ديرباز وسوسه انگيز و مورد توجه بود است. برای افرادی که با مبانی شبکه های عصبی کمتر آشنا هستند، ممکن است پاسخ به سئوالاتی نظير ذيل جالب باشد. v شبکه عصبی چيست؟ v چرا از شبکه عصبی استفاده ميشود؟ v رويای جايگزينی ويژگی های مغز در يک سيستم مصنوعی چقدر ممکن گرديده و در چه زمينه هايي از رشته تحصيلی ما بکارگرفته شده است؟ v مراحل اصلی ايجاد يک شبکه عصبی کدامند؟ و شايد ده ها سئوال جذاب ديگر مطرح گردد. هدف از اين نوشتار معرفی بسيار اجمالی شبکه های عصبی و آشنايي با مبانی آن است. بديهی است ايجاد يک شبکه عصبی با توجه به ماهيت مسئله، نياز به حوصله و صرف وقت بيشتر برای کسب دانش اصول معماری و آموزش شبکه دارد. 2. شبکه عصبی چيست؟ يک برنامه نرم افزاری يا تراشه نیمه هادی است که بتواند همانند مغز انسان عمل نمايد، به گونه ای که: الف- به مرور زمان و تعامل بیشتر با محيط، کارآزموده تر گردد. ب-علاوه بر انجام محاسبات قادر به نتیجه گیری منطقی باشد. ج- در شرايط جديد راهکار مناسب را ارائه دهد. (قابلیت تعمیم). 3. چرا شبکه عصبی علی رغم آنکه نرم افزارهای موجود بخوبی محاسبات ساده و پيچيده را انجام می دهند و برای تصميم گيری در حيطه های مختلف به مديران کمک می کنند، سئوال آنست که چرا رویکرد برنامه نویسی و طراحی سخت افزار باید مطابق الگو و عملکرد مغز انسان متحول شوند؟ هرچند امروزه فنآوری های طراحی، ساخت و توليد رايانه ها و نرم افزارها پيشرفت قابل توجهی نموده است، اما به دلايل ذيل بايد در منطق طراحی و ساخت رایانه ها و همچنين نرم افزارهای موجود متحول گردد: v افزايش سرعت برنامه ای برای تشخيص چهره يک فرد را با ساختار رايانه ها و نرم افزارهای موجود در نظر بگيريد: – به طور یقين برنامه شامل حلقه هايی است که ده ها بار بايد بطور سریال و پی در پی تکرار شود. – در هر تکرار خصوصیت خاصی از صورت را ذخیره نموده و با الگو مقایسه نماید. – بعد از تست کلیه خصوصیات، چهره را تشخیص دهد. سلسله عمليات مزبور، بارها تکرر شده و مدتها وقت دستگاه را ميگيرد، اما آيا تشخيص چهره توسط مغز انسان نيز چنين است. در سيستم مغز، در آن واحد ده ها واحد پردازش (که به نرون موسوم است) در عصب بينايی بطور موازی بکار می افتد و بدليل پردازش موازی ( و نه پی در پی) در زمان بسيار کوتاه چهره تشخيص داده ميشود. نتيجه آنکه : تحول در منطق برنامه نويسی به گونه ای که بجای پردازش سريال، پردازش موازی جایگزین شود، در آينده طراحی رايانه ها بايد مورد توجه قرار گيرد. v حساسيت بالا به رخداد اشتباه بروز اشتباه در فرمت و علائم برنامه نویسی منجر به اتلاف ساعتها وقت در ردیابی، شناسایی و اصلاح برنامه ميگردد. همچنين رخداد اشتباه در منطق برنامه اعم از آنکه یک زیر برنامه یا قسمتی از آن درست کار نکند، منجربه آن خواهد شد که نتیجه حاصله کاملا نادرست گردد، در حالی که عدم عملکرد صحيح قسمتی از نرون ها منجر به از کارافتادگی کامل مغز نميگردد و امکان اتخاذ تصميم صحيح در اين حالت نيز وجود دارد. v رایانه ها و نرم افزارهای موجود قادر نيستند از تجربيات گذشته استفاده نمايند. بازبينی و به هنگام نمودن برنامه های نرم افزاری در دوره های زمانی مختلف اجتناب ناپذير است، در حالی که مغز بطور پيوسته در حال يادگيری و انطباق با محيط است. صرف وقت زياد برای بازبينی و اصلاح دوره ای سیستم های موجود رايانه ای ممکن است منجر به بازيابی و سلامت سيستم نگردد. v عدم ارائه پاسخ مناسب در شرایط جديد با تغيير وروده های برنامه های نرم افزاری، از آنها انتظار نميرود پاسخی ارائه دهند، در حالی که مغز ممکن است علی رغم نداشتن تجربه ای مشخص، هنگاميکه در شرايط جديد قرار ميگيرد، پاسخ مناسبی ارائه دهد. نتيجه: ساختار سخت افزارها و منطق نرم افزارها باید با رويکرد جديدی مبتنی بر مغز انسان بازبينی و اصلاح شوند. برای اين منظور لازم است ساختار مغز مطالعه شود. 2 لینک به دیدگاه
EN-EZEL 13039 مالک اشتراک گذاری ارسال شده در 7 شهریور، ۱۳۸۸ 4. رويای جايگزينی ويژگی های مغز در يک سيستم مصنوعی چقدر ممکن گرديده ؟ در حال حاضر بسياري از سيستمها در قالب هوش مصنوعي و شبكههاي عصبي شبيهسازي شدهاند اما مانع اصلي آنست كه گرچه هريک از نرونهاي بيولوژيكي به تنهايي در مقايسه با نرونهاي مصنوعي كه توسط مدارهاي الكتريكي ساخته ميشوند بسيار كندتر هستند، اما از آنجا که در نرون های بيولوژيکی دسته يا دسته هايي از نرون ها بطور همزمان بکار مافتند، عملكرد مغز بسيار سريعتر است. امروزه مدارهای خاصی با ساختار عملکرد موازی طراحی ميگردد که سرعت آن ها ده ها برابر بيش از رايانه هاي پيشرفته فعلی است. اما هنوز از نظر سرعت با عملکرد مغز فاصله بسياری وجود دارد. ساير خصوصياتی که در بند سوم ذکر گرديد تا حدود زيادی برآورده شده است. [1] 5. بررسی اجمالی ساختار مغز همانند بسياری از اختراعات که الهام گرفته از طبيعت ميباشد، برای شبيه سازی سيستم مزبور نيز، ساختار مغز مورد تحليل واقع شد. در سال 1911 Segal نرون را کشف نمود و بر اساس در دهه 40 ميلادی يعنی حدود 65 سال قبل اولين شبکه عصبی توسط Culloch و Pitts طراحی شد. شبکه مزبور قادر به محاسبه توابع منطقی بود. امروزه حداقل بيش از 50 نوع شبکه عصبی طراحی گرديده است که در علوم مختلف از جمله مهندسی صنايع کاربرد بسياری دارند که در قسمت ششم به آن پرداخته خواهد شد. نرون کوچکترين واحد مستقل پردازش اطلاعات است که متشکل از دندريت، اکسون است که با فاصله های کوچک موسوم به سيناپس از يکديگر جدا ميشوند. دندريتها که بصورت درخت گونه پخش هستند اطلاعات دريافتی بشکل سيگنال را دريافت نموده و و آن را به هسته سلول هدايت ميکنند، يک عمل جمع ساده از کل سيگنالها بسته به وزن و شدت هريک در هسته انجام ميگردد و نتيجه توسط اکسون هدايت ميشود و بسته به شدت آن ممکن است پالس الکتريکی را از سيناپس با شدت بيشتر يا با شدت کمتر عبور دهند و يا ممکن است با دليل ضعيف بودن بار الکتريکی آن را عبور ندهند. با این ديد اجمالی از نحوه عملکرد نرون، بايد سيستمی طراحی گردد که حاوی تعدادی ورودی بوده که بسته به اهميت هريک آنها را با يکديگر جمع ساده جبری نمايد و توسط يک تابع موسوم به تابع تبديل انان را به نرون های ديگر ارسال نمايد. 1. طراحی سيستم شکل ذيل الگويي از يک واحد پردازش شبکه عصبی با توجه به نحوه کارکرد يک نرون، ارائه ميدهد. همانگونه که مشاهده ميگردد، اکسون را ميتوان به خروجی، وزن را به شدت بار و ورودی ها را به دندريت تشبيه نمود. بنابراين اجزاي يك شبكه عصبي عبارتند از: v ورودي ها: وروديها كه بابردار X نشان داده شدهاند ميتوانند خروجي ساير لايهها بوده و با آنكه به حالت خام در اولين لايه و به صورتهاي ذيل باشد: الف - دادههاي عددي و رقمي ب) متون ادبي، فني و … ج) تصوير و يا شكل مثال : در تصميمگيري اعطاي وام ورودي بردار X ميتواند شامل سه متغير: سطح درآمد، سن و ميزان اعتبار متقاضي باشد. v بردار وزن ميزان تاثير ورودي xi بر خروجي y توسط مشخصه وزن اندازهگيري ميشود. به طور مثال به هنگام اعطاي وام اهميت و تاثير درآمد متقاضي و يا سن وي توسط مولفه وزن آنها بر اتخاذ تصميم برآورد ميشود. Wi ها قابل تنظيم بوده و براساس تابع تبديل و نوع الگوريتم يادگيري ( كه در ادامه به توضيح آنها پرداخته شده است.) تعيين ميشوند. v تابع جمع در شبكههاي تك نروني ، تابع جمع در واقع خروجي مسئله را تا حدودي مشخص ميكنند و در شبكههاي چند نروني نيز تابع جمع ميزان سطح فعاليت نرون j در لايههاي دروني را مشخص ميسازد. v تابع تبدبل بديهي است كه تابع جمع پاسخ مورد انتظار شبكه نيست، به طور مثال به هنگام اعطاي وام تابع جمع يك عدد خواهد شد كه بايد به پاسخ بلي يا خير بيان گردد و يا آنكه ارتباط بين سطح داخلي شبكه و جواب لزومآ خطي نيست و ميتواند به شكل غير خطي باشد. بنابراين تابع تبديل عصوي ضروري در شبكههاي عصبي محسوب ميگردد. انواع و اقسام متفاوتي از توابع تبديل وجود دارد كه بنا به ماهيت مسئله كاربرد دارند برخي از آنها عبارتند از: توابع تبديل در شبكههاي عصبي چند لايه (در ذيل توضيح داده خواهدشد) ميتوانند منحصر به فرد بوده و با يكديگر متفاوت باشند. v خروجي منظور از خروجي، پاسخ مسئله است. 2 لینک به دیدگاه
EN-EZEL 13039 مالک اشتراک گذاری ارسال شده در 7 شهریور، ۱۳۸۸ 1. شبكههاي عصبي چند لايه در شبكههاي تك لايه درجه آزادي براي تنظيم پارامترهاي شبكه نظير w اندك بوده و توانايي تقريب مسئله پائين ميآيد. در حالي كه در شبكه هاي چند لايه با توجه به درجه آزادي مناسب براي تنظيم پارامترها ميتوان توانايي شبكه را بالا برد. به طور مثال شبكههاي پيشخور دو لايه با توابع زيگموئيد در لايه اول قادرند توابع بسيار زيادي را با دقت دلخواه تقريب بزنند در حالي كه شبكههاي عصبي تك لايه از چنين توانايي برخوردار نيستند. ميگردد. در واقع تعداد وروديها و خروجيهاي شبكه بر اساس ماهيت مسئله بدست ميآيند، به عبارت ديگر اين دو پارامتر جزء پارامترهاي آزاد طرح نيستند. همانگونه كه قبلا نيز ذكر شد خروجي بر نوع تابع تبديل موثر است. نمونهاي از يك شبكه عصبي دو لايه در ذيل نشان داده شده است: 1. انواع شبكهها از نظر برگشت پذيري v شبكههاي پيشخور (Feed Forward) با توجه به مباحث بند ششم، در شبكههاي تك لايه - بردار ورودي X توسط نرونها را ميتوان طبق رابطه ذيل نشان داد : y = f ( W *X = b ) به بردار خروجي مرتبط ميشود. اين شبكه شكل سادهاي از شبكههاي پيشخور است كه مسير پاسخ همواره رو به جلو پردازش ميشود و به نرونهاي لايه ( لايههاي قبل ) باز نميگردد. اگر ايده شبكههاي feed forward را به چند لايه تعميم دهيم، هر لايه ماتريس وزن W و بردار ورودي X و بردار خروجي مختص خود را دارد. v شبكههاي برگشتي (Recurrent) تفاوت شبكههاي برگشتي يا Recurrent با شبكههاي پيشخور در آن است كه در شبكههاي برگشتي حداقل يك سيگنال برگشتي از يك نرون به همان نرون يا نرونهاي همان لايه يا لايههاي قبل وجود دارد. شبكههاي Recurrent بهتر ميتوانند رفتار مربوط به ويژهگيهاي زماني و پويايي سيستمها را نشان دهند. در اين نوع شبكه ها كه با توجه به ماهيت پوياي مسئله طراحي ميشوند بعد از مرحله يادگيري شبكه نيز پارامترها تغيير كرده و تصحيح مي شوند ( به طور مثال در پيشبيني ها بعد از گذر زمان مقايسه انجام شده و پارامترهاي آزاد شبكه تنظيم ميشوند) نوع خاصی از شبكههاي برگشت پذير به شبکه های هاپفيلد (Hopfield Network) موسوم هستند. در شبكههاي هاپفيلد نرونها نخست توسط ورودي مقدار اولبيه ميگيرند و شبكه به گونهاي خود را تكرار ميكند كه نتيجه آن همگرايي به سمت الگوي مرجع است. در اين شبكه همه نرونها شبيه به يكديگر عمل كرده و هيچ كدام از نرونها به عنوان ورودي يا خروجي از هم متمايز نميشوند. در تشكيل ساختارها يعني تعداد سلولهاي عصبي و لايهها و همچنين شرايط اوليه مسئله بايد دقت نمود كه موارد عملي و پيچيده به يك يا حتي تعداد بيشتري لايه مخفي ورودي و خروجي و تعداد زيادي وزن براي عوامل ورودي احتياج دارند. بسياري از ANN هاي تجاري شامل 4 و يا حتي 5 لايه هستند كه هر كدام شامل 10 تا 1000 المان پردازشي هستند. برخي از ANN ها حاوي ميليونها المان پردازشي هستند. 1. مراحل طراحی شبکه به طور خلاصه مراحل طراحی يک شبکه عصبی عبارتند از: v طرح معماری شبکه شامل: تعيين نوع اتصالات است که ميتواند، اتصال کامل و يا اتصال جزیی باشد. همچنين برگشت پذیری شبکه بايد بررسی گردد شبکه های feedforward network معمولا برای محاسبه فرمول های رياضی ساده بدون پويایی بکار گرفته ميشوند. recurrent network در اغلب مسائل پويا کاربرد دارند. v تعيين نوع تابع تبديل v آموزش شبکه: یعنی تنظیم پارامترهای آزاد طراحی مثل وزن اتصالات و ورودیها، وزن ترم بایاس ب راي يادگيري ابتدا لازم است الگوريتم يادگيري انتخاب شود. مهمترين عاملي كه بايد به آن توجه نمود به كارگيري يك الگوريتم مناسب براي آموزش شبكه است. لازم به ذكر است بيش از 100 نوع الگوريتم يادگيري تا كنون به وجود آمده است كه يك نوع طبقهبندي اين انواع توسط Lippman ارائه شده استكه براساس شكل ورود اطلاعات است و به صورت ذيل ميباشد. الف) الگوريتمهاي يادگيري نظارت شده يا با ناظر (Supervised) در الگوريتم يادگيري با ناظر مجموعهاي از زوجهاي دادهها به دادههاي يادگيري موسوم هستند پس از اعمال ورودي X به شبكه عصبي خروجي حاصل از شبكه y با مقدار ايده آل مقايسه شده و خطا براي تنظيم پارامتر هاي شبكه نظير w محاسبه ميشود به گونهاي كه اگر دفعه بعد به شبكه همان ورودي X اعمال شود خروجي شبكه به y همگرا شده باشد ب) الگوريتمهاي يادگيري نظارت نشده يا بدون ناظر (UNSupervised) در يادگيري بدون ناظر يا يادگيري خود سازمانده (Self - Organized) بردار جواب مطلوب به شبكه اعمال نميشود. در واقع هنگامي كه تعداد لايهها و نرونها افزايش مييابد كار يادگيري در ا لگوريتمهاي با ناظر بسيار كند پيشميرود و اين ايراد اساسي اين دسته از الگوريتمهاست . در الگوريتمهاي بدون ناظر جواب بدست آمده در حافظه بلند مدت ذخيره شده و از همان ابتدا وروديها دستهبندي ميشوند و با استفاده از حافظه مشاركتي بين آنها ارتباط برقرار ميشود. يك نوع الگوريتم خود سازمانده كه توسط كوهنن ابداع شده به صورت ذيل است: - ابتدا نرون برنده I تعيين ميشود - سپس بردارهاي وزني متناظر با تمامي نرونهايي كه در يك همسايگي خاص از نرون برنده قرار دارند طبق فرمول تنظيم ميشوند - پس از اعمال ورودي X بردارهاي وزن نرون برنده و تمامي نرونهاي همجوار ( همجوار به شعاع d ) به سمت بردار ورودي X حركت خواهند كرد. - پس از تعداد زيادي تكرار و ارائه وروديهاي مختلف به شبكه، نرونهاي همجوار، بردارهايي را كه شبيه به هم هستند را ياد خواهند گرفت. 2. نرمافزارها و سخت افزارهاي شبكههاي عصبي ANN ها عمدتا به صورت نرمافزارهاي كاربردي ارائه ميشوند و همانند هر Application يك ANN ميتواند با يك زبان برنامه نويسي يا ابزار برنامه نويسي و يا هر دو برنامه نويسي شود. قسمت اعظم فعاليتهاي برنامه نويسي به الگوريتمهاي آموزشي توابع تبديل و توابع جمع در شبكه هاي عصبي احتصاص دارد. برخي برنامه هاي نرمافزاري نيز وجود دارند كه برايايجاد استقرار ANN ها ميتوانند مفيد باشند همانند: Neuralyst , Nnet sheet . پيشرفتهايي كه در تكنولوژيهاي مربوط به سختافزاري حاصل شده است از مزاياي پردازش موازي بزرگ استفاده ميكند، به عبارت ديگر عمل پردازش به طور همزمان در نرونها انجام ميشود. براي افزايش سرعت محاسبات، يكي از 4 روش ذيل را ميتوان به كاربرد: ¨ كامپيوترهاي عمومي مثل PC ها ¨ پردازشگر هاي موازي IBMSP _2 ¨ چيپهاي عصبي، چيپهاي خاصي كه توانايي محاسبات خيلي سريعي را دارد و در برد دستگاه نصب ميشوند، نظير intel 80 170 NX يا ETANN ¨ بردهاي شتاب دار 3. مزايا و محدوديت هاي شبكه عصبي × شبكه هاي عصبي توان بالقوهاي براي حل مسائلي دارد كه شبيه سازي آنها از طريق منطقي، تكنيكهاي تحليلي سيستمهاي خبره و تكنولوژيهاي استاندارد نرم افزاري مشكل است. × اين تكنيك قادر است در مواقعي كه داده ها در شرايط عدم اطمينان اعم از آنكه دادههافازي باشند ويا به طور ناقص و توام با نويز دريافت شده باشند جواب منطقي ارائه دهد × به دليل پيشرفتهاي تكنيكي از سرعت پردازش بالايي برخوردار شده است. × محاسبهگرهاي عصبي در مواقعي كه شرايط تغييرميكند بسيار منعطف هستند. همچنين نگهداري آنها بسيار ساده است. × سيستمهاي شبكههاي عصبي قادر به توضيح منطق و قاعده كار نيستند و اثبات درستي نتايج بسيار دشوار است چرا كه در بسياري از مسائل وزنهاي تعديل شده قابل تفسير نيستند. بنابراين منطقي كه پشت تصميم نهفته است را نميتوان روشن نموده و اثبات كرد. × محاسبات شبكههاي عصبي معمولا محتاج مقادير زيادي داده براي آموزش و تست مدل است. × در حالت كلي شبكههاي عصبي براي برخي مسائل كارايي ندارند. به طور مثال ANN براي حل مسائل و پردازش دادهها با روش مستدل مناسب نيست. 4. برخی اهم کاربرد شبكههاي عصبي در مباحث مهندسي صنايع شبكههاي عصبي هنگامي كاربرد دارند كه قانون شناخته شدهاي وجود ندارد به عبارت ديگر هنگامي كه يك دستورالعمل يا روش خاصي براي حل مسائل وجود دارد ( همانند روشهاي مرسوم جبري در حل معادلات يا روش Simplex ) بهترآنست كه همان روش به صورت نرم افزار تهيه شود تا امكان دسترسي دقيقتر به پاسخ صحيح فراهم گردد.بنابراين شبكههاي عصبي توان بالقوهاي براي حل مسائلي دارد كه شبيهسازي آنها از طريق منطقي، تكنيكهاي تحليلي و تكنولوژيهاي استاندارد نرمافزاري مشكل است. بنابراين در مسائلي كه تعداد زيادي از عوامل به صورت علت و معلولي به يكديگر وابسته هستند و تشخيص مرز سيستم براحتي امكان پذير نيست ( همانند سيستمهاي پيچيده اقتصادي ، اجتماعي ، پيشبيني سريهاي زماني مسائل مالي، بيمه و … ) و يا مسائل فني كه محاسبه يك پارامتر خاص به تعداد عوامل زياد و نامشخص بستگر دارد ( همانند كنترل بازوي رباتها و … ) شبكههاي عصبي ميتواند كاربرد موثر داشته باشد. در ادامه برخی کاربردهای شبکه عصبی در مهندسی صنايع معرفی ميگردد. v دستهبندي و شناسايي الگو امروزه شبکه های عصبی طراحی شده اند که قادر هستند الگوهای مختلف را دسته بندی کرده و از يک ديگر تفکيک کنند. از اين توانايي شبکه های عصبی در شناسايي و دسته بندی نقاط خارج از کنترل در کنترل کيفيت ( (QC و همچنين شناسايي نقاطی که دارای خود همبستگی هستند بسيار استفاده شده است. کاربرد شبکه هايي که برای تشخيص الگو طراحی شده اند در سيستمهای پشتيبان تصميم گيری (DSS) ، آنجا که لازم است نظرات خبرگان از عامه تفکيک و دسته بندی گردد کاربرد دارد. اينگونه شبکه ها در بسياری ديگر از تکنيکهای مهندسی صنايع نظير تکنولوژی گروهی (GT) و مباحث دسته بندی بهينه ماشين آلات کاربرد فراوان دارد. v پيش بيني هم اکنون بسياری از شبکه های عصبی به گونه ای طراحی و آموزش داده شده اند که قادر به پيش بينی آينده بر اساس يادگيری و حفظ تجارب گذشته هستند. شبکه های پيش بينی قيمت نفت، بازار بورس از جمله اين مسائل محسوب ميشوند. شبکه های پيش بينی کننده بكارگيري وسيعی در مباحث كنترل موجودي، كنترل كيفيت و برنامهريزي تعميرات دارند. هم اکنون مقلاتی وجود دارد که بر اساس مدل هاي باکس-جنکينز طراحی و آموزش داده شده اند. v مدل*سازي و بهينه يابی این گونه شبکه ها بطور وسيع در مسائل برنامهريزي توليد و OR کاربرد دارند، شبکه هايي طراحی شده اند که قادر به جستجوی نقطه بهينه سراسری Global Optimization در زمينه برنامه ريزی های ذيل هستند: l Linear/Quadratic/Goal/Stochastic/Dynamic Programming l TSP, Job- shop Scheduling اينجانب(نویسنده اصلی مطلب) در قسمت سوم پايان نامه مقطع دکترا يک نمونه شبکه عصبی برای يافتن نقطه بهينه سراسری در نوعی برنامه ريزی تصادفی Programming) (Stochastic طراحی نموده ام که علاقه مندان ميتوانند به آن رجوع نمايند. 2 لینک به دیدگاه
ارسال های توصیه شده