<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Samrand Majnooni</title>
        <link>https://virgool.io/feed/@samrand</link>
        <description>loading...</description>
        <language>fa</language>
        <pubDate>2026-07-11 06:07:53</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/1353458/avatar/akglOP.jpeg?height=120&amp;width=120</url>
            <title>Samrand Majnooni</title>
            <link>https://virgool.io/@samrand</link>
        </image>

                    <item>
                <title>بررسی دو مفهوم under-fitting و over-fitting در یادگیری ماشین</title>
                <link>https://virgool.io/@samrand/overfitunderfit-pm8b7whyb7ga</link>
                <description>در این پست می خواهیم به دو مفهوم بسیار مهم over-fit و under-fit و تاثیرات بایاس و واریانس بر آن ها بپردازیم.تابع هدف یا target functionدر یادگیری ماشین تابعی که بر روی مجموعه داده اعمال می شود را f که این تابع ورودی های X را می گیرد و خروجی Y را نمایش می دهد. بنابراین به مدل ریاضی به شکل زیر می نویسیم:Y = f(X)یکی از مهم ترین ملاحظاتی ک باید در یادگیری ماشین و تابع هدف در نظر گرفت این است که چگونه مدل یادگرفته شده به رکوردهای جدید تعمیم داده شود. تعمیم یا Generalization بسیار مهم است، زیرا اطلاعاتی که جمع آوری می شود تنها یک نمونه، ناقص و نویزی است.مفهوم Generalization: تعمیم به این نکته اشاره دارد که مفاهیمی که توسط یک مدل یادگیری ماشین آموخته شده است، به نمونه های جدیدی که با آن مواجه می شود، به خوبی بپردازد.در نهایت به خاطر وجود مفهوم تعمیم پذیری در یادگیری ماشین، دو اصطلاح دیگر با نام های Under-fitting و Over-fitting به وجود می آیند. این دو مفهوم هر دو نشان دهنده عملکرد ضعیف الگوریتم یاد گیرنده در یادگیری ماشین است.بیش برازش(overfitting):درواقع Over-fitting به این موضوع اشاره دارد که مدل ما بسیار خوب آموزش دیده است اما به خوبی تعمیم نیافته است.در دنیای الگوریتم‌ها Overfit شدن به معنای این است که الگوریتم فقط داده‌هایی که در مجموعه آموزشی (train set) یاد گرفته است را می‌تواند به درستی پیش‌بینی کند ولی اگر داده‌ای کمی از مجموعه‌ی آموزشی فاصله داشته باشد، الگوریتمی که Overfit شده باشد، نمی‌تواند به درستی پاسخی برای این داده‌های جدید پیدا کند و آن‌ها را با اشتباهِ زیادی طبقه‌بندی می کند.فرض کنیم دانشجویی میخواهدداور فوتبال شود و اولین کاری که می کند شروع به خواندن کتاب آیین نامه و قوانین داوری برای شرکت در آزمون تئوری داوری خودرا آماده می کند. او برای صرفه جویی در هزینه خرید کتاب نزد کتابخانه دانشگاه رفته تا جویا شود که کتاب قوانین داوری فوتبال را موجود دارند یا خیر!  متصدی کتابخانه کتاب را به او می دهد وفرد خوشحال از اینکه نیازی نیست دیگر پولی بابت کتاب بدهد سریعا شروع به خواندن کتاب می کند(train)  و بعد از تمام کردن کتاب از دوستش می خواهد از قسمت های مختلف کتاب از او سوال بپرسد، تاخودرا ارزیابی کند(valid)،نتیجه ارزیابی خیلی خوب و قابل قبول بود و فرد با اعتماد به نفس خاصی به جلسه آزمون(test) می رود، برخلاف تصور اصلا آزمون خوبی نبوده!! اگه بهتون بگم اینجا بیش برازش داشتیم، به نظرتون مشکل از کجا بوده؟!1)ممکن است این کتاب چند جلدی بوده باشد.(توزیع نامناسب داده ها یا همون واریانس بالا)2)دلیل دوم محتمل تره، قوانین داوری هر 6 ماه بروزرسانی میشوند و گاها دستخوش تغییرات زیادی خواهند شد، پس عملا کتابی که چاپ جدید نباشد، اشکالات زیادی دارد.(نویز)همونطور که دیدین مدلی که آموزش خوبی دیده ولی با داده نویزی و یا آموزش کاملی دیده ولی با توزیع نامناسب و واریانس بالا مدل  ، مفهموم بیش برازش رو برای ما توصیف میکنه.کم برازش یا Underfitting:برعکس زمانی که ما دچار Underfitting  میشویم اذعان به سادگی مدل در مرحله آموزش داریم تا حدی که نتوانسته مفهوم حاکم بر داده های ورودی را درک کند. چون مدل ما ساده است نمیتواند رفتار داده های آموزش را بدرستی یاد بگیرد و طبیعتا خطای آموزش بالایی دارد .بنابراین در مواجهه با داده های تست جدید هم خطای تعمیم بالایی خواهد داشت.معمولا زمانی اتفاق می افتد که داده های کمتری برای ساخت یک مدل دقیق و همچنین زمانی که ما سعی می کنیم یک مدل خطی با داده های غیر خطی ایجاد کنیم.اگه بخوایم همون مثال قوانین داوری رو برای مدل کم برازش بزنیم؛ به این صورت خواهد بود که فرض کنید آن فرد خیلی ساده و ابتدایی قوانین مربوط به خطا را بداند(&quot;سرنگون کردن بازیکن مقابل را خطا میگویند!&quot;) ولی وقتی هنگام تست از او در خصوص خطای کف پا و یا قوانین مربوط به جریمه خطا(کارت قرمز یا زرد) می پرسند، قطعا عملکرد خوبی نخواهد داشت،چون به صورت کلی آموزش دیده است و اصطلاحا در اینجا کم برازش رخ داده است.و اگر از خود داده های آموزش قسمتی را برداریم و مدل را ارزیابی کنیم  باز مدل ما Bias زیادی خواهد داشت.شکل زیر تحلیل شفافی را به ما میدهد . همانطور که صحبت شد , زمانی که پیچیدگی مدل ما به دلیل یادگیری کمتر در مرحله آموزش پایین است در معرض Underfitting  هستیم و هم خطای آموزش و هم خطای تست بالاست و نتیجه اینکه خطای تعمیم پذیری مدل هم بالا خواهد بود.هر چقدر پیچیدگی مدل افزایش میابد خطای آموزش به دلیل یادگیری دقیق تر داده های آموزشی کمتر شده اما مدل در پیش بینی رفتار داده های تست رفتار نامناسبی داشته و خطای تست بالا میرود و مدل ما برای داده های جدید ناکامد بوده و قابل تعمیم نمیباشد.طبیعتا بهترین فیت جاییست که خطای آموزش و خطای تست در حد معقولی بسته به صورت مسئله بین دو پدیده فوق باشد. این مقاله مفهوم overfitting و underfitting رو هم از حیث پیچیدگی و سادگی مدل و بایاس و واریانس آن مورد بررسی قرار دادیم.د رادامه منابع این مقاله برای یادگیری بهتر شما دوستان ذکر می شود.منابع:under-fitting و over-fitting(گذرگاه سئو)faradars blogبررسی دو مفهوم under-fitting و over-fitting در یادگیری ماشین(سپهر اکبرزاده)</description>
                <category>Samrand Majnooni</category>
                <author>Samrand Majnooni</author>
                <pubDate>Fri, 14 Jan 2022 20:20:44 +0330</pubDate>
            </item>
                    <item>
                <title>اعتبارسنجی متقابل  در یادگیری ماشین:</title>
                <link>https://virgool.io/@samrand/cross-validation-o904hg5y1upl</link>
                <description>در یادگیری ماشین (ML)، تعمیم معمولاً اشاره به توانایی یک الگوریتم برای مؤثر بودن در ورودی های مختلف دارد. این به این معناست که مدل یادگیری ماشین با کاهش عملکرد روی ورودی های جدید از توزیع یکسان داده های آموزشی مواجه نمی شود.برای انسان ها این توانایی تعمیم طبیعی ترین چیز ممکن است. ما می توانیم سریعا طبقه بندی کنیم. به عنوان مثال ما قطعا قادریم یک سگ را شناسایی کنیم حتی اگر قبلا این نژاد را ندیده باشیم. با این وجود، این کار برای مدل یادگیری ماشین ممکن است کاملا یک چالش باشد. به همین دلیل است که بررسی توانایی تعمیم الگوریتم یک کار مهم است که در زمان ساخت مدل نیاز به توجه زیادی دارد.برای این کار از اعتبار سنجی متقابل استفاده می کنیم.در این مقاله به موارد زیر می پردازیم:اعتبارسنجی متقابل چیست: تعریف، هدف استفاده و تکنیک هاتکنیک های مختلف اعتبارسنجی متقابل:hold-out, k-folds, Leave-one-out, Leave-p-out, Stratified k-folds, Repeated k-folds, Nested k-folds, Complete CVنحوه استفاده از این تکنیک ها: sklearnاعتبارسنجی متقابل در یادگیری ماشین: sklearn, CatBoostاعتبارسنجی متقابل در یادگیری عمیق: Keras, PyTorch, MxNetبهترین شیوه ها و نکات: سری های زمانی، داده های پزشکی و مالی و تصاویراعتبارسنجی متقابل چیست؟اعتبار سنجی متقابل(CV) تکنیکی برای ارزیابی یک مدل یادگیری ماشین و آزمایش عملکرد آن است. اعتبارسنجی متقابل معمولاً در کارهای کاربردی یادگیری ماشین استفاده می شود. این تکنیک در مقایسه و انتخاب یک مدل مناسب برای مسئله مدل‌سازی پیش‌بینی‌کننده مشخص کمک می‌کند.اعتبارسنجی متقابل به سادگی قابل درک است، پیاده‌سازی آن آسان است و نسبت به سایر روش‌های مورد استفاده برای شمارش معیار کارایی مدل، بایاس کمتری دارد. همه این ها اعتبارسنجی متقابل را به ابزاری قدرتمند برای انتخاب بهترین مدل برای کار خاص تبدیل می کند.تکنیک های مختلفی وجود دارد که ممکن است برای اعتبارسنجی متقابل یک مدل استفاده شوند. با این حال، همه آنها یک الگوریتم مشابه دارند:1- مجموعه داده را به دو بخش تقسیم کنید: یکی برای آموزش، دیگری برای آزمایش2- مدل را روی مجموعه داده های آموزشی، آموزش دهید3- اعتبار مدل را در مجموعه آزمایشی تأیید کنید4- مراحل 1 تا 3 را چند بار تکرار کنید. تعداد تکرار به روش اعتبارسنجی متقابل مورد استفاده، بستگی دارد.همانطور که می دانید، تکنیک های اعتبارسنجی متقابل زیادی وجود دارد. برخی از آنها به طور معمول استفاده می شوند اما برخی دیگر فقط در تئوری کار می کنند. بیایید روش های اعتبارسنجی متقابلی را که در این مقاله پوشش داده خواهند شد، ببینیم:· Hold-out· K-folds· Leave-one-out· Leave-p-out· Stratified K-folds· Repeated K-folds· Nested K-folds· Complete· Hold-outاعتبار سنجی متقابل   Hold-out(برگزاری) ساده ترین و رایج ترین تکنیک است. شاید آگاه نباشید که این یک روش Hold-out است اما مطمئناً هر روز از آن استفاده می کنید.الگوریتم تکنیک Hold-out:1- مجموعه داده را به دو بخش تقسیم کنید: مجموعه آموزشی و مجموعه آزمایش. معمولاً 80 درصد مجموعه داده به مجموعه آموزشی و 20 درصد به مجموعه آزمایشی تخصیص داده میشود، اما می‌توانید هر تقسیم‌بندی که مناسب‌تر باشد را انتخاب کنید.2- مدل را روی مجموعه آموزشی آموزش دهید3- مدل را روی مجموعه  داده های آزمایش، اعتبار سنجی کنید4- نتیجه اعتبارسنجی را ذخیره کنیدما معمولاً از روش Hold-outدر مجموعه داده‌های بزرگ استفاده می‌کنیم، زیرا فقط یک بار نیاز به آموزش مدل دارد. اجرای روش Hold-outواقعاً آسان است. برای مثال، می‌توانید این کار را با استفاده از sklearn.model_selection.train_test_splitانجام دهید.با این حال، روش  Hold-outیک نقطه ضعف بزرگ دارد.به عنوان مثال، مجموعه داده ای که از لحاظ توزیع کاملاً یکنواخت نیست. اگر چنین باشد، ممکن است پس از تقسیم در یک نقطه ناهموار قرار بگیریم. به عنوان مثال، اگر مجموعه دیتا آموزشی نماینگر مجموعه دیتا آزمایش نباشد هر دو مجموعه آموزش و آزمایش ممکن است بسیار متفاوت باشند، یکی از آنها ممکن است آسان تر یا سخت تر باشد.علاوه بر این، این واقعیت که ما مدل خود را فقط یک بار آزمایش می کنیم ممکن است یک تنگنا برای این روش باشد. با توجه به دلایلی که قبلا عنوان شد، نتیجه به دست آمده با تکنیک Hold-outممکن است غیر دقیق در نظر گرفته شود.روش K-Fold :تکنیکی است که معایب روش Hold-outرا به حداقل می رساند. K-Fold ،روش جدیدی را برای تقسیم مجموعه داده معرفی می کند که به غلبه بر مشکل &quot;تنگنای فقط یک بار آزمایش مدل&quot; کمک می کند.1- تعداد kدسته را انتخاب کنید. معمولاً k برابر 5 یا 10 است، اما می‌توانید هر عددی را که کمتر از طول مجموعه داده باشد، انتخاب کنید.2- مجموعه داده را به k قسمت مساوی (در صورت امکان) تقسیم کنید (به آنها foldsگفته می شود).3- قسمت k-1را انتخاب کنید که مجموعه  داده آموزشی خواهد بود. Fold باقیمانده مجموعه داده آزمایشی خواهد بود.4- مدل را روی مجموعه آموزشی آموزش دهید. در هر تکرار از اعتبارسنجی متقابل، باید یک مدل جدید مستقل از مدل آموزش داده شده در تکرار قبلی را آموزش دهید.5- روی مجموعه آزمایشی اعتبار سنجی کنید.6- نتیجه اعتبارسنجی را ذخیره کنید.7- مراحل 3 تا 6 را kبار تکرار کنید. هر بار از fold باقی مانده به عنوان مجموعه تست استفاده کنید. در پایان، شما باید مدل را روی هر fold ای که دارید اعتبارسنجی کرده باشید.8- برای به دست آوردن امتیاز نهایی، از نتایجی که در مرحله 6 به دست آوردید، میانگین بگیرید.برای انجام اعتبارسنجی متقابل به روش k-Fold می توانید از sklearn.model_selection.KFold استفاده کنید؛که مثال کدش رو در پایین میبینید:به طور کلی همیشه بهتر است به جای روش Hold-out از تکنیک k-Fold استفاده کنید. از آنجایی که فرایند آموزش و آزمایش بر روی چندین بخش مختلف مجموعه داده انجام می شود، در مقایسه یک یه یک، k-Fold نتیجه پایدارتر و قابل اعتمادتری به دست می دهد. اگر تعداد foldها را برای آزمایش مدل بر روی بسیاری از زیر مجموعه‌های مختلف افزایش دهیم، می‌توانیم امتیاز کلی را قوی‌تر کنیم.با این حال، روش k-Fold یک نقطه ضعف دارد. افزایش k منجر به آموزش مدل های بیشتر می شود و فرآیند آموزش ممکن است واقعاً پرهزینه و زمان بر باشد.روش Leave-one-out:اعتبار سنجی متقابل(LOOCV) یک مورد کرانی از K-Fold  روش است. تصور کنید که 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پیدا کرد.بزرگترین مزیت روش اعتبارسنجی متقابل Leave-one-out این است که داده های زیادی را هدر نمی دهد. ما فقط از یک نمونه از کل مجموعه داده به عنوان یک مجموعه آزمایشی استفاده می کنیم، در حالی که بقیه دیتا متعلق به مجموعه آموزشی است. اما وقتی روش LOOCV  با روش k-Fold  مقایسه می‌شود، روش LOOCV نیازمند ساخت تعداد n مدل به جای k مدل دارد.  می‌دانیم که n تعداد نمونه‌های مجموعه داده است که بسیار بیشتر از k است و این بدان معناست که LOOCV از نظر محاسباتی گرانتر از k-Fold است، ممکن است زمان زیادی برای اعتبارسنجی متقابل مدل با استفاده ازLOOCV نیاز باشد.بنابراین، جامعه علوم داده یک قانون کلی بر اساس شواهد تجربی و تحقیقات مختلف دارد که پیشنهاد می‌دهد اعتبارسنجی متقابل 5 یا 10 fold  باید بر LOOCV ترجیح داده شود.روش Leave-p-out:این روش اعتبار سنجی متقابل مشابه روش LOOC CV است زیرا تمام مجموعه داده های آموزشی و آزمایشی ممکن را با استفاده از p نمونه به عنوان مجموعه آزمایشی ایجاد می کند.  تمام موارد ذکر شده در مورد روش LOOCV  در مورد روش LpOC نیز صادق است.با این حال، لازم به ذکر است که بر خلاف روش های LOOCV و k-Fold مجموعه‌ دیتا های آزمایش اگر p بالاتر از 1 باشد، برای LpOC همپوشانی دارند.الگوریتم تکنیک LpOC:1- ابتدا p نمونه داده را از مجموعه داده ها انتخاب کنید که  داده های مجموعه آزمایشی خواهند بود.2- و n - p نمونه باقیمانده، داده های مجموعه آموزشی خواهند بود.3- مدل را با استفاده از مجموعه داده های آموزشی آموزش دهید. در هر تکرار، یک مدل جدید باید آموزش داده شود.4- اعتبار مدل روی مجموعه  داده های آزمایش بسنجید.5- نتیجه اعتبارسنجی را ذخیره کنید6- مراحل 2 تا 5 را Cpn  (ترکیب p از n) بار تکرار کنید.7- برای به دست آوردن امتیاز نهایی، میانگین نتایجی را که در مرحله 5 به دست آوردید محاسبه کنید.می‌توانید اعتبار سنجی متقابل را به روش Leave-p-out  را با استفاده از sklearn – sklearn.model_selection.LeavePOut  انجام دهید.روش LpOC تمام معایب روش LOOCV را دارد، با این حال به اندازه LOOCV قوی است.روش Stratified k-Fold:گاهی اوقات ممکن است در مقدار هدف در مجموعه داده با عدم تعادل زیادی مواجه شویم. به عنوان مثال، در مجموعه داده‌های قیمت ساعت‌های مچی، امکان دارد که تعداد بیشتری از ساعت‌های مچی قیمت بالایی داشته باشند. در مورد طبقه‌بندی، در مجموعه داده‌های گربه‌ها و سگ‌ها ممکن است تعداد بیشتری داده در طبقه سگ وجود داشته باشند.روش Stratified k-Fold نوعی از تکنیک استاندارد K-Fold CV است که به گونه ای طراحی شده است که در چنین مواردی از عدم تعادل در پارامتر هدف موثر باشد.این تکنیک به صورت زیر عمل می کند:روشStratified k-Foldمجموعه داده را به k دسته و به گونه ای که هر دسته دارای درصد یکسانی از نمونه های هر کلاس هدف به عنوان مجموعه کامل است، تقسیم می کند. در مورد رگرسیون، روش Stratified k-Fold  مطمئن می شود که میانگین مقدار پارامتر هدف تقریباً در همه دسته ها برابر است.الگوریتم تکنیک طبقه بندی Stratified k-Fold:1- تعدادی k-foldرا انتخاب کنید.2- مجموعه داده را به k دسته تقسیم کنید. هر fold باید تقریباً دارای درصد یکسانی از نمونه‌های هر کلاس هدف در مجموعه کامل باشد.3- تعداد(k – 1)  fold را انتخاب کنید که مجموعه دیتا آموزش خواهد بود. 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است.تمام موارد ذکر شده در باب روش K-Fold CV برای تکنیک Stratified k-Fold نیز صادق است. هنگام انتخاب بین روش های مختلف اعتبارسنجی متقابل ،اطمینان حاصل کنید که از روش مناسب استفاده می کنید. به عنوان مثال، ممکن است فکر کنید که مدل شما عملکرد بدی دارد، تنها به این دلیل که از روش اعتبارسنجی متقابل K-Foldبرای اعتبارسنجی مدلی استفاده می‌کنید که بر روی مجموعه دیتا با عدم تعادل در کلاس هدف، آموزش داده شده است. برای جلوگیری از این مشکل، همیشه باید ی تجزیه و تحلیل کاوشی مناسب روی داده های خود انجام دهید.روش Repeated k-Fold:اعتبارسنجی متقابل k-Foldتکراری یا نمونه‌برداری تصادفی فرعی تکراری احتمالاً قوی‌ترین روش در بین همه ی تکنیک‌های بیان شده در این مقاله است. این یک تغییر از 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 دارد. اولا، نسبت تقسیم دیتا آموزش/آزمایش به تعداد تکرارها بستگی ندارد. ثانیا، ما حتی می توانیم نسبت های منحصر به فردی را برای هر تکرار تنظیم کنیم. ثالثاً، انتخاب تصادفی نمونه‌ها از مجموعه داده‌ها، این روش را را برای بایاس انتخابی مقاوم می‌سازد.با این حال، دارای برخی از معایب نیز می باشد. k-Fold CV تضمین می‌کند که مدل روی همه نمونه‌ها آزمایش می‌شود، در حالی که K-Fold تکراری بر اساس تصادفی‌سازی کار میکند که به این معنی است که برخی از نمونه‌ها ممکن است هرگز برای قرار گرفتن در مجموعه آزمایش انتخاب نشوند. در حالی که، برخی از نمونه ها ممکن است چندین بار انتخاب شوند.دراینجا Sklearn به شما در پیاده سازی Repeated k-Fold CV کمک می کند.از sklearn.model_selection.RepeatedKFoldاستفاده کنید. در اجرای این تکنیک توسط sklearn باید تعداد fold هایی که می خواهید داشته باشید (n_splits) و تعداد دفعاتی که تقسیم انجام می شود (n_repeats ) را تنظیم کنید. این تضمین می کند که در هر تکرار فولدهای مختلفی داشته باشید.روش 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 fold تقسیم کنید و یکی از آنها را برای آزمایش رزرو کنید.4- یکی از foldهای آموزشی را برای اعتبار سنجی رزرو کنید.5- برای هر مقدار pروی 8 foldآموزشی باقیمانده آموزش دهید و روی فولد اعتبارسنجی ارزیابی کنید. اکنون 4 اندازه گیری دارید6- مراحل 4-5 را 9 بار تکرار کنید. جابه جا کنید که هر بار کدام فولد آموزشی، fold اعتبارسنجی است؛اکنون 4 * 9 اندازه گیری دارید.7- دراینجا p را به گونه ای انتخاب کنید که میانگین خطای آموزش را روی 9 دسته به حداقل می رساند. از آن p برای ارزیابی مدل با استفاده از مجموعه آزمایش استفاده کنید.8- از مرحله 2 ، 10 بار تکرار کنید و از هر fold به نوبت به عنوان فولد آزمایش استفاده کنید.9- میانگین و انحراف معیار اندازه گیری ارزیابی را در 10 فولد آزمایش ذخیره کنید.10- الگوریتمی که بهترین عملکرد را داشت، الگوریتمی است که بهترین میانگین عملکرد خارج از نمونه را در 10 فولد آزمایشی دارد.این تکنیک از نظر محاسباتی گران است زیرا در طول مراحل 1 تا 10 تعداد زیادی مدل باید آموزش و ارزیابی شوند. با این حال، روش Nested k-Fold CV معمولا استفاده می شود و ممکن است در چندین کار یادگیری ماشین واقعاً مؤثر باشد.متأسفانه، هیچ روش از پیش ساخته ای در sklearn وجود ندارد که بتواند CV Nested k-Fold را برای شما انجام دهد شما باید یا با استفاده از گوگل پیاده سازی شخصی را پیدا کنید یا خودتان آن را کدنویسی کنید.اعتبار سنجی متقابل  complete(کامل):تکنیک اعتبارسنجی متقابل کامل کم استفاده ترین تکنیک در بین روش های اعتبارسنجی متقابل است. ایده کلی این است که ما یک عدد k ( طول مجموعه آموزشی ) را انتخاب می کنیم و روی هر بخش ممکن  از دیتا که شامل kنمونه در مجموعه آموزشی است، اعتبار سنجی می کنیم.مقدار بخش ها را می‌توان به صورت ترکیب n از k محاسبه کرد که n طول مجموعه داده است. اگر k بیشتر از 2 باشد، باید مدل خود را چندین بار آموزش دهیم که همانطور که قبلاً متوجه شدیم از جنبه زمانی و محاسباتی فرآیندی گران قیمت است.به همین دلیل است که از این روش یا در تحقیقات نظری و یا در صورتی که فرمول مؤثری برای به حداقل رساندن محاسبات وجود داشته باشد، استفاده می شود.الگوریتم اعتبار سنجی متقابل کامل:1- یک عدد k ( طول مجموعه آموزشی) را انتخاب کنید.2- مجموعه داده را تقسیم کنید.3- مدل را توسط مجموعه آموزشی آموزش دهید.4- روی مجموعه آزمایشی اعتبار سنجی کنید.5- نتیجه اعتبارسنجی را ذخیره کنید.6- مراحل 2 تا 5 را به اندازه ترکیب n از k تکرار کنید.7- برای به دست آوردن امتیاز نهایی، از  نتایجی که در مرحله 5 به دست آوردید، میانگین بگیرید.اعتبار سنجی متقابل در یادگیری ماشینبیشتر تکنیک های اعتبار سنجی متقابل ذکر شده در بالا به طور گسترده در یادگیری ماشین استفاده می شود. مهم است که به خاطر داشته باشید که استفاده از تکنیک اعتبارسنجی متقابل مناسب ممکن است در زمان شما صرفه جویی کند و به انتخاب بهترین مدل برای کار کمک کند.این به تین معناست که اولاً، بهتر است همیشه مدل را اعتبارسنجی متقابل کنید و ثانیاً باید یک روش از میان روش های ارزیابی متقابل مربوطه را انتخاب کنید. بنابراین، دانستن مزایا و معایب تکنیک‌های اعتبارسنجی متقابل ضروری است.لازم به ذکر است که اگر می‌خواهید مدل را اعتبار سنجی متقابل کنید، همیشه باید منوال(manual) مدل را بررسی کنید چرا که برخی از الگوریتم‌های یادگیری ماشین، به عنوان مثال، CatBoost روش‌های ارزیابی متقابل مختص به خود را دارند. ممکن است آنها در کار یادگیری ماشین  شما مرتبط و کارامد بیابید و به جای روش های از پیش ساخته sklearnاز آنها استفاده کنید.به طور کلی، ممکن است متوجه شده باشید، بسیاری از تکنیک‌های ارزیابی متقابل دارای روش‌های از پیش ساخته شده در sklearn هستند. من به شدت توصیه می کنم از آنها استفاده کنید زیرا این روش ها برای کارهای پیچیده تر منجر به صرفه جویی زیادی در زمان می شوند.اعتبارسنجی متقابل در یادگیری عمیق(DL )اعتبار سنجی متقابل در یادگیری عمیق ممکن است کمی مشکل تر باشد زیرا اکثر تکنیک ها حداقل چند بار نیاز به آموزش مدل دارند.در یادگیری عمیق، معمولاً به دلیل هزینه‌های مربوط به آموزش تعداد k مدل‌ مختلف، از اعتبارسنجی متقابل اجتناب می‌کنید.  به جای انجام k-Fold یا سایر روش ها ممکن است از یک زیرمجموعه تصادفی از داده های آموزشی خود به عنوان hold-outبرای اهداف اعتبار سنجی استفاده کنید.به عنوان مثال، کتابخانه یادگیری عمیق Keras به شما این این مکان را می دهد  که از یکی از دو پارامتر برای تابع fit که کار آموزش را انجام می دهد، عبور(ارسال) کنید.تعریف validation_split: درصدی از دیتا که باید برای اعتبار سنجی hold-out شوند.تعریف validation_data: یک تاپل از (X, y) که باید برای اعتبارسنجی استفاده شود. این پارامتر، پارامتر دیگر validation_splitرا نادیده می گیرد، به این معنی که شما تنها یکی از این پارامترها را در یک زمان می توانید استفاده کنید.همین رویکرد در آموزش های رسمی سایر محیط های کاری یادگیری عمیق مانند PyTorch و MxNet استفاده می شود. آنها همچنین پیشنهاد می کنند مجموعه دیتا را به سه بخش تقسیم کنید: دیتاآموزش، دیتا اعتبار سنجی و دیتا آزمایش.آموزش – بخشی از مجموعه داده برای آموزشاعتبار سنجی - بخشی از مجموعه داده برای اعتبارسنجی در حین آموزشآزمایش- بخشی از مجموعه داده برای اعتبار سنجی نهایی مدلبا این حال، اگر مجموعه داده کوچک باشد (شامل صدها نمونه) می توانید از اعتبارسنجی متقابل در کار های یادگیری عمیق استفاده کنید. در این مورد، یادگیری یک مدل پیچیده ممکن است یک کار بی ربط باشد، بنابراین مطمئن شوید که کار را پیچیده تر نکنید.بهترین روش ها و نکاتلازم به ذکر است که گاهی اوقات انجام اعتبارسنجی متقابل ممکن است کمی مشکل باشد.به عنوان مثال، اشتباه منطقی در هنگام تقسیم مجموعه داده بسیار آسان است که ممکن است منجر به یک اعتبارسنجی متقابل غیرقابل اعتماد شود.ممکن است نیاز باشد نکاتی را که در زیر آمده شده در هنگام اعتبارسنجی متقابل یک مدل مد نظر داشته باشید:1- هنگام تقسیم داده ها منطقی باشید (آیا روش تقسیم منطقی است؟)2- از روش اعتبارسنجی متقابل مناسب استفاده کنید (آیا این روش در این کار من قابل اجرا است؟)3- هنگام کار با سری های زمانی، روی گذشته ارزیابی نکنید (به اولین نکته مراجعه کنید)4- هنگام کار با داده های پزشکی یا مالی، در خاطر داشته باشید که آن را بر اساس دیتای هر شخص تقسیم کنید. از قرار دادن داده یک نفر هم در آموزش و هم در مجموعه تست خودداری کنید زیرا ممکن است به عنوان نشت داده در نظر گرفته شود.5- هنگام برش تکه‌ها از تصاویر بزرگ‌تر، به یاد داشته باشید که با شناسه تصویر بزرگ تقسیم کنید.البته، نکات از کاری به کاری دیگر متفاوت هستند و پوشش دادن همه آنها تقریبا غیرممکن است. به این دلیل است که انجام یک تجزیه و تحلیل قوی (آنالیز) کاوشی داده ها قبل از شروع اعتبارسنجی متقابل یک مدل، همیشه بهترین روش است.سخن نهاییاعتبار سنجی متقابل ابزار قدرتمندی است. هر دانشمند داده باید با آن آشنا باشد. در زندگی واقعی، شما نمی توانید پروژه ای را بدون اعتبارسنجی متقابل یک مدل به پایان برسانید.به نظر من بهترین تکنیک ها، Nested k-Fold و k-Fold استاندارد هستند. من پیشتر از آنها در پروژه تشخیص تقلب و کلاهبرداری استفاده کردم. دو تکنیک Nested k-Fold و همچنین GridSeachCV به من در تنظیم پارامترهای مدل کمک کردند. از طرف دیگر، تکنیک k-Fold برای ارزیابی عملکرد مدل من استفاده شد.در این مقاله، ما متوجه شدیم که اعتبارسنجی متقابل چیست، چه تکنیک‌های در این بحث وجود دارد و چگونه می توان آنها را پیاده‌سازی کرد. الگوریتم های یادگیری ماشین در آینده قطعاً حتی بهتر از امروز عمل خواهند کرد. با این حال، اعتبار سنجی متقابل همیشه برای تقویت وپشتیباتی از نتایج شما مورد نیاز است.به امید خدا با این اطلاعات، مشکلی در انجام اعتبارسنجی متقابل برای پروژه بعدی یادگیری ماشین نخواهید داشت!باتشکر سامرند مجنونیمنبع: نپتون بلاگ</description>
                <category>Samrand Majnooni</category>
                <author>Samrand Majnooni</author>
                <pubDate>Wed, 15 Dec 2021 11:52:37 +0330</pubDate>
            </item>
                    <item>
                <title>دروازه ورود به یادگیری ماشین</title>
                <link>https://virgool.io/@samrand/quera-cc7wpqsxnd4j</link>
                <description>سلام من تو این مطلب سعی کردم؛خلاصه ای هرچیزی که برای ورود به علم داده و یادگیری ماشین نیاز هست رو ذکر کنم. به نظرم بدنیست درگام اول به سرگذشت و فلسفه هوش مصنوعی بپردازیم؛ که باهم ببینیم چه بوده و چه خواهد شد؟سرگذشت هوش مصنوعی:یونانیان باستان براین عقیده بودند که این امکان وجوددارد که مغزی ساختگی را داخل یک بدنه مکانیکی قرارداد.یکی از افسانه های یونانیان یک غول آهنی با مغز مکانیکی به نام تالوس بود که از جانب زئوس خدای خدایان برای محافظت از مردم به آن ها هدیه داده شده بود.واضح است که هوش مصنوعی با آرزویی کهن برای جعل خدایان شکل گرفته است؛اما آثار به جا مانده از یونانیان، نشان از پیشرفتی فراتر از افسانه را در این حوزه داشته است.خدایی از جنس برنز! زئوس، تالوس را به مردم هدیه داد تا از آن‌ها در برابر دزدان دریایی و مهاجمان محافظت کند. تالوس از برنز ساخته شده بود و اولین آدم آهنی تاریخ بود (عکس: تالوس اثر Ed Kwong)در طول تاریخ اقدامات زیادی در جهت پرورش هوش مصنوعی انجام پذیرفته است اما دو مورد آنها نقاط عطف هوش مصنوعی بوده اند،که به آنها اشاره خواهد شد:1) مقاله آلن تورینگ در اواسط قرن بیستم و تست چالش برانگیز تورینگ که خیلی ها آن را تولد هوش مصنوعی می دانند نخستین نقطه عطف این حوزه بود.آزمون تورینگ: این آزمون در مقالهٔ معروف تورینگ دستگاه محاسباتی و هوشمندی مطرح شد و هدف این تست بررسی هوشمندی ماشین بود. در این آزمون شخص C به شکلی غیر مستقیم با شخص B و یک ماشین (A) در ارتباط است و نمی‌داند کدامشان ماشین است. او از آنها سوالاتی می‌پرسد و اگر از روی جواب‌ها نتواند شخص B را از ماشین تشخیص دهد، می‌گوییم که ماشین تست تورینگ را قبول شده است.2) باخت کاسپاروف، قهرمان شطرنج جهان، از سیستم deep blue دومین نقطه عطفی بود که باعث شد تا هوش‌ مصنوعی در کانون توجه قرار گیرد.چیره شدن ماشین بر انسان(1996)فلسفه هوش مصنوعی: در کتاب معروف «هوش مصنوعی، یک رویکرد مدرن » دیدگاه‌های مختلف از دو بعد مورد بررسی قرار گرفته‌اند. از منظر اول هوشمندی یا در رفتار است یا در تفکر و از منظر دوم هوشمندی در انسان‌گونه بودن یا در منطقی بودن (rationality) است. اگر همه حالات را در نظر بگیریم به چهار تعریف می‌رسیم. هوش مصنوعی چیزی است که منطقی فکرکند، منطقی رفتارکند، مانند انسان فکرکند، مانند انسان رفتارکند.فرض کنید هوشمندی مورد نظر خود را انتخاب کردیم. قدم بعدی ساخت عامل هوشمند (intelligent agent) است. عامل می‌تواند سخت‌افزاری یا نرم‌افزاری باشد و بر حسب محیطی که عامل قرار است در آن مورد استفاده قرار گیرد، می‌تواند دارای اجزای مختلفی باشد. برای مثال، عاملی که با انسان در ارتباط است باید توانایی دریافت و درک زبان طبیعی را داشته باشد و عامل فیزیکی ممکن است نیازمند بازوهای حرکتی برای انجام اعمال انتخابی باشد.هوش مصنوعی در یک نگاهرابطهٔ هوش مصنوعی و یادگیری ماشین:خب تا اینجا از اصطلاحات هوش مصنوعی و یادگیری ماشین به کرار استفاده شده است،اما سوال اینجاست آیا این دو به یک معنی هستند؟ جواب قطعا خیر است؛ یادگیری ماشین بعد از هوش مصنوعی موضوعیت پیدا کرد و آن را می‌توان زیر مجموعه ی هوش مصنوعی در نظر گرفت. در ادامه با مطالعه این مقاله تفاوت این دو، بیشتر برایتان مشهود خواهد شد.مصاحبه با دکتر فروغمند:تا اینجای این نوشته فک کنم تقریبا به جواب سوال هوش مصنوعی چه بوده و هست رسیدیم اما در ادامه برای جواب سوال دوم یعنی &quot;چه خواهد شد؟&quot; بهتره به سخنان دکتر فروغمند، عضو هیئت علمی دانشگاه صنعتی شریف، در این خصوص اشاره کنیم: به گفته ایشان در آینده انسان به طور مداوم تا نقطه خاصی در تلاش برای پیشرفته هوش مصنوعی خواهدبود؛ از آن نقطه به بعد هوش مصنوعی باعث پیشرفت خود خواهد شد و تاجایی که در یک سری مسائل از انسان هم پیش خواهد افتاد و حتی امکان تضاد منافع هم وجود خواهد داشت؛البته از منظر ایشان درهنگام پیشروی این اتفاقات یک سری مسائل دیگر خواهد بود که از قدرت هوش مصنوعی می کاهند؛ و خودقدرت می گیرند! شما چطور فکر می کنید؟تقابل انسان و هوش مصنوعیدر فصل قبل با هوش مصنوعی و شاخه‌های آن آشنا شدیم. حال وقت آن است که وارد جامعه‌ٔ برنامه‌نویسان حوزهٔ هوش مصنوعی شده و به بررسی کاربردها و مشاغل این حوزه بپردازیم.تشخیص ایمل های SPAM واتومبیل های خودران و پیشبینی بازار و... مشهودترین کاربردهایی هستند که می توان به آنها اشاره کرد. به دلیل اهمیت استفاده از الگو‌های داده در تصمیم‌گیری شرکت‌ها، شغل‌های مرتبط با داده به یکی از جذاب‌ترین شغل‌های حاضر تبدیل شده‌اند.کاربردهای هوش مصنوعیموقعیت‌های شغلی مرتبط با یادگیری ماشین:نیاز جامعه به بررسی آمار و داده ها سبب به وجود آمدن انواع تخصص هایی در این زمینه شده که در این مطلب فقط به نام و حدود حقوق مهم ترین های آنها بسنده میکنیم:تحلیل گر داده، دانشمند داده ، مهندس داده، مهندس یادگیری ماشین. معمولا حقوق دانشمند داده از تحلیل‌گر داده بیشتر است و مهندس یادگیری ماشین و مهندس داده از دوتای قبلی بیشتر.یادگیری ماشین در صنعت معدن:در معدن و صنایع معدنی نیز همچون سایر صنایع دیگر، یادگیری ماشین بسیار کاربردی است، صنایع معدنی با توجه به عدم قطعیت بالا و حجم بسیار زیاد اطلاعات جزو صنایع پیچیده به حساب می آید. لذا یادگیری ماشین و هوش مصنوعی در این صنایع با پیشرفت تکنولوژی بیش از پیش مورد استفاده قرار گرفته است.اگر بخوایم به تمامی کاربردهای یادگیری ماشین در معدن و صنایع معدنی بپردازیم به لیست بلند بالایی خواهیم رسید؛ اما در ادامه کاربردهای رایج را ذکر خواهیم نمود:1)پردازش تصاویر ماهواره ای 2)پیش‌بینی متغیرهای ژئومتالورژیکی 3)آنالیز تصاویر مربوط به جعبه مغزه‌ها 4) پردازش تصاویر گرفته‌شده از پهپاد برای شناسایی هدف‌های از پیش تعیین شدهمصاحبه با مهندس ستوده:اگه بخوایم به کاربردهای هوش مصنوعی در فیلد های مختلف بپردازیم، تقریبا می توان گفت که هوش مصنوعی در هر رشته ای می تواند کاربرد داشته باشدولی نباید از پیش نیاز ها به سادگی گذشت.بد نیست در اینجا به سخنان مهندس هادی ستوده متخصصی که در حوزه آنالیز داده ی فوتبالی فعالیت داشتند اشاره ای بکنیم.در مصاحبه ای که باهاشون داشتیم؛ مهندس ستوده به افرادی که قصد ورود به حوزه یادگیری ماشین داشتند، توصیه نمودند که حتما قبل از ورود، در رشته ای که قصد فعالیت دارند،دانش مناسبی را کسب کرده و بعد ورود نمایند.این دانش سبب می شود که علاوه بر هوش مصنوعی به کاررفته در الگوریتم ها از منطق رشته یا کسب و کار مورد نظر غافل نشد.مفهوم یادگیری ماشین:حال که با هوش مصنوعی و کاربردها و مشاغل آن آشنا شدیم می‌توانیم به مفهوم یادگیری ماشین و نحوه‌ی آموزش مدل و بررسی دقت آن بپردازیم. یادگیری ماشین در اکثر کاربردهای فعلی، یک برنامه کامپیوتری است که به داده دسترسی پیدا می‌کند و از آن برای آموزش خود استفاده می‌کند.داده و انواع آن: داده‌ها محور اصلی یادگیری ماشین هستند و ماشین‌ها از داده‌ها یاد می‌گیرند، به این صورت که ما داده‌ها را به عنوان ورودی به الگوریتم می‌دهیم تا خروجی مورد نیازمان را دریافت کنیم. اما داده چیست؟ داده‌، در نتیجه مشاهدات و اندازه‌گیری‌ها شکل می‌گیرد و توصیف این وضعیت مشاهده شده به شمار می‌آید. داده ها انواع مختلفی دارند که در ادامه به آن ها و مثالی از هر کدام اشاره خواهیم نمود: 1)تصویر: این نوع داده ها در حوزه بینایی کامپیوتراستفاده می شوند.مانند تشخیص پلاک ماشین توسط دوربین های نظارتی راهنمایی و رانندگی. 2)کلمات:کلمات و عبارات تولید شده توسط انسان هستندکه می توانند به صورت متن یا صوت در اختیار الگوریتم های کامپیوتری قرار بگیرند.از کاربرد های این داده هامی توان به تشخیص گفتار(جستجوی صوتی)،دسته بندی نوشته ها یا نظرات(دیجی کالا از این تکنیک برای جمع آوری نقاط ضعف و قدرت یک محصول استفاده میکند)، پاسخ دادن به سوالات: چیزی که گاهی هنگام جستجو در گوگل با آن مواجه می‌شویم. یعنی گوگل پاسخ سؤالی که سرچ شده را از متن‌ها استخراج کرده و بالاتر از نتایج جستجو سریع به ما نشان می‌دهد. 3)جداول:این نوع داده هارا تقریبا می توان معادل جداول موجود در پایگاه داده ها در نظرگرفت. ما از طریق جداول اطلاعات رو به الگوریتم های کامپیوتری میدهیم تا در حل مسائل و تصمیم گیری ها به ما کمک کنند.سیستم های بانکی برای تصمیم گیری در خصوص تایید یا عدم تایید وام افراد از این نوع داده ها بهره میبرند. 4)سری زمانی: در مورد بعضی از انواع داده، تغییرات آن و در نتیجه مقدار آن در طول زمان اهمیت ویژه‌ای دارد. برای مثال اگر ارزش یک سهم در بازار بورس را در یک بازه زمانی در نظر بگیریم، اطلاعات بیشتری داریم که الگوی تغییرات آن را نیز در بر می‌گیرد.برای مثال اگر ارزش یک سهم در بازار بورس را در یک بازه زمانی در نظر بگیریم، اطلاعات بیشتری داریم که الگوی تغییرات آن را نیز در بر می‌گیرد. از نمونه‌های دیگر این نوع داده، نوار قلبی است. انواع مختلف داده ممکن است صورت یک سری زمانی را به خود بگیرند.ماشین چگونه یاد می‌گیرد؟در یادگیری ماشین، ما صرفا مدلی را طراحی می‌کنیم که این مدل خود قادر به یادگیری و پیدا کردن الگوها به طور اتوماتیک است. در حالاتی که مساله مورد نظر پیچیده می‌شود، پیدا کردن این الگوها برای انسان اغلب دشوار یا حتی غیر ممکن می‌شود اما برای ماشین‌ها به دلیل قدرت پردازشی بالا این کار بسیار ساده‌تر است و این موضوع دلیل اصلی شهرت یادگیری ماشین می‌باشد. به طور کلی رویکرد انجام یادگیری ماشین، دارای ۴ عنصر اساسی است: 1)الگوریتم برای تصمیم گیری ۲ )معیاری برای برای امتیازدهی اینکه عملکرد مدل چقدر خوب بوده است۳ )برسی خودکار کیفیت مدل براساس امتیاز ۴ )روش خودکار برای بهبود امتیاز بر اساس ایجاد تغییرات در مدلانواع یادگیری ماشین:در ادامه مفاهیم یادگیری ماشین به انواع آن می پردازیم. 1)یادگیری نظارت شده: در این نوع از یادگیری، نمونه‌هایی که برای آموزش الگوریتم استفاده می‌شوند، دارای برچسب هستند.مثلا اگر بخواهیم کامپیوتر جنسیت یک فرد رو با داده های تصویری ورودی تشخیص دهد؛در ابتدا داده ورودی همراه برچسپ(زن یا مرد بودن) به کامپیوترداده میشود. به دلیل اینکه الگوریتم مورد نظر ما با استفاده از داده‌هایی که دارای برچسب مشخصی هستند الگوهای لازم را پیدا می‌کند، به این دسته، یادگیری نظارت‌شده می‌گویند. الگوریتم‌های یادگیری نظارت‌شده، به دو دسته طبقه‌بندی (classification) و رگرسیون (regression) دسته‌بندی می‌شوند. در طبقه‌بندی، هدف ما پیدا کردن برچسب یا دسته مناسب برای نمونه‌های بدون برچسب(مقدارگسسته) می‌باشد. در رگرسیون، هدف ما تخمین مقدار یک ویژگی (این بار مقداری پیوسته) برای یک نمونه می‌باشد.طبقه بندیرگرسیون2) یادگیری بی‌نظارت: تفاوت این نوع از یادگیری با یادگیری نظارت‌شده، تنها در نبودن برچسب‌ها است. به عبارت دیگر، هیچ برچسبی به کامپیوتر نمی‌گوید که چه زمانی درست پیش‌بینی کرده است و چه زمانی مرتکب اشتباه شده است. در این روش یادگیری، مدل به تنهایی و بدون کمک برچسب‌هایی که در روش نظارت‌شده دیدیم، باید الگوهای پنهان را پیدا کند.یادگیری بی نظارت به طور کلی به سه دسته خوشه‌بندی (clustering)، کاهش ابعاد (dimensionality reduction) و استخراج قانون وابستگی (association rule mining) تقسیم‌بندی می‌شود. مقایسه یادگیری بی نظارت و با نظارت3)یادگیری تقویتی: در این مدل براساس امتیاز دهی مدل را آموزش می دهیم.برای لمس این موضوع شمارا به سالهای دور کودکی خواهم برد که با کار اشتباه تنبیه شده وسبب میشد دیگر آن کار را تکرار نکنید؛ و اگر کار خوبی انجام میدادید (مثلا نمره خوب) تشویق میشدید و برای انجام مجدد آن و تشویق شدن تلاش میکردید.شکل زیر نشان می‌دهد که یک ربات چگونه یاد می‌گیرد که به آتش نزدیک نشود.سنجش یادگیری:در بخش‌های قبلی، با انواع روش‌های یادگیری بانظارت آشنا شدیم، اما چطور مطمئن باشیم که مدل روی دادگان جدید نیز نتیجه مناسبی را ارائه می‌دهد؟جز تست کردن آن هیچ راهی برای اطمینان از مدل طراحی شده وجود ندارد؛ بنابراین قبل از طراحی مدل داده هارا به دو دسته تقسیم میکنیم. دسته ای برای آموزش مدل(داده train) و دسته ی دیگر برای ارزیابی مدل(داده test).مصاحبه با مهندس یامیهمانطور که در این مطلب که فقط مقدمات رو شامل شده مشخص است هوش و مصنوعی و یادگیری ماشین یه رشته چالش برانگیز و در عین حال سخت می باشد.چندی پیش ما مصاحبه ای با مهندس هادی یامی که دانشمند کاربردی در شرکت مایکروسافت هستند،داشتیم. ایشان در این جلسه تاکید داشتند که به مرور زمان هوش مصنوعی هم جذاب تر و هم حادوحادتر خواهد شد؛ پس حالا که در ابتدای راه هستید باید بدانید؛ این راه را حتما باید با علاقه پیمود.ابزار های پیشنهادی برای علم داده:در این بخش،قصد داریم تعدادی از ابزارهای کاربردی در حوزه علم داده را معرفی کنیم.زبان برنامه نویسی پایتون:شاید پیش خودتان فکر کنید،چرا این زبان!؟ در ادامه دلایل انتخاب این زبان اشاره خواهیم نمود.الف) پایتون کتابخانه‌ها و ابزار‌هایی قوی و متعددی دارد.ب) کد های پایتون قابل فهم و نسبت به زبان های دیگر ساده تر است.ج)جامعه ی توسعه دهندگان پایتون بسیار گسترده است؛ بنابراین بیشتر مواقع برای رسیدن به جواب مشکلی که با کدتان دارید، با جست و جو در گوگل یا سایتهایی نظیر stackoverflow مسئله حل خواهد شد.فکر کنم دلایل ذکر شده برتری پایتون را برایتان قابل لمس نمود.بنابراین بهتر است بپردازیم به معرفی تعدادی از کتابخانه های مهم این زبان جذاب برنامه نویسی.1) نامپای(Numpy): داده از منابع مختلفی جمع‌آوری می‌شود و ممکن است قالب‌های مختلفی (عکس، متن، صدا و ...) به خود بگیرد اما در نهایت به شکل آرایه‌ای از اعداد درمی‌آید. ذخیره‌سازی و پردازش بهینه ی آرایه‌های عددی از اهمیت بسیاری برخوردار است. کتابخانه مختص این کاردر پایتون نامپای نام داردکه مخففnumeric pythonبه معنی پایتون عددی می‌باشد.2)پانداس(Pandas): یکی دیگر از کتابخانه‌های مهم اکوسیستم کار با داده پایتون، پانداس می‌باشد که از نامپای در بطن خود استفاده می‌کند. در پانداس ساختار اصلی داده به شکل دیتافریم (data frame) است که در واقع یک آرایه دو‌بعدی است که در آن سطر‌ها و ستون‌ها عنوان دارند. 3)مت‌پلات‌لیب(Matplotlib):ساخت نمودارهایی که بتوانند اطلاعات را به خوبی انتقال دهند یکی از مهمترین کارها در تحلیل داده است. برای مثال، مشاهده روند داده و تشخیص داده‌های پرت از روی نمودار‌ به راحتی امکان‌پذیر است. کتابخانه‌های بسیاری برای مصورسازی داده در پایتون وجود دارد اما مت‌پلات‌لیب از همه پرکاربردتر است.4) سایکت‌لرن(scikit-learn): معروف ترین کتابخانه پایتون میباشد که حاوی ابزار های متنوعی برای یادگیری ماشین و مدل سازی آماری است.سایکت‌لرن حاوی ابزارهای متنوعی برای یادگیری ماشین و مدل‌سازی آماری است و با کتابخانه‌هایی که پیش از این معرفی کردیم، هماهنگی بسیار خوبی دارد. هدف از ساخت سایکت‌لرن تمرکز بر مدل‌سازی داده به جای دستکاری و مرتب‌سازی و خلاصه کردن داده می‌باشد.چرا از یادگیری‌ماشین استفاده می‌کنیم؟ یادگیری ماشین به این دلیل مهم است که کارهایی که قبلا تنها توسط انسان ها امکان پذیر بود را با سرعت بیشتر و دقت بیشتر انجام دهد حتی برای حل مشکالت بزرگتر مثل پیش بینی وقایع طبیعی. همان طور که آموختیم، یادگیری‌ماشین زیرمجموعه هوش‌مصنوعی است، که به رایانه‌ها می‌آموزد؛ به روشی مشابه انسان، یعنی یادگیری از طریق تجربه‌های گذشته، فکر کنند. تقریباً هر کاری که بتواند با الگویی تعریف شده از داده‌ها یا مجموعه‌ای از قوانین انجام شود، می‌تواند با یادگیری‌ماشین به طور خودکار انجام شود.در ادامه قصد داریم شمارا با چالش‌های مربوط به داده و چالش‌های الگوریتمی آشنا کنیم.چالش‌های مربوط به دادهپایه و اساس یادگیری یک مدل داده ها هستند. هیچ مدلی نمی تواند با داده بد کارایی خوبی داشته باشد.در ادامه راه سه چالشی که داده ها با آنها رو به رو هستند را ذکر خواهیم نمود: 1)تعداد ناکافی داده2) داده‌ بی‌کیفیت3) ویژگی های مناسب برای حل مسئله.چالش های الگوریتمی: پس از آن‌که توانستیم چالش‌های مربوط به داده را مدیریت کنیم، سراغ الگوریتم و مدل می‌رویم. بیش‌برازش (Overfitting)، کم‌برازش (Underfitting) و زمان نمونه‌ای از چالش‌های مربوط به مدل‌ها و الگوریتم‌های هوش‌مصنوعی و یاد‌گیری‌ماشین هستند. بیش برازش: این مشکل زمانی رخ می دهد که مدل بیش از حد از داده های آموزش یادگرفته است. کم برازش: این مشکل وقتی به‌وجود می‌آید که مدل نتواند به خوبی از دادگان آموزش، یاد بگیرد. این مسئله می‌تواند به دلایل مختلفی پیش بیاید. داده نامناسب یکی از چندین دلیل کم‌برازش است.مسئله زمان:  فرایند آموزش مدل به زمان‌بر بودن معروف است. الگوریتم‌ها برای یادگیری زمان زیادی مصرف می‌کنند؛ بنابراین باید مدلی انتخاب کنیم که پیچیدگی زمانی خوبی داشته باشد. الگوریتم‌هایی هستند که پس از پایان آموزش معمولا به دقت خوبی می‌رسند ولی چون فرایند یادگیری زمان‌بری دارند در عمل از آن‌ها زیاد استفاده نمی‌شود!مصاحبه با مهندس رسولی: در مصاحبه ای که با مهندس سینا رسولی، دانشمند و رهبر داده در کافه بازارداشتیم؛تاکید داشتند  که با آمارو احتمال،جبر خطی و یادگیری ماشین آشنایی پیدا کنید به طور کلی هر مسیری میروید تلاش کنید و درکنار توانایی های مختلف کارهای عملی یاد بگیرید. مراحل یک پروژه یادگیری ماشین:برای حل مسئله حوزه یادگیری ماشین این گام ها باید طی شود: ۱)دریافت و بررسی داده ۲ )آماده سازی داده ۳)انتخاب و آموزش مدل مناسب ۴)تست و ارزیابی.مصاحبه با مهندس بهجتی مهندس علی بهجتی، مهندس داده در شرکت بوکینگ در صحبتی که باهم داشتیم؛ ذکر کردند که زیرساخت های مناسبی برای دیتا در ایران وجود ندارد و شرکت ها در این زمینه جای کار دارند و نیاز اساسی به مهندس داده دارندتا بتوانند پیشرفتی حاصل کنند.پیش تر مهندس هادی ستوده نیز به صورت سربسته در خصوص داده های فوتبالی و مشکلات زیرساخت ها(تجهیز استادیوم ها) در فدارسیون کشورمون به مواردی اشاره نمودند. بیشتر بدانید:تا به اینجای دوره با مبانی یادگیری ماشین، کاربردها ، چالش‌های آن و مقدمات استفاده از آن در عمل، آشنا شده‌اید. در ادامه به موضوعاتی تکمیلی می‌پردازیم که آشنایی با آن‌ها می‌تواند سرنخ‌هایی برای تحقیق و مطالعه ی بیشتر درباره ی هوش مصنوعی و یادگیری ماشین در اختیارتان قرار دهد.چرخه تب تکنولوژی: چرخه تب تکنولوژی که توسط موسسه گارتنر مطرح شده نمودار رشد تکنولوژیهای مختلف را در طی زمان نشان می دهد. با وجود اینکه هر تکنولوژی لازم است این چرخه را طی کند اما سرعت حرکت آنها متفاوت است. برای مثال استفاده از پردازنده گرافیکی در هوش مصنوعی تقریباً به محدوده پایانی رشد خود رسیده و اغلب تکنولوژیهای دیگر از آن استفاده می کنند. همچنین به موقعیت قرارگیری پردازش تصویر (computer vision) در نمودارچرخه تب هوش مصنوعی دقت کنید. با آن‌که به نظر می‌رسد این تکنولوژی شهرت خود را از دست داده است اما زمان به اوج رسیدن آن چیزی حدود ۲ تا ۵ سال تخمین‌ زده‌ شده است که نشانگر زمان مناسبی برای سرمایه‌گذاری و یا شروع به یادگیری این موضوع است.هوش مصنوعی عمومی: هوش مصنوعی که تا به الان به آن اشاراتی داشتیم،هوش مصنوعی محدود می باشد.محدود به این معنی که مدل های طراحی شده ما فقط در یک مسئله خاص هوشمند شده اند.در مقابل هوش مصنوعی عمومی را داریم که عبارت است از ساختن عامل هوشمندی که مانند انسان از هوش عمومی برخوردار باشد و توانایی آموختن در مواجهه با هر مساله جدیدی را داشته باشد و محدود به یک زمینه خاص نباشد. جالب است بدانید که در حال حاضر یک رشته ی دانشگاهی نسبتا جوان وجود دارد به نام علوم شناختی که مسئله ی شناخت را محور تحقیقات خود قرار داده استتکینگی فناوری: در ادامه روند رشد و پیشرفت هوش مصنوعی به نقطه ای اشاره شده است که در این نقطه پیشرفت تکنولوژی به نقطه غیر قابل کنترل و برگشت ناپذیری می رسد. چنین اتفاقی می تواند سبب پیدایش یک عامل فراهوشمند شود؛ که هوش تمام بشریت را پشت سر بگذارد.در اینجا بهتر است به سخنان دکتر فروغمند رجوع کنیم که عقیده داشتند که در مسیر رسیدن به این تکینگی یه سری مسائل دیگر قدرت را به دست میگیرند و از رسیدن به این تکینگی و قدرت هوش مصنوعی می کاهند.در ادامه بد نیست با شرکت های پیشرو در زمینه هوش مصنوعی و در پایان چند کتاب مفید در این عرصه شمارا آشنا کنیم.شرکتهای پیشرو در زمینه هوش مصنوعی و یادگیری ماشین عبارت اند از: شرکت DeepMind، شرکت OpenAI، گروه AI شرکت Facebook وگروه AI شرکت Google.و کتابهای جذاب و معروفی که می توان به آن ها اشاره نمودم را می توانید با کلیک بر روی لینک پایین صفحه حالت بهتری از معرفی کتاب هارا در منبع این ببینید.منبع:https://quera.ir/college/land/college/8522/</description>
                <category>Samrand Majnooni</category>
                <author>Samrand Majnooni</author>
                <pubDate>Thu, 25 Nov 2021 09:48:22 +0330</pubDate>
            </item>
            </channel>
</rss>