وبلاگ چت روم کامپیوتر و شبکه در سایت الفور
دادهکاوی پایگاهها و مجموعههای حجیم دادهها را در پی کشف واستخراج دانش مورد تحلیل و کند و کاوهای ماشینی (و نیمهماشینی) قرار میدهد. این گونه مطالعات و کاوشها را به واقع میتوان همان امتداد و استمرار دانش کهن و همه جا گیر آمار دانست. تفاوت عمده در مقیاس، وسعت و گوناگونی زمینهها و کاربردها، و نیز ابعاد و اندازههای دادههای امروزین است که شیوههای ماشینی مربوط به یادگیری، مدلسازی، و تعلّم را طلب مینماید.
اصلاح Data Mining همان طور که از ترجمه آن به معنی داده کاوی مشخص میشود به مفهوم استخراج اطلاعات نهان و یا الگوها وروابط مشخص در حجم زیادی از دادهها به یک یا چند بانک اطلاعاتی بزرگ است.
بسیاری از شرکتها و موسسات دارای حجم انبوهی از اطلاعات هستند. تکنیکهای دادهکاوی به طور تاریخی به گونهای گسترش یافتهاند که به سادگی میتوان آنها را با ابزارهای نرمافزاری امروزی و موجود در این موسسات تطبیق داده و از اطلاعات جمع آوری شده فعلی بهترین بهره را برد. در صورتی که سیستمهای Data Mining بر روی سکوهای Client/Server قوی نصب شده باشد و دسترسی به بانکهای اطلاعاتی بزرگ فراهم باشد، به کمک چنین سیستمهایی میتوان به سوالاتی از قبیل :کدامیک از مشتریان ممکن است خریدار کدامیک از محصولات آینده شرکت باشد «چراًدر کدام مقطع زمانی»و بسیاری از موارد مشابه پاسخ داد.
یکی از ویژگیهای کلیدی در بسیاری از ابتکارات مربوط به تامین امنیت ملی داده کاوی است. داده کاوی که به عنوان ابزاری برای کشف جرایم، ارزیابی میزان ریسک و فروش محصولات به کار میرود، در بر گیرنده ابزارهای تجزیه و تحلیل اطلاعات به منظور کشف الگوهای معتبر و ناشناخته در بین انبوهی از داده هاست.داده کاوی غالبا در زمینه تامین امنیت ملی به منزله ابزاری برای شناسایی فعالیتهای افراد خرابکار شامل جابه جایی پول و ارتباطات بین آنها و همچنین شناسایی و ردگیری خود آنها با برسی سوابق مربوط به مهاجرت و مسافرت هاست. داده کاوی پیشرفت قابل ملاحظهای را در نوع ابزارهای تحلیل موجود نشان میدهد اما محدودیتهایی نیز دارد. یکی از این محدودیتها این است که با وجود اینکه به آشکارسازی الگوها و روابط کمک میکند اما اطلاعاتی را در باره ارزش یا میزان اهمیت آنها به دست نمیدهد. دومین محدودیت آن این است که با وجود توانایی شناسایی روابط بین رفتارها و یا متغیرها لزوما قادر به کشف روابط علت و معلولی نیست. موفقیت داده کاوی را نباید در گرو بهره گیری از کارشناسان فنی و تحلیل گران کار آزمودهای است که از توانایی کافی برای طبقه بندی تحلیلها و تغییر آنها برخور دار هستند. بهره برداری از داده کاوی رو بر دو بخش دولتی و خصوصی رو به گسترش است. صنایعی چون بانکداری، بیمه، بهداشت و بازار یابی آنرا عموما برای کاهش هزینهها، ارتقاء کیفی پژوهشها و بالاتر بردن میزان فروش به کار میبرند. کاربرد اصلی داده کاوی در بخش دولتی به عنوان ابزاری برای تشخیص جرایم بودهاست اما امروزه دامنه بهره برداری از آن گسترش روز افزونی یافته و سنجش و بهینه سازی برنامهها ربا نیز در بر میگیرد. برسی برخی از برنامههای کاربردی مربوط به داده کاوی که برای تامین امنیت ملی به کار میروند نشان دهنده رشد قابل ملاحظهای در رابطه با کمیت و دامنه دادههایی است که باید تجزیه و تحلیل شوند. تواناییهای فنی در داده کاوی از اهمیت ویژهای برخوردار اند اما عوامل دیگری نیز مانند چگونگی پیاده سازی و نظارت ممکن است نتیجه کار را تحت تاپیر قرار دهند. یکی از این عوامل کیفیت داده هاست که بر میزان دقت و کامل بودن آن دلالت دارد. عامل دوم میزان سازگاری نرمافزار داده کاوی با بانکهای اطلاعاتی است که از سوی شرکتهای متفاوتی عرضه میشوند عامل سومی که باید به آن اشاره کرد به بیراهه رفتن داده کاوی و بهره برداری از دادهها به منظوری است که در ابتدا با این نیت گرد آوری نشدهاند حفظ حریم خصوصی افراد عامل دیگری است که باید به آن توجه داشت اصولا به پرسشهای زیر در زمینه داده کاوی باید پاسخ داده شود:
کاوش در دادهها بخشی بزرگ از سامانههای هوشمند است. سامانههای هوشمند زیر شاخهایست بزرگ و پرکاربرد از زمینه علمی جدید و پهناور یادگیری ماشینی که خود زمینهایست در هوش مصنوعی.
فرایند گروه گروه کردن مجموعهای از اشیاء فیزیکی یا مجرد به صورت طبقههایی از اشیاء مشابه هم را خوشهبندی مینامیم.
با توجه به اندازههای گوناگون (و در اغلب کاربردها بسیار بزرگ و پیچیده) مجموعههای دادهها مقیاسپذیری الگوریتمهای به کار رفته معیاری مهم در مفاهیم مربوط به کاوش در دادهها است.
کاوشهای ماشینی در متون حالتی خاص از زمینه عمومیتر کاوش در دادهها بوده، و به آن دسته از کاوشها اطلاق میشود که در آنها دادههای مورد مطالعه از جنس متون نوشته شده به زبانهای طبیعی انسانی باشد.
داده کاوی به بهره گیری از ابزارهای تجزیه و تحلیل دادهها به منظور کشف الگوها و روابط معتبری که تا کنون ناشناخته بودهاند اطلاق میشود. این ابزارها ممکن است مدلهای آماری الگوریتمهای ریاضی و روشهای یاد گیرنده (Machine Laming Method) باشند که کار این خود را به صورت خودکار و بر اساس تجربهای که بر اساس تجربهای که از طریق شبکههای عصبی (Networks Several) یا درختهای تصمیم گیری (Decision Tree) به دست میآورند بهبود میبخشد. داده کاوی منحصر به گردآوری و مدریت دادهها نبوده و تجزیه و تحلیل اطلاعات و پیش بنی را نیز شامل میشود برنامههای کاربردی که با برسی فایلهای متن یا چند رسانهای به کاوش دادههای پردازنده پارامترهای گوناگونی را در نظر میگیرد که عبارت اند از: *رابطه (Association): الگوهایی که بر اساس آن یک رویداد به دیگری مربوط میشود مثلا خرید قلم به خرید کاغذ.
برنامههای کاربردی که در زمینه تجزیه و تحلیل اطلاعات به کار میروند از امکاناتی چون پرس و جوی ساخت یافته (Structured query) که در بسیاری از بانکهای اطلاعاتی یافت میشود و در ابزارهای تجزیه و تحلیل آماری برخوردار اند اما برنامههای مربوط به داده کاوی در عین برخورداری از این قابلیتها از نظر نوع با آنها تفاوت دارند. بسیاری از ابزارهای ساده برای تجزیه و تحلیل دادهها روشی بر پایه راستی آزمایی (verifi action)را به کار میبرند که در آن فریضهای بسط داده شده آنگاه دادهها برای تایید یا رد آن بررسی میشوند. به طور مثال ممکن است این نظریه مطرح شود که فردی که یک چکش خریده حتماً یک بسته میخ هم خواهد خرید. کارایی این روش به میزان خلاقیت کاربر برای اریه فریضههای متنوع و همچنین ساختار برنامه بکار رفته بستگی دارد. در مقابل در داده کاوی روشهایی برای کشف روابط بکار برده میشوند و به کمک الگوریتمهایی روابط چند بعدی بین دادهها تشخیص داده شده و آنهایی که یکتا (unique) یا رایج هستند شناسایی میشوند. به طور مثال در یک فروشگاه سختافزار ممکن است بین خرید ابزار توسط مشتریان با تملک خانه شخصی یا نوع خودرو، سن، شغل، میزان درآمد یا فاصله محل اقامت آنها با فروشگاه رابطهای برقرار شود.
در نتیجه قابلیتهای پیچیده اش برای موفقیت در تمرین داده کاوی دو مقدمه مهم است یکی فرمول واضحی از مشکل که قابل حل باشد و دیگری دسترسی به داده متناسب. بعضی از ناظران داده کاوی را مرحلهای در روند کشف د انش در پایگاه دادهها میدانند (KDD). مراحل دیگری در روند KDD به صورت تساعدی شامل، پاکسازی داده، انتخاب داده انتقال داده، داده کاوی، الگوی ارزیابی، و عرضه دانش میباشد. بسیاری از پیشرفتها در تکنولوژی و فرآیندهای تجاری بر رشد علاقه مندی به داده کاوی در بخشهای خصوصی و عمومی سهمی داشتهاند. بعضی از این تغییرات شامل:
علاوه بر پیشرفت ابزارهای مدیریت داده، افزایش قابلیت دسترسی به داده و کاهش نرخ نگهداری داده نقش ایفا میکند. در طول چند سال کذشته افزایش سریع جمع آوری و نگه داری حجم اطلاعات وجود داشتهاست. با پیشنهادهای برخی از ناظران مبنی بر آنکه کمیت دادههای دنیا به طور تخمینی هر ساله دوبرابر میگردد. در همین زمان هزینه ذخیره سازی دادهها بطور قابل توجهی از دلار برای هر مگابایت به پنی برای مگابایت کاهش پیدا کردهاست. مطابقا قدرت محاسبهها در هر 18– 24ماه به دوبرابر ارتقاء پیدا کردهاست این در حالی است که هزینه قدرت محاسبه رو به کاهش است. داده کاو به طور معمول در دو حوزه خصوصی و عمومی افزایش پیدا کردهاست. سازمانها داده کاوی را به عنوان ابزاری برای بازدید اطلاعات مشتریان کاهش تقلب و اتلاف و کمک به تحقیقات پزشکی استفاده میکنند. با اینهمه ازدیاد داده کاوی به طبع بعضی از پیاده سازی و پیامد اشتباه را هم دارد.اینها شامل نگرانیهایی در مورد کیفیت دادهای که تحلیل میگردد، توانایی کار گروهی پایگاههای داده و نرمافزارها بین ارگانها و تخطیهای بالقوه به حریم شخصی میباشد.همچنین ملاحظاتی در مورد محدودیتهایی در داده کاوی در ارگانها که کارشان تاثیر بر امنیت دارد، نادیده گرفته میشود.
در حالیکه محصولات داده کاوی ابزارهای قدرتمندی میباشند، اما در نوع کاربردی کافی نیستند.برای کسب موفقیت، داده کاوی نیازمند تحلیل گران حرفهای و متخصصان ماهری میباشد که بتوانند ترکیب خروجی بوجود آمده را تحلیل و تفسیر نمایند.در نتیجه محدودیتهای داده کاوی مربوط به داده اولیه یا افراد است تا اینکه مربوط به تکنولوژی باشد.
اگرچه داده کاوی به الگوهای مشخص و روابط آنها کمک میکند، اما برای کاربر اهمیت و ارزش این الگوها را بیان نمیکند.تصمیماتی از این قبیل بر عهده خود کاربر است.برای نمونه در ارزیابی صحت داده کاوی، برنامه کاربردی در تشخیص مظنونان تروریست طراحی شده که ممکن است این مدل به کمک اطلاعات موجود در مورد تروریستهای شناخته شده، آزمایش شود.با اینهمه در حالیکه ممکن است اطلاعات شخص بطور معین دوباره تصدیق گردد، که این مورد به این منظور نیست که برنامه مظنونی را که رفتارش به طور خاص از مدل اصلی منحرف شده را تشخیص بدهد.
تشخیص رابطه بین رفتارها و یا متغیرها یکی دیگر از محدودیتهای داده کاوی میباشد که لزوماًروابط اتفاقی را تشخیص نمیدهد.برای مثال برنامههای کاربردی ممکن است الگوهای رفتاری را مشخص کند، مثل تمایل به خرید بلیط هواپیما درست قبل از حرکت که این موضوع به مشخصات درآمد، سطح تحصیلی و استفاده از اینترنت بستگی دارد.در حقیقت رفتارهای شخصی شامل شغل(نیاز به سفر در زمانی محدود)وضع خانوادگی(نیاز به مراقبت پزشکی برای مریض)یا تفریح (سود بردن از تخفیف دقایق پایانی برای دیدن مکانهای جدید) ممکن است بر روی متغیرهای اضافه تاثیر بگذارد.
Two Crows Corporation, Introduction to Data Mining and Knowledge Discovery, Third Edition (Potomac, MD: Two Crows Corporation, 1999); Pieter Adriaans and Dolf Zantinge, Data Mining New York: Addison Wesley, 1996
John Makulowich, “Government Data Mining Systems Defy Definition,” Washington Technology, 22 February 1999, [http://www.washingtontechnology.com/news/13_22/tech_ features/393-3.html
Jiawei Han and Micheline Kamber, Data Mining: Concepts and Techniques (New York: Morgan Kaufmann Publishers, 2001), p. 7
Pieter Adriaans and Dolf Zantinge, Data Mining (New York: Addison Wesley, 1996), pp. 5-6
Two Crows Corporation, Introduction to Data Mining and Knowledge Discovery, Third Edition (Potomac, MD: Two Crows Corporation, 1999), p.4 .
شبکه عصبی مجموعهای از نورونهای زیستی به هم متصل است. در استفادههای جدیدتر این عبارت به شبکه عصبی مصنوعی که از نورونهایی مصنوعی ساخته شدهاست هم اشاره دارد. بنابراین عبارت "شبکه عصبی" در حالت کلی به دو مفهوم مختلف اشاره دارد:
در حالت کلی، یک شبکه عصبی زیستی از مجموعه یا مجموعهای از نورونهای به صورت فیزیکی به هم متصل یا از لحاظ عملکردی به هم وابسته تشکیل شدهاست. هر نورون میتواند به تعداد بسیار زیادی از نورونها وصل باشد و تعداد کل نورونها و اتصالات بین آنها میتواند بسیار زیاد باشد. اتصالات، که به آنها سیناپس گفته میشود، معمولاً از آکسونها و دندریتها تشکلیل شدهاند.
هوش مصنوعی و مدل سازی شناختی سعی بر این دارند که بعضی از خصوصیات شبکههای عصبی را شبیه سازی کنند. این دو اگرچه در روشهاشان به هم شبیه هستند اما هدف هوش مصنوعی حل مسائل مشخصی است در حالی که هدف مدل سازی شناختی ساخت مدلهای ریاضی سامانههای نورونی زیستی است.
شبکههای عصبی زیستی مجموعهای بسیار عظیم از پردازشگرهای موازی به نام نورون اند که به صورت هماهنگ برای حل مسئله عمل میکنند و توسط سیناپسها (ارتباطهای الکترومغناطیسی) اطلاعات را منتقل میکنند. در این شبکهها اگر یک سلول آسیب ببیند بقیه سلولها میتوانند نبود آنرا جبران کرده و نیز در بازسازی آن سهیم باشند. این شبکهها قادر به یادگیری اند. مثلا با اعمال سوزش به سلولهای عصبی لامسه، سلولها یاد میگیرند که به طرف جسم داغ نروند و با این الگوریتم سامانه میآموزد که خطای خود را اصلاح کند. یادگیری در این سامانهها به صورت تطبیقی صورت میگیرد، یعنی با استفاده ازمثالها وزن سیناپسها به گونهای تغییر میکند که در صورت دادن ورودیهای تازه سامانه پاسخ درستی تولید کند.
شبکه عصبی مصنوعی یک سامانه پردازشی دادهها است که از مغز انسان ایده گرفته و پردازش دادهها را به عهده پردازندههای کوچک و بسیار زیادی سپرده که به صورت شبکهای به هم پیوسته و موازی با یکدیگر رفتار میکنند تا یک مسئله را حل نمایند. در این شبکهها به کمک دانش برنامه نویسی، ساختار دادهای طراحی میشود که میتواند همانند نورون عمل کند. که به این ساختارداده گره گفته میشود. بعد باایجاد شبکهای بین این گرهها و اعمال یک الگوریتم آموزشی به آن، شبکه را آموزش میدهند. در این حافظه یا شبکه عصبی گرهها دارای دو حالت فعال (روشن یا 1) و غیرفعال (خاموش یا 0) اند و هر یال (سیناپس یا ارتباط بین گرهها) دارای یک وزن میباشد. یالهای با وزن مثبت، موجب تحریک یا فعال کردن گره غیر فعال بعدی میشوند و یالهای با وزن منفی، گره متصل بعدی را غیر فعال یا مهار (در صورتی که فعال بوده باشد) میکنند.
1. از قرن نوزدهم به طور همزمان اما جداگانه از سویی نروفیزیولوزیستها سعی کردند سامانه یادگیری و تجزیه و تحلیل مغز را کشف کنند و از سوی دیگر ریاضیدانان تلاش کردند تا مدل ریاضی بسازند که قابلیت فراگیری و تجزیه و تحلیل عمومی مسائل را دارا باشد. اولین کوششها در شبیه سازی با استفاده از یک مدل منطقی توسط مک کلوک و والتر پیتز انجام شد که امروزه بلوک اصلی سازنده اکثر شبکههای عصبی مصنوعی است. این مدل فرضیههایی در مورد عملکرد نورونها ارائه میکند. عملکرد این مدل مبتنی بر جمع ورودیها و ایجاد خروجی است. چنانچه حاصل جمع ورودیها از مقدار آستانه بیشتر باشد اصطلاحا نورون برانگیخته میشود. نتیجه این مدل اجرای توابع ساده مثل AND و OR بود.
2. نه تنها نروفیزیولوژیستها بلکه روان شناسان و مهندسان نیز در پیشرفت شبیه سازی شبکههای عصبی تاثیر داشتند. در سال 1958 شبکه پرسپترون توسط روزنبلات معرفی گردید. این شبکه نظیر واحدهای مدل شده قبلی بود. پرسپترون دارای سه لایه به همراه یک لایه وسط که به عنوان لایه پیوند شناخته شده میباشد، است. این سامانه میتواند یاد بگیرد که به ورودی داده شده خروجی تصادفی متناظر را اعمال کند. سامانه دیگر مدل خطی تطبیقی نورون میباشد که در سال 1960 توسط ویدرو و هاف (دانشگاه استنفورد) به وجود آمد که اولین شبکههای عصبی به کار گرفته شده در مسائل واقعی بودند. Adalaline یک دستگاه الکترونیکی بود که از اجزای سادهای تشکیل شده بود، روشی که برای آموزش استفاده میشد با پرسپترون فرق داشت.
3. در سال 1969 میسکی و پاپرت کتابی نوشتند که محدودیتهای سامانههای تک لایه و چند لایه پرسپترون را تشریح کردند. نتیجه این کتاب پیش داوری و قطع سرمایه گذاری برای تحقیقات در زمینه شبیه سازی شبکههای عصبی بود. آنها با طرح اینکه طرح پرسپترون قادر به حل هیچ مساله جالبی نمیباشد، تحقیقات در این زمینه را برای مدت چندین سال متوقف کردند.
4. با وجود اینکه اشتیاق عمومی و سرمایه گذاریهای موجود به حداقل خود رسیده بود، برخی محققان تحقیقات خود را برای ساخت ماشینهایی که توانایی حل مسائلی از قبیل تشخیص الگو را داشته باشند، ادامه دادند. از جمله گراسبگ که شبکهای تحت عنوان Avalanch را برای تشخیص صحبت پیوسته و کنترل دست ربات مطرح کرد. همچنین او با همکاری کارپنتر شبکههای ART را بنانهادند که با مدلهای طبیعی تفاوت داشت. اندرسون و کوهونن نیز از اشخاصی بودند که تکنیکهایی برای یادگیری ایجاد کردند. ورباس در سال 1974 شیوه آموزش پس انتشار خطا را ایجاد کرد که یک شبکه پرسپترون چندلایه البته با قوانین نیرومندتر آموزشی بود.
پیشرفتهایی که در سال 1970 تا 1980 بدست آمد برای جلب توجه به شبکههای عصبی بسیار مهم بود. برخی فاکتورها نیز در تشدید این مساله دخالت داشتند، از جمله کتابها و کنفرانسهای وسیعی که برای مردم در رشتههای متنوع ارائه شد. امروز نیز تحولات زیادی در تکنولوژی ANN ایجاد شدهاست.
شبکههای عصبی با توانایی قابل توجه خود در استنتاج نتایج از دادههای پیچیده میتوانند در استخراج الگوها و شناسایی گرایشهای مختلفی که برای انسانها و کامپیوتر شناسایی آنها بسیار دشوار است استفاده شوند. از مزایای شبکههای عصبی میتوان موارد زیر را نام برد:
1. یادگیری تطبیقی : توانایی یادگیری اینکه چگونه وظایف خود را بر اساس اطلاعات داده شده به آن و یا تجارب اولیه انجام دهد در واقع اصلاح شبکه را گویند.
2. خود سازماندهی : یک شبکه عصبی مصنوعی به صورت خودکار سازماندهی و ارائه دادههایی که در طول آموزش دریافت کرده را انجام دهد. نورونها با قاعده? یادگیری سازگار شده و پاسخ به ورودی تغییر مییابد.
3. عملگرهای بیدرنگ : محاسبات در شبکه عصبی مصنوعی میتواند به صورت موازی و به وسیله سختافزارهای مخصوصی که طراحی و ساخت آن برای دریافت نتایج بهینه قابلیتهای شبکه عصبی مصنوعی است انجام شود.
4. تحمل خطا : با ایجاد خرابی در شبکه مقداری از کارایی کاهش مییابد ولی برخی امکانات آن با وجود مشکلات بزرگ همچنان حفظ میشود.
5. دسته بندی : شبکههای عصبی قادر به دسته بندی ورودیها بر ای دریافت خروجی مناسب میباشند.
6. تعمیم دهی : این خاصیت شبکه را قادر میسازد تا تنها با برخورد با تعداد محدودی نمونه، یک قانون کلی از آن را به دست آورده، نتایج این آموختهها را به موارد مشاهده از قبل نیز تعمیم دهد. توانایی که در صورت نبود آن سامانه باید بی نهایت واقعیتها و روابط را به خاطر بسپارد.
7. پایداری- انعطاف پذیری : یک شبکه عصبی هم به حد کافی پایدار است تا اطلاعات فراگرفته خود را حفظ کند و هم قابلیت انعطاف و تطبیق را دارد و بدون از دست دادن اطلاعات قبلی میتواند موارد جدید را بپذیرد.
یک شبکه عصبی به طور کلی با یک کامپیوتر سنتی در موارد زیر تفاوت دارد :
1. شبکههای عصبی دستورات را به صورت سری اجرا نکرده، شامل حافظهای برای نگهداری داده و دستورالعمل نیستند.
2. به مجموعهای از ورودیها به صورت موازی پاسخ میدهند.
3. بیشتر با تبدیلات و نگاشتها سروکار دارند تا الگوریتمها و روشها.
4. شامل ابزار محاسباتی پیچیده نبوده، از تعداد زیادی ابزارساده که اغلب کمی بیشتر از یک جمع وزن دار را انجام میدهند تشکیل شدهاند.
شبکههای عصبی شیوهای متفاوت برای حل مسئله دارند. کامپیوترهای سنتی از شیوه الگوریتمی برای حل مسئله استفاده میکنند که برای حل مسئله مجموعهای از دستورالعملهای بدون ابهام دنبال میشود. این دستورات به زبان سطح بالا و سپس به زبان ماشین که سامانه قادر به تشخیص آن میباشد تبدیل میشوند. اگر مراحلی که کامپیوتر برای حل مسئله باید طی کند از قبل شناخته شده نباشند و الگوریتم مشخصی وجود نداشته باشد، سامانه توانایی حل مسئله را ندارد. کامپیوترها میتوانند خیلی سودمندتر باشند اگر بتوانند کارهایی را که ما هیچ پیش زمینهای از آنها نداریم انجام دهند. شبکههای عصبی و کامپیوترها نه تنها رقیب هم نیستند بلکه میتوانند مکمل هم باشند. کارهایی وجود دارند که بهتر است از روش الگوریتمی حل شوند و همین طور کارهایی وجود دارند که جز از طریق شبکه عصبی مصنوعی قابل حل نمیباشند و البته تعداد زیادی نیز برای بدست آوردن بازده حداکثر، از ترکیبی از روشهای فوق استفاده میکنند. به طور معمول یک کامپیوتر سنتی برای نظارت بر شبکه عصبی استفاده میشود. شبکههای عصبی معجزه نمیکنند، اگر به طور محسوس استفاده شوند کارهای عجیبی انجام میدهند.
یک نورون مصنوعی سامانهای است با تعداد زیادی ورودی و تنها یک خروجی. نورون دارای دو حالت میباشد، حالت آموزش و حالت عملکرد. در حالت آموزش نورون یاد میگیرد که در مقابل الگوهای ورودی خاص برانگیخته شود و یا در اصطلاح آتش کند. در حالت عملکرد وقتی یک الگوی ورودی شناسایی شده وارد شود، خروجی متناظر با آن ارائه میشود. اگر ورودی جزء ورودیهای از پیش شناسایی شده نباشد، قوانین آتش برای بر انگیختگی یا عدم آن تصمیم گیری میکند.
با کنار گذاشتن برخی از خواص حیاتی نورونها و ارتباطات درونی آنها میتوان یک مدل ابتدایی از نورون را به وسیله کامپیوتر شبیه سازی کرد.
یک شبکه عصبی شامل اجزای سازنده لایهها و وزنها میباشد. رفتار شبکه نیز وابسته به ارتباط بین اعضا است. در حالت کلی در شبکههای عصبی سه نوع لایه نورونی وجود دارد:
1. لایه ورودی : دریافت اطلاعات خامی که به شبکه تغذیه شدهاست.
2. لایههای پنهان : عملکرد این لایهها به وسیله ورودیها و وزن ارتباط بین آنها و لایههای پنهان تعیین میشود. وزنهای بین واحدهای ورودی و پنهان تعیین میکند که چه وقت یک واحد پنهان باید فعال شود.
3. لایه خروجی : عملکرد واحد خروجی بسته به فعالیت واحد پنهان و وزن ارتباط بین واحد پنهان و خروجی میباشد.
شبکههای تک لایه و چند لایهای نیز وجود دارند که سازماندهی تک لایه که در آن تمام واحدها به یک لایه اتصال دارند بیشترین مورد استفاده را دارد و پتانسیل محاسباتی بیشتری نسبت به سازماندهیهای چند لایه دارد. در شبکههای چند لایه واحدها به وسیله لایهها شماره گذاری میشوند (به جای دنبال کردن شماره گذاری سراسری). هر دو لایه از یک شبکه به وسیله وزنها و در واقع اتصالات با هم ارتباط مییابند. در شبکههای عصبی چند نوع اتصال و یا پیوند وزنی وجود دارد: پیشرو : بیشترین پیوندها از این نوع است که در آن سیگنالها تنها در یک جهت حرکت میکنند. از ورودی به خروجی هیچ بازخوردی (حلقه) وجود ندارد. خروجی هر لایه بر همان لایه تاثیری ندارد. پسرو : دادهها از گرههای لایه بالا به گرههای لایه پایین بازخورانده میشوند. جانبی : خروجی گرههای هر لایه به عنوان ورودی گرههای همان لایه استفاده میشوند.
بر مبنای روش آموزش به چهار دسته تقسیم میشوند:
1. وزن ثابت : آموزشی در کار نیست و مقادیر وزنها به هنگام نمیشود.
کاربرد:
• بهینه سازی اطلاعات (کاهش حجم، تفکیک پذیری و فشرده سازی)
• حافظههای تناظری
2. آموزش بدون سرپرست : وزنها فقط بر اساس ورودیها اصلاح میشوند و خروجی مطلوب وجود ندارد تا با مقایسه خروجی شبکه با آن و تعیین مقدار خطا وزنها اصلاح شود. وزنها فقط بر اساس اطلاعات الگوهای ورودی به هنگام میشوند. هدف استخراج مشخصههای الگوهای ورودی بر اساس راهبرد خوشه یابی و یا دستهبندی و تشخیص شباهتها (تشکیل گروههایی با الگوی مشابه) میباشد، بدون اینکه خروجی یا کلاسهای متناظر با الگوهای ورودی از قبل مشخص باشد. این یاد گیری معمولاً بر پایه شیوه برترین هم خوانی انجام میگیرد. شبکه بدون سرپرست وزنهای خود را بر پایه خروجی حاصل شده از ورودی تغییر میدهد تا در برخورد بعدی پاسخ مناسبی را برای این ورودی داشته باشد. در نتیجه شبکه یاد میگیرد چگونه به ورودی پاسخ بدهد. اصولا هدف این است که با تکنیک نورون غالب نورونی که بیشترین تحریک آغازین را دارد برگزیده شود. بنابر این در شبکههای بدون سرپرست یافتن نورون غالب یکی از مهمترین کارها است.
3. آموزش با سرپرست : به ازای هر دسته از الگوهای ورودی خروجیهای متناظر نیز به شبکه نشان داده میشود و تغییر وزنها تا موقعی صورت میگیرد که اختلاف خروجی شبکه به ازای الگوهای آموزشی از خروجیهای مطلوب در حد خطای قابل قبولی باشد. در این روشها یا از خروجیها به وزنها ارتباط وجود دارد یا خلا به صورت پس انتشار از لایه خروجی به ورودی توزیع شدهاست و وزنها اصلاح میشوند. هدف طرح شبکهای است که ابتدا با استفاده از دادههای آموزشی موجود، آموزش ببیند و سپس با ارائه بردار ورودی به شبکه که ممکن است شبکه آن را قبلا فراگرفته یا نگرفته باشد کلاس آن را تشخیص دهد. چنین شبکهای به طور گسترده برای کارهای تشخیص الگو به کار گرفته میشود.
4. آموزش تقویتی : کیفیت عملکرد سامانه به صورت گام به گام نسبت به زمان بهبود مییابد. الگوهای آموزشی وجود ندارد اما با استفاده از سیگنالی به نام نقاد بیانی از خوب و یا بد بودن رفتار سامانه بدست میآید (حالتی بین یادگیری با سرپرست و بدون سرپرست).
شبکههای عصبی مصنوعی دارای دامنه کاربرد وسیعی میباشند از جمله سامانههای آنالیز ریسک، کنترل هواپیما بدون خلبان، آنالیز کیفیت جوشکاری، آنالیز کیفیت کامپیوتر، آزمایش اتاق اورژانس، اکتشاف روغن و گاز، سامانههای تشخیص ترمز کامیون، تخمین ریسک وام، شناسایی طیفی، تشخیص دارو، فرآیندهای کنترل صنعتی، مدیریت خطا، تشخیص صدا، تشخیص هپاتیت، بازیابی اطلاعات راه دور، شناسایی مینهای زیردریایی، تشخیص اشیاء سه بعدی و دست نوشتهها و چهره و ... در کل میتوان کاربردهای شبکههای عصبی را به صورت زیر دسته بندی کرد : تناظر (شبکه الگوهای مغشوش وبه هم ریختهرا بازشناسی میکند)، خوشه یابی، دسته بندی، شناسایی، بازسازی الگو، تعمیم دهی (به دست آوردن یک پاسخ صحیح برای محرک ورودی که قبلا به شبکه آموزش داده نشده)، بهینه سازی. امروزه شبکههای عصبی در کاربردهای مختلفی نظیر مسائل تشخیص الگو که خود شامل مسائلی مانند تشخیص خط، شناسایی گفتار، پردازش تصویر و مسائلی از این دست میشود و نیز مسائل دسته بندی مانند دسته بندی متون یا تصاویر، به کار میروند. در کنترل یا مدل سازی سامانههایی که ساختار داخلی ناشناخته یا بسیار پیچیدهای دارند نیز به صورت روز افزون از شبکههای عصبی مصنوعی استفاده میشود. به عنوان مثال میتوان در کنترل ورودی یک موتور از یک شبکه عصبی استفاده نمود که در این صورت شبکه عصبی خود تابع کنترل را یاد خواهد گرفت.
با وجود برتریهایی که شبکههای عصبی بسبت به سامانههای مرسوم دارند، معایبی نیز دارند که پژوهشگران این رشته تلاش دارند که آنها را به حداقل برسانند، از جمله :
• قواعد یا دستورات مشخصی برای طراحی شبکه جهت یک کاربرد اختیاری وجود ندارد.
• در مورد مسائل مدل سازی، صرفاً نمیتوان با استفاده از شبکه عصبی به فیزیک مساله پی برد. به عبارت دیگر مرتبط ساختن پارامترها یا ساختار شبکه به پارامترهای فرآیند معمولاً غیر ممکن است.
• دقت نتایج بستگی زیادی به اندازه مجموعه آموزش دارد.
• آموزش شبکه ممکن است مشکل ویا حتی غیر ممکن باشد.
• پیش بینی عملکرد آینده شبکه (عمومیت یافتن) آن به سادگی امکان پذیر نیست.
آزمون تورینگ آزمونی برای سنجش میزان هوشمندی ماشین است. آزمون به این صورت انجام میگیرد که یک شخص به عنوان قاضی، با یک ماشین و یک انسان به گفتگو مینشیند، و سعی در تشخیص ماشین از انسان دارد. در صورتی که ماشین بتواند قاضی را به گونهای بفریبد که در قضاوت خود دچار اشتباه شود، توانسته است آزمون را با موفقیت پشت سر بگذارد.
برای اینکه تمرکز آزمون بر روی هوشمندی ماشین باشد، و نه توانایی آن در تقلید صدای انسان، مکالمه تنها از طریق متن و صفحه کلید و نمایشگر کامپیوتر صورت میگیرد.
آزمون تورینگ در سال 1950توسط آلن تورینگ، ریاضیدان انگلیسی مطرح گردید. از نظر تورینگ، پرسش «آیا ماشینها میتوانند تفکر کنند» بیمعنیتر از آن بود که بتوان پاسخ روشنی به آن داد. چرا که نمیتوان تعریف مشخصی برای تفکر ارائه داد. بنابراین تورینگ پرسش را به این گونه مطرح نمود: آیا میتوان ماشینی ساخت که آزمون تورینگ را پشت سر بگذارد؟
هم اکنون دو نسخه? مختلف از این آزمون وجود دارد: آزمون استاندارد تورینگ، و آزمون تقلید.
در این آزمون، دو شخص با جنسیتهای متفاوت، از طریق یادداشت با شخص سومی که قاضی است گفتگو میکنند. قاضی این دو بازیکن را نمیبیند، و با پرسش و پاسخ سعی دارد تشخیص دهد کدام یک مرد و کدام یک زن هستند. نقش بازیکن اول این است که قاضی را به نحوی بفریبد که در تشخیص جنست آن دو اشتباه کند.
تورینگ نقش بازیکن فریبکار را به ماشین سپرد، و در صورتی که این ماشین موفق شود که قاضی را بفریبد، از آزمون موفق بیرون آمده است و میتوان آن را ماشین هوشمند نامید.
آزمون تورینگ فرض میکند که انسانها میتوانند با مقایسه میان رفتار ماشین و انسان، پی به میزان هوشمند بودن آن ببرند. به دلیل این فرض، و تعدادی پیش فرضهای دیگر، دانشمندان حوزه هوش مصنوعی صحت آزمون تورینگ را مورد تردید قرار دادند.
اولین نکتهای که مطرح میگردد این است که تعدادی از رفتارهای انسان هوشمندانه نیستند. به عنوان مثال، توانایی توهین به دیگران، و یا اشتباههای تایپی مکرر هنگام نوشتن با صفحه کلید.
نکته دومی که به آن اشاره میگردد این است که بعضی از رفتارهای هوشمندانه، انسانی نیستند. به عنوان مثال، کامپیوترها بسیار سریعتر از انسان محاسبه میکنند.
تورینگ پیشنهاد داده است که ماشین میتواند به صورت اتفاقی در خروجی خود اشتباهاتی را وارد کند، و یا مدت زمان زیادی را صرف محاسبات کرده و در انتها پاسخی اشتباه دهد که قاضی را بفریبد، تا «بازیکن» بهتری باشد.
تزریق کد (انگلیسی:XSS: Cross site ing) از روشهای نفوذ و گرفتن دسترسی غیر مجاز از یک وبگاه است که توسط یک هکر به کار میرود.
تاریخچه حفرههای امنیتی در معرض حملات XSS به سال 1996 و سالهای اولیه صفحات وب باز میگردد. نفوذگران در آن زمان که پروتکل HTTP جا افتاده بود و طراحان وبگاهها از زبانهای پردازهنویسی مانند جاوا اسکریپت سود میبردند، دریافتند وقتی کاربران معمولی وارد سایتی میشود میتوان به کمک کدنویسی در حفرههای امنیتی وبگاه، صفحه دیگری را در همان صفحه بارگذاری کرد سپس با سود بردن از جاوا اسکریپت دادههای کاربر مانند نام کاربری، گذرواژه و یا کوکی(Cookie)ها را دزدید.
در این هنگام رسانهها این مشکلات را به ضعف امنیتی مرورگرها نسبت داده بودند. شرکت ارتباطی Netscape که جزو اولین تولیدکنندگان مرورگرهای وب و همچنین سازنده زبان جاوا اسکریپت بود سیاست دامنه شخصی را به این زبان افزود که جلوی دسترسی به آدرسهای خارج از دامنه وبگاه را میگرفت و تا حدودی این حملات را محدود میکرد.
سناریوهای مختلفی برای قرار دادن کد مخرب در سایتها به عنوان حمله وجود دارد:
فیلتر کردن را از دو منظر باید بررسی کرد. فیلتر کردن ورودیهای کاربر و فیلتر کردن خروجیها برای کاربر است.
حمله انکار سرویس (به انگلیسی: Denial of Service) (یا به اختصار DoS) نوعی از حمله است که هدف آن از کار انداختن سرویس یا سرویسهای خاصی روی سرور مورد نظر است که معمولا برای از کار انداختن سرویس http به کار میرود که باعث میشود سایتهای روی سرور از دسترس خارج شوند. انجام این حمله (برخلاف بسیاری از انواع دیگر حملهها) تحت هر شرایطی جرم محسوب میشود و پیگرد قانونی دارد.
به طور کلی انجام این حمله برای اهداف زیر صورت میگیرد:
لازم به ذکر است که این حمله فقط مختص به سرورها نیست و ممکن است یک شبکه و یا حتی روتر نیز مورد حمله قرار گیرد و ممکن است کار بخش عمدهای از اینترنت را مختل کند (همانطور که در طول تاریخ 2بار اینترنت کل دنیا با این حمله مختل شده است).
این حمله به دو بخش کلی تقسیم میشود، حملههایی که باعث crash کردن سرویس مورد نظر میشوند و حملههایی که باعث شلوغ شدن سرویس مورد نظر میشوند.
حمله توزیعشده انکار سرویس (Distributed Denial of Service) روشی از حمله است که در آن حملهکننده با تعداد زیادی از کامپیوترها و شبکههایی که در اختیار دارد، حمله را صورت میدهد. در این روش تمام کامپیوترها یکی از روشهای حمله را که در ذیل ذکر شدهاند را همزمان با هم انجام میدهند که ممکن است در برخی موارد خسارات جبران ناپذیری را به بار آورد.
در این روش معمولاحملهکننده سیستمهای زیادی را آلوده کرده و به آنها همرمان فرمان میدهد، به سیستمهای آلوده شده zombie و به شبکهای از این سیستمها که تحت کنترل یک شخص هستند، botnet میگویند.
در این روش بسیار متداول، حملهکننده تعداد زیادی بسته TCP حاوی SYN ارسال میکند که به معنای تقاضای شروع ارتباط است، در این صورت گیرنده بسته (هدف حمله کننده) با توجه به درخواست ارتباطی را شروع کرده و در انتظار دریافت ادامه درخواست میماند و چون ادامه درخواست از طریق حملهکننده ارسال نمیشود، سرور مورد نظر برای مدتی ارتباط را در خود نگه میدارد که تعداد زیاد این روند باعث استفاده زیاد از پهنای باند، RAM و CPU سرور مورد نظر شده و توانایی پاسخ به سایر درخواستها را نخواهد داشت.
در این روش تنها با فرستادن بیش از حد بستههای ping از طرف تعداد زیادی از سیستمها، صورت میگیرد. در شبکههایی که به درستی تنظیم نشدهاند با جعلکردن (spoofing) آدرس سیستم مورد نظر و ارسال درخواست ping به broadcast تمامی سیستمهای موجود در شبکه به سیستم هدف پاسخ ارسال میکنند و ارسال تعداد زیاد این درخواستها باعث شلوغ شدن شبکه و از کار افتادن سیستم مورد نظر میشود.
Smurf Attack، Ping of Death، Teardrop، Billion laughs، Christmas tree packet و صدها روش دیگر تنها روشهای شناخته شده این حمله هستند و بسیاری روشهای ابداعی و ابتکاری دیگر نیز موجود است.
به طور کلی هیچ راه تضمین کنندهای برای جلوگیری از این حمله وجود ندارد و تنها راههایی برای جلوگیری از برخی روشهای متداول و کم کردن اثرات سایر روشها موجوداست، چرا که بسیاری از روشها به هیچعنوان قابل پیشگیری نیست، به عنوان مثال اگر شبکه botnet با صدهزار zombie صفحهای از سایت را باز کنند، این درخواست یک درخواست عادی بوده و نمیتوان تشخیص داد که درخواست دهنده سیستم معمولی است یا zombie و به همین جهت نمیتوان جلوی آنرا گرفت.
استفاده از دیوارههایآتش یکی از راههای متداول و بهترین راه جلوگیری است، البته استفاده از هر دیوارهآتشی توصیه نمیشود و تنها دیوارههای آتشی مناسبند که به هدف جلوگیری از DoS طراحی شدهاند.
استفاده از Switch و Routerهای مناسب که برخی دارای firewall و سیستمهای تشخیصدهنده هستند نیز راه مناسبی است. همچنین درست تنظیم کردن Switchها و Routerها امری ضروری برای جلوگیری از بسیاری از انواع حمله است.
استفاده از سیستمهای تشخیص دهنده (IPS) سیستمهای تشخیص براساس سرعت بستهها (RBIPS) و اینگونه سیستمها نیز روش مناسبی برای جلوگیری از این حملات است.
بستههای نرمافزاری نیز موجودند که شامل تمام این سیستمها هستند، استفاده از این بستهها علاوه بر حملات DoS بسیاری دیگر از حملات را شناسایی میکنند، بسته نرمافزاری SSP (Sun Security Package) از جمله این بستهها است که کار شناسایی و جلوگیری را به صورت خودکار انجام میدهد.
غفارینیا، امید. گروه امنیتی آفتاب. حملات سرور - تکذیب سرور. عصر ارتباط، 2 بهمن 1389، شماره 392. [1]