<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های بهناز صادقی گل</title><link>https://virgool.ir/feed/@behnaz.goll</link><description></description><language>fa</language><pubDate>2026-11-11 13:43:03</pubDate><image><url>https://virgool.ir/images/default-avatar.jpg</url><title>بهناز صادقی گل</title><link>https://virgool.ir/@behnaz.goll</link></image><item><title>صحیح املایی و تبدیل محاوره به معیار (غیر رسمی به رسمی)</title><link>https://virgool.ir/@behnaz.goll/صحیح-املایی-و-تبدیل-محاوره-به-معیار-غیر-رسمی-به-رسمی-ugbpwhh9bumf</link><description>امروزه به دلیل استفاده گسترده از رسانه های اجتماعی، حجم وسیعی از داده های متنی در اینترنت در دسترس است. اطلاعات ارزشمندی را می توان از طریق پردازش زبان طبیعی از این داده ها استخراج کرد. اگرچه، فرآیند استخراج اطلاعات به دلیل فرم های غیررسمی این متون می تواند دشوار باشد.سیستم باید بتواند متن انگلیسی رسمی را با توجه به فرم غیررسمی آن تولید کند. متن غیررسمی می تواند هر چیزی باشد، از یک توییت تصادفی گرفته تا عصاره کمیک. متن رسمی باید از نظر نحوی معنای درستی داشته باشد که همتای غیررسمی آن در نظر گرفته شده است. باید بتواند دستور زبان، علائم نگارشی و در صورت امکان حتی حروف بزرگ را تصحیح کند.متن غیررسمی به متن با اختصارات و کلمات غلط املایی زیادی اشاره دارد. از این رو، اصلاح این سخنان برای نظام ضروری است. سیستم باید بتواند متن را در زمان واقعی با توجه به شکل غیررسمی آن تولید کند تا از مشکلات تأخیر جلوگیری شود. همچنین، در تلاش برای تولید متن صحیح از نظر گرامری، نباید معنای متن زیربنایی را تغییر دهد زیرا ممکن است برای کار در دست اقدام معکوس کند.در حالی که پیشرفت‌های فن‌آوری تحقیق در پردازش زبان طبیعی را سرعت بخشیده است، اما عمدتاً بر روی کارهایی مانند جاسازی کلمات و ترجمه ماشینی طبیعی متمرکز شده است. در نتیجه، رسمی‌سازی متن به‌عنوان یک کاربرد NLP، هنوز در مرحله نوپایی خود قرار دارد.[1]خطاهای متون تایپ شده به دو گروه اصلی دسته بندی می شوند: خطاهای غیر کلمه ای و خطاهای کلمه ای واقعی [2]. خطاهای غیرکلمه ای یا غلط املایی کلمات زمانی رخ می دهد که یک کلمه بخشی از دامنه کلمه زبان نباشد [3].در این مورد از غلط‌گیر املا استفاده می‌شود. یک غلط‌گیر املایی معمولاً دو کار اصلی را انجام می‌دهد: بررسی اینکه آیا یک کلمه در فرهنگ لغت وجود دارد یا خیر و یافتن بهترین جایگزین برای کلمات غلط املایی به طور خودکار برای اصلاح غلط.چهار عملیات اساسی برای یافتن شکل صحیح کلمات غلط املایی معرفی شده است. آنها به شرح زیر فهرست شده اند:جایگزینی: در این حالت به جای حرف دیگری حرفی تایپ می شود. مثلاً «خونه/ «xuːne/ (خانه) به جای «خانه/ »xɒne/درج: در این حالت یک یا چند حرف به یک کلمه اضافه می شود. این ممکن است با فشار دادن کلیدهای اضافی روی صفحه کلید اتفاق بیفتد. به عنوان مثال، &#34;اون /&#34;uːn/ به جای «آن/ «aːn/ .حذف: زمانی اتفاق می افتد که یک یا چند حرف از یک کلمه حذف شود. مثلاً «خاهر/ «xɒhær/ به جای «خواهر/ «xɒhær/ (خواهر).تبادل: معمولا زمانی اتفاق می افتد که دو حرف مجاور یک کلمه به ترتیب معکوس نوشته شوند. مثلاً «قلف/ «Gʊlf/ به جای «قفل/»Gʊfl/ (قفل).زبان فارسی ویژگی های خاصی دارد که پردازش زبان را دشوار می کند. مهمترین ویژگی های زبان فارسی عبارتند از:- بسیاری از مصوت ها در فارسی نوشته نمی شوند.- فارسی از حروف همفون استفاده می کند، یعنی حروف با تلفظ یکسان، اشکال نوشتاری متفاوتی دارند. مثلاً «ص، س، ث» صدای /s/ دارند.- فارسی از حروف هم شکل استفاده می کند، یعنی حروفی با اشکال نوشتاری متفاوت بسته به موقعیت آنها در یک کلمه. به عنوان مثال حرف «ک/» ک/ که شکل اولیه «ک/»ک/، شکل میانی «ک/»ک/ و شکل مجزا «ک/»ک/ دارد.- فارسی واژه هایی دارد که به یک شکل نوشته شده اند، اما معانی متفاوتی دارند و نقش نحوی متفاوتی دارند، مثلاً «شیر» که می تواند در زمینه های مختلف «شیر»، «شیر» و «شیر» دلالت کند.- فارسی افعال پیچیده زیادی دارد و گاهی ممکن است این افعال معانی کاملاً متفاوتی از اجزای جداگانه خود داشته باشند.- فارسی یک زبان با ترتیب آزاد کلمات است. این بدان معنی است که یک جمله را می توان به روش های مختلف نوشت و ترتیب فاعل، صفت و فعل را می توان تغییر داد در حالی که جمله از نظر دستوری صحیح باقی می ماند.- گاهی ممکن است زبان فارسی از نظر تعداد، بین فاعل و فعل مطابقت نداشته باشد. به عنوان مثال، استفاده از افعال جمع برای فاعلهای مجرد برای نشان دادن احترام معمول است.- یکی از مشکلات اصلی در پردازش زبان فارسی فاصله گذاری است. سه نوع مختلف فاصله وجود دارد که کاربران اغلب از آنها به درستی استفاده نمی کنند، به خصوص در متون غیر رسمی.- اشتباهات در متون غیررسمی پیچیده تر از اشتباهات در متون رسمی است زیرا کلمات به شدت تغییر می کنند.می­توان از قوانین تبدیل برای یافتن بهترین نامزدهای کلمات غیر رسمی یا غلط املایی استفاده کرد. این قوانین به ما کمک می­کند تا با تغییر حروف کلمات غیررسمی، کلمات غیررسمی را به نسخه رسمی تبدیل کنیم. هنگامی که یک کلمه غلط املایی شناسایی شد، قانون مربوط به دسته آن غلط املایی اعمال شده و لیستی از نامزدها ایجاد می­شوند. سپس این نامزدها امتیازدهی و مرتب می­شوند.1. خطاهای ناشی از تغییر یک یا دو حرف در شکل غیر رسمی نوشتاری. این نوع خطاها در موارد مختلف مانند تغییر مصوت های یک کلمه در یک بافت غیررسمی رخ می دهد، مانند &#34;شونه / &#34;ʃuːna / که شکل رسمی &#34;شانه / &#34;ʃɒne / (شانه) است. همچنین هنگام تغییر ضمایر از شکل رسمی به غیر رسمی رخ می دهد. خطاهای ناشی از تغییر فعل copula متعلق به این دسته است، به عنوان مثال، «خوبیه/»xuːbɪje/ (خوب است)، یا «مردترن /mærdtæræn/ (آقایان هستند)، که در آن حروف «ه»/e. / و &#34;ن/ &#34;n/ در کلمات نشان دهنده افعال جفت &#34;است/ &#34;æst/(is) و &#34;هستند/&#34;hæstænd/ (are)تغییر یافته­اند.2. 2. خطاهای نوع دوم مربوط به تغییرات شدیدی است که بیش از دو خطا را تحت تأثیر قرار می دهد، مانند «میگن/»mɪgæn/ با شکل رسمی «می­گویند / «mɪguːjænd/ (می گویند)3. 3. کلمات غیررسمی که معادل‌های رسمی آنها کلمات کاملاً متفاوتی هستند، به عنوان مثال، &#34;ورا اون/ &#34;uːn værɒ/ که &#34;ورا&#34; در نسخه رسمی وجود ندارد و جایگزین رسمی باید &#34;اطراف/&#34;ætrɒf/ (حدود) باشد.تجزیه و تحلیل­ها[1]  نشان داد که بیشتر خطاهای متون مربوط به دسته اول است. تبدیل اولین گروه از کلمات غیر رسمی به کلمات رسمی شبیه به املا است. این بدان معنی است که ما می توانیم یک سیستم مبتنی بر غلط گیر املا توسعه دهیم.رویکرد تبدیل کلمات غیررسمی فارسی به کلمات فارسی رسمی با دقت بالا:برای رسیدگی به خطاهای دسته اول فهرستی از نامزدهای مناسب برای کلمه غیررسمی مربوطه تهیه می شود. لازم به ذکر است که فاصله از حروف الفبا در نظر گرفته می شود و خطای مربوط به آن در این دسته قرار می گیرد. در این مرحله تگ های POS کلمات برای یافتن بهترین کلمات رسمی مرتبط در نظر گرفته می شوند. بر این اساس، می توان بزرگترین قسمت یک کلمه غیررسمی را که در فرهنگ لغت وجود دارد شناسایی کرد و سپس قسمت غیررسمی قبل از اینکه به قسمت دیگر متصل شود، به شکل رسمی تبدیل می شود.در زیر فهرستی از برخی از کارهایی که پیشگام رسمی سازی متن هستند، ارائه شده است.[1]1- تصحیح جمله با استفاده از شبکه های عصبی تکراری:این کار توسط Gene Lewis، دانشگاه استنفورد با هدف مشابه این مطالعه موردی منتشر شده است. نویسنده پیشنهاد کرد که کاراکترهای ASCII موجود در متن را در یک بردار رمزگذاری یک بعدی 94 بعدی برای ایجاد یک مدل در سطح کاراکتر جاسازی کند. به طور مشابه، جاسازی در سطح کلمه نیز برای آزمایش با هر دو رویکرد استفاده شد. بردار در حین آموزش مدل یادگرفته شد. این مدل از سلول‌های حافظه کوتاه‌مدت بلند مدت (LSTM) تشکیل شده است که قادر به گرفتن روابط ضمنی بین کاراکترهای زیرین است.دو نوع شبکه عصبی بازگشتی به ترتیب با یک و دو لایه پنهان وجود داشت. برای تخمین احتمال خروجی، نویسنده لایه softmax را انتخاب کرد زیرا قادر به تولید احتمال نرمال شده برای هر کاراکتر است. برای آموزش، نزول گرادیان تصادفی مینی دسته ای با تابع هزینه کراس­آنتروپی، تابعی که در اینجا نیز پیشنهاد می کنیم، استفاده شد. داده های بیشتر به شبکه عصبی ما اجازه می دهد تا با دقت بیشتری ترجمه شود.این اثر به یاد ماندنی در حوزه انتقال سبک توسط Sudha Rao با Joel Tetreault در Grammarly منتشر شده است تا با گردآوری مجموعه داده‌ای از نزدیک به 110 هزار جفت جملات رسمی و غیررسمی، به کمبود داده‌ها رسیدگی کند. تلاش زیادی برای تبدیل جملات متنی غیررسمی خام با کمک کارشناسان موضوع انجام شد. متن غیررسمی شامل یک مجموعه پرسش و پاسخ یاهو از حوزه‌های مختلف مانند سرگرمی و موسیقی و خانواده و روابط با توزیع برابر بود. به دلیل درجات مختلف رسمیت در هر دو حوزه، نویسندگان نتایج را به طور جداگانه در هر دو حوزه گزارش کردند. ترکیب‌های مختلفی از مدل‌های ترجمه ماشین عصبی مانند مدل‌های رمزگذار-رمزگشا با مکانیسم‌های توجه برای آموزش مجموعه داده استفاده شد. مدل‌ها بر اساس رتبه‌بندی کلی طرح‌های مختلف مانند رسمی بودن، روان بودن، به معنای حفظ ارزیابی شدند. هدف از این پروژه شروع زمینه انتقال سبک رسمی با ایجاد یک مجموعه داده معیار بود که نویسندگان به طرز چشمگیری به آن دست یافتند.2- مهار شبکه های عصبی از پیش آموزش دیده با قوانین رسمی انتقال سبک:در این روش،[1] متن ورودی را با رویکردهای ساده مبتنی بر قاعده مانند بزرگ کردن حرف اول، مدیریت غلط املایی، از قبل پردازش می­کنند و آن را به متن غیررسمی زیرین با کاراکتر &lt;EOS&gt; اضافه می­کنند تا یک دنباله ورودی ایجاد کنند.3- افزایش مجموعه داده: می‌توانیم مجموعه داده را برای رفع کمبود داده افزایش دهیم. برای افزایش داده ها، می توانیم از کتابخانه nlpaug استفاده کنیم. تقویت مترادف و تقویت املایی تکنیک های مناسبی هستند.4-پیش پردازش داده ها: با خواندن فایل متنی داده ها، یک DataFrame پاندا با دو ستون یعنی متن غیر رسمی و متن رسمی ایجاد می کنیم. از آنجایی که متن از پیام‌ها و مکالمات کلی جمع‌آوری می‌شود، حروف، علائم نگارشی و کلیدواژه‌ها را حفظ می‌کنیم.مدلی که ما طراحی خواهیم کرد به عنوان یک مدل دنباله به دنباله شناخته می شود زیرا ما یک دنباله متن را به عنوان ورودی ارائه می دهیم و انتظار داریم دنباله متن به عنوان خروجی باشد. صحبت از مدل‌های توالی به دنباله، دو تمایز بر اساس سطح توکن‌سازی را می‌توان انجام داد. سطح کلمه و سطح شخصیت. در آزمایش با هر دو نوع نشانه‌سازی، متوجه می‌شویم که نشان‌دهنده سطح کاراکتر به نتایج بسیار بهتری دست می‌یابد که با توجه به اندازه مجموعه داده قابل انتظار است، از این رو در این مطالعه موردی روی همان تمرکز خواهیم داشت.حال، ورودی رمزگذار باید با نشانه‌های شروع جمله و پایان جمله کدگذاری شود، زیرا رمزگذار را قادر می‌سازد تا دامنه هر جمله را بداند. می‌توانیم از نشانه‌های «&lt;» و «&gt;» برای شروع و پایان استفاده کنیم. برای رمزگشا، ورودی باید با علامت «&lt;» در ابتدا و خروجی باید با علامت «&gt;» در پایان اضافه شود. مثلا،ورودی رمزگذار: &lt;من تایلندی هستم. چه کار می کنی؟&gt;ورودی رمزگشا: &lt;من تایلندی هستم. چه کار میکنی؟خروجی رسیور: من تایلندی هستم. چیکار میکنی؟&gt;قبل از اینکه داده ها را تقسیم کنیم، به توزیع طول های encoder_inp، decoder_inp و decoder_out نگاه می کنیم تا ایده شکل ورودی را که باید داده های خود را در آن جاسازی کنیم، بدست آوریم.همانطور که می بینیم، بیشتر جملات طولی در حدود 50 کاراکتر دارند و تقریباً تمام جملات دارای طول کمتر از 200 کاراکتر هستند. از این رو، می‌توانیم جملاتی را که بیش از 200 طول دارند برای یکنواختی فیلتر کنیم. اکنون می‌توانیم داده‌ها را به مجموعه‌های قطار، اعتبارسنجی و آزمایش تقسیم کنیم.توکن کردن و بسته کردن داده ها: رمزگذاری داده ها به معنای رمزگذاری جملات با اعداد است. اعداد با یک شناسه منحصر به فرد از واژگان اختصاص داده می شوند. بنابراین، جمله خاص با شناسه های منحصر به فرد کلمات موجود در آن جمله رمزگذاری می شود. ما هر کدام دو توکن ساز را برای داده های غیررسمی و رسمی ایجاد خواهیم کرد. Padding به اضافه کردن یک شناسه مشترک (یعنی به طور کلی 0) برای ایجاد تمام جملات با طول یکسان اشاره دارد. همانطور که قبلا دیدیم، می توانیم طول جمله را 200 کاراکتر درآوریم.طراحی شبکه رمزگذار-رمزگشا ساده: مدل seq2seq از دو زیرشبکه رمزگذار و رمزگشا تشکیل شده است. رمزگذار در سمت چپ، دنباله‌هایی را از زبان مبدأ به عنوان ورودی دریافت می‌کند و در نتیجه نمایش فشرده‌ای از توالی ورودی تولید می‌کند و سعی می‌کند تمام اطلاعات خود را خلاصه یا فشرده کند. سپس آن خروجی به یک ورودی یا حالت اولیه برای رمزگشا تبدیل می شود که می تواند ورودی خارجی دیگری را نیز دریافت کند. در هر مرحله زمانی، رمزگشا یک عنصر از دنباله خروجی خود را بر اساس ورودی دریافتی و وضعیت فعلی آن و همچنین به روز رسانی وضعیت خود برای مرحله زمانی بعدی تولید می کند. در اینجا یک نمایش تصویری ساده از نحوه عملکرد مدل ما وجود دارد.منابع:1- https://medium.com/analytics-vidhya/formalizing-informal-text-using-natural-language-processing-dd2032a0fc2b2-Naemi،Amin، &#34;Informal-to-Formal Word Conversion for Persian Language Using Natural Language Processing Techniques&#34; , CNIOT2021, May 20-22, 2021, Beijing, China3-QasemiZadeh B, Ilkhani A, Ganjeii A. Adaptive language independent spell checking using intelligent traverse on a tree. In: 2006 IEEE Conference on Cybernetics and Intelligent Systems. IEEE; 2006. p. 1–6.</description><category>بهناز صادقی گل</category><author>بهناز صادقی گل</author><pubDate>Sun, 29 May 2022 11:18:45 +0430</pubDate></item><item><title>تاثیر بایاس و واریانس در Underfitting و Overfitting</title><link>https://virgool.ir/@behnaz.goll/تاثیر-بایاس-و-واریانس-در-underfitting-و-overfitting-a8vyv9sewynu</link><description>در مدل‌های آماری و بخصوص الگوریتم‌های یادگیری ماشین، مسئله موازنه واریانس و بایاس (اریبی) مورد بحث قرار می‌گیرد. در اغلب «مدل‌های پیش‌بین» (Predictive Model)، وجود بایاس کوچک برای پارامترها منجر به واریانس بزرگ برای مدل خواهد شد. البته برعکس این حالت نیز وجود دارد، به این معنی که با کوچک کردن واریانس مدل، با مشکل بزرگ شدن بایاس یا اریبی پارامترها مواجه خواهیم شد.مسئله اصلی آن است که در یک مدل مناسب، هم بایاس و هم واریانس باید حداقل ممکن باشند. ولی متاسفانه، کمینه‌سازی (Minimization) هر دو این شاخص‌ها به شکل توام، امکان‌پذیر نیست. چنین وضعیتی را «تناقض واریانس-اریبی» (Bias-Variance Dilemma) می‌نامند. در ادامه هر یک از خطاها را معرفی کرده و نحوه ایجاد تعادل واریانس و اریبی را بازگو خواهیم کرد.خطای بایاس: وجود فرضیه‌های مختلف روی مدل و الگوریتم یادگیری منجر به ایجاد خطای اریبی می‌شود. بزرگ بودن اریبی می‌تواند الگوریتم یا مدل آماری را از کشف روابط بین ویژگی‌ها (Features) و متغیر پاسخ (Target Variable)  باز دارد. اغلب بزرگ بودن خطای اریبی، منجر به کم‌برازش (Underfitting) می‌شود.خطای واریانس: حساسیت زیاد مدل با تغییرات کوچک روی داده‌های آموزشی، نشانگر وجود واریانس زیاد است. این امر نشانگر آن است که اگر مدل آموزش داده شده را روی داده‌های آزمایشی به کارگیریم، نتایج حاصل با داده‌های واقعی فاصله زیادی خواهند داشت. متاسفانه افزایش واریانس در این حالت منجر به مدل‌بندی مقادیر نویز (Noise) شده و به جای پیش‌بینی صحیح، دچار پیچیدگی و مشکل « بیش‌برازش» (Overfitting) می‌شود.در علم داده(Data Science)، موازنه واریانس و بایاس (اریبی) به یک مسئله اصلی در یادگیری نظارت شده Supervised Machine Learning  تبدیل شده است. در حالت ایده آل، مدلی را مناسب در نظر می‌گیریم که نه تنها در داده‌های آموزش دارای عملکرد مناسب باشد، بلکه به خوبی روی مجموعه مقادیر آزمایشی نیز تعمیم داده شود. متأسفانه انجام هر دو کار به طور هم زمان غیر ممکن است. روش‌های یادگیری با واریانس بالا، ممکن است بتوانند مدل مناسبی روی داده‌های آموزشی خود ایجاد کنند، اما هنگامی که چنین مدلی به منظور پیش‌بینی مقادیر براساس داده‌های آزمایشی مورد استفاده قرار می‌گیرد در ارائه مقادیر مناسب و با خطای کم برای متغیر پاسخ ناتوان خواهد بود. در مقابل، الگوریتم‌هایی که دارای بایاس زیاد هستند، معمولاً مدل‌های ساده‌تر و با پارامترهای کمتری ایجاد می‌کنند که مشکل بیش‌بردازش نداشته ولی متاسفانه از کم‌برازش رنج می‌برند.مدل‌های با واریانس بزرگ (مثلا رگرسیون چند جمله‌ای هم‌مرتبه با تعداد مشاهدات)، که معمولاً پیچیده‌تر هستند، این امکان را می‌دهد تا داده‌های آموزشی به خوبی برازش شوند. با این وجود، ممکن است مشاهدات برازش شده دارای خطا یا نوفه باشند که متاسفانه مدل تحت تاثیر آن‌ها، برآوردها را با دقت انجام داده است. به این ترتیب پیش‌بینی‌ آن‌ها باعث افزودن پیچیدگی در مدل شده است. در حالیکه این امر از طرفی دقت برآوردها را هم برای داده‌های آزمایشی کمتر می‌کند. در مقابل، مدل‌هایی که دارای اریبی بزرگی هستند، نسبتاً ساده بوده (مثل مدل رگرسیون دو جمله‌ای یا حتی خطی) اما ممکن است واریانس کوچکتری را براساس مجموعه داده‌های آزمایشی ایجاد کنند.مصورسازی موازنه واریانس و بایاس برای برآوردگرواریانس مدل متغیر بودن پیش بینی مدل برای یک داده است که به ما درباره پراکندگی داده های ما صحبت میکند.  مدل با واریانس زیاد توجه زیادی به داده های آموزشی داشته و بر اطلاعاتی  که قبل از آن دیده نشده تعمیم پذیر نمیباشد. در نتیجه، چنین مدلهایی به  خوبی بر روی داده های آموزشی عمل می کنند اما دارای نرخ خطای بالا در داده های تست هستند. در وارایانس موجب ایجاد خطای ناشی از حساسیت به نوسانات کوچک  در مجموعه آموزش است و الگوریتم را به مدل کردن نویز های تصادفی در داده های آموزش وادار میکند یعنی همان پدیده overfitting . به طور مثال می خواهیم مدلی از دمای هوا در سطح شهر تهران ارائه دهیم. اگر داده هایی که تهیه می کنیم از اقصی نقاط متفاوت و حتی استثناها باشد، مثلا از ارتفاعات توچال که معمولا دمای هوای آن از میانگین دمای هوای سایر مناطق تهران خیلی پایینتر است داده تهیه کنیم و یا از جایی داده تهیه کنیم که دمای آن نسبت به سایر مناطق خیلی بالاتر است، پراکندگی داده های ما زیاد می شود و واریانس بالایی پیدا میکند. در این صورت اگر مدل را با چنین داده هایی آموزش دهیم ممکن است همه دماهای مناطق مختلف تهران را پوشش دهد ولی در مورد داده های تست خوب عمل نمی کند. اما اگر داده ها از مناطقی از شهر تهران تهیه شود که دمای خیلی بالا یا پایینی ندارند، پراکندگی های داده ای کمتر است اما همه ی داده های شهر تهران را شامل نمی شود. بایاس اختلاف بین میانگین پیش بینی مدل ما و مقدار واقعی  ای که ما در حال تلاش برای پیش بینی آن هستیم. مدل با بایاس زیاد توجه  زیادی به داده های آموزش نکرده و مدل را بیش از پیش ساده و کلی می کند. این  همیشه منجر به خطای زیاد در آموزش و داده های تست می شود. بایاس بالا می  تواند در الگوریتم منجر به از دست رفتن روابط بین ویژگی ها و خروجی های هدف  یا همان Underfitting شود. در مثال مدل دمای هوای شهر تهران، بایاس به این معنی است که میانگین واقعی دمای هوا عدد 22 درجه باشد اما مدلی که ما محاسبه کرده ایم میانگینی در حدود عدد 27 را نشان دهد. هر چه فاصله ی میانگین داده های مدل با میانگین واقعی بیشتر باشد، بایاس بالاتر است. طبیعتا هر چه بایاس پایینتری داشته باشیم مدل پردیکت شده به واقعیت نزدیکتر خواهد بود.</description><category>بهناز صادقی گل</category><author>بهناز صادقی گل</author><pubDate>Tue, 11 Jan 2022 16:53:07 +0330</pubDate></item><item><title>تشخیص اشیا با مقایسه‌های شدت پیکسل سازمان‌دهی شده توسط درخت تصمیم</title><link>https://virgool.ir/@behnaz.goll/تشخیص-اشیا-با-مقایسه-های-شدت-پیکسل-سازمان-دهی-شده-توسط-درخت-تصمیم-zxd3bxahohwl</link><description>چکیدهما روشی را برای تشخیص بینایی شی ارائه می­دهیم که بر پایه­ی درختان تصمیم بهینه سازی شده استوار است و متشکل از ریجکتورهای آبشاری است. این درختان از مقایسه­ی شدت پیکسل در نودهای داخلیشان استفاده می­کنند و این مساله آن­ها را قادر می­سازد تا نواحی عکس را تولید کند آنالیز و تحلیل تجربی از طریق مساله آشکارسازی صورت ارائه شده است. نتایج به دست آمده، نشان­دهنده و تاییدکننده این مساله هستند که این روش ارزش عملی و تجربی دارد. به­علاوه، حساسیت آن را نسبت به نویز آنالیز می­کنیم و نشان می­دهیم چگونه چرخش سریع آشکارسازی شیء ثابت انجام می­شود. کد کامل منبع در لینک زیر ارائه شده است:https://github.com/nenadmarkus/pico.1- معرفیدر بینایی کامپیوتر، آشکارساز می­تواند مانند فعالیت پیدا کردن مکان و مقیاس تمام اشیاءی که در یک عکس متعلق به کلاس  Appearance عمل کند. برای مثال، این اشیاء می­توانند ماشین، عابران پیاده یا صورت افراد باشد. آشکارساز اتوماتیک شیء طیف گسترده­ای از برنامه­های کاربردی را شامل می­شود. بعضی از آن­ها شامل بیومتریک، دستیار راننده، نظارت بینایی و رابط کاربری هوشمند انسان-ماشین. این برنامه­ها یک انگیزه­ی قوی برای پیشرفت سرعت و دقت روش­های آشکارساز شیء می­سازد.ویولا و جونز [20] آشکارساز اشیا را انجام داده اند که در کاربردهای دنیای واقعی امکان پذیر است. این به دلیل این واقعیت است که سیستم ها بر اساس چارچوب خود می توانند تصاویر را از رویکردهای قبلی بسیار سریعتر پردازش کنند. همچنان، برخی از برنامه ها می توانند از مزایای آشکارسازهای سریعتر بهره مند شوند ، و این انگیزه اصلی ما از پژوهش بود.ما علاقه مند به حمایت از طیف گسترده ای از رایانه­های شخصی و دستگاه های تلفن همراه با قدرت پردازش محدودهستیم. بنابراین برای اینکه سیستم ما در این برنامه­ها کاربردی باشد، ما آماده هستیم که دقت آشکارسازی را فدای هزینه­ی پردازش هزینه و سادگی بهتر کنیم.در این مقاله، ما فریمورک آشکارساز شیء را توضیح داده­ایم که قادر به پردازش بسیار سریع تصاویر درعین حفظ رقابت در دقت است. ایده های اساسی در بخش 2 توضیح داده شده است. تجربی تجزیه و تحلیل در بخش 3 ارائه شده است. بخش 4 خلاصه می کند یافته های ما و در مورد جهت گیری های تحقیقاتی آینده بحث می کند.2- روشرویکرد ما حالتی از استاندارد چارچوب آشکارساز اشیا Viola-Jones  است. ایده اصلی اسکن کردن تصویر با آبشاری از طبقه بندی کننده های باینری در تمام موقعیت ها و مقیاس های معقول است. یک ناحیه تصویر به عنوان یک شی  مورد توجه طبقه بندی می شود در صورتی که با موفقیت تمام اعضای آن را پشت سر بگذارد. هر دسته­بندی باینری تشکیل می­شود از یک گروه درختان تصمیم با تراکم پیکسلی که مانند تست باینری در نودهای داخلی مقایسه می­شود. فرایند آموزش از فرایند ساختار درخت رگرسیون حریصانه و الگوریتم کمک کننده تشکیل می­شود .درخت تصمیم برای رگرسیون مبتنی بر تصویربرای پرداختن به مساله تصویر، مبتنی بر رگرسیون یک درخت تصمیم گیری باینری بهینه شده با مقایسه شدت پیکسل به عنوان تست های باینری در گره های داخلی آن استفاده می کنیم . این رویکرد توسط آمیت و جمن در [1] معرفی شد و بعداً با موفقیت مورد استفاده سایر محققان و مهندسان قرار گرفت. تست باینری مقایسه شدت پیکسل در تصویرI  به اینصورت تعریف شده است.bintest(I; l1; l2) = {0 I(l1) _ I(l2)1 otherwise;جایی که I(li) شدت پیکسل در مکان li است. مکان l1 و l2 در مختصات نرمال شده هستند، یعنی هر دو از آن مجموعه  [-1,+1]* [-1,+1]هستند؛ این بدان معنی است که تست های باینری می توانند در صورت نیاز به راحتی قابل تغییر اندازه باشند. هر گره پایانی درخت از یک اسکالر تشکیل می­شود که خروجی را مدل می­کند.طراحی ساختار درخت، با نظارت است. دیتای آموزشی مجموعه{ f(Is; vs;ws) : s = 1; 2; : : : ; S}  هست .مشاهده بقیه مقاله در: https://translate.google.com/?sl=en&amp;tl=fa&amp;text=where%20vs%20is%20the%20ground%0Atruth%20value%20associated%20with%20image%20Is%20and%20ws%20is%20its%20importance%0Afactor%20(weight).&amp;op=translate</description><category>بهناز صادقی گل</category><author>بهناز صادقی گل</author><pubDate>Sun, 09 Jan 2022 00:44:31 +0330</pubDate></item><item><title>معرفی Cross-Validation در یادگیری ماشین</title><link>https://virgool.ir/@behnaz.goll/معرفی-cross-validation-در-یادگیری-ماشین-agrclodeigep</link><description>اعتبار سنجی متقابل (Cross-Validation) در یادگیری ماشینی: چگونه آن را درست انجام دهیم؟در یادگیری ماشین (ML)، جامعیت و عمومیت معمولا به توانایی یک الگوریتم در تأثیرگذاری روی ورودی­های مختلف اشاره دارد؛ به این معنی که مدل یادگیری ماشین توانایی عملکرد خود را در برابر ورود داده­های جدید در یک توزیع داده­ی آموزشی از دست نمی­دهد.برای انسان، عمومیت­بخشی و تعمیم، طبیعی­ترین کار ممکن است. ما می­توانیم به­صورت آنی (در ذهنمان) دسته­بندی و طبقه­بندی انجام دهیم. به­­طور مثال، ما بدون شک یک سگ را تشخیص می­دهیم حتی اگر قبل از آن، چنین نژادی را ندیده باشیم. با این حال چنین مساله­ای می­تواند برای یک مدل یادگیری ماشین کاملا چالش برانگیز باشد. به همین دلیل بررسی توانایی الگوریتم در عمومیت­بخشی کار مهمی است که در زمان ساخت مدل نیاز به توجه زیادی دارد.برای انجام چنین کاری از روش اعتبارسنجی متقابل (CV) استفاده می­کنیم.موضوعاتی که در این مقاله به آن­ها خواهیم پرداخت، عبارتند از:- اعتبارسنجی متقابل چیست: تعریف، هدف از استفاده و روش­ها.- روش­های متفاوت CV:, Stratified , Leave-p-out, Leave-one-out, k-folds, k-folds ,hold-out Complete  CV ,Nested k-folds, Repeated k-folds- چگونه از این روش­ها استفاده کنیم؟ sklearn- اعتبارسنجی متقابل در یادگیری ماشین: sklearn, CatBoost- اعتبارسنجی متقابل در یادگیری عمیق: Keras, PyTorch, MxNet- بهترین تمرین­ها و نکات: سری­های زمانی، داده­های پزشکی و اقتصادی، تصاویر-اعتبارسنجی متقابل چیست؟اعتبارسنجی متقابل یک روش برای ارزیابی مدل یادگیری ماشین و تست کردن کارایی آن است. CVمعمولا در کارهای درخواستی ML به کار برده می­شود. این روش کمک می­کند که مدل مناسب برای مدل کردن پیش­بینی مساله خاص مقایسه و انتخاب شود.درک و فهمیدن روش CV راحت است، پیاده­سازی آن راحت است و نسبت به سایر روش­ها که در شمارش امتیازات مدل استفاده می­شود، بایاس کمتری دارد. همه­ی این­ها، روش اعتبارسنجی متقابل را یک ابزار قوی در جهت انتخاب بهترین مدل برای انتخاب یک کار مشخص می­سازد.برای مدل کردن اعتبارسنجی متقابل روش­های متنوع زیادی ممکن است استفاده شود؛ با این­که همه­ی آن­ها یک الگوریتم مشابه دارند:1. تقسیم کردن مجموعه داده­ها به دو بخش: بخشی برای آموزش و بخش دیگر برای تست2. آموزش مدل روی مجموعه داده­های آموزشی3. اعتبارسنجی مدل روی مجموعه داده­های تست4. تکرار یک یا دوبار مراحل 1-3 . این تعداد بستگی به روش CV دارد که استفاده می­کنید.همان­طور که می­دانید، روش­های CV بسیاری وجود دارد. بعضی از آن­ها به­صورت متداول به کار گرفته می­شوند و بعضی دیگر فقط در تئوری کار می کنند.روش­های اعتبارسنجی متقابلی که در این مقاله به آن­ها خواهیم پرداخت، عبارتند از:Hold-outK-foldsLeave-one-outLeave-p-outStratified K-foldsRepeated K-foldsNested K-foldsCompleteروش اعتبارسنجی متقابل Hold-out ساده­ترین و رایج­ترین تکنیک است. شاید شما با روش Hold-out آشنایی نداشته باشید اما یقینا همه روزه از آن استفاده می­کنید.روش الگوریتم Hold-out:1. مجموعه داده آموزشی را به دو قسمت تقسیم کنید: مجموعه آموزشی و مجموعه تست. معمولا 80% مجموعه داده را برای مجموعه آموزشی استفاده می­کنند و 20% دیگر را برای مجموعه تست.2. با مجموعه آموزشی مدل را، آموزش دهید.3. با داده­های تست، آن را ارزیابی کنید.4. نتیجه­ی اعتبارسنجی را ذخیره کنید.معمولا از روش اعتبارسنجی Hold-out برای مجموعه داده­های بزرگ استفاده می­کنیم زیرا تنها به یک بار آموزش مدل نیاز دارد. پیاده­سازی روش Hold-out واقعا ساده است. برای مثال، می‌توانید این کار را با استفاده از sklearn.model_selection.train_test_split انجام دهید.import numpy as npfrom sklearn.model_selection importtrain_test_splitX, y = np.arange(10).reshape((5, 2)), range(5)X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=111)البته روش Hold-out یک ایراد اساسی دارد. برای مثال، مجموعه داده­ای که توزیع کاملا یکنواختی ندارد. در چنین حالتی ممکن است پس از تقسیم، در یک نقطه­ی نقطه­ی ناهموار قرار بگیریم. به­طور مثال مجموعه­ی آموزشی، مجموعه تست را نشان نخواهد داد. ممکن است مجموعه آموزشی و تست تفاوت بسیاری داشته باشند، ممکن است یکی از آن­ها سخت­تر یا آسان­تر باشد.به­علاوه این واقعیت که ما مدلمان را فقط یک بار تست می­کنیم ممکن است یک تنگنا برای این روش باشد. به دلایلی که اشاره شد، ممکن است نتایج به­دست آمده به روش Hold-out نادرست به نظر برسد.k-Foldk-Fold CV یک روش است که معایب روش Hold-out را به حداقل می­رساند. k-Fold روش جدیدی را برای تقسیم مجموعه داده معرفی می­کند برای غلبه بر «تنگنای فقط یک تست» کمک می­کند.روش الگوریتم k-Fold:1. عددی را برای k انتخاب کنید. معمولا k عددی بین 5 و 10 است اما می­توانید هر عددی کمتر از طول مجموعه داده را انتخاب کنید.2. مجموعه داده را به k قسمت مساوی (در صورت امکان) تقسیم کنید. (به آنها folds گفته می شود)3. 1-Kدسته یا fold را که مجموعه آموزشی خواهد بود، انتخاب کنید. دسته­های باقیمانده مجموعه تست خواهد بود.4. مدل را روی مجموعه آموزشی، آموزش دهید. در هر تکرار در اعتبارسنجی متقابل، باید یک مدل جدید مستقل از مدل آموزشی که در مرتبه­ی قبل آموزش دیده را آموزش دهید.5. روی مجموعه تست ارزیابی انجام دهید.6. نتیجه­ی ارزیابی را ذخیره کنید.7. مراحل 3-6 را k بار تکرار کنید. هر بار یک دسته باقی­مانده را به­عنوان داده­ی تست در نظر بگیرید. در نهایت، شما با همه دسته­هایی که دارید مدل را ارزیابی کرده­اید.8. برای به دست آوردن امتیاز نهایی، نتایجی را که در مرحله 6 به دست آوردید میانگین بگیرید.اعتبار سنجی متقابل به روش k- foldبرای انجام اعتبارسنجی متقابل k-Fold می توانید از sklearn.model_selection.KFold استفاده کنید.import numpy as npfrom sklearn.model_selection import KFoldX = np.array([[1, 2], [3, 4], [1, 2], [3, 4]])y = np.array([1, 2, 3, 4])kf = KFold(n_splits=2)for train_index, test_index in kf.split(X):print(&#34;TRAIN:&#34;, train_index, &#34;TEST:&#34;, test_index)X_train, X_test = X[train_index], X[test_index]y_train, y_test = y[train_index], y[test_index]به طور کلی همیشه بهتر است به­جای روش Hold-out از روش k- fold استفاده شود. به­طور دقیق­تر، مقایسه­ی نتایجی که از روش k- fold به دست می­آید درست­تر و قابل اعتمادتر است زیرا تست و آموزش روی چندین بخش مختلف از مجموعه داده اجرا می­شود. حتی می­توانیم تعداد دسته­بندی یا fold های تست مدل را روی زیرمجموعه داده­ها بیشتر کنیم، تا کل امتیاز را به دست آوریم.همچنان روش k- fold معایبی دارد. افزایش k باعث آموزش مدل­های بیشتری می­شود و روند آموزش ممکن است واقعا گران و زمان بر باشد.Leave-one-outاعتبارسنجی متقابل Leave-one-out (LOOCV) شدت یافته­ی مورد k-Fold CV است. تصور کنید k  برابر با n  باشد که n تعداد نمونه های مجموعه داده است.تکنیک الگوریتم LOOCV1. یک نمونه از مجموعه داده انتخاب کنید که مجموعه تست باشد.2. 1-nنمونه باقی­مانده را در مجموعه آموزشی قرار دهید.3. مدل را روی مجموعه آموزشی، آموزش دهید. هر بار باید یک مجموعه جدید آموزش ببیند.4. آن را روی داده تست ارزیابی کنید.5. نتیجه ارزیابی را ذخیره کنید.6. مراحل 1-5 را nبار تکرار کنید زیرا برای n نمونه ما n مجموعه آموزشی و تست متفاوت داریم.7. برای به دست آوردن امتیاز نهایی، میانگین نتایج به دست آمده در مرحله 5 را محاسبه کنید.اعتبارسنجی متقابل Leave-one-out (LOOCV)sklearn برای  LOOCV هم یک متد داخلی داردکه می­توان آن را در کتابخانه model_selection -  sklearn.model_selection.LeaveOneOut  یافت.import numpy as npfrom sklearn.model_selection import LeaveOneOutX = np.array([[1, 2], [3, 4]])y = np.array([1, 2])loo = LeaveOneOut()for train_index, test_index in loo.split(X):print(&#34;TRAIN:&#34;, train_index, &#34;TEST:&#34;, test_index)X_train, X_test = X[train_index], X[test_index]y_train, y_test = y[train_index], y[test_index]بزرگ­ترین مزیت اعتبارسنجی متقابل Leave-one-out این است که داده زیادی را به هدر نمی­دهد. ما فقط یک نمونه از کل مجموعه داده را به­عنوان داده تست در نظر می­گیریم؛ درحالی­که بقیه داده، آموزشی است. اما وقتی با k-Fold CV مقایسه می‌شود، LOOCV  نیاز است  به جای k مدل n مدل ساخته شود.  به این معنی که  LOOCV از نظر محاسباتی گران­تر از k-Fold است، ممکن است زمان زیادی برای اعتبارسنجی متقابل مدل با استفاده از LOOCV نیاز باشد.بنابراین، جامعیت علم داده یک قاعده­ی کلی بر اساس شواهد تجربی و تحقیقات متفاوت دارد که پیشنهاد می­دهد که اعتبارسنجی متقابل 5-Fold  یا10-Fold  بر روشLOOCV  ترجیح دارد.Leave-p-outاعتبارسنجی متقابل Leave-p-out (LpOC) شبیه Leave-one-out CV است؛ زیرا تمام مجموعه­های آموزشی و تست ممکن را با استفاده از  pنمونه، به­عنوان مجموعه آزمایشی ایجاد می کند. تمام موارد گفته شده در مورد  LOOCV  برایLpOC هم درست است.با این حال قابل ذکر است که برخلاف مجموعه تست LOOCV و k-Fold برای LpOCاگر p بزرگتر از 1 باشد، هم­پوشانی دارد.الگوریتم روشLpOC :1- p نمونه را از مجموعه داده انتخاب کنید که مجموعه تست باشد.2- n – p  نمونه باقیمانده مجموعه آموزشی خواهد بود.3- مدل را روی مجموعه آموزشی آموزش دهید. در هر تکرار، باید یک مدل جدید آموزش داده شود.4- مجموعه تست را ارزیابی کنید.5- نتیجه ارزیابی را ذخیره کنید.6- مراحل 2 تا 5 C­­np بار را تکرار کنید.7- برای به دست آوردن امتیاز نهایی، میانگین نتایجی که در مرحله 5 به دست آوردید، را محاسبه کنید.می­توانید Leave-p-out CV را با استفاده – sklearn.model_selection.LeavePOut اجرا کنید.import numpy as npfrom sklearn.model_selection importLeavePOutX = np.array([[1, 2], [3, 4], [5, 6], [7, 8]])y = np.array([1, 2, 3, 4])lpo = LeavePOut(2)for train_index, test_index inlpo.split(X):print(&#34;TRAIN:&#34;, train_index, &#34;TEST:&#34;, test_index)X_train, X_test = X[train_index], X[test_index]y_train, y_test = y[train_index], y[test_index]LpOC  تمام معایب LOOCV را دارد، اما، با این وجود، به اندازه LOOCV قوی است.k-Fold طبقه­بندی شدهگاهی ممکن است با عدم تعادل زیادی در مقدار هدف در مجموعه داده مواجه شویم. به عنوان مثال، در مجموعه داده‌­ی مربوط به قیمت ساعت‌ مچی، ممکن است تعداد بالاتری از ساعت‌های مچی قیمت زیادی داشته باشند. در مورد دسته­بندی، در مجموعه داده‌های گربه‌ و سگ‌ ممکن است گرایش زیادی به سمت دسته سگ وجود داشته باشد.K-Fold  طبقه بندی شده نوع دیگری از روش استاندارد K-Fold CV است که طراحی شده است تا در چنین مواردی از عدم تعادل هدف موثر واقع شود.این­طور عمل می­کند: K-Fold  طبقه بندی شده مجموعه داده را روی K دسته طبقه­بندی می­کند به طوری که هر دسته تقریباً دارای همان درصدی باشد که نمونه های هر کلاس هدف به نسبت کل مجموعه دارد. در مورد رگرسیون، k-Fold طبقه­بندی شده این  اطمینان را می دهد که میانگین مقدار هدف تقریباً در همه­ی دسته­ها مساوی است.الگوریتم روش K-Fold طبقه بندی شده به این صورت است:1- تعداد K دسته را انتخاب کنید.2- مجموعه داده­ها را در K دسته تقسیم­بندی کنید؛ به طوری که هر دسته تقریباً دارای همان درصدی باشد که نمونه­های هر کلاس هدف به نسبت کل مجموعه دارد.3- 1- K دسته را برای مجموعه آموزشی انتخاب کنید. دسته باقی­مانده به­عنوان داده تست استفاده می­شود.4- مدل را روی مجموعه آموزشی آموزش دهید.  در هر بار، یک مدل جدید باید آموزش داده شود.5- با مجموعه تست ارزیابی انجام دهید.6- نتیجه ارزیابی را ذخیره کنید.7- مراحل 6-3 را K بار تکرار کنید. هر بار دسته­ی باقی مانده را برای مجموعه تست استفاده کنید. در پایان شما باید مدل را روی همه­ی مجموعه­ها ارزیابی کرده باشید.8- برای به دست آوردن امتیاز نهایی، میانگین نتایجی که در مرحله 6 به دست آوردید را محاسبه کنید.همان­طور که ممکن است دقت کرده باشید، الگوریتم روش طبقه­بندی شده  k-Fold مشابه روش K-Fold استاندارد است.  شما نیازی به کدنویسی اضافی ندارید زیرا این روش همه کارهای لازم را برای شما انجام خواهد داد.k-Foldطبقه­بندی شده یک متد داخلی در sklearn دارد.  – sklearn.model_selection.StratifiedKFoldimport numpy as npfrom sklearn.model_selection importStratifiedKFoldX = np.array([[1, 2], [3, 4], [1, 2], [3, 4]])y = np.array([0, 0, 1, 1])skf = StratifiedKFold(n_splits=2)for train_index, test_index inskf.split(X, y):print(&#34;TRAIN:&#34;, train_index, &#34;TEST:&#34;, test_index)X_train, X_test = X[train_index], X[test_index]y_train, y_test = y[train_index], y[test_index]تمام موارد ذکر شده در بالا در مورد K-Fold CV برای روش Stratified k-Foldنیز درست است. موقع انتخاب کردن بین روش های مختلف CV، اطمینان پیدا کنید که از روش مناسب استفاده می کنید. برای مثال، ممکن است فکر کنید که مدل شما عملکرد بدی دارد، صرفاً به این دلیل که از K-Fold CV برای ارزیابی مدلی استفاده می‌کنید که بر روی مجموعه داده با کلاس نامتعادل آموزش داده شده است. برای جلوگیری از آن باید همیشه تحلیل داده اکتشافی مناسب را روی دیتا انجام دهید.Repeated k-Fold (تکرار شونده)اعتبارسنجی متقابل k-Fold  تکرارشونده یا نمونه گیری تصادفی تکراری CVاحتمالا قوی­ترین روش CV در این مقاله است. این روش یک نوع از k-Fold است اما در مورد K-Folds تکرارشونده  k تعداد دسته­ها نیست بلکه تعداد دفعاتی است که ما مدل را آموزش خواهیم داد.ایده کلی این است که در هر تکرار، به‌طور تصادفی نمونه‌هایی را از تمام مجموعه داده به عنوان مجموعه تست انتخاب می‌کنیم. به عنوان مثال، اگر تصمیم بگیریم که 20٪ از مجموعه داده را برای مجموعه تست در نظر بگیریم، 20٪ نمونه­ها به طور تصادفی انتخاب شوند و 80٪ مابقی مجموعه آموزشی در نظر گرفته شوند.الگوریتم روش Repeated k-Fold:1- k – a را انتخاب کنید تا مدل آموزش داده شود.2- تعداد a نمونه را انتخاب کنید که مجموعه تست قرار بگیرد.3- مجموعه داده را تقسیم کنید.4- مجموعه آموزشی را مورد آموزش قرار دهید. در هر تکرار اعتبارسنجی متقابل، یک مدل جدید باید آموزش داده شود.5- مجموعه تست را مورد ارزیابی قرار دهید.6- نتیجه ارزیابی را ذخیره کنید.7- مراحل را 3-6 را k بار تکرار کنید.8- برای به دست آوردن امتیاز نهایی، میانگین نتایجی که در مرحله 6 به دست آوردید را محاسبه کنید.Repeated k-FoldK-Fold  تکرارشونده مزایای واضحی نسبت به k-Fold CV استاندارد  دارد. اول، نسبت تقسیم آموزش/تست به تعداد تکرارها بستگی ندارد. دوم، حتی می توانیم نسبت­های خاصی را برای هر تکرار مشخص کنیم. سوم، انتخاب تصادفی نمونه‌ از مجموعه داده‌ها،  Repeated k-Fold  را انتخاب قوی‌تری می‌کند.با این حال، برخی از معایب وجود دارد k-Fold CV تضمین می ‌کند که مدل روی همه نمونه‌ها تست می‌شود، در حالی که K-Fold تکراری بر اساس تصادفی‌سازی است که به این معنی است که برخی از نمونه‌ها ممکن است هرگز برای قرار گرفتن در مجموعه تست انتخاب نشوند. در همان زمان، برخی از نمونه ها ممکن است چندین بار انتخاب شوند.Sklearn به شما در پیاده سازی Repeated k-Fold CV کمک می­کند. فقط از sklearn.model_selection.RepeatedKFold استفاده کنید. در اجرای sklearn این روش باید تعداد دسته­هایی که می­خواهید داشته باشید (n_splits ) و تعداد دفعاتی که تقسیم انجام می­شود (n_repeats ) را تنظیم کنید. این تضمین می­کند که در هر تکرار دسته­های مختلفی داشته باشید.import numpy as npfrom sklearn.model_selection import RepeatedKFoldX = np.array([[1, 2], [3, 4], [1, 2], [3, 4]])y = np.array([0, 0, 1, 1])rkf = RepeatedKFold(n_splits=2, n_repeats=2, random_state=42)for train_index, test_index in rkf.split(X):print(&#34;TRAIN:&#34;, train_index, &#34;TEST:&#34;, test_index)X_train, X_test = X[train_index], X[test_index]y_train, y_test = y[train_index], y[test_index]روش Nested k-Foldبرخلاف سایر‌ روش­های CV، که برای ارزیابی کیفیت یک الگوریتم طراحی شده‌اند، Nested k-Fold CV محبوب ‌ترین راه برای تنظیم پارامترهای یک الگوریتم است.تصور کنید که ما یک پارامتر p داریم که معمولاً به الگوریتم پایه ای که ما در حال اعتبارسنجی متقابل آن هستیم بستگی دارد. به عنوان مثال، برای رگرسیون لجستیک، ممکن است پارامتر جریمه­ای باشد که برای تعیین اندازه مورد استفاده در جریمه به کار گرفته می شود.الگوریتم روش Nested k-Fold1- k را انتخاب کنید. (به عنوان مثال، 10). فرض کنید این عدد را انتخاب کرده­ایم.2- یک پارامتر p انتخاب کنید. فرض کنید الگوریتم ما رگرسیون لجستیک است و p پارامتر جریمه p = {&#39;l1&#39;, &#39;l2&#39;, &#39;elasticnet&#39;, &#39;none&#39;}3- مجموعه داده را به 10 دسته تقسیم کنید و یکی از آنها را برای تست در نظر بگیرید.4- یکی از دسته­های آموزشی را برای اعتبارسنجی رزرو کنید.5- برای هر مقدار p روی 8 دسته آموزشی باقیمانده آموزش دهید و روی دسته اعتبارسنجی ارزیابی کنید. اکنون 4 اندازه­گیری دارید.6- مراحل 4-5 را 9 بار تکرار کنید. طوری دسته آموزشی را بچرخانید تا دسته ارزیابی قرار گیرد. اکنون 4 * 9 اندازه گیری دارید.7- p را انتخاب کنید که میانگین خطای آموزش را روی 9 دسته به حداقل می رساند. از آن p برای ارزیابی روی مجموعه تست استفاده کنید.8- از مرحله 2 ، 10 بار تکرار کنید و از هر فولد به نوبت به عنوان فولد تست استفاده کنید.9- میانگین و انحراف معیار اندازه گیری ارزیابی را در 10 فولد تست ذخیره کنید.10- الگوریتمی که بهترین عملکرد را داشت، الگوریتمی بود که بهترین میانگین عملکرد خارج از نمونه را در 10 فولد آزمایشی داشت.این روش از نظر محاسباتی هزینه­بر است؛ زیرا در طول مراحل 1 تا 10 تعداد زیادی مدل باید آموزش و ارزیابی شوند. با این حال، Nested k-Fold CV معمولا استفاده می شود و ممکن است در چندین کار ML واقعاً مؤثر باشد.متأسفانه، هیچ روش داخلی در sklearn وجود ندارد که بتواند CV Nested k-Fold را برای شما انجام دهد. این لحظه ای است که شما باید یا گوگل کنید و پیاده سازی شخصی را پیدا کنید یا خودتان آن را کدنویسی کنید.Complete Cross-ValidationCV کامل کم استفاده ترین تکنیک CV است. ایده کلی این است که ما یک عدد k - طول مجموعه آموزشی را انتخاب می کنیم و روی هر تقسیم ممکن شامل k نمونه در مجموعه آموزشی سنجی می کنیم.مقدار آن تقسیم‌ها را می‌توان به صورت ترکیب n از k محاسبه کرد که n طول مجموعه داده است. اگر k بالاتر از 2 باشد، باید مدل خود را چندین بار آموزش دهیم که همانطور که قبلاً متوجه شدیم از نظر زمان فرآیند گران قیمت و از جنبه محاسبات پیچیده است.به همین دلیل است که از CV کامل یا در تحقیقات نظری استفاده می شود و یا در صورت وجود فرمول مؤثری که به حداقل رساندن محاسبات کمک می کند.الگوریتم اعتبار سنجی متقاطع کامل:1- یک عدد k را انتخاب کنید ( طول مجموعه آموزشی).2- مجموعه داده را تقسیم کنید.3- روی مجموعه آموزشی تمرین کنید.4- در مجموعه تست اعتبار سنجی کنید.5- نتیجه اعتبارسنجی را ذخیره کنید.6- مراحل 2 تا 5 را به اندازه ترکیب n از k تکرار کنید.7- برای به دست آوردن امتیاز نهایی، میانگین نتایجی که در مرحله 5 به دست آوردید، محاسبه نمایید.اعتبار سنجی متقابل در یادگیری ماشینیبیشتر تکنیک های اعتبار سنجی متقابل ذکر شده در بالا به طور گسترده در ML استفاده می شود. مهم است که به خاطر داشته باشید که استفاده از تکنیک CV مناسب ممکن است در زمان شما صرفه جویی کند و به انتخاب بهترین مدل برای کار کمک کند.این بدان معناست که اول این که بهتر است همیشه مدل را اعتبارسنجی متقابل کنید و دوم این که باید یک روش CV مربوطه را انتخاب کنید. بنابراین، دانستن مزایا و معایب تکنیک های اعتبارسنجی متقابل حیاتی است.شایان ذکر است که اگر می‌خواهید مدل را اعتبار سنجی متقابل کنید، همیشه باید دفترچه راهنمای مدل را بررسی کنید زیرا برخی از الگوریتم‌های ML، به عنوان مثال، CatBoost روش‌های CV داخلی خود را دارند. ممکن است آنها را مربوط به وظیفه ML خود بیابید و به جای روش های داخلی sklearn از آنها استفاده کنید.به طور کلی، همانطور که ممکن است متوجه شده باشید، بسیاری از تکنیک‌های CV دارای روش‌های داخلی sklearn هستند. من به شدت توصیه می کنم از آنها استفاده کنید زیرا این روش ها در زمان برای کارهای پیچیده تر صرفه جویی زیادی می کنند.اعتبار متقابل در یادگیری عمیقاعتبار سنجی متقابل در یادگیری عمیق (DL ) ممکن است کمی مشکل باشد زیرا اکثر تکنیک های CV حداقل چند بار نیاز به آموزش مدل دارند.در یادگیری عمیق، معمولاً به دلیل هزینه ‌های مرتبط با آموزش مدل ‌های مختلف، از CV اجتناب می‌کنید. به جای انجام k-Fold یا سایر تکنیک های CV، ممکن است از یک زیرمجموعه تصادفی از داده های آموزشی خود به عنوان hold-out برای اهداف اعتبار سنجی استفاده کنید.به عنوان مثال، کتابخانه یادگیری عمیق Keras به شما امکان می دهد یکی از دو پارامتر را برای تابع fit که آموزش را انجام می دهد، ارسال کنید.validation_split: درصدی از داده هایی که باید برای اعتبار سنجی hold-out شوند.validation_data: یک تاپل از (X, y) که باید برای اعتبارسنجی استفاده شود. این پارامتر, validation_split را نادیده می گیرد، به این معنی که شما می توانید تنها یکی از این پارامترها را در یک زمان استفاده کنید.همین رویکرد در آموزش های رسمی سایر فریمورک های DL مانند PyTorch و MxNet استفاده می شود. آنها همچنین پیشنهاد می کنند مجموعه داده را به سه بخش تقسیم کنید: آموزش، اعتبار سنجی و تست.آموزش : بخشی از مجموعه داده برای آموزش.اعتبار سنجی : بخشی از مجموعه داده برای اعتبارسنجی در حین آموزش.تست : بخشی از مجموعه داده برای اعتبار سنجی نهایی مدل.با این حال، اگر مجموعه داده کوچک است (شامل صدها نمونه) می توانید از اعتبارسنجی متقابل در وظایف DLاستفاده کنید. در این مورد، یادگیری یک مدل پیچیده ممکن است یک کار بی ربط باشد، بنابراین مطمئن شوید که کار را بیشتر پیچیده نکنید.بهترین روش ها و نکاتشایان ذکر است که گاهی اوقات انجام اعتبارسنجی متقابل ممکن است کمی مشکل باشد.به عنوان مثال، اشتباه منطقی هنگام تقسیم مجموعه داده بسیار آسان است که ممکن است منجر به یک CVغیرقابل اعتماد شود.ممکن است نکاتی را بیابید که باید هنگام اعتبارسنجی متقابل یک مدل همچنانکه در زیر آمده مد نظر داشته باشید:1- هنگام تقسیم داده ها منطقی باشید (آیا روش تقسیم منطقی است).2- از روش CV مناسب استفاده کنید (آیا این روش برای مورد استفاده من قابل اجرا است).3- هنگام کار با سری های زمانی، گذشته را ارزیابی نکنید (به اولین نکته مراجعه کنید).4- هنگام کار با داده های پزشکی یا مالی، به یاد داشته باشید که آن را بر اساس شخص تقسیم کنید. از داشتن داده برای یک نفر هم در آموزش و هم در مجموعه تست خودداری کنید زیرا ممکن است به عنوان نشت داده در نظر گرفته شود.5- هنگام برش تکه‌ها از تصاویر بزرگ تر، به یاد داشته باشید که با شناسه تصویر بزرگ تقسیم کنید.البته، نکات از کار به کار متفاوت است و پوشش همه آنها تقریبا غیرممکن است. به همین دلیل است که انجام یک تجزیه و تحلیل داده های اکتشافی جامد قبل از شروع اعتبارسنجی متقابل یک مدل همیشه بهترین روش است.نتایج نهاییاعتبار سنجی متقابل ابزار قدرتمندی است. هر دانشمند داده باید با آن آشنا باشد. در زندگی واقعی، شما نمی توانید پروژه را بدون اعتبارسنجی متقابل یک مدل به پایان برسانید.به نظر من بهترین تکنیک های CV Nested k-Fold و استاندارد k-Fold هستند. من شخصاً از آنها در پروژه تشخیص تقلب استفاده کردم. K-Fold تودرتو و همچنین GridSeachCV به من کمک کرد تا پارامترهای مدل خود را تنظیم کنم. از طرف دیگر، k-Fold برای ارزیابی عملکرد مدل من استفاده شد.در این مقاله، ما متوجه شدیم که اعتبارسنجی متقابل چیست، چه تکنیک‌های CV در طبیعت وجود دارد و چگونه آنها را پیاده‌سازی کنیم. در آینده الگوریتم های ML قطعاً حتی بهتر از امروز عمل خواهند کرد. با این حال، اعتبار سنجی متقابل همیشه برای پشتیبان گیری از نتایج شما مورد نیاز است.امیدواریم با این اطلاعات، مشکلی در تنظیم CV برای پروژه بعدی یادگیری ماشینی خود نخواهید داشت.    منبع:          https://neptune.ai/blog/cross-validation-in-machine-learning-how-to-do-it-right  </description><category>بهناز صادقی گل</category><author>بهناز صادقی گل</author><pubDate>Wed, 15 Dec 2021 23:48:34 +0330</pubDate></item><item><title>آشنایی با هوش مصنوعی</title><link>https://virgool.ir/@behnaz.goll/آشنایی-با-هوش-مصنوعی-wc0fkqda0nlg</link><description>در کتاب معروف«هوش مصنوعی، یک رویکرد مدرن» دیدگاه‌های مختلف از دو بعد مورد بررسی قرار گرفته‌اند. از منظر اول هوشمندی یا در رفتار است یا در تفکرو از منظر دوم هوشمندی در انسان‌گونه بودن یا در منطقی بودن (rationality)  است. اگر همهی حالات را در نظر بگیریم به چهار تعریف زیر می‌رسیم. هوش مصنوعی چیزی است که:منطقی فکر کند.منطقی رفتار کند.مانند انسان فکر کند.مانند انسان رفتار کند.فرض کنید هوشمندی مورد نظر خود را انتخاب کردیم. قدم بعدی ساخت عامل هوشمنداست. عامل می‌تواند سخت‌افزاری یا نرم‌افزاری باشد و بر حسب محیطی که عامل قرار است در آن مورد استفاده قرار گیرد، می‌تواند دارای اجزای مختلفی باشد. امروزه هر برنامه‌ای که هوشمندی داشته باشد یا به نوعی رفتار انسان را تقلید کند، به عنوان هوش مصنوعی پذیرفته می‌شود. یادگیری ماشین بعد از هوش مصنوعی موضوعیت پیدا کرد و آن را می‌توان زیر مجموعه­ی هوش مصنوعی در نظر گرفت.یکی از مهم‌ترین ویژگی‌های یادگیری ماشین، یادگیری با استفاده از داده و بدون استفاده از دستورات مستقیم است ویژگی دیگر یادگیری ماشین، تغییر خود با دیدن داده‌های جدید است؛ یعنی همانند انسان با کسب تجربیات جدید رفتار خود را تغییر می‌دهد. صنعت، دانشگاه، حوزه­ی سلامت، اقتصاد و تجارت، کسب و کارها و بسیاری دیگر، از یادگیری ماشین برای پیشبرد اهداف خود استفاده می‌کنند.زبان پایتون و R  از محبوب‌ترین زبان‌های قابل استفاده برای یادگیری ماشین هستند و کتابخانه‌های بسیار قدرتمندی در این زبان‌ها برای رفع نیازهای علاقه‌مندان این حوزه در حال گسترش است.موقعیت‌های شغلی مرتبط با یادگیری ماشینتحلیل‌گر داده ( (Data Analystتحلیل‌گر داده شدن، نسبت به دیگر شغل‌های مرتبط با داده آسان‌تر است و قبل از آنها وجود داشته است.داشتن مهارت‌های برنامه‌نویسی برای تحلیل‌گر داده ضروری نمی‌باشد و می‌تواند از نرم‌افزار‌ها یا سرویس‌های وب برای انجام کارهای خود استفاده کند.دانشمند داده ( (Data Scientistدانشمند داده امور داده‌کاوی را معمولا با زبان‌های برنامه‌نویسی و کتابخانه‌های آن انجام می‌دهد ولی تحلیل‌گر از پلتفرم‌ها و نرم‌افزار‌ها استفاده می‌کند. تحلیل‌گر با همه در ارتباط است و معمولا سوالات را دیگران برایش مطرح می‌کنند اما دانشمند داده خودش سوالات را طرح می‌کند، سوالاتی که در تصمیمات شرکت تاثیرگذار هستند.مهندس داده ( (Data Engineerاو پس از مشورت با دیگر اعضای شرکت انتخاب می‌کند که چه داده‌ای از میان سیل داده­ی تولیدی در اختیار شرکت قرار بگیرد. پس از انتخاب منابع داده، داده‌های منابع مختلف را یکپارچه می‌کند و برای نگهداری بهینه­ی آن‌ها برنامه‌ریزی می‌کند.مهندس یادگیری ماشین در واقع نقطه­ی تلاقی مهندسی نرم‌افزار و علم دادهاست. این موقعیت بسیار حرفه‌ای است. مهندس یادگیری ماشین علاوه بر اینکه داده را تا رسیدن به مدل همراهی می‌کند، مسئول رساندن خروجی به کاربر نهایی نیز هست. او مدل تولید شده را بررسی می‌کند و یا پس از انجام بررسی‌های لازم، مدل نظری را وارد فرآیند عملیاتی می‌کند. او باید پیچیدگی‌های محاسباتی و حافظه‌ای را محاسبه کند و مدل طراحی شده توسط دانشمند داده را برای کار در مقیاس بزرگ آماده کند.وظایف مهندس یادگیری ماشین جنبه­ی نظری و عملیاتی دارند. به این صورت که او باید دانش کاملی از الگوریتم‌ها و روش‌های یادگیری ماشین داشته باشد. هم قبل از استقرار مدل، آن را مورد بررسی و تحلیل قرار دهد و هم بر فرآیند عملیاتی ساختن آن و محاسبه­ی پیچیدگی‌ها نظارت داشته باشد. سپس بعد از استقرار، مسئول نظارت و رسیدگی به آن خواهد بود.معمولا حقوق دانشمند داده از تحلیل‌گر داده بیشتر است و مهندس یادگیری ماشین و مهندس داده از دوتای قبلی بیشتر.مفاهیم پایهیادگیری ماشین در اکثر کاربردهای فعلی، یک برنامه کامپیوتری است که به داده دسترسی پیدا می‌کند و از آن برای آموزش خود استفاده می‌کند.دهه پنجاه میلادی یکی از مهندسان IBM  که نامش آقای آرتور ساموئل بود، برای اولین بار از کلمه یادگیری ماشین استفاده کرد و تعریف زیر را برای آن ارائه داد: یادگیری ماشین زمینه‌ای از تحقیقات است که به کامپیوترها توانایی یادگیری بدون برنامه‌نویسی صریح را می‌دهد. پس از او، آقای نیلز نیلسون کتابی تحت عنوان یادگیری ماشین منتشر کرد که اولین مدل‌های یادگیری ماشین در آن مورد بررسی قرار گرفت.با وجود اینکه به طور مستقیم در تعریف قدیمی نیامده، ویژگی اصلی یادگیری ماشین خود آموزشی یا  (Self- learning)  می‌باشد که به معنی استفاده از مدلسازی آماری و عدم استفاده از دستورات مستقیم (یا صریح) می‌باشد.  به عقیده بسیاری در آموزش الگوریتم یادگیری ماشین، نیازی به دخالت انسان برای یادگیری نیست. به بیان دیگر، الگوریتم خود، نیازهای خود را تشخیص می‌دهد و خود را ارتقا می‌دهد. این نکته را در نظر بگیرید که تعریفی که برای یادگیری ماشین ارائه می‌شود ممکن است برای همه انواع آن درست نباشد. برای مثال، در یادگیری با‌نظارت، همانطور که از اسمش پیداست یادگیری با نظارت انسان صورت می‌گیرد.دادهداده‌ها عنصر محوری یادگیری ماشین هستند و ماشین‌ها از داده‌ها یاد می‌گیرند، به این صورت که ما داده‌ها را به عنوان ورودی به الگوریتم می‌دهیم تا خروجی مورد نیازمان را دریافت کنیم. آنچه داده را ارزشمند می‌کند نمایندگی آن از واقعیت است و اطلاعاتی که درباره آن در اختیارمان می‌گذارد. هم‌چنین به ما این اجازه را می‌دهد که درباره ارتباط بین توصیفات مختلف یک وضعیت بپرسیم و اطلاعاتی به دست آوریم.کلمات (زبان طبیعی): داده‌ای که پردازش زبان طبیعی با آن کار می‌کند، جملات و کلمات تولید شده توسط انسان‌ها هستند، که ممکن است به صورت نوشتاری یا صوت در اختیار الگورتیم‌های کامپیوتری قرار بگیرد. برخی از کاربردهای این حوزه عبارتند از: تشخیص گفتار، دسته‌بندی نوشتارها یا نظرات، پاسخ دادن به سوالاتتصاویر: توانایی استخراج اطلاعات از داخل تصاویر امکان فوق‌العاده‌ای را در اختیار یک عامل هوش مصنوعی می‌گذارد و هدف معمولاً تشخیص شیء یا اشیای موجود در تصاویر است. از کابردهای روزمره بینایی ماشین می‌توان به تشخیص پلاک خودروها توسط پلیس، تشخیص اثر انگشت یا چهره برای باز کردن قفل گوشی یا کامپیوتر، جستجو میان تصاویر بر اساس اجسام موجود در عکس، پردازش تصاویر ماهواره‌ای برای هواشناسی یا تشخیص وقایع زیست‌محیطی و ماشین‌های خودران اشاره کرد.همچنین بینایی ماشین در پزشکی نیز کاربرد دارد و مثلاً می‌تواند نیاز به متخصص رادیولوژی را برای بررسی تصاویر پزشکی اشعه ایکس، MRI یا سونوگرافی را کاهش دهد.جداول:نوع جدولی را داده ساختارمند می‌نامیم. داده‌های جدولی را می‌توان به طور کلی به ۲ زیردسته تقسیم‌بندی کرد:داده‌های عددی:      مثل سن فرد یا موجودی حساب اوداده‌های دسته‌ای:      مثل جنسیت یا شهر محل زندگی فردسری زمانی: در مورد بعضی از انواع داده، تغییرات آن و در نتیجه مقدار آن در طول زمان اهمیت ویژه‌ای دارد. از دیدگاه آرتور ساموئل، یادگیری ماشین با برنامه نویسی صریح تفاوت دارد. داده همان تجربه‌ای است که به عنوان ورودی به الگوریتم داده می‌شود. یادگیری نظارت شده، که یکی از انواع یادگیری ماشین است، بیشترین کاربرد را در امور یادگیری ماشین دارد.آقای تام میشل(Tom Mitchell)  در کتاب یادگیری ماشین خود، یادگیری ماشین را از دید مهندسی به این شکل تعریف کرده است:اگر کارایی برنامه در انجام تکلیف T که با سنجه P ارزیابی می‌شود، با تجربه E افزایش یابد، می‌گوییم که برنامه یاد گرفته است از تجربه E با توجه به تکلیف T و سنجه P استفاده کند.تکلیف T : تکلیف T در واقع همان مساله‌ای است که ما انتظار داریم بتوانیم با یادگیری ماشین حل کنیم.تجربه E: برای انجام فرایند یادگیری، که منجر به حل تکلیف T می‌شود، ما نیازمند تعدادی نمونه (sample) هستیم که اطلاعات مورد نیاز در مورد مساله را به ما می‌دهند.در یادگیری بانظارت هر نمونه دارای یک برچسب (label) است و انتظار داریم الگوریتم بتواند با داشتن سایر ویژگی‌ها، مقدار این برچسب را برای مشتری جدید پیش‌بینی کند.سنجه‌ی :P هر مدل یادگیری ماشینی که طراحی کنیم، به هرحال به طور ۱۰۰ درصدی نتیجه درست و مناسبی را ارائه نمی‌دهد؛ بنابراین به معیاری برای بررسی و اندازه‌گیری میزان دقت این الگوریتم نیاز داریم تا در صورت نامناسب بودن دقت آن، با تغییر پارامترهای الگوریتم بتوانیم به دقت بالاتری برسیم. به این معیار سنجه‌ی P می‌گوییم.به طور کلی رویکرد انجام یادگیری ماشین، دارای ۴ عنصر اساسی است:1. یک الگوریتم (مدل) برای تصمیم‌گیری2. یک معیار برای امتیازدهی اینکه عمل‌کرد مدل چقدر خوب بوده3. بررسی خودکار کیفیت مدل بر اساس امتیاز4. یک روش خودکار برای بهبود امتیاز بر اساس ایجاد تغییرات در مدلبه طور کلی یادگیری ماشین به سه دسته کلی تقسیم‌بندی می شود.یادگیری بانظارتیادگیری بی‌نظارتیادگیری تقویتیالگوریتم‌های یادگیری نظارت‌شده، به دو دسته طبقه‌بندی (classification) و رگرسیون (regression) دسته‌بندی می‌شوند. هر دو دسته‌ی طبقه‌بندی و رگرسیون به داده‌های برچسب خورده نیاز دارند و الگوریتم پیش‌بینی آن‌ها را یاد می‌گیرد. اما این برچسب‌ها، کمی با هم تفاوت دارند.تفاوت طبقه بندی و رگرسیون: هر دو دسته یاد می‌گیرند تا برچسب داده‌ها را پیش‌بینی کنند و تنها تفاوت میان این دو دسته، به نوع این برچسب بستگی دارد. در الگوریتم‌های طبقه‌بندی برچسبی که می‌خواهیم پیش‌بینی کنیم به صورت متغیری گسسته می‌باشد.در الگوریتم‌های رگرسیونی، برخلاف طبقه‌بندی، برچسبی که می‌خواهیم پیش‌بینی کنیم به صورت متغیری پیوستهاست.یادگیری بدون نظارت: در این روش یادگیری، مدل به تنهایی و بدون کمک برچسب‌هایی که در روش نظارت‌شده دیدیم، باید الگوهای پنهان را پیدا کند. از یادگیری بی‌نظارت اکثرا برای تحلیل اکتشافی داده‌ها و خوشه‌بندی استفاده می‌شود. الگوریتم‌های یادگیری ماشین بی‌نظارت، به طور کلی به سه دسته خوشه‌بندی (clustering)، کاهش ابعاد (dimensionality reduction) و استخراج قانون وابستگی (association rule mining) تقسیم‌بندی می‌شود.خوشه‌بندی به معنی دسته‌بندی اتوماتیک داده‌ها به خوشه‌های همگن است، به این صورت که داده‌های هر خوشه، ویژگی‌های یکسانی داشته باشند. اولین گام برای خوشه‌بندی داده‌ها، انتخاب کردن معیاری برای خوشه‌بندی است؛ به عبارت دیگر در این گام باید معیاری برای سنجش فاصله بین داده‌ها انتخاب کنیم.روش کاهش ابعاد یعنی کاهش دادن تعداد ویژگی‌هایی که از آن‌ها برای آموزش مدل یادگیری ماشین خود استفاده می‌کنیم. مسائل و مشکلاتی که به هنگام کار با داده‌های دارای ابعاد زیاد مطرح می ‌شود تحت عنوان the curse of dimensionality  شناخته می‌شود. زمانی که ابعاد بیشتری داریم، مدل یادگیری ماشین پیچیده شده و این باعث به‌وجود آمدن بیش‌برازش (overfitting) می‌شود. بیش‌برازش باعث می‌شود که مدل یادگیری ماشین به داده‌هایی که روی آن‌ آموزش دیده وابسته شود و روی داده‌هایی که تا به حال ندیده است عملکرد مطلوبی نداشته باشد.یادگیری تقویتی، یکی از روش های یادگیری ماشین است که با ذهنیت آزمون و خطا کار می‌کند. عامل هوشمند  (agent)  طبق حالت جاری(state) ، حرکت(action)  انجام می‌دهد و بر اساس آن حرکت بازخورد  (reward)  دریافت می‌کند؛ این بازخورد ممکن است مثبت یا منفی (پاداش یا تنبیه) باشد و عامل با این بازخورد خط‌مشی (policy)  خود را تغییر می‌دهد. این روش از یادگیری نزدیک‌ترین حالت به یادگیری انسان است. یادگیری تقویتی برخلاف یادگیری بانظارت و یادگیری بی‌نظارت وابسته به داده نیست، بلکه به واسطه تعامل با محیط می‌آموزد. یادگیری تقویتی برخلاف یادگیری بانظارت و یادگیری بی‌نظارت وابسته به داده نیست، بلکه به واسطه تعامل با محیط می‌آموزد.ذخیره‌سازی و پردازش بهینه­ی آرایه‌های عددی از اهمیت بسیاری برخوردار است. کتابخانه مختص این کار در پایتون نامپای نام دارد که مخفف numeric python به معنی پایتون عددی می‌باشد. یکی دیگر از کتابخانه‌های مهم اکوسیستم کار با داده پایتون، پانداس می‌باشد که از نامپای در بطن خود استفاده می‌کند. مت پلات لیب بیشتر در ساخت نمودارهای ۲ بعدی کاربرد دارد و رابط کاربری آن بسیار شبیه به متلب است. سایکت‌لرن حاوی ابزارهای متنوعی برای یادگیری ماشین و مدل‌سازی آماری است. علاوه بر موارد ذکر شده، کتابخانه‌های بسیار قدرتمند دیگری برای زمینه‌های دیگر کار با داده در پایتون وجود دارد. برای مصور سازی داده می‌توان از پلاتلی (Plotly) و سیبورن (Seaborn)  هم استفاده کرد. برای امور یادگیری عمیق، پایتورچ (Pytorch) ، تنسورفلو (TensorFlow) و کراس(Keras)  بیشتر مورد استفاده قرار می‌گیرند. برای پردازش متن nltk و اسپیسی (Spacy) کارایی بیشتری دارند و در زمینه پردازش عکس می‌توان از کتابخانه‌های اوپن سیوی (OpenCV)  و سایکت ایمیج (scikit-image) نام برد.چالش‌های مربوط به دادهداده اساس یادگیری‌ماشین است و هیچ الگوریتم و مدلی با داده بد نمی‌تواند عملکرد خوبی داشته باشد. کمیت نامناسب داده، داده بی‌کیفیت و ویژگی‌های نامربوط از جمله چالش‌هایی است که به داده مربوط می‌شوند.تعداد ناکافی داده، داده‌ بی‌کیفیت که پر است از مقادیر اشتباه و گم‌شدهچالش های الگوریتمی: بیش‌برازش (Overfitting)، کم‌برازش (Underfitting) و زمان نمونه‌ای از چالش‌های مربوط به مدل‌ها و الگوریتم‌های هوش‌مصنوعی و یاد‌گیری‌ماشین هستند.مساله زمان: زمان در یادگیری‌ماشین از دو جهت اهمیت دارد؛ هم مدت زمانی که طول می‌کشد تا آموزش مدل تمام شود، هم زمانی که مدل برای پیش‌بینی نمونه‌ها مصرف می‌کند. مدت زمانی که طول می‌کشد تا آموزش مدل تمام شود، طول مدت توسعه محصول را تحت تاثیر قرار می‌دهد و زمان مصرفی توسط مدل برای پیش‌بینی نمونه‌ها زمانی است که کاربر‌ نهایی تجربه می‌کند. دانشمند داده همواره سعی می‌کند هر دو زمان را کمینه کند.چرخه­ی تب تکنولوژی (Technology Hype Cycle) را اولین بار موسسه­ی گارتنر (Gartner) در سال ۱۹۹۵ مطرح کرد. این چرخه، نمودار رشد تکنولوژی‌­های مختلف را در طی زمان نشان می‌دهد. بر این اساس هر تکنولوژی ۵ مرحله­ی اصلی را طی می‌کند. به این صورت که ابتدا معرفی می‌شود و شروع به مشهور شدن می‌کند. در این مرحله اغلب شرکت‌ها به استفاده از این فناوری جدید روی می‌آورند. در مرحله­ی دوم که اوج قله است، نام آن تکنولوژی در همه‌جا شنیده شده و با جذب سرمایه‌گذار، بسیاری از استارت‌آپ‌ها شروع به معرفی و استفاده از آن می‌کنند. اما در مرحله­ی سوم محدودیت‌های این تکنولوژی شناخته می‌شود و آهسته از شهرت آن کاسته شده و بسیاری استفاده از آن را کنار می‌گذارند. در مرحله­ی چهارم، تنها برخی کسانی که در عرصه­ی آن تکنولوژی باقی ‌مانده‌اند شروع به فعالیت اصلی در این حوزه کرده و تکنولوژی شروع به رشد می‌کند تا زمانی که به مرحله پایانی یعنی پختگی و ثبات نسبی برسد.عامل‌های هوشمندی که امروزه ساخته می‌شوند معمولا در حل یک مسئله­ی خاص به هوشمندی رسیده‌اند. مثل تشخیص انسان‌های داخل تصویر یا انجام بازی شطرنج.  به این نوع از هوش مصنوعی، هوش مصنوعی محدود یا ضعیف اطلاق می‌شود. در مقابل، آنچه هوش مصنوعی عمومی (artificial general intelligence)  و یا قوی نامیده می‌شود، عبارت است از ساختن عامل هوشمندی که مانند انسان از هوشی عمومی برخوردار باشد که توانایی آموختن در مواجهه با هر مسئله­ی جدیدی را داشته باشد و محدود به یک زمینه یا مسئله­ی خاص نباشد.در ادامه­ی تحولات شگفتی که برای هوش مصنوعی پیش‌بینی می‌شود، از نقطه‌ای نام برده می‌شود که هم با شکوه و هم دلهره برانگیز است و آن نقطه­ی تکینگی فناوری (technological singularity)  است. زمانی که پیشرفت تکنولوژی به نقطه‌ای غیرقابل کنترل و برگشت‌ناپذیر برسد که تمدن انسانی را تحت تاثیر قرار دهد.هربرت سایمون که از پیشگامان هوش مصنوعی به شمار می‌رود و هم برنده­ی جایزه­ی تورینگ (معروف به نوبل محاسبات) و هم برنده­ی نوبل اقتصاد است در سال ۱۹۶۵ نوشته بود: «تا بیست سال دیگر، ماشین‌ها قادر خواهند بود هر کاری که انسان انجام می‌دهد را انجام دهند». با این حال قابل ذکر است که بسیاری از صاحب نظران معتقدند تا سال‌های دهه­ی ۲۰۴۰-۲۰۵۰ شاهد چنین تحولات شگرفی خواهیم بود.منبع: https://quera.ir/college/land/college/8522/</description><category>بهناز صادقی گل</category><author>بهناز صادقی گل</author><pubDate>Tue, 23 Nov 2021 16:49:33 +0330</pubDate></item></channel></rss>