oldmagina

هوش مصنوعی ، شبکه های عصبی و منطق فازی

امتیاز دادن به این موضوع:

Recommended Posts

[size=5][color=#0000FF]کمی از تاریخ :[/color][/size]
[size=4]ارسطو نظریه ای به نام قیاس را ارائه داد که این گونه تعریف می شود :[/size]
[center][color=#0000ff]" بحثی که بر اساس آن اصول معینی وابسته به ذات خود وجود دارند و بقیه چیزها بر اساس این اصول موجود ، ضرورت پیدا می کنند ."[/color][/center]
در اواخر قرن هفدهم و اوائل قرن هجدهم میلادی [color=#ff0000]گاتفرید لیبنز[/color] ( Gottfried Libniz ) آلمانی نظریه گسترش زبان ریاضی روش مند را بر مبنای استنتاج منطقی ارائه داد . زبان عمومی ریاضی لیبنز این امکان را فراهم می آورد تا مسائل گوناگون و متنوع را بتوان با ظرافت و دقت بالا بیان کرد و در جهت حل آنها تلاش کرد. البته لیبنز هرگز به موفقیت نهایی در تولید چنین زبانی نرسید.
در قرن نوزدهم [color=#ff0000]جرج بول [/color]( George Boole) انگلیسی جبر بول را ابداع نمود ؛ سیستمی منطقی که هنوز هم به عنوان بخشی از منطق ریاضی و گزاره ای مورد استفاده قرار می گیرد . امروزه جبر بول در ساخت و توسعه درگاههای منطقی برای ساخت تراشه های سیلیکونی مورد استفاده قرار می گیرد.
تقریبا همزمان با جرج بول فردی با عنوان[color=#ff0000] چالرز بابیج[/color] ( Charles Babbage ) اولین ماشین تحلیلی دنیا را ابداع کرد که بعدا با نام کامپیوتر شناخته شد. البته او هرکز موفق به ساختن این ماشین نشد ولی بعدها طرحهای او جهت ساخت یک ماشین کاری واقعی البته به صورت مکانیکی به کار رفت که در واقع اساس کاری کامپیوتر های امروزی بود. در نهایت در دهه 1950 کامپیوتر های الکترونیکی بر اساس همان ماشین تحلیلی ارئه شده بابیج ساخته شدو کامپیوترهای الکترو مکانیکی جای خود را به کامپیوترهایی مبتنی بر لامپهای خلا دادند.
یکی از کسانی که در زمان جنگ جهانی دوم بر روی رمز گشایی کدهای آلمانی کار می کرد[color=#ff0000] آلن تورینگ[/color] ( Alen Turing ) بود . بعد از جنگ او بر روی ایده ساخت سیستم ماشینی که قادر به فکر کردن باشد ، کار می کرد و در سال 1950 مقاله ای با عنوان " ماشینهای محاسبات و هوش " چاپ کرد که یکی از اولین مقالات در زمینه هوش مصنوعی شناخته می شود . تست تورینگ جهت سنجش تعیین موفقیت و یا عدم موفقیت تلاشهایی که برای تولید یک ماشین متفکر انجام می شود ق طراحی شده است. بر اساس این تست [color=#0000ff]زمانی یک ماشین ( کامپیوتر ) هوشمند تلقی می گردد که فردی مخاطب کامپیوتر قرار بگیرد و نتواند تشخیص دهد که طرف مقابلش یک کامپیوتر است و یا یک فرد هوشمند . [/color]البته امروزه این تست به خودی خود تعریف کاملی از یک ماشین هوشمند نیست ولی تلاشی در جهت درک بهتر موضوعاتی مانند پردازش زبان طبیعی به کار گرفته می شود.
عبارت هوش مصنوعی ( Artificial Intelligence ) اولین بار در سال 1956 توسط [color=#ff0000]جان مک کارتی [/color]( John Mac Carthy ) در کنفرانسی در کالج دارتموس مطرح شد. وی در سال 1958 زبان برنامه نویسی LISP را ابداع کرد که هنوز هم به طور گسترده ای در زمینه هوش مصنوعی به کار می رود.
بعد از دهه 1950 هدف از مطالعه هوش مصنوعی ساخت رباتهایی که بتوانند مانند انسان فکر کنند نبود و به جای آن سعی شد تا الگوریتم ها ، روشهای اکتشافی و سیستمهایی مبتنی بر روشهای حل مساله انسان هوشمند ابداع و بکار گرفته شوند . در نتیجه سیستمهایی مانند [color=#ff0000]سیستم قیاسی ایون[/color] ( Even's Analogy ) و [color=#ff0000]سیستم معماری تقلیدی ملانی میچل[/color] ( Melanie Mitchell's Copycat Architecture ) طراحی شدند. این سیستم ها طوری طراحی شدند تا بتوانند مسائل در بردارنده قیاس را حل نمایند.
در سالهای اخیر موضوع هوش مصنوعی با توجه به زمینه هایی که اهمیت خاصی یافته اند ، رونق بیشتری یافته است . زمینه هایی مثل [list]
[*]یادگیری ماشین
[*]تحلیل تصویر
[*]بازی
[*]سیستم های چند عاملی
[*]سیستم های برنامه ریز
[/list] ویرایش شده در توسط oldmagina
  • Upvote 7

به اشتراک گذاشتن این پست


لینک به پست
اشتراک در سایت های دیگر
[color=#0000ff][size=5]زبانهای برنامه نویسی در هوش مصنوعی :[/size][/color]
[size=5][size=4]تعدادی از زبانهای برنامه نویسی به صورت اختصاصی برای ساخت و توسعه سیستمهای نرم افزاری هوشمند ارائه شده اند . البته زبانهای برنامه نویسشی عمومی مانند ++C و جاوا نیز برای این منظور استفاده می شوند . بیشترین علت کاربرد زبانهای غیر اختصاصی در زمینه هوش مصنوعی آشنایی اکثر برنامه نویسان با آنها است. دو زبان برنامه نویسی ویژه ای که به صورت اختصاصی برای ساخت و توسعه سیستمهای هوشمند ساخته شده اند و بیشترین گستردگی را بین برنامه نویسان هوش مصنوعی دارند ، عبارتند از زبانهای برنامه نویسی پرو لوگ و لیسپ .[/size][/size]
[color=#ff0000][size=5][size=4]پرولوگ ( Prolog ) :[/size][/size][/color]
پرولوگ ( Programming in Logic ) زبانی است که طراحی شده است تا برنامه نویس را قادر سازد بانکهای اطلاعاتی را با استفاده از [color=#ff0000]قوانین[/color] ( Rules ) و [color=#ff0000]واقعیات[/color] ( Facts ) ساخته و توسعه دهد . در نهایت سیستمی ساخته می شود که می تواند بوسیله پردازش استنتاجهای منطقی بر روی قوانین و واقعیتهای موجود در بانک اطلاعاتی به سوالات مطرح شده پاسخ بگوید. یک مثال ساده کمی می تواند کمک کننده باشد :
واقعیاتی که می توانیم در زبان پرولوگ وارد کنیم می توانند به این شکل باشند :
[left]
[color=#0000ff]tasty (cheese).[/color][color=#FFFFFF].........................nul[/color]
[color=#0000ff]made_from (cheese,milk).[/color][color=#FFFFFF].........................[/color][color=#FFFFFF]nul[/color]
[color=#0000ff]contains (milk,calcium).[/color][color=#FFFFFF].........................[/color][color=#FFFFFF]nul[/color][/left]

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

[left][color=#0000ff]Contains(X,Y) :-made_from (X,Z) , contains (Z,X).[/color][color=#ffffff].........................[/color][color=#FFFFFF]nul[/color][/left]
با وارد کردن سه واقعیت و یک قانون مثال بالا می توانیم سوال زیر را از سیستم بپرسیم :

[left][color=#ffffff]nul....[/color][color=#0000ff]?- contains (cheese,calcium).[/color][color=#ffffff]..........nul[/color][/left]

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

[left][color=#0000ff]Yes[/color][/left]

این مثال ساده به راحتی طرز کار پرولوگ را نشان می دهد . بانکهای اطلاعاتی ساخته شده با پرولوگ محدود به قوانین و واقعیات نیستند و می توانند پیچیده تر طراحی شوند ولی با تمام این موارد پرولوگ زمانی کارا است که تمام منظور ما از برنامه فقط استنتاجهای منطقی باشد بنابراین بیشتر برنامه نویسان در بسیاری از مسائل استفاده از زبان غیر اختصاصی مانند ++C را بیشتر ترجیح می دادند.

[color=#ff0000]لیسپ ( LISP ) :[/color]
لیسپ ( List Programming ) زبانی است که نسبت به پرولوگ شباهت بیشتری به زبانهای برنامه نویسی ساختیافته ای مانند ++C و پاسکال دارد . زبان لیسپ بر مبنای کار با داده های موجود در لیست ها بنا نهاده شده است . یک لیست با استفاده از دو پرانتز محدود می شود : به عنوان مثال عبارت
[left][color=#0000ff]( A B C )[/color][/left]
یک لیست از سه عنصر تلقی می شود . در زبان لیسپ از لیست ها جهت [color=#ff0000]بیان داده ها[/color] استفاده می شود . جهت [color=#ff0000]بیان برنامه ها[/color] نیز از لیست ها استفاده می شود . شباهت در این دو باعث می شود که در این زبان بتوان با یک برنامه هم همانند یک داده رفتار کرد . با این کار می توان در لیسپ برنامه هایی ایجاد کرد که می توانند محتوای برنامه ای خود را تغییر دهند و همزمان با اجرای برنامه خود را بهبود بخشند . در واقع این امکان وجود دارد که با استفاده از تکنیکهای تکاملی ، برنامه های لیسپ [color=#ff0000]تکامل[/color] پیدا کنند .
زبان لیسپ از نظر ساختار از پرولوگ پیچیده تر است و بیشتر امکاناتی را که سایر زبانهای برنامه نویسی ساختیافته دارند را هم مهیا می کند . از جمله این امکانات می توان به نسبت دهی ، حلقه ها ، ارزیابی تابع ها و کنترل های شرطی اشاره کرد. ویرایش شده در توسط oldmagina
  • Upvote 8

به اشتراک گذاشتن این پست


لینک به پست
اشتراک در سایت های دیگر
[color=#0000ff][size=5]استدلال اتاق چینی :[/size][/color]
[color=#ff0000]جان سیرل[/color] ( John Searle ) یک فیلسوف آمریکایی است که [color=#ff0000]استدلال اتاق چینی[/color] ( Chinese Room ) را در مخالفت با امکان وجود هوش مصنوعی قوی مطرح کرده است.
بر اساس هوش مصنوعی قوی ، سیستم ( یا کامپیوتری ) هوشمند است که تا حد قابل قبولی هوشمندانه رفتار نماید و بتواند هوشیاری و احساسات روحی همانند انسان ارائه نماید . مساله اتاق چینی سیرل بر اساس این ایده مطرح شده است :
" در داخل یک اتاق مرد انگلیسی زبانی حضور دارد که به هیچ زبان دیگری غیر از انگلیسی نمی تواند صحبت کند . نا آشنا ترین ساختار زبانی برای او زبان چینی است که نه می تواند با زبان چینی بخواند و نه صحبت کند و نه بفهمد. در داخل اتاق و در کنار مرد یک سری کارت وجود دارد که بر روی آنها یک سری علامتهای زبان چینی نوشته شده است . همراه با این کارتها هم دستورالعملی به زبان انگلیسی برای کاربرد کارتها وجود دارد.
یک داستان ، به زبان چینی ، از شکاف در به صورت مجموعه ای از کارتها به داخل اتاق فرستاده می شود و در همین حین سوالاتی هم در مورد آن مطرح می شود که به صورت کارتهای مجزایی از شکاف در وارد می شوند. با دنبال کردن راهنمایی هایی که در دسترس مرد انگلیسی زبان قرار گرفته است ، او می تواند با در نظر گرفتن داستان ارائه شده و استفاده از کارتهای چینی جوابهایی را بسازد و از شکاف درب به سوال کننده پس دهد.
اگر سیستم به درستی راه اندازی شود و مقدمات کار به درستی لحاظ شوند جوابهایی که به سوالات داده می شوند تا حدودی می توانند درست باشند . در نهایت ممکن است سوال کننده به این نتیجه برسد که شخصی که داخل اتاق است به درستی محتوای داستان و سوال و جوابهای ارائه شده را می فهمد. "
استدلال سیرل یک استدلال ساده است . مرد در اتاق چینی نمی فهمد . اتاق هم خودش چینی نمی فهمد . قطعات کارت و دستورالعملها هم چینی نمی فهمند. اما سیستم در مجموع می تواند از خود خصوصیاتی نشان دهد که یک شاهد باور کند عنصری از سیستم یا خود سیستم زبان چینی می فهمد. به عبارت دیگر [color=#0000ff]بر اساس استدلال سیرل راه اندازی یک سیستم هوشمند که به روشی هوشمند رفتار نماید لزومی به تولید فهم ، هوشیاری یا هوشمندی واقعی ندارد[/color].
البته در جواب استدلال سیرل پاسخهایی هم مطرح شده است به عنوان مثال : درست است که انسان درون اتاق چینی نمی فهمد ولی مجموعه اتاق ، فرد ، کارتها و راهنمایی ها سیستمی را تشکیل میدهند که در بعضی حالات قادر به درک چینی می باشد.
در مقابل ایده وجود هوش مصنوعی قوی مخالفتهای دیگری هم مطرح شده است . بر اساس [color=#ff0000]مساله توقف[/color] ( Halting Problem ) و [color=#ff0000]برهان ناتمامی گدل[/color] ( Godel's Incompleteness Theorem ) توابعی وجود دارند که نمی توان آنها را با کامپیوتر برنامه نویسی کرد . در نتیجه نمی توان سیستمی داشت که به وسیله آن بتوان همه توابعب که برای هوشمندی واقعی نیاز است ، برنامه ریزی کرد.
جوابی که به صورت بالقوه برای تمام نظریات مخالف امکان وجود هوش مصنوعی قوی مطرح است مشابهت مغز انسان با یک کامپیوتر است . [color=#ff0000]شبکه های عصبی[/color] ( Neural Networks ) یکی از شبیه سازی های ساده ای است که از الگوی مغز انسان ساخته شده است. با ترکیب قدرت محاسباتی نرونهای منفرد و جدا از هم می توان یک شبکه مصنوعی هوشمند تولید کرد که توانایی حل مسائل کاملا پیچیده را دارد . یکی از مسائل پیچیده ای که با توسل به شبکه های عصبی قابل حل شده است روشهای تشخیص چهره است .طرفداران هوش مصنوعی قوی چنین موفقیتهایی را شروعی برای ساخت هوش مصنوعی قوی می دانند ولی مخالفان اشاره دارند که این ماشین هوشمند فقط راه حل هایی برای مسائل ساده خواهد داشت و نه تنها نخواهد توانست همه مسائلی را که انسان می تواند حل کند ، تحلیل و حل کند بلکه نشانه های واقعی از هوشیاری نیز نخواهد داشت.
هوش مصنوعی در همه طرف قرار دارد و در موارد متعددی در ماشین ها و سیستمهایی که هر روزه استفاده می کنیم مورد استفاده قرار دارد . [color=#ff0000]منطق فازی[/color] ( Fuzzy Logic ) به صورت گسترده ای در ماشینهای لباسشویی ، اتومبیل ها و مکانیسمهای کنترل آسانسورها استفاده می شود . جالب است که هیچ کس نمی تواند ادعای هوشمندی این ماشینها را داشته باشد یا حتی چیزی شبیه هوشمندی ! آنها فقط از تکنیک هایی استفاده می نمایند که آنها را توانمند می سازد تا به روشی هوشمند تر از سیستمهای کنترلی ساده تر عمل نمایند. ویرایش شده در توسط oldmagina
  • Upvote 3

به اشتراک گذاشتن این پست


لینک به پست
اشتراک در سایت های دیگر
هوش مصنوعی کلا در خدمت علوم نظامی میتونه بسیار بسیار قدرتمند بکنه ارتش ها رو...
خدا رو شکر که ما در بحث هوش مصنوعی خوب جلو رفتیم و چند دانشگاه بسیار قدرتمند داریم که میتونن کار بکنن!! فقط مسئله اینه که بودجه‌ی زیادی می طلبه....!!!
امیدوارم که اقدامات عملی در این خصوص انجام بگیره! :)

به اشتراک گذاشتن این پست


لینک به پست
اشتراک در سایت های دیگر
[size=5][color=#0000FF]روشهای نمایش :[/color][/size]
یک سیستم برای حل یک مساله که به دنیای واقعی ارتباط دارد ، ابتدا باید بتواند راهی برای نمایش داخلی مساله طرح شده داشته باشد تا بتواند با توجه به آن مسائل را حل کند. تعدادی از این روشهای نمایش عبارتند از [color=#ff0000]شبکه های معنایی[/color] ( Semantic Nets ) ، [color=#ff0000]درختهای معنایی[/color] ( Semantic Trees ) و[color=#ff0000] درختهای جستجو [/color]( Search Trees ) .
روش نمایشی که برای بیان مساله به کار می رود بسیار مهم است. به عبارت دیگر روشی که سیستم بر اساس آن مساله را نمایش می دهد ، متغیر هایی که استفاده می کند و عملگرهایی که بر روی این متغیر ها اعمال می شوند ؛ در نهایت منجر به اختلاف بین یک [color=#ff0000]الگوریتم کارا[/color] و یا یک [color=#ff0000]الگوریتم نا کارامد[/color] می شوند.

[color=#ff0000]شبکه های معنا :[/color]
شبکه معنا ( Semantic Net ) یک روش نمایش متداول در مسائل هوش مصنوعی است. شبکه معنا در واقع یک گراف است که از یکسری نود متصل شده به هم تشکیل شده است. نودها اشیا و پیوند بین نودها رابطه میان اشیا را بیان می کند. این پیوندها هر یک معمولا یک برچسب دارند که خصوصیات آن رابطه را بیان می نماید.
یک مثال ساده می تواند به این شکل باشد :

[center][img]http://upload.wikimedia.org/wikipedia/commons/thumb/6/67/Semantic_Net.svg/305px-Semantic_Net.svg.png[/img][/center]

در شبکه مثالی ارائه شده پیوندها جهت دار می باشند، یعنی جهت برای آنها مهم است.
شبکه های معنا روشی را جهت نمایش دانش درباره اشیا و روابطی که بین آنها وجود دارد ، عرضه می نمایند. داده ها در این شبکه ها مورد استدلال قرار می گیرند و در نتیجه سیستمهایی تولید می شوند که دانشی درباره آن حوزه خاص دارند. لازم به ذکر است که شبکه های معنا محدودیتهایی هم دارند. یکی از محدودیتهای مهم در این شبکه ها ناتوانی آنها در نشان دادن روابط منفی است.البته این نوع حقایق را می توان در قالب عبارت [color=#ff0000]منطقی مسند مرتبه اول[/color] ( First-order predicate logic ) بیان کرد تا بوسیله [color=#ff0000]سیستمهای مبتنی بر قانون[/color] ( Rule-Based Systems ) مدیریت شوند.
هر نود در شبکه معنا یک برچسب دارد که معنی آن نود را بیان می کند . پیوند ها هم برچسب می خورند . پیوندها ارتباط یا اتصال نود ها را بیان می کنند . ساخت دقیق یک شبکه معنا برای ارائه یک مساله می تواند تاثیر زیادی در روشهای حل آن مساله داشته باشد. ویرایش شده در توسط oldmagina
  • Upvote 2

به اشتراک گذاشتن این پست


لینک به پست
اشتراک در سایت های دیگر
[color=#ff0000]وراثت :[/color]
وراثت ( Heredity ) یک نوع رابطه است که مفهوم آن در هوش مصنوعی و برنامه نویسی بسیار مفید است . درک وراثت به راحتی ممکن است. به عنوان مثال می توانیم بگوییم همه پستانداران برای بقای نسلشان زایمان می کنند . همچنین می توانیم بگوییم همه گربه ها پستاندار هستند و این که همسایه ما در خانه اش گربه دارد. در نتیجه می توانیم نتیجه بگیریم که گربه های همسایه ما برای بقای نسلشان زایمان می کنند.
وراثت به ما اجازه می دهد تا خصوصیاتی را از [color=#ff0000]ابر کلاس[/color] ( Super Class ) مشخص نمائیم و بتوانیم یک [color=#ff0000]زیر کلاس [/color]( Sub Class ) را طوری تعریف نمائیم تا این خصوصیات را از ابر کلاس به ارث ببرد . در مثال ما پستانداران یک ابر کلاس برای تمام گربه ها و گربه های سایه ما هستند. کلاس گربه ها یک زیر کلاس از کلاس پستانداران است که در عین حال به عنوان یک ابر کلاس برای گربه های همسایه ما شمرده می شود. برای برنامه نویسانی که با برنامه های شیئ گرا مانند ++C یا جاوا برنامه نویسی کرده اند مفهوم وراثت کاملا آشنا است و با قدرت آن آشنا هستند.

[color=#ff0000]قابها :[/color]
نمایش مبتنی بر قابها ( Frames ) شکلی توسعه یافته از شبکه های معنا است که به ما اجازه می دهد مفهوم وراثت را در شبکه های معنا به کار بریم . در واقع در این روش به جای هر نود یک قاب استفاده می کنیم که می تواند یک نمونه و یا یک کلاس را برای ما توصیف کند. در واقع ما در هر نود یک[color=#ff0000] شیئ[/color] ( Object ) داریم ، با این حساب استفده از شبکه های معنا به شکل قاب بندی شده ، یک روش نمایش شیئ گرا می باشد که می تواند برای ساخت [color=#ff0000]لیستهای خبره[/color] به کار برود. هر قاب یک یا چند جایگاه دارد که به هر کدام از آنها یک مقدار نسبت داده می شود و در واقع این مقادیر هستند که یک شیئ خاص را در آن کلاس تعریف می کنند.


[color=#FF0000]ترکیب قابها و قوانین :[/color]
ترکیب قابها و قوانین با هم غیر ممکن است و در حقیقت بسیاری از سیستم های خبره مبتنی بر قابها از قوانین به روشی مشابه آنچه که سیستمهای ساده مبتنی بر قوانین عمل می کنند ، استفاده می کنند .این سیستمها همچنین از یکسری [color=#FF0000]قضایای تطبیق الگو[/color] ( Pattern Matching Clauses ) استفاده می نمایند تا مقادیری را تعیین نمایند که فقط با یکسری شرایط خاص از میان همه قابها در سیستم منطبق هستند.

پی نوشت 1 : Frame در شبکه های معنا معنی معادل Object در برنامه نویسی شیئ گرا را دارد و یک Frame می تواند دارای مشخصات [color=#ff0000]توصیفی[/color] ، [color=#ff0000]روالها [/color]( Procedures ) و [color=#ff0000]رویدادها[/color]ی ( Demons ) خاص خود باشد .
پی نوشت 2 : وراثت به کار رفته در ساختار Frames مشابه ++C و از نوعی است که امکان ارث بری چند گانه را برای آنها فراهم می کند و این یکی از نقاط قوت این ساختار است ، هرچند که باید کاملا دقت کنیم تا در ساخت Frames تناقضی از طریق وراثت چند گانه پیش نیاید. ویرایش شده در توسط oldmagina

به اشتراک گذاشتن این پست


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

اتفاقا این ترم ( ترم دوم 91-92 ) باید این درس رو پاس کنم ...

کلا اگه می شه چندتا کتاب خوب ( لزوما نه دانشگاهی ) هم برای تحقیق بیشتر معرفی کنید ...

به اشتراک گذاشتن این پست


لینک به پست
اشتراک در سایت های دیگر
[quote name='SAEID' timestamp='1360944926' post='300364']
منبع رو ذکر تا منتقل گردد.
[/quote]
منابع مورد استفاده :[list]
[*]هوش مصنوعی ( Artificial Intelligence ) ، تالیف بن کوپین . ترجمه سید هاشم داور پناه - عبدالرضا میرزایی
[*]Neural Networks and Fuzzy Systems تالیف بارت کوسکو
[*]شبکه های عصبی مصنوعی تالیف مهندس احمد مهر جو
[*]طراحی شبکه های عصبی ( Neural Networks Design ) تالیف مارتین تی هاگان - هاوارد بی دیموت - مارک بیل . ترجمه سید مصطفی کیا
[*]Neural Networks : Algorithms, Applications and Programming Techniques تالیف جیمز ا فریمن و دیوید ام اسکاپورا
[/list]
اینا فعلا کتابای دم دستمه و فعلا قراره مطالبم از اینا باشه . اگر مجبور شدم منبع دیگه ای رو استفاده کنم اینجا اضافه می کنم.
[quote name='100' timestamp='1360946354' post='300371']
سلام
خیلی ممنون ...

اتفاقا این ترم ( ترم دوم 91-92 ) باید این درس رو پاس کنم ...

کلا اگه می شه چندتا کتاب خوب ( لزوما نه دانشگاهی ) هم برای تحقیق بیشتر معرفی کنید ...
[/quote]
این منابع رو به خاطر ساده نوشتنشون انتخاب کردم و ممکنه زیاد به درد مطالعه دانشگاهی نخورن ولی بالاخره یه دید عمومی از موضوع رو بدست می دهند. ویرایش شده در توسط oldmagina
  • Upvote 2

به اشتراک گذاشتن این پست


لینک به پست
اشتراک در سایت های دیگر
[size=5][color=#0000FF]فضاهای جستجو :[/color][/size]
[size=5][size=4]در هوش مصنوعی بسیاری از مسائل را می توان با استفاده از [color=#ff0000]فضاهای جستجو[/color] ( Search Spaces ) مطرح کرد. به عبارت ساده تر یک فضای جستجو بیانی از مجموعه انتخابهای ممکن در مساله داده شده است که یک یا چند تا از آنها راه حل برای مساله هستند. به عنوان مثال در تلاش برای یافتن یک کلمه خاص در یک فرهنگ لغات که 100 صفحه دارد ، فضای جستجو شامل این 100 صفحه می باشد . صفحه ای که شروع به جست و جو به دنبال آن می کنیم هدف نامیده می شود و می تواند با این سوال که کلمه مورد جستجو در آن قرار دارد یا نه تعیین گردد. در ساختن یک روال جستجو مقصود ما تعیین یک یا چند مسیر به سمت یک یا بیشتر هدف است. البته به صرفه ترین مسیر ( کوتاهترین یا کم هزینه ترین ) مد نظر ماست.[/size][/size]
[size=5][size=4]به دلیل اینکه هر فضای جستجو شامل مجموعه ای از حالتها است که این حالتها به وسیله مسیر هایی که نمایانگر فعالیتها هستند ، به هم وصل می شوند ، آنها را با عنوان [color=#ff0000]فضاهای وضعیت[/color] ( State Spaces ) هم می شناسیم. بسیاری از مسائل جستجو می توانند به وسیله یک فضای وضعیت نمایش داده شوند که هدف در آن شروع از یک وضعیت و پایان یافتن در وضعیت مورد پسند تر است ، باشد. برای گذر از یک وضعیت به وضعیت دیگر لازم است فرآیندی به نام [color=#ff0000]برنامه ریزی [/color]( Planning ) استفاده شود.[/size][/size]
  • Upvote 2

به اشتراک گذاشتن این پست


لینک به پست
اشتراک در سایت های دیگر
[quote name='100' timestamp='1360946354' post='300371']
سلام
خیلی ممنون ...

اتفاقا این ترم ( ترم دوم 91-92 ) باید این درس رو پاس کنم ...

کلا اگه می شه چندتا کتاب خوب ( لزوما نه دانشگاهی ) هم برای تحقیق بیشتر معرفی کنید ...
[/quote]

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

به اشتراک گذاشتن این پست


لینک به پست
اشتراک در سایت های دیگر
[color=#0000ff][size=5]درختهای معنایی :[/size][/color]
[size=4]یک [color=#ff0000]درخت معنایی[/color] ( Semantic Tree ) یک نوع شبکه معنی است که خصوصیات زیر را دارا می باشد :[/size][list]
[*][size=4]هر نود ( به جز ریشه ) به طور مستقیم یک [color=#ff0000]نود والد [/color]( Predecessor ) و یک یا چند [color=#ff0000]نود فرزند[/color] ( Successor ) دارد.[/size]
[*][size=4]یک نود وجود دارد که نود قبلی ندارد. این [color=#ff0000]نود ریشه[/color] نامیده می شود. عموما در هنگام جستجو در یک درخت معنا ،از نود ریشه شروع می کنیم( نود ریشه بیانگر نقطه شروع یک مساله است ).[/size]
[*][size=4]بعضی نودها نود بعدی ندارند . این نودها ، نودهای برگ نامیده می شوند. هدف مساله معمولا رسیدن به یک یا چند تا از نود های برگ است .[/size]
[*][color=#ff0000]نیاکان[/color] ( Ancestors ) یک نود پدران آن نود در درخت در یک مسیر مشخص به طرف ریشه می باشند و نودهایی که در مسیر خاصی در درخت بعد از نود مورد نظر قرار می گیرند[color=#ff0000] نوادگان[/color] ( Descendants ) آن نود نامیده می شوند.
[/list]
مثال :
[center][img]http://www.cs.utexas.edu/~sjhwang/projects/tom/tommotivation.jpg[/img][/center]

یک مسیر در یک درخت معنا یک دنباله است که ممکن است شامل یک نود ( مسیری با طول صفر ) باشد . یک مسیر با طول یک شامل یک نود ، شاخه ای که از نود شروع می شود و فرزندی که از طریق آن به آن می رسیم ، است . مسیری که از نود ریشه شروع می شود و. به نود هدف می رسد [color=#ff0000]مسیر کامل[/color] ( Complete Path ) و مسیری که از نود ریشه شروع می شود و به یک برگ غیر هدف می رسد ، [color=#ff0000]مسیر جزئی[/color] ( Partial Path ) نامیده می شود.
در درختهای معنا ف یک خط که دو نود را به هم وصل می کند یک [color=#ff0000]شاخه [/color]( Branch ) نامیده می شود . اگر یک نود n فرزند داشته باشد [color=#ff0000]فاکتور شاخه شدن[/color] ( Branching Factor ) آن n است.نود ریشه در یک درخت در سطح صفر قرار دارد و فرزندان نود ریشه در سطح یک هستند . به همین صورت فرزندان نودهای n همیشه در سطح n+1 خواهند بود.

[color=#0000ff][size=5]درختهای جستجو : [/size][/color]
جستجوی یک شبکه معنا شامل مراحلی مثل [color=#ff0000]پیمایش شبکه [/color]( معمولا به صورت منظم و گاهی به شکل نامنظم ) ، [color=#ff0000]تست نودها[/color] و [color=#ff0000]پیدا کردن نود هدف[/color] است . با توجه به این که در شبکه های معنا به شکل پایه گاهی مسیرهای حلقوی به وجود می آیند که پیمایش آنها پایان پذیر نیست ، بنابر این می توان راههای ممکن را در قالب یک شبکه معنای خاص با عنوان[color=#ff0000] درخت جستجو[/color] ( Search Tree ) بیان کرد.

مثال :
[center][img]http://upload.wikimedia.org/wikipedia/commons/thumb/d/da/Binary_search_tree.svg/300px-Binary_search_tree.svg.png[/img][/center] ویرایش شده در توسط oldmagina
  • Upvote 4

به اشتراک گذاشتن این پست


لینک به پست
اشتراک در سایت های دیگر
[size=5][color=#0000FF]درخت های هدف :[/color][/size]
[color=#FF0000]درخت هدف[/color] ( Thread Tree ) که And-OR Tree هم نامیده می شود ، یک مدل از درخت معنا است که جهت نمایش مسائلی که می توانند به همین ترتیب شکسته شوند بکار می آید. هر جواب برای مساله یک هدف می باشدو هر مرحله منحصر به فرد در طول این راه یک هدف خرد است . هر نود در درخت هدف یک هدف خرد را بیان می کند و فرزندان نودها هم اهداف خرد آن هدف به شمار می روند. بعضی از هدفها فقط در صورتی قابل دسترسی هستند که تمام اهداف خرد آن حل شده باشند . به این نودها در درخت هدف [color=#ff0000]نودهای AND[/color] گفته می شود که [color=#ff0000]اهداف AND[/color] را ارائه می دهند . در سایر حالات ، هدف از طریق دستیابی به هر کدام از این ریز اهداف قابل دسترسی است . چنین اهدافی [color=#ff0000]هدفهای OR[/color] نامیده می شوند و به وسیله [color=#ff0000]نودهای OR[/color] در درخت جستجو ارائه می شوند. درختهای هدف مانند سایر درختان معنایی و مشابه درختهای جستجو رسم می شوند . تفاوت اصلی بین درختان هدف و درختان جستجوی معمولی در این است که در این درختان جهت حل یک مساله تعدادی از ریز مسائل باید حل شوند. به این منظور ، نودهای هدف به جای نودهای هدف نودهای موفقیت نامیده می شوند چرا که هر نود برگ موفقیتی در یک قسمت کوچک مساله را بیان می کند.
مثال :

[center][img]http://upload.wikimedia.org/wikipedia/commons/thumb/7/7a/Threaded_tree.svg/220px-Threaded_tree.svg.png[/img][/center]

[color=#ff0000]نودهای موفقیت[/color] معمولا نودهای and هستند . نودهای برگی که نودهای or باشند معمولا حل نمی شوند و [color=#ff0000]نودهای خطا[/color] نامیده می شوند.
یکی از دلایلی که شکستن مسائل به اهداف خرد را بسیار مورد توجه قرار داده است شکل رفتاری انسانها است که معمولا به همین روش برای حل مشکلات اقدام می کنند . مثلا اگر کسی می خواهد برای مهمانان دعوت شده اش به خانه شام آماده کند ، در مرحله اول باید اهداف خردی را مشخص کند و بعد از حل آنها مساله اصلی قابل حل خواهد بود :[list]
[*]نوع غذا و دستورالعمل تهیه آن مشخص شود.
[*]محل تهیه و منابع مالی برای مواد اولیه مشخص شود.
[*]مواد اولیه تهیه شود .
[*]غذا پخته شود.
[*]میز چیده و آماده شود.
[/list]
حل مسائل به این طریق برای انسانها بسیار منطقی به نظر می رسد زیرا در مقابله با مسائل پیچیده می توان با خرد کردن آنها مانند یکسری مسائل ساده و کوچکتر حلشان کرد.انسانها به این روش بسیار خوب عمل میکنند و معمولا به جواب می رسند. در برنامه نویسی برای کامپیوتر هم این روش در بعضی مسائل کارساز است. دو روش عمده جهت شکستن یک مساله به اهداف خرد وجود دارد: روش بالا به پایین و روش پایین به بالا.
[color=#FF0000]در روش بالا به پایین[/color] ابتده مساله اصلی به اهداف کوچکتر شکسته می شودو به همین ترتیب آن اهداف هم به اهداف ریزتر خرد می شوند و این عمل تا رسیدن به نودهای برگ یا [color=#FF0000]نودهای موفقیت [/color]( که در واقع [color=#FF0000]مسائل ساده قابل حل[/color] هستند ) ادامه پیدا می کند .در [color=#ff0000]روش پائین به بالا[/color] ابتدا لازم است که همه اهداف خردی که جهت حل کامل مساله لازم می باشند تعیین گردند . در ادامه شروع به حل این نودهای موفقیت می شود و این کار به قدری ادامه پیدا می کند تا جواب کلی نمایان شود.
انسانها همواره بر اساس یکی از این دو روش فکر می کنند . حل یک مساله تجاری از بالا به پایین به این معنی است که ابتدا یک تصویر جامع از موفقیت در نظر گرفته شود و سپس به گونه ای عمل شود که اهداف خردی که جهت تحقق هدف اصلی لازم است ، محقق شوند. این به معنی آن است که اهداف خرد به مدیران سطح میانی ارجاع پیدا می کنند و از آنها خواسته می شود تا آن کارها را انجام دهند . هر کدام از مدیران سطح میانی هم آن وظیفه را به چند بخش تقسیم کرده و انجام هر بخش را به یک زیر دست خود واگذار می کنند . در نهایت مساله با حل شدن در پایین ترین سطح به صورت کامل حل خواهد شد ، بدون آنکه مدیر اصلی بداند که چطور جزئیات هر قسمت حل شده است و نیز عاملان جزء سیستم هم قسمت مساله خود را حل می کنند بدون آنکه بدانند خروجی آنها چه تاثیری در کل سیستم می گذارد.
در مقابل روش حل مساله تجاری به صورت پایین به بالا این است که تمام مسائل مجزا مشخص شوند و به دنبال حل آنها باشیم ، بدون این که سازماندهی خاصی برای این کار وجود داشته باشد. در این بین سیستمها ممکن است نیاز به ارتقا داشته باشند و بخشهای مشخص نیاز به ساعات کار بیشتری پیدا کنند . تئوری پشت صحنه این شکل الگوریتم آن است که اگر تمام قسمتهای مجزا در تجارت به درستی عمل نمایند ، در نهایت سیستم هم به درستی عمل خواهد کرد. ویرایش شده در توسط oldmagina
  • Upvote 3

به اشتراک گذاشتن این پست


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

به اشتراک گذاشتن این پست


لینک به پست
اشتراک در سایت های دیگر

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

کاربر محترم برای ارسال نظر نیاز به یک حساب کاربری دارید.

ایجاد یک حساب کاربری

ثبت نام برای یک حساب کاربری جدید در انجمن ها بسیار ساده است!

ثبت نام کاربر جدید

ورود به حساب کاربری

در حال حاضر می خواهید به حساب کاربری خود وارد شوید؟ برای ورود کلیک کنید

ورود به سیستم

  • مرور توسط کاربر    0 کاربر

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