<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های مجید پاکدل</title>
        <link>https://virgool.io/feed/@majidpakdel</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-10 17:51:38</pubDate>
        <image>
            <url>https://static.virgool.io/images/default-avatar.jpg</url>
            <title>مجید پاکدل</title>
            <link>https://virgool.io/@majidpakdel</link>
        </image>

                    <item>
                <title>روشن کردن مفاهیم بایاس، واریانس، کم برازش و بیش برازش</title>
                <link>https://virgool.io/@majidpakdel/%D8%B1%D9%88%D8%B4%D9%86-%DA%A9%D8%B1%D8%AF%D9%86-%D9%85%D9%81%D8%A7%D9%87%DB%8C%D9%85-%D8%A8%D8%A7%DB%8C%D8%A7%D8%B3-%D9%88%D8%A7%D8%B1%DB%8C%D8%A7%D9%86%D8%B3-%DA%A9%D9%85-%D8%A8%D8%B1%D8%A7%D8%B2%D8%B4-%D9%88-%D8%A8%DB%8C%D8%B4-%D8%A8%D8%B1%D8%A7%D8%B2%D8%B4-e92f3qpa8gpi</link>
                <description>بیش برازش، کم برازش، و مبادله بایاس واریانس مفاهیم اساسی در یادگیری ماشین هستند. آنها مهم هستند زیرا وضعیت یک مدل را بر اساس عملکردشان توضیح می دهند. بهترین راه برای درک این اصطلاحات این است که آنها را به عنوان یک مبادله بین بایاس و واریانس مدل در نظر بگیریم. بیایید پدیده بیش برازش (overfitting) و کم برازش (underfitting) را بیشتر توضیح دهیم:بیش برازش زمانی اتفاق می افتد که یک مدل آماری یا الگوریتم یادگیری ماشینی نویز داده ها را ضبط کند. به طور شهودی، بیش برازش زمانی اتفاق می‌افتد که مدل یا الگوریتم به خوبی با داده‌ها مطابقت داشته باشد. به طور خاص، اگر مدل یا الگوریتم بایاس کم اما واریانس بالا را نشان دهد، بیش برازش اتفاق می‌افتد. بیش برازش اغلب نتیجه یک مدل بیش از حد پیچیده است و می توان با برازش چندین مدل و استفاده از اعتبارسنجی یا اعتبارسنجی متقابل برای مقایسه دقت پیش بینی آنها در داده های آزمایشی از آن جلوگیری کرد.کم برازش زمانی اتفاق می افتد که یک مدل آماری یا الگوریتم یادگیری ماشینی نتواند روند اساسی داده ها را ثبت کند. به طور شهودی، کم برازش زمانی اتفاق می‌افتد که مدل یا الگوریتم به اندازه کافی با داده‌ها تناسب نداشته باشد. به طور خاص، اگر مدل یا الگوریتم واریانس کم اما بایاس زیاد را نشان دهد، کم برازش رخ می‌دهد. کم برازش اغلب نتیجه یک مدل بسیار ساده است.هم بیش برازش و هم کم برازش منجر به پیش بینی ضعیف در مجموعه داده های جدید می شود.خوب، بیایید بایاس و واریانس را به زبان ساده‌تر درک کنیم. (اصطلاحات بسیار ساده تر!)بایاس چیست؟بایاس تفاوت بین میانگین پیش‌بینی مدل ما و مقدار صحیحی است که در تلاش برای پیش‌بینی آن هستیم. یک مدل با بایاس بالا توجه بسیار کمی به داده های آموزشی می کند و مدل را بیش از حد ساده می کند.تعریف ساده: &quot;خطای ناشی از داده های آموزشی!&quot;واریانس چیست؟واریانس تغییرپذیری پیش‌بینی مدل برای یک نقطه داده یا مقداری است که به ما پراکندگی داده‌ها را نشان می دهد. یک مدل با واریانس بالا توجه زیادی به داده های آموزشی می کند و به داده هایی که قبلاً ندیده است تعمیم نمی دهد.تعریف ساده: &quot;خطای حاصل از داده های تست!&quot;خوب، برای درک بهتر و واضح تر مفاهیم، ​​مفاهیم را به دو بخش بایاس و واریانس در مورد رگرسیون و همچنین مدل های طبقه بندی تقسیم می نماییم.در نظر گرفتن مدل های رگرسیون:ما به وضوح می‌بینیم که Model-1 و Model-3 به ترتیب Underfitting و Overfitting هستند.مدل-1 روندها را به درستی ثبت نکرده است، یا مدل بسیار ساده است، بنابراین بدیهی است که دقت آموزش و آزمون با مشکل مواجه خواهد شد!همانطور که قبلاً گفتیم، &quot;Bias خطای ناشی از مجموعه آموزشی است، در حالی که واریانس خطای ناشی از مجموعه تست است!&quot;. مدل-1 دقت آموزش و تست کمتری خواهد داشت، یعنی دارای بایاس زیاد (خطای آموزش بالا) و واریانس بالا (خطای تست بالا) است.به طور مشابه، برای Model-3، این مدل در مورد داده های آموزشی بسیار خوب آموزش دیده است، دلیل آن عدم موفقیت در آزمایش داده ها (دقت تست پایین). از آنجایی که دقت آموزش برای مدل-3 بالا و دقت تست پایین است، مدل-3 دارای بایاس کم (خطای آموزش کم) و واریانس بالا (خطای تست بالا) خواهد بود.با در نظر گرفتن Model-2، از آنجایی که مدل-2 در وضعیت &quot;درست&quot; قرار دارد، این مدل به ترتیب در آموزش و همچنین یک مجموعه تست به خوبی آموزش دیده است. به همین دلیل، مدل دارای دقت آموزشی بالا (بایاس کم-خطای آموزش کم) و دقت تست بالا (خطای تست کم واریانس کم) است.حال، بیایید شرایط را برای مدل های طبقه بندی در نظر بگیریم، لطفاً به تصویر توضیح داده شده زیر نگاه کنید!در اینجا 3 مدل داریم که خطاهای آموزش و تست زیر را دارند.همانطور که می بینیم طبقه بندی مدل1 ما دارای خطای آموزشی کم (2%)، در حالی که دارای خطای تست بالا (18%) است. همانطور که مفاهیم قبلا توضیح داده شد، می‌توان نتیجه گرفت که مدل دارای بایاس کم (خطای آموزش کم) و واریانس بالا (خطای تست بالا) است، یعنی مدل 1 به وضوح بیش برازش داردبه طور مشابه، ما می‌توانیم مدل طبقه‌بندی 2 خود را به‌عنوان یک مدل کاملاً مناسب نتیجه بگیریم. با رسیدن به مدل 3، این مدل به عنوان تعمیم‌یافته‌ترین یا توصیه‌شده‌ترین مدل برای آموزش در نظر گرفته می‌شود!خب این توضیحی بود برای مدل های Underfitting، Overfitting، Bais و Variance for Regression و Classification!.حالا بیایید نگاهی به نمودار گرافیکی این مفاهیم بیندازیم. لطفا به شکل زیر نگاه کنید!با توجه به شکل 3، خط نقطه چینی که از نقاط می گذرد، نقاطی هستند که باید مدل خود را برای آنها طراحی کنیم که «تعمیم یافته ترین مدل» خواهد بود.مرجع:https://medium.com/analytics-vidhya/elucidating-bias-variance-under-fitting-and-over-fitting-273846621622</description>
                <category>مجید پاکدل</category>
                <author>مجید پاکدل</author>
                <pubDate>Thu, 13 Jan 2022 10:38:55 +0330</pubDate>
            </item>
                    <item>
                <title>اعتبار سنجی متقابل در یادگیری ماشین: چگونه آن را به درستی انجام دهیم</title>
                <link>https://virgool.io/@majidpakdel/%D8%A7%D8%B9%D8%AA%D8%A8%D8%A7%D8%B1-%D8%B3%D9%86%D8%AC%DB%8C-%D9%85%D8%AA%D9%82%D8%A7%D8%A8%D9%84-%D8%AF%D8%B1-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-%DA%86%DA%AF%D9%88%D9%86%D9%87-%D8%A2%D9%86-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%AF%D8%B1%D8%B3%D8%AA%DB%8C-%D8%A7%D9%86%D8%AC%D8%A7%D9%85-%D8%AF%D9%87%DB%8C%D9%85-arcjghtmj93p</link>
                <description>10 دقیقه زمان خواندننویسنده: ولادیمیر لیاشنکوبه روز شده در 12 نوامبر 2021در یادگیری ماشینی (ML)، تعمیم معمولاً به توانایی یک الگوریتم برای مؤثر بودن در ورودی های مختلف اشاره دارد. این بدان معنی است که مدل ML با کاهش عملکرد در ورودی های جدید از توزیع یکسان داده های آموزشی مواجه نمی شود.برای انسان تعمیم طبیعی ترین چیز ممکن است. ما می توانیم  به سرعت طبقه بندی را انجام دهیم. به عنوان مثال، ما قطعاً یک سگ را می شناسیم حتی اگر قبلاً این نژاد را ندیده باشیم. با این وجود، ممکن است برای یک مدل ML کاملاً یک چالش باشد. به همین دلیل است که بررسی توانایی الگوریتم برای تعمیم یک کار مهم است که در ساخت مدل نیاز به توجه زیادی دارد.برای این کار از Cross-Validation (CV)  استفاده می کنیم.در این مقاله به موارد زیر خواهیم پرداخت:Cross-Validation چیست: تعریف، هدف استفاده، و تکنیک‌های مختلف CV شامل:  Hold-hold-out, k-folds, Leave-one-out, Leave-p-out, Stratified k-folds, Repeatedنحوه استفاده از این تکنیک ها: sklearnاعتبار سنجی متقابل در یادگیری ماشینی: sklearn، CatBoostاعتبار سنجی متقابل در یادگیری عمیق: Keras، PyTorch، MxNetبهترین شیوه ها و نکات: سری های زمانی، داده های پزشکی و مالی و تصاویراعتبارسنجی متقابل چیست؟اعتبار سنجی متقابل تکنیکی برای ارزیابی یک مدل یادگیری ماشین و آزمایش عملکرد آن است. CV معمولاً در کارهای کاربردی ML استفاده می شود. این به مقایسه و انتخاب یک مدل مناسب برای مسئله مدل‌سازی پیش‌بینی‌کننده خاص کمک می‌کند.درک CV آسان است، پیاده‌سازی آن آسان است، و تمایل به بایاس کمتری نسبت به سایر روش‌های مورد استفاده برای شمارش امتیازهای کارایی مدل دارد. همه اینها اعتبارسنجی متقابل را به ابزاری قدرتمند برای انتخاب بهترین مدل برای کار خاص تبدیل می کند.تکنیک های مختلفی وجود دارد که ممکن است برای اعتبارسنجی متقابل یک مدل استفاده شود. با این حال، همه آنها یک الگوریتم مشابه دارند:1- مجموعه داده را به دو بخش تقسیم کنید: یکی برای آموزش، دیگری برای آزمایش2- مدل را روی مجموعه آموزشی آموزش دهید3- اعتبار مدل را در مجموعه آزمایشی تأیید کنیدمراحل 1 تا 3 را چند بار تکرار کنید. تعداد تکرار به روش CV که استفاده می کنید بستگی داردهمانطور که می دانید، تکنیک های CV زیادی وجود دارد. برخی از آنها معمولا استفاده می شوند، برخی دیگر فقط در تئوری کار می کنند. بیایید روش های اعتبارسنجی متقابل را که در این مقاله پوشش داده خواهد شد، ببینیم.· Hold-out· K-folds· Leave-one-out· Leave-p-out· Stratified K-folds· Repeated K-folds· Nested K-folds· CompleteHold-outاعتبار سنجی متقابل 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-Fold:K-Fold CV تکنیکی است که معایب روش نگهدارنده را به حداقل می رساند. k-Fold روش جدیدی را برای تقسیم مجموعه داده معرفی می کند که به غلبه بر &quot;تست فقط یک بار گلوگاه&quot; کمک می کند.الگوریتم تکنیک  k-Fold:1- تعداد k دسته را انتخاب کنید. معمولاً k 5 یا 10 است، اما می‌توانید هر عددی را انتخاب کنید که کمتر از طول مجموعه داده باشد.2- مجموعه داده را به k قسمت مساوی (در صورت امکان) تقسیم کنید (به آنها folds گفته می شود)3- k – 1 folds را انتخاب کنید که مجموعه آموزشی خواهد بود. fold باقیمانده مجموعه آزمایشی خواهد بود4- مدل را روی مجموعه آموزشی آموزش دهید. در هر تکرار از اعتبارسنجی متقابل، باید یک مدل جدید مستقل از مدل آموزش داده شده در تکرار قبلی آموزش دهید.5- در مجموعه آزمایشی اعتبار سنجی کنید6- نتیجه اعتبارسنجی را ذخیره کنید7- مراحل 3 تا 6 را k بار تکرار کنید. هر بار از fold باقی مانده به عنوان مجموعه تست استفاده کنید. در پایان، شما باید مدل را روی هر fold که دارید اعتبارسنجی کرده باشید.8- برای به دست آوردن امتیاز نهایی، نتایجی که در مرحله 6 به دست آوردید را میانگین گیری نمایید.برای انجام اعتبارسنجی متقابل 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 inkf.split(X):print(&quot;TRAIN:&quot;, train_index, &quot;TEST:&quot;, 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:اعتبار سنجی متقابل(LOOCV) یک مورد شدید از K-Fold CV است. تصور کنید کهk برابر با n باشد که n تعداد نمونه های مجموعه داده است. چنین مورد k-Fold معادل تکنیکLeave-one-out است.الگوریتم تکنیکLOOCV:1- یک نمونه از مجموعه داده را انتخاب کنید که مجموعه آزمایشی خواهد بود2- n – 1نمونه باقیمانده مجموعه آموزشی خواهد بود3- مدل را روی مجموعه آموزشی آموزش دهید. در هر تکرار، یک مدل جدید باید آموزش داده شود4- در مجموعه آزمایشی اعتبار سنجی کنید5- نتیجه اعتبارسنجی را ذخیره کنیدمراحل 1 تا 5 را n  بار تکرار کنید، همانطور که برای n نمونه، n  مجموعه آموزشی و تست متفاوت داریم.برای به دست آوردن امتیاز نهایی، نتایجی را که در مرحله 5 به دست آوردید، میانگیری نمایید.برای LOOCV sklearn همچنین دارای یک روش built-in موجود است که می توان آن را در کتابخانه model_selection - sklearn.model_selection.LeaveOneOut پیدا کرد.import numpy as npfrom sklearn.model_selection importLeaveOneOutX = np.array([[1, 2], [3, 4]])y = np.array([1, 2])loo = LeaveOneOut()for train_index, test_index inloo.split(X):print(&quot;TRAIN:&quot;, train_index, &quot;TEST:&quot;, 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  نیاز به ساخت n مدل به جای k مدل دارد، وقتی می‌دانیم که n که مخفف تعداد نمونه‌های مجموعه داده است بسیار بیشتر از k است. این بدان معناست که LOOCV از نظر محاسباتی گرانتر از k-Fold است، ممکن است زمان زیادی برای اعتبارسنجی متقابل مدل با استفاده ازLOOCV نیاز باشد.بنابراین، جامعه علوم داده یک قاعده کلی بر اساس شواهد تجربی و تحقیقات مختلف دارد که نشان می‌دهد اعتبارسنجی متقابل5 یا 10 fold CV باید بر LOOCV ترجیح داده شود.روش Leave-p-out:اعتبار سنجی متقابل P-out (LpOC) شبیه LOOC CV  است زیرا تمام مجموعه های آموزشی و آزمایشی ممکن را با استفاده ازp  نمونه به عنوان مجموعه آزمایشی ایجاد می کند. تمام موارد ذکر شده در مورد LOOCV و برای LpOC درست است.با این حال، شایان ذکر است که بر خلاف LOOCV و k-Fold  مجموعه‌های تست برای LpOC اگر p بالاتر از 1 باشد، همپوشانی دارند.الگوریتم تکنیک LpOC:1- نمونه های p را از مجموعه داده انتخاب کنید که مجموعه آزمایشی خواهد بود2- n - p  نمونه باقیمانده مجموعه آموزشی خواهد بود3- مدل را روی مجموعه آموزشی آموزش دهید. در هر تکرار، یک مدل جدید باید آموزش داده شود4- در مجموعه آزمایشی اعتبار سنجی کنید5- نتیجه اعتبارسنجی را ذخیره کنید6- مراحل 2 تا 5 را Cpn (ترکیب p از n)  بار تکرار کنید7- برای به دست آوردن امتیاز نهایی، میانگین نتایجی را که در مرحله 5 به دست آوردید محاسبه نمایید.می‌توانید Leave-p-out CV را با استفاده از sklearn – sklearn.model_selection.LeavePOut انجام دهید.import numpy as npfrom sklearn.model_selection import LeavePOutX = 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 in lpo.split(X):print(&quot;TRAIN:&quot;, train_index, &quot;TEST:&quot;, 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 قوی است.روش Stratified k-Fold:گاهی اوقات ممکن است با عدم تعادل زیادی در مقدار هدف در مجموعه داده مواجه شویم. به عنوان مثال، در مجموعه داده‌های مربوط به قیمت ساعت‌های مچی، ممکن است تعداد بیشتری از ساعت‌های مچی قیمت بالایی داشته باشند. در مورد طبقه‌بندی، در مجموعه داده‌های گربه‌ها و سگ‌ها ممکن است تغییر زیادی به سمت طبقه سگ وجود داشته باشد.K-Fold طبقه بندی شده نوعی از تکنیک استاندارد K-Fold CV است که به گونه ای طراحی شده است که در چنین مواردی از عدم تعادل هدف موثر باشد.K-Fold به صورت زیر عمل می کند، Stratified k-Fold مجموعه داده را به k دسته تقسیم می کند به طوری که هر دسته تقریباً دارای درصد مشابهی از نمونه های هر کلاس هدف به عنوان مجموعه کامل است. در مورد رگرسیون، Stratified k-Fold  اطمینان حاصل می کند که میانگین مقدار هدف تقریباً در همه دسته ها برابر است.الگوریتم تکنیک طبقه بندی k-fold:1- تعدادی k-fold را انتخاب کنید2- مجموعه داده را به k دسته تقسیم کنید. هر fold باید تقریباً دارای درصد مشابهی از نمونه‌های هر کلاس هدف در مجموعه کامل باشد3-  k – 1 foldsرا انتخاب کنید که مجموعه آموزشی خواهد بود. fold باقیمانده مجموعه آزمایشی خواهد بود4- مدل را روی مجموعه آموزشی آموزش دهید. در هر تکرار یک مدل جدید باید آموزش داده شود5- در مجموعه آزمایشی اعتبار سنجی کنید6- نتیجه اعتبارسنجی را ذخیره کنید7- مراحل را 3 تا 6 را k بار تکرار کنید. هر بار از fold باقی مانده به عنوان مجموعه تست استفاده کنید. در پایان، شما باید مدل را روی هر fold که دارید اعتبارسنجی کرده باشید.8- برای به دست آوردن امتیاز نهایی، میانگین نتایجی که در مرحله 6 به دست آوردید، محاسبه نمایید.همانطور که ممکن است متوجه شده باشید، الگوریتم تکنیک Stratified k-Fold مشابه K-Folds استاندارد است. شما نیازی به کدنویسی اضافی ندارید زیرا این روش همه کارهای لازم را برای شما انجام می دهد.Stratified k-Fold همچنین یک روش داخلی در sklearn دارد - sklearn.model_selection.StratifiedKFold.import numpy as npfrom sklearn.model_selection import StratifiedKFoldX = 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 in skf.split(X, y):print(&quot;TRAIN:&quot;, train_index, &quot;TEST:&quot;, 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 در این مقاله است. این یک تغییر از k-Fold است اما در مورد K-Folds تکراری k تعداد fold ها نیست. تعداد دفعاتی است که ما مدل را آموزش خواهیم داد.ایده کلی این است که در هر تکرار، نمونه‌هایی را به‌طور تصادفی از سرتاسر مجموعه داده به عنوان مجموعه آزمایشی انتخاب می‌کنیم. به عنوان مثال، اگر تصمیم بگیریم که 20٪ از مجموعه داده ها مجموعه آزمایشی ما باشد، 20٪ نمونه به طور تصادفی انتخاب می شوند و 80٪ بقیه به مجموعه آموزشی تبدیل می شوند.الگوریتم تکنیک Repeated k-Fold:1- k را انتخاب کنید – تعداد دفعاتی که مدل آموزش داده می شود2- تعدادی نمونه را انتخاب کنید که مجموعه آزمایشی خواهد بود3- مجموعه داده را تقسیم کنید4- روی مجموعه آموزشی تمرین کنید. در هر تکرار اعتبارسنجی متقاطع، یک مدل جدید باید آموزش داده شود5- در مجموعه آزمایشی اعتبار سنجی کنید6- نتیجه اعتبارسنجی را ذخیره کنید7- مراحل را 3-6 را k بار تکرار کنید8- برای به دست آوردن امتیاز نهایی، میانگین نتایجی که در مرحله 6 به دست آوردید، محاسبه نمایید.K-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(&quot;TRAIN:&quot;, train_index, &quot;TEST:&quot;, 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-Fold:1- k  را انتخاب کنید – تعداد فولدها، به عنوان مثال، 10 - فرض کنیم این عدد را انتخاب کرده ایم2- یک پارامتر p را انتخاب کنید. فرض کنید الگوریتم ما رگرسیون لجستیک است و p پارامتر جریمه p = {&#x27;l1&#x27;, &#x27;l2&#x27;, &#x27;elasticnet&#x27;, &#x27;none&#x27;}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-Validation:CV کامل کم استفاده ترین تکنیک 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 برای پروژه بعدی یادگیری ماشینی خود نخواهید داشت!منابع:1. https://www.geeksforgeeks.org/cross-validation-machine-learning/2. https://machinelearningmastery.com/k-fold-cross-validation/3. https://towardsdatascience.com/cross-validation-in-machine-learning-72924a69872f4. https://towardsdatascience.com/why-and-how-to-do-cross-validation-for-machine-learning-d5bd7e60c1895. https://scikit-learn.org/stable/modules/cross_validation.htmlمرجع:https://neptune.ai/blog/cross-validation-in-machine-learning-how-to-do-it-right</description>
                <category>مجید پاکدل</category>
                <author>مجید پاکدل</author>
                <pubDate>Wed, 08 Dec 2021 11:54:45 +0330</pubDate>
            </item>
                    <item>
                <title>&quot;دروازه ورود به یادگیری ماشین&quot;</title>
                <link>https://virgool.io/@majidpakdel/%D8%AF%D8%B1%D9%88%D8%A7%D8%B2%D9%87-%D9%88%D8%B1%D9%88%D8%AF-%D8%A8%D9%87-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-egwn62aopnlf</link>
                <description>دیاگرام ساخت مدل یادگیری ماشینهدف این دوره آشنایی با مفاهیم ابتدایی یادگیری ماشین است. فصل اول درباره معرفی و رابطه هوش مصنوعی و یادگیری ماشین است. در فصل دوم کاربردها و تاثیرات هوش مصنوعی بر زندگی انسانها و موقعیتهای شغلی مربوط به علوم داده بررسی می شود. فصل سوم درباره تعریف دقیق یادگیری ماشین، معرفی داده و انواع آن است. فصل چهارم به معرفی ابزارهای علم داده می پردازد و فصل پنجم درباره چالشهای عملی یادگیری ماشین است. در فصل ششم تخمین وزن افراد بر اساس قد و جنسیتشان با یادگیری ماشین ارائه می شود. در فصل هفتم به معرفی هوش مصنوعی عمومی، اصل تکینگی، شرکتهای پیشرو و کتابهای مفید در این حوزه می پردازیم. در ادامه خلاصه مطالب فصل اول ارائه می گردد. نقشه راه و گامهای لازم برای تبدیل شدن به یک دانشمند داده و مهندس یادگیری ماشین عبارتند از: گام اول-آشنایی با مفاهیم، گام دوم-یادگیری ابزارها برای آماده سازی و تحلیل داده، گام سوم-یادگیری ماشین مقدماتی و گام چهارم-یادگیری ماشین پیشرفته. آلن تورینگ یکی از تاثیرگذارترین افراد در حوزه هوش مصنوعی است. او تست تورینگ را پیشنهاد داد که معیاری برای تشخیص هوشمندی ماشین است. هوش مصنوعی چیزی است که منطقی فکر کند، منطقی رفتارکند، مانند انسان فکر کند و مانند انسان رفتار نماید. قدم بعدی ساخت عامل هوشمند است که می تواند سخت افزاری یا نرم افزاری باشد. یادگیری ماشین بعد از هوش مصنوعی موضوعیت پیدا می کند و زیر مجموعه هوش مصنوعی است. مهمترین ویژگی یادگیری ماشین، استفاده از داده، بدون استفاده از دستورات مستقیم است. ویژگی دیگر آن تغییر خود با دیدن داده های جدید است. یادگیری عمیق عمری بسیار کوتاهتر از یادگیری ماشین دارد. یادگیری عمیق می تواند الگوهای پیچیده تری را با استفاده از شبکه های عصبی در داده پیدا کند و یکی از جذاب ترین بخشهای یادگیری ماشین است. در نهایت دکتر فروغمند عضو هیئت علمی دانشگاه صنعتی شریف راجع به پیوند دانشگاه با صنعت هوش مصنوعی و یادگیری ماشین، حل مشکلات صنعت با ارائه راه حل دانش بنیانی، نقش تحصیلات تکمیلی در موفقیت افراد در حوزه هوش مصنوعی و آینده هوش مصنوعی، تقابل و تعامل آن با انسان مصاحبه نمودند. در فصل دوم با تاثیر هوش مصنوعی بر جامعه امروزی و چالشهای آن، مشاغل مرتبط با یادگیری ماشین، جوامع برنامه نویسان حوزه یادگیری ماشین و نحوه انتخاب شغل مناسب آشنا می شویم. زبان پایتون و R از محبوبترین زبانهای قابل استفاده برای یادگیری ماشین بوده و کتابخانه های بسیار قدرتمندی در این حوزه دارند. نیاز جامعه به بررسی آمار و داده ها سبب به وجود آمدن تخصصهایی در این زمینه شد از جمله تحلیلگر داده (جمع آوری داده های خام، آماده سازی، انتخاب قالب مناسب و ذخیره آنها در پایگاه داده)، دانشمند داده (سطحی بالاتر از تحلیلگر داده دارد چون باید با مفاهیم یادگیری ماشین و دانش برنامه نویسی آشنا باشد)، مهندس داده (دریافت داده ها از منابع مختلف و با قالبهای مختلف و تحویل آن به تحلیل گران، توسعه دهندگان و دیگر مصرف کنندگان)، مهندس یادگیری ماشین (نقاط مشترک فراوانی با مهندس داده دارد و علاوه بر آن دانش یادگیری ماشین  در آن الزامی است). معمولاً حقوق دانشمند داده از تحلیلگر داده بیشتر است و مهندس یادگیری ماشین و مهندس داده از دوتای قبلی بیشتر. در معدن و صنایع معدنی با توجه به عدم قطعیت بالا و حجم بسیار زیاد اطلاعات یادگیری ماشین بسیار کاربردی است. چهار مثال کاربردی از یادگیری ماشین در معدن عبارتند از: پردازش تصاویر ماهواره ای (دسته بندی کل تصویر و تصاویر اطراف آن و بدست آوردن نقشه زمین شناسی منطقه)، پیش بینی متغیرهای ژئومتالورژیکی (به دلیل هزینه بالای نمونه برداری استفاده از یادگیری ماشین و الگوریتمهایی همچون SVM می تواند در این زمینه بسیار کارآمد باشد)، آنالیز تصاویر مربوط به جعبه مغزه ها (گمانه های حاصل از حفاری در جعبه های مشخصی برای تحلیل های بعدی قرار می گیرند) و پردازش تصاویر گرفته شده از پهپاد برای شناسایی هدفهای از پیش تعیین شده. در نهایت مصاحبه با آقای مهندس ستوده دانشمند داده در کوئرا انجام شد که ایشان تجربه زیادی در استفاده از هوش مصنوعی در فوتبال دارند. همچنین درباره آگهی های شغلی، عناوین و شرکت های فعال در حوزه داده صحبت کردند. در فصل سوم به بررسی مفهوم یادگیری ماشین، نحوه آموزش مدل و بررسی دقت آن می پردازیم. یادگیری ماشین یک برنامه کامپیوتری است که به داده دسترسی پیدا می کند و از آن برای آموزش خود استفاده می کند. در دهه پنجاه میلادی یکی از مهندسان IBM که نامش آرتور ساموئل بود برای اولین بار از کلمه یادگیری ماشین استفاده کرد و تعریف زیر را برای آن ارائه داد: یادگیری ماشین زمینه ای از تحقیقات است که به کامپیوترها توانایی یادگیری بدون برنامه نویسی صریح را می دهد. ویژگی اصلی یادگیری ماشین خود آموزشی می باشد که به معنی استفاده از مدلسازی آماری و عدم استفاده از دستورات مستقیم یا صریح می باشد. داده ها عنصر محوری یادگیری ماشین هستند و ماشینها از داده ها یاد می گیرند. آنچه داده را ارزشمند می کند نمایندگی آن از واقعیت و اطلاعاتی است که در اختیارمان می گذارد. یکی از شگفت انگیزترین توانایی های انسان، استفاده از زبان طبیعی برای نگهداری و تبادل مفاهیم و اطلاعات است. بنابراین تحقق توانایی پردازش زبان طبیعی برای ماشینها می تواند باعث تحول بزرگی گردد و امکان برقراری ارتباط میان انسانها و ماشینها فراهم می شود. که برخی از کاربردهای این حوزه عبارتند از: تشخیص گفتار، دسته بندی نوشتارها یا نظرات و پاسخ دادن به سوالات. از میان حوزه های مختلف یادگیری ماشین، بینایی ماشین پیشرفت خیره کننده ای را در سالهای اخیر داشته و تکنولوژیهای روزمره به صورت گسترده در آن استفاده می گردند. داده ها در این حالت تصاویر ثبت شده توسط دوربینهای عکس برداری یا فیلم برداری هستند. بنابراین توانایی استخراج اطلاعات از داخل تصاویر امکانات فوق العاده ای در اختیار یک عامل هوش مصنوعی می گذارد. از کاربردهای بینایی ماشین می توان به تشخیص پلاک خودروها توسط پلیس، تشخیص اثر انگشت یا چهره برای باز کردن قفل گوشی یا کامپیوتر، پردازش تصاویر ماهواره ای، ماشینهای خودران و ... اشاره نمود. انواع داده که تا اینجا بیان شد را داده های ساختار نیافته و نوع جدولی را داده ساختارمند می نامیم. داده های جدولی به دو زیردسته داده های عددی و داده های دسته ای تقسیم بندی می شوند. همچنین سیستم های توصیه گر می توانند به یک فروشگاه اینترنتی کمک کنند بر اساس خریدها و بازدیدهای یک فرد کالاهایی را به او پیشنهاد دهند و میزان فروش فروشگاه را زیاد کنند. در مورد بعضی از انواع داده (سری زمانی) تغییرات آن در طول زمان اهمیت ویژه ای دارد. ماشین با دیدن تغییرات ویژگی مشخصی از یک داده در طول زمان، الگوی تغییرات آن را یاد بگیرد و مقدار آن ویژگی را در یک زمان مشخص پیش بینی نماید. در فصلهای قبل با سرگذشت یادگیری ماشین و روند پیدایش و تکامل آن آشنا شدیم. در فصل چهارم تمرکزمان روی مفاهیم یادگیری است و نحوه ساخت یک مدل یادگیری ماشین را بررسی می کنیم. در یادگیری ماشین مدلی را طراحی می کنیم که قادر به یادگیری و پیداکردن الگوها به طور اتوماتیک است. در حالت پیچیده بودن مساله یافتن این الگوها برای انسان اغلب دشوار و یا حتی غیر ممکن می شود. اما برای ماشینها به دلیل قدرت پردازشی بالا این کار بسیار ساده است. آقای تام میشل یادگیری ماشین را به صورت زیر تعریف می نماید: اگر کارایی برنامه در انجام تکلیف T که با سنجه P ارزیابی می شود با تجربه E افزایش یابد می گوییم که برنامه یاد گرفته است از تجربه E با توجه به تکلیف T و سنجه P استفاده نماید. به طور کلی رویکرد انجام یادگیری ماشین دارای چهار عنصر اساسی است: یک الگوریتم (مدل) برای تصمیم گیری، یک معیار برای امتیازدهی اینکه عملکرد مدل چقدر خوب بوده، بررسی خودکار کیفیت مدل بر اساس امتیاز و یک روش خودکار برای بهبود امتیاز بر اساس ایجاد تغییرات در محل. تمرکز حوزه یادگیری ماشین بر یادگیری یعنی کسب مهارت یا دانش از طریق تجربه کردن است. به طور کلی یادگیری ماشین به سه دسته کلی تقسیم بندی می شود: یادگیری با نظارت، یادگیری بی نظارت و یادگیری تقویتی. در یادگیری با نظارت نمونه هایی که برای آموزش الگوریتم استفاده می شوند دارای برچسب هستند به این معنا که مدل یادگیری ماشین با استفاده از داده هایی که از قبل برچسب مشخصی دارند الگوهای اساسی را تا زمانی که به دقت رضایت بخشی برای ما برسد پیدا می کند. به این دلیل که الگوریتم مورد نظر ما با استفاده از داده هایی که دارای برچسب مشخصی هستند الگوهای لازم را پیدا می کند به این دسته یادگیری نظارت شده می گویند. الگوریتمهای یادگیری نظارت شده به دو دسته طبقه بندی (classification) و رگرسیون (regression) دسته بندی می شوند. هر دو دسته طبقه بندی و رگرسیون به داده های برچسب خورده نیاز دارند. در طبقه بندی، هدف پیدا کردن برچسب یا دسته مناسب برای نمونه های بدون پرچسب می باشد. برای این کار مدل یادگیری ماشین با استفاده از نمونه های برچسب دار آموزش داده می شود. در رگرسیون هدف ما تخمین مقدار یک ویژگی(مقداری پیوسته) برای یک نمونه می باشد. این الگوریتمها برای پیش بینی روند بازار، قیمت خانه و دیگر مثالها به کار می روند. بنابراین در الگوریتمهای طبقه بندی، برچسبی که می خواهیم پیش بینی کنیم به صورت متغیری گسسته می باشد در حالی که در الگوریتمهای رگرسیونی، بر خلاف طبقه بندی، برچسبی که می خواهیم پیش بینی کنیم به صورت متغیری پیوسته است. تفاوت نوع یادگیری بی نظارت با یادگیری نظارت شده تنها در نبودن برچسبهاست. به عبارت دیگر هیچ برچسبی به کامپیوتر نمی گوید که چه زمانی درست پیش بینی کرده و چه زمانی مرتکب اشتباه شده است. الگوریتمهای یادگیری ماشین بی نظارت که در آن مدل بدون دخالت انسان و با داده های بدون برچسب به سه دسته خوشه بندی، کاهش ابعاد و استخراج قانون وابستگی تقسیم بندی می شوند. خوشه بندی به معنی دسته بندی اتوماتیک داده ها به خوشه های همگن است به این صورت که داده های هر خوشه ویژگی های یکسانی داشته باشند. روش کاهش ابعاد یعنی کاهش دادن تعداد ویژگیهایی که از آنها برای آموزش مدل یادگیری ماشین استفاده می شود. در زمانی که ابعاد بیشتری داریم مدل یادگیری ماشین پیچیده شده و این باعث بوجود آمدن بیش برازش می شود. یادگیری تقویتی یکی از روشهای یادگیری ماشین است که با ذهنیت آزمون و خطا کار می کند. عامل هوشمند در حالت خود حرکتی انجام می دهد و بر اساس آن حرکت بازخورد دریافت می کند که ممکن است مثبت یا منفی باشد و عامل با این بازخورد خط مشی خود را تغییر می دهد. یادگیری تقویتی برخلاف یادگیری با نظارت و یادگیری بی نظارت وابسته به داده نیست بلکه به واسطه تعامل با محیط می آموزد. معمولاً تعدادی از دادگان برای انجام ارزیابی کنار گذاشته می شود و از باقی آنها برای آموزش مدل استفاده می شود. اصطلاحاً به دادگانی که برای آموزش استفاده می شوند دادگان آموزش و به دادگانی که برای ارزیابی استفاده می شوند دادگان آزمایش می گوییم. در نهایت مصاحبه ای با مهندس هادی یامی دانشمند کاربردی در شرکت مایکروسافت انجام گرفت. در فصل پنجم به بررسی زبانهای مختلف برنامه نویسی و کتابخانه هایی برای استفاده از امکانات هوش مصنوعی و یادگیری ماشین می پردازیم. پایتون زبانی به نسبت آسان برای یادگیری است زیرا کدهای آن تمیز و قابل فهم است. به دلیل متن باز بودن مفسر پایتون نسخه های مختلفی از آن توسط افراد مختلف توسعه داده شده است. پایتون در صنعت نسبت به دیگر زبانهای برنامه نویسی پرکاربرد است. پایتون کتابخانه ها و ابزارهای قوی و متعدد دارد و همچنین از اکثر پارادایم های معروف برنامه نویسی پشتیبانی می کند. پایتون و R دو زبان پر طرفدار در حوزه علم داده هستند. پایتون کتابخانه های متعددی برای کار با داده و یادگیری ماشین دارد از جمله:Numpy ، Pandas، Matplotlib و Scikit-learn. علاوه بر موارد ذکر شده کتابخانه های بسیار قدرتمندی در زمینه های دیگر کار با داده در پایتون وجود دارد. در ادامه در مورد دلایل استفاده از یادگیری ماشین و چالشهای موجود در انجام پروژه های یادگیری ماشین بحث و بررسی خواهیم کرد. استفاده از یادگیری ماشین به دلایل زیر خیلی آسان و فراگیر شده است: افزایش بی حد و حصر داده ها، ذخیره سازی مقرون به صرفه داده ها و افزایش قدرت پردازنده ها و کاهش هزینه های آنها. داده اساس یادگیری ماشین است بنابراین اگر به تعدادکافی داده به الگوریتم تزریق نکنیم نمی توانیم انتظار عملکرد خوبی داشته باشیم. همچنین باید از داده بی کیفیت که پر است از مقادیر اشتباه وگم شده پرهیز نماییم. همواره باید سعی در انتخاب ویژگیهایی داشته باشیم که مدل بتواند از آنها بیاموزد و از دل آنها الگوهایی برای پیش بینی آینده استخراج نماید. پس از مدیریت چالشهای مربوط به داده سراغ الگوریتم ومدل می رویم. بیش برازش وکم برازش و زمان نمونه ای از چالشهای مربوط به مدل ها و الگوریتمهای هوش مصنوعی و یادگیری ماشین هستند. در نهایت مصاحبه با مهندس رسولی دانشمند و رهبر داده در کافه بازار انجام گرفت. در فصل ششم با گامهای انجام یک پروژه یادگیری ماشین آشنا می شویم که این گامها عبارتند از: دریافت و بررسی داده، آماده سازی داده، انتخاب و آموزش مدل مناسب وتست و ارزیابی. سپس یک مساله یادگیری ماشین تخمین وزن افراد با در اختیار داشتن قد وجنسیت افراد را با استفاده از کتابخانه های پایتون کدنویسی شده که توضیحات گام به گام کد عبارتند از: خواندن داده از فایل csv، تغییر واحد داده ها، مصورسازی داده، ساختن دادگان آموزش و آزمایش، انتخاب مدل مناسب وآموزش، تخمین مقادیر تست و ارزیابی عملکرد مدل. در نهایت مصاحبه ای با مهندس بهجتی مهندس داده در شرکت Booking انجام شد. در فصل هفتم به موضوعات تکمیلی می پردازیم که آشنایی با آنها می تواند سرنخهایی برای تحقیق و مطالعه بیشتر درباره هوش مصنوعی و یادگیری ماشین در اختیار ما قرار دهد. چرخه تب تکنولوژی که توسط موسسه گارتنر مطرح شده نمودار رشد تکنولوژیهای مختلف را در طی زمان نشان می دهد. با وجود آنکه هر تکنولوژی لازم است این چرخه را طی کند اما سرعت حرکت آنها متفاوت است. برای مثال استفاده از پردازنده گرافیکی در هوش مصنوعی تقریباً به محدوده پایانی رشد خود رسیده و اغلب تکنولوژیهای دیگر از آن استفاده می کنند. آنچه هوش مصنوعی عمومی یا قوی نامیده می شود عبارت است از ساختن عامل هوشمندی که مانند انسان از هوش عمومی برخوردار باشد که توانایی آموختن در مواجهه با هر مساله جدیدی را داشته باشد و محدود به یک زمینه خاص نباشد. رشته علوم شناختی شش زمینه را مورد بررسی قرار می دهد که عبارتند از: فلسفه، زبان شناسی، انسان شناسی، روان شناسی، علوم اعصاب و هوش مصنوعی که می تواند کمک شایانی به بررسی هوش مصنوعی عمومی نماید. در ادامه تحولات هوش مصنوعی از نقطه ای نام برده می شود که نقطه تکینگی فناوری می باشد. زمانی که پیشرفت تکنولوژی به نقطه غیر قابل کنترل و برگشت ناپذیری می رسد. چنین اتفاقی می تواند تبدیل به یک انفجار هوش شود و به یک عامل فراهوشمند بیانجامد که هوش تمام بشریت را پشت سر بگذارد. شرکتهای پیشرو در زمینه هوش مصنوعی و یادگیری ماشین عبارتند از: شرکت DeepMind، شرکت OpenAI، گروه AI شرکت Facebook وگروه AI شرکت Google. کتابهای بسیاری برای آموزش یادگیری ماشین منتشر شده اند که عبارتند از Artificial Intelligence: A Modern Approach by Stuart Russell, Peter Norvig، Machine Learning for Dummies by John Paul Mueller، Python for Data Analysis by Wes McKinney، Hands-on Machine Learning with Scikit-Learn and TensorFlow by Aurelien Geron، Reinforcement Learning: An Introduction by Andrew Barto and Richard S. Sutton، Data Science from Scratch: First Principles with Python by Joel Grus و Pattern Recognition and Machine Learning by Christopher M. Bishop.منبع: (https://quera.ir/college/land/college/8522)</description>
                <category>مجید پاکدل</category>
                <author>مجید پاکدل</author>
                <pubDate>Tue, 23 Nov 2021 09:12:55 +0330</pubDate>
            </item>
            </channel>
</rss>