<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های FatemeHeidari</title>
        <link>https://virgool.io/feed/@FatemeHeidari</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-17 23:18:11</pubDate>
        <image>
            <url>https://static.virgool.io/images/default-avatar.jpg</url>
            <title>FatemeHeidari</title>
            <link>https://virgool.io/@FatemeHeidari</link>
        </image>

                    <item>
                <title>LSTM &amp; GRU</title>
                <link>https://virgool.io/@FatemeHeidari/lstm-gru-kn5xqlrtnwou</link>
                <description>RNNانسان ها هر ثانیه فکر خود را از صفر شروع نمی کنند. با خواندن این مقاله، هر کلمه را بر اساس درک خود از کلمات قبلی درک می کنید. همه چیز را دور نمی اندازید و دوباره از صفر شروع به فکر کردن می کنید. افکار شما ماندگار هستند.شبکه‌های عصبی سنتی نمی‌توانند این کار را انجام دهند، و به نظر یک نقص بزرگ است. به عنوان مثال، تصور کنید که می خواهید طبقه بندی کنید که چه نوع رویدادی در هر نقطه از یک فیلم اتفاق می افتد. مشخص نیست که چگونه یک شبکه عصبی سنتی می تواند از استدلال خود در مورد رویدادهای قبلی در فیلم برای اطلاع رسانی به رویدادهای بعدی استفاده کند.اما RNN این مشکل را حل می کنند. آنها شبکه‌هایی هستند که حلقه‌هایی در آنها وجود دارد و به اطلاعات اجازه می‌دهند که باقی بمانند.Neural Networks have loops.
به حلقه اجازه می دهد تا اطلاعات از یک مرحله از شبکه به مرحله بعدی منتقل شود.مشکل وابستگی های طولانی مدتفاصله کوچکی بین اطلاعات مربوطه و مکانی که به آن نیاز است.مثال: آخرین کلمه را در« the clouds are in the sky » پیش بینی کنید.در چنین مواردی، جایی که فاصله بین اطلاعات مربوطه و مکانی که به آن نیاز است کم است، RNN ها می توانند یاد بگیرند که از اطلاعات گذشته استفاده کنند.                                                                                      RNN ها می توانند اطلاعات قبلی را به حال متصل کنندفاصله زیاد بین اطلاعات مربوطه و مکانی که به آن نیاز است.مثال: کلمه آخر را پیش بینی کنید “I grew up in France… I speak fluent French”Long short-term memory (LSTM): نوع خاصی از شبکه عصبی بازگشتی (RNN) است که قادر به یادگیری وابستگی‌های بلندمدت هستند. LSTM میتواند مدلی برای حافظه کوتاه مدت بسازد که برای مدت طولانی دوام بیاورد.LSTM ها به صراحت برای جلوگیری از مشکل وابستگی طولانی مدت طراحی شده اند. به خاطر سپردن اطلاعات برای مدت زمان طولانی عملاً رفتار پیش فرض آنهاست، نه چیزی که برای یادگیری آن تلاش می کنند!تفاوت بین RNN و LSTMهمه شبکه های عصبی بازگشتی به شکل زنجیره ای از ماژول های تکرار شونده شبکه عصبی هستند. در RNN های استاندارد، این ماژول تکرار شونده ساختار بسیار ساده ای مانند یک لایه tanh دارد.ماژول تکرار شونده در یک RNN استاندارد شامل یک لایه است.ماژول تکراری در یک RNN استاندارد شامل یک لایه است.LSTMها نیز دارای این ساختار زنجیره مانند هستند، اما ماژول تکرارشونده ساختار متفاوتی دارد. به جای داشتن یک لایه شبکه عصبی واحد، چهار لایه وجود دارد که به روشی بسیار خاص با هم تعامل دارند.ماژول تکرار شونده در یک LSTM شامل چهار لایه تعاملی است.ماژول تکرار شونده در یک LSTM شامل چهار لایه تعاملی است.نمادهادر نمودار بالا، هر خط یک بردار کامل را از خروجی یک گره تا ورودی های دیگر را حمل می کند. دایره های صورتی عملکردهای نقطه ای مانند جمع برداری را نشان می دهند، در حالی که جعبه های زرد لایه های شبکه عصبی آموخته شده هستند. ادغام خطوط نشان دهنده الحاق است، در حالی که یک انشعاب خط نشان دهنده کپی شدن محتوای آن و رفتن کپی ها به مکان های مختلف است.ایده اصلی LSTM هاکلید LSTM ها وضعیت سلولی، خط افقی است که از بالای نمودار عبور می کند.حالت سلولی شبیه یک تسمه نقاله است. تنها با برخی از فعل و انفعالات خطی جزئی مستقیماً در کل زنجیره اجرا می شود. بسیار آسان است که اطلاعات بدون تغییر در امتداد آن جریان یابد.LSTM توانایی حذف یا اضافه کردن اطلاعات به وضعیت سلولی را دارد که به دقت توسط ساختارهایی به نام گیت تنظیم می شود.گیت ها راهی هستند که به صورت اختیاری اطلاعات را از خود عبور می دهند. آنها از یک لایه شبکه عصبی سیگموئید و یک عملیات ضرب نقطه ای تشکیل شده اند.لایه سیگموئید اعدادی بین صفر و یک را خروجی می دهد و توضیح می دهد که چه مقدار از هر جزء باید عبور کند. مقدار صفر به معنای &quot;نگذارید هیچ چیز عبور کند&quot;(حذف اطلاعات)، در حالی که مقدار یک به معنای &quot; بگذار همه چیز بگذرد!&quot;(بخاطر سپردن اطلاعات)یک LSTM دارای سه مورد از این دروازه ها برای محافظت و کنترل وضعیت سلول است.قدم به قدم LSTM Walk Throughاولین قدم در LSTM این است که تصمیم بگیریم چه اطلاعاتی را از حالت سلول دور بریزیم. این تصمیم توسط یک لایه سیگموئید به نام &quot;لایه دروازه فراموش&quot; گرفته می شود. به ht_1و xt نگاه می کند و برای هر عدد در حالت سلولی Ct_1 عددی بین 0 و 1 خروجی می دهد. عدد 1 نشان دهنده &quot;کاملاً این را نگه دارید&quot; در حالی که 0 نشان دهنده &quot;به طور کامل از شر این خلاص شوید&quot;.بیایید به مثال خود از یک مدل زبان برگردیم که سعی می کند کلمه بعدی را بر اساس تمام موارد قبلی پیش بینی کند. در چنین مشکلی، حالت سلول ممکن است شامل جنسیت موضوع فعلی باشد تا بتوان از ضمایر صحیح استفاده کرد. وقتی موضوع جدیدی را می بینیم، می خواهیم جنسیت موضوع قدیمی را فراموش کنیم.گام بعدی این است که تصمیم بگیریم چه اطلاعات جدیدی را در حالت سلول ذخیره کنیم. این دو بخش دارد. ابتدا، یک لایه سیگموئید به نام &quot;لایه دروازه ورودی&quot; تصمیم می گیرد که کدام مقادیر را به روز کنیم. سپس، یک لایه tanh یک بردار از مقادیر کاندید جدید، C~t ایجاد می کند که می تواند به حالت اضافه شود. در مرحله بعدی، این دو را با هم ترکیب می‌کنیم تا یک به‌روزرسانی برای حالت ایجاد کنیم.در مثال مدل زبان خود، می‌خواهیم جنسیت موضوع جدید را به حالت سلول اضافه کنیم تا جایگزین مورد قبلی که فراموش کرده‌ایم شود.اکنون زمان آن رسیده است که حالت سلولی قدیمی، Ct_1، به حالت سلولی جدید ct به‌روزرسانی شود. مراحل قبلی قبلاً تصمیم گرفته بودند که چه کاری انجام دهیم، فقط باید واقعاً آن را انجام دهیم.حالت قدیمی را در ft ضرب می کنیم و چیزهایی را که زودتر تصمیم گرفته بودیم فراموش کنیم را فراموش می کنیم. سپس آن را اضافه می کنیمit * c~t . این مقادیر کاندیدای جدید است که بر اساس میزان تصمیم ما برای به روز رسانی هر مقدار حالت مقیاس بندی شده است.در مورد مدل زبان، این جایی است که ما در واقع اطلاعات مربوط به جنسیت موضوع قدیمی را حذف می کنیم و اطلاعات جدید را همانطور که در مراحل قبلی تصمیم گرفتیم اضافه می کنیم.در نهایت، ما باید تصمیم بگیریم که چه چیزی را خروجی خواهیم داشت. این خروجی بر اساس وضعیت سلولی ما خواهد بود، اما یک نسخه فیلتر شده خواهد بود. ابتدا یک لایه سیگموئید اجرا می کنیم که تصمیم می گیرد چه قسمت هایی از حالت سلول را خروجی بگیریم. سپس، حالت سلول را از طریق tanh قرار می دهیم (برای فشرده سازی مقادیر بین 1- و 1) ، به طوری که فقط قسمت هایی را که تصمیم گرفتیم خروجی بگیریم را در خروجی دروازه سیگموئید ضرب می کنیم.برای مثال مدل زبان، از آنجایی که به تازگی موضوعی را مشاهده کرده است، ممکن است بخواهد اطلاعات مربوط به یک فعل را خروجی بگیرد، در صورتی که این مورد بعدی باشد. به عنوان مثال، ممکن است مفرد یا جمع بودن فاعل را خروجی دهد، به طوری که ما بدانیم اگر فعل بعدی به چه شکلی باشد، باید ترکیب شود.انواع حافظه کوتاه مدتآنچه من تا اینجا توضیح دادم یک LSTM کاملا معمولی است. اما همه LSTM ها مانند موارد بالا نیستند. در واقع، به نظر می رسد که تقریباً هر مقاله ای که شامل LSTM می شود از نسخه کمی متفاوت استفاده می کند. تفاوت ها جزئی هستند، اما ذکر برخی از آنها خالی از لطف نیست.یکی از انواع محبوب LSTM که توسط Gers &amp; Schmidhuber (2000) معرفی شد، &quot;اتصالات چشمی&quot;(peephole connections) را اضافه می کند. این به این معنی است که اجازه می دهیم لایه های دروازه به وضعیت سلول نگاه کنند.در نمودار بالا، سوراخ‌هایی را به تمام دروازه‌ها اضافه می‌کند، اما بسیاری از کاغذها برخی از سوراخ‌ها را نشان می‌دهند و برخی دیگر را خیر.تغییر دیگر استفاده از گیت های فراموشی و ورودی جفت شده است. به جای اینکه جداگانه تصمیم بگیریم چه چیزی را فراموش کنیم و چه اطلاعات جدیدی را به آن اضافه کنیم، آن تصمیمات را با هم می گیریم. فقط زمانی فراموش می کنیم که بخواهیم چیزی را در جای خود وارد کنیم. ما فقط زمانی مقادیر جدیدی را به حالت وارد می کنیم که چیز قدیمی تر را فراموش کنیم.یک تغییر کمی چشمگیرتر در LSTM واحد بازگشتی دردار(Gated Recurrent Unit) یا GRU است که توسط Cho و همکارانش معرفی شده است. این دروازه‌های فراموشی و ورودی را در یک «دروازه به‌روزرسانی» ترکیب می‌کند. همچنین حالت سلول و حالت پنهان را ادغام می کند و تغییرات دیگری را ایجاد می کند. مدل به دست آمده ساده تر از مدل های استاندارد LSTM است و به طور فزاینده ای محبوب شده است.اینها تنها تعدادی قابل توجهی از انواع LSTMها هستند.امیدوارم مفید بوده باشه!موفق باشید.منابع http://colah.github.io/posts/2015-08-Understanding-LSTMs</description>
                <category>FatemeHeidari</category>
                <author>FatemeHeidari</author>
                <pubDate>Mon, 30 May 2022 00:41:58 +0430</pubDate>
            </item>
                    <item>
                <title>درک عمیق بایاس و واریانس</title>
                <link>https://virgool.io/@FatemeHeidari/%D8%AF%D8%B1%DA%A9-%D8%B9%D9%85%DB%8C%D9%82-%D8%A8%D8%A7%DB%8C%D8%A7%D8%B3-%D9%88-%D9%88%D8%A7%D8%B1%DB%8C%D8%A7%D9%86%D8%B3-zpwannuml90t</link>
                <description>آشنایی با مفهوم کم برازش و بیش برازش با وجود داشتن بایاس و واریانسقبل از ساختن یک مدل یادگیری ماشین، داده‌های خود را به دو بخش تقسیم می‌کنیم، یکی برای آموزش مدل، یعنی داده‌های آموزشی (data train) و دیگری برای نظارت بر دقت مدل بر روی داده‌های ناشناخته، یعنی داده‌های آزمایشی (data test)بایاس (Bias) چیست؟خطای کلی مرتبط با داده های آموزشی به عنوان بایاس نامیده می شود. هنگامی که خطای داده های آموزشی افزایش می یابد یا دقت داده های آموزشی کاهش می یابد، به آن بایاس بالا و زمانی که خطای داده های آموزشی کاهش می یابد یا دقت داده های آموزشی افزایش می یابد، به آن بایاس کم گفته می شود.واریانس (Variance) چیست؟خطای کلی مرتبط با داده های آزمایشی واریانس نامیده می شود. هنگامی که خطاهای مرتبط با داده های آزمایشی افزایش می یابد یا دقت داده های آزمایشی کاهش می یابد ، به آن واریانس بالا و بالعکس زمانی که خطاهای مرتبط با داده های آزمایشی کاهش می یابد یا دقت داده های آزمایشی افزایش می یابد ، به آن واریانس کم گفته می شود.توجهواریانس با داده های آزمایشی مرتبط است و بایاس با داده های آموزشی مرتبط است.برای فهم بهتر این موضوع به مثال زیر توجه کنید.دانشجویی به نام میثم را در نظر بگیرید که برای ازمون آیلتس درس می خواند, او در کلاس های آموزشی آیلتس شرکت میکند تا به هدف خود یعنی گرفتن نمره بالا تر از 7 برای رفتن به کشور آلمان دست یابد. میثم یک مربی دارد و در یک سال گذشته با او به خوبی کار کرده است و در آزمون های تمرینی متعدد برای سنجش آمادگی خود شرکت کرده است.این داده آموزشی برای میثم است.در نهایت پس از یک سال مطالعه بسیار,میثم در آزمون آیلتس شرکت خواهد کرد که به عنوان داده ی آزمایشی عمل میکند,زیرا دقت خروجی میثم را اندازگیری می کند.فرض کنید که عملکرد او در آزمون تمرینی بسیار عالی باشد, درنتیجه بایاس آن کم زیرا دقت آموزش بالا و خطای آموزش کم است.حال فرض کنید که میثم در آزمون تمرینی بد عمل کند, در این صورت دقت آموزش کم و خطای آموزش زیاد است در نتیجه بایاس بالا خواهد بود.اکنون واریانس را در نظر بگیرید که مربوط به داده آزمایشی است. آزمون نهایی آیلتس به عنوان داده آزمایشی برای میثم عمل میکند.اگر در آزمون نهایی با اعتماد به نفس بالا شرکت کند و نمره بالای کسب کند واریانس کم میشود, زیرا خطای داده ی آزمایشی کم و دقت داده ی آزمایشی زیاد است.ولی اگر در آزمون نتیجه خوبی کسب نکند خطای داده ی آزمایشی زیاد و دقت داده ی آزمایشی کم است در نتیجه واریانس بالا خواهد بود.کم برازش با وجود بایاس و واریانسوقتی دقت داده‌های آموزشی و آزمایشی ضعیف است، یا زمانی که خطای داده‌های آموزش و آزمایش بالا است،کم برازش رخ میدهد. در نتیجه، تعداد بیشتری از خطاها را با داده‌های آموزشی امکان‌پذیر می‌کند که منجر به یک حالت بایاس بالا می‌شود. این منجر به یک مدل ضعیف می شود که نمی تواند روی داده های آزمایشی جدید عملکرد خوبی داشته باشد و در نتیجه یک سناریوی واریانس بالا ایجاد می شود.مطابق شکل زیریک بار دیگر سوال میثم را در نظر بگیرید, فرض کنید او همیشه با علی, محمد و امیر سنجیده می شود.میثم در تمام آزمون های تمرینی ضعیف عمل کرد. از آنجایی که هم دقت آموزش به هم دقت آزمایش در این شرایط کم است, به ‌عنوان یک موقعیت بایاس بالا و واریانس بالا در نظر گرفته می شود.بیش برازش با وجود بایاس و واریانسزمانی که دقت داده‌های آموزشی بالا و دقت داده‌های تست ضعیف باشد، در این شرایط بایاس کم و واریانس بالا است و بیش برازش رخ میدهد.در این حالت، مدل تمام اطلاعات مربوط به داده‌های آموزشی، از جمله نویز غیرضروری را جمع‌آوری می‌کند که منجر به دقت مدل بالا برای داده‌های آموزشی، اما شکست برای داده‌های آزمایش جدید می‌شود.مطابق شکل زیرمیثم در تمام آزمون های تمرینی خوب عمل کرده بود, اما به دلیل استرس بالا و یا دلایل دیگر عملکرد بدی در آزمون داشت, که منجر به بایاس کم و واریانس بالا بیش برازش می شود.بهترین مدلزمانی که دقت آموزش و آزمایش بالا باشد. این به عنوان داشتن بایاس کم و واریانس کم شناخته می شود. این دقیقاً همان وضعیتی است که ما می خواهیم. با آموزش مدل با تنظیم هایپرپارامتر قادر به دستیابی به این مورد خواهیم بود.شکل زیر وضعیت واریانس کم بایاس کم را نشان می دهد. این مدل نویز موجود در داده‌های آموزشی را ضبط نمی‌کند و برای داده‌های آموزشی و آزمایشی با دقت مناسب عملکرد قابل‌تحسین‌انگیزی دارد.فرض کنید میثم در تمام آزمون های تمرینی خوب عمل کرده و زمانی که در آرمون نهایی شرکت میکند, بهترین عمکلرد را دارد و نمره بالا 7  میگیرد و این لحظه بسیار برای او لذت بخش است.</description>
                <category>FatemeHeidari</category>
                <author>FatemeHeidari</author>
                <pubDate>Sat, 15 Jan 2022 03:27:46 +0330</pubDate>
            </item>
                    <item>
                <title>Cross-Validation in Machine Learning</title>
                <link>https://virgool.io/@FatemeHeidari/cross-validation-in-machine-learning-vbe9vx59jpzc</link>
                <description>اعتبار سنجی متقابل در یادگیری ماشینی: چگونه آن را به درستی انجام دهیم؟در یادگیری ماشینی (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.Complete.Hold-outاعتبار سنجی متقابل Hold-out ساده ترین و رایج ترین تکنیک است. شاید ندانید که این یک روش Hold-out است اما مطمئناً هر روز از آن استفاده می کنید.الگوریتم تکنیک Hold-out1- مجموعه داده را به دو بخش تقسیم کنید: مجموعه آموزشی و مجموعه تست. معمولاً 80 درصد مجموعه داده به مجموعه آموزشی و 20 درصد به مجموعه تست می‌رود، اما می‌توانید هر تقسیم‌بندی را انتخاب کنید که مناسب‌تر باشد.2- مدل را روی مجموعه آموزشی آموزش دهید.3- در مجموعه تست اعتبار سنجی کنید.4- نتیجه اعتبارسنجی را ذخیره کنید.ما معمولاً از روش Hold-out در مجموعه داده‌های بزرگ استفاده می‌کنیم، زیرا فقط یک بار نیاز به آموزش مدل دارد.اجرای روش Hold-out واقعاً آسان است. برای مثال، می‌توانید این کار را با استفاده از sklearn.model_selection.train_test_split انجام دهید.با این حال، Hold-outیک نقطه ضعف بزرگ دارد.به عنوان مثال، مجموعه داده ای که از نظر توزیع کاملاً یکنواخت نیست، ممکن است پس از تقسیم در یک نقطه ناهموار قرار بگیریم. به عنوان مثال، اگر مجموعه آموزشی نشان دهنده مجموعه تست نباشد هر دو مجموعه آموزشی و تست ممکن است بسیار متفاوت باشند، یکی از آنها ممکن است آسان تر یا سخت تر باشد.علاوه بر این، این واقعیت که ما مدل خود را فقط یک بار آزمایش می کنیم ممکن است یک گلوگاه برای این روش باشد. با توجه به دلایلی که قبلا ذکر شد، نتیجه به دست آمده با تکنیک Hold-out ممکن است نادرست در نظر گرفته شود.روش k-FoldK-Fold CV تکنیکی است که معایب روش نگهدارنده را به حداقل می رساند. k-Foldروش جدیدی را برای تقسیم مجموعه داده معرفی می کند که به غلبه بر &quot;تست فقط یک بار گلوگاه&quot; کمک می کند.الگوریتم تکنیک k-Fold1- تعداد 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 استفاده کنید.به طور کلی همیشه بهتر است به جای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  است.الگوریتم تکنیکLOOCV1- یک نمونه از مجموعه داده را انتخاب کنید که مجموعه آزمایشی خواهد بود.2- n – 1 نمونه باقیمانده مجموعه آموزشی خواهد بود.3- مدل را روی مجموعه آموزشی آموزش دهید. در هر تکرار، یک مدل جدید باید آموزش داده شود.4- در مجموعه تست اعتبار سنجی کنید.5- نتیجه اعتبارسنجی را ذخیره کنید.6-مراحل 1 تا 5 را n بار تکرار کنید، همانطور که برای n نمونه، n مجموعه آموزشی و تست متفاوت داریم.7-برای به دست آوردن امتیاز نهایی، نتایجی را که در مرحله 5 به دست آوردید، میانگیری نمایید.LOOCV sklearn همچنین دارای یک روش built-inموجود است که می توان آن را در کتابخانه model_selection - sklearn.model_selection.LeaveOneOut پیدا کرد.بزرگترین مزیت اعتبارسنجی متقابل 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 باشد، همپوشانی دارند.الگوریتم تکنیک LpOC1- نمونه های p را از مجموعه داده انتخاب کنید که مجموعه تست خواهد بود.2- n - p نمونه باقیمانده مجموعه آموزشی خواهد بود.3- مدل را روی مجموعه آموزشی آموزش دهید. در هر تکرار، یک مدل جدید باید آموزش داده شود.4- در مجموعه تست اعتبار سنجی کنید.5- نتیجه اعتبارسنجی را ذخیره کنید.6- مراحل 2 تا 5 را Cpn (ترکیب p از n) بار تکرار کنید.7- برای به دست آوردن امتیاز نهایی، میانگین نتایجی را که در مرحله 5 به دست آوردید محاسبه نمایید.می‌توانید Leave-p-out CV را با استفاده از sklearn – sklearn.model_selection.LeavePOut انجام دهید.LpOC تمام معایب LOOCV را دارد، اما، با این وجود، به اندازه LOOCV قوی است.روش Stratified k-Foldگاهی اوقات ممکن است با عدم تعادل زیادی در مقدار هدف در مجموعه داده مواجه شویم. به عنوان مثال، در مجموعه داده‌های مربوط به قیمت ساعت‌های مچی، ممکن است تعداد بیشتری از ساعت‌های مچی قیمت بالایی داشته باشند. در مورد طبقه‌بندی، در مجموعه داده‌های گربه‌ها و سگ‌ها ممکن است تغییر زیادی به سمت طبقه سگ وجود داشته باشد.K-Fold طبقه بندی شده نوعی از تکنیک استاندارد K-Fold CV است که به گونه ای طراحی شده است که در چنین مواردی از عدم تعادل هدف موثر باشد.K-Fold به صورت زیر عمل می کند، Stratified k-Fold مجموعه داده را به k دسته تقسیم می کند به طوری که هر دسته تقریباً دارای درصد مشابهی از نمونه های هر کلاس هدف به عنوان مجموعه کامل است. در مورد رگرسیون، Stratified k-Fold اطمینان حاصل می کند که میانگین مقدار هدف تقریباً در همه دسته ها برابر است.الگوریتم تکنیک طبقه بندی k-fold1- تعدادی 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.تمام موارد ذکر شده در بالا در مورد 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-Fold1- 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 ) را تنظیم کنید. این تضمین می کند که در هر تکرار فولدهای مختلفی داشته باشید.روش Nested k-Foldبرخلاف سایر تکنیک‌ های CV، که برای ارزیابی کیفیت یک الگوریتم طراحی شده‌اند، Nested k-Fold CV محبوب ‌ترین راه برای تنظیم پارامترهای یک الگوریتم است.تصور کنید که ما یک پارامتر p داریم که معمولاً به الگوریتم پایه ای که ما در حال اعتبارسنجی متقابل آن هستیم بستگی دارد. به عنوان مثال، برای رگرسیون لجستیک، ممکن است پارامتر جریمه باشد که برای تعیین هنجار مورد استفاده در جریمه استفاده می شود.الگوریتم تکنیک Nested k-Fold1- 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-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 برای پروژه بعدی یادگیری ماشینی خود نخواهید داشت!منابع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.html6.https://neptune.ai/blog/cross-validation-in-machine-learning-how-to-do-it-right</description>
                <category>FatemeHeidari</category>
                <author>FatemeHeidari</author>
                <pubDate>Wed, 15 Dec 2021 15:40:18 +0330</pubDate>
            </item>
                    <item>
                <title>یادگیری ماشین</title>
                <link>https://virgool.io/@FatemeHeidari/%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-pskxva8nc9cq</link>
                <description>از گذشته فرایند تفکر و طرز کار با مغز مورد توجه دانشمندان بوده است.در آثار به جا مانده از یونانیان نشان می دهد که آنها در تلاش برای ساخت یک مغز مکانیکی بودند.آلن تورینگ از افراد تاثیر گذار هوش مصنوعی در سال 1950 بود.تست تورینگ از معیار هایی برای تشخیص هوشمندی ماشین است.شبکه ی عصبی یکی از اولین پژوهش‌های عملی هوش مصنوعی بود که دو دانشجو در هاوارد اولین شبکه عصبی مصنوعی که شامل 40 نورون بود ساختند امروزه شبکه های عصبی مصنوعی جدید شامل هزاران نورون اندکه از آن ها برای طبقه بندی تصاویر استفاده می شود.باخت کاسپاروف قهرمان شطرنج جهان از سیستم deep blueباعث شد هوش مصنوعی مورد توجه بسیار قرار بگیرد.هوشمندی را می‌توان به شکلهای مختلفی تعریف کرد,در کتاب هوش مصنوعی یک رویکرد مدرن از دو دیدگاه آن را بررسی می‌کند, در دیدگاه اول هوشمندی یا در رفتار است یا در تفکر و در دیدگاه دوم هوشمندی در انسان گونه بودن یا در منطقی بودن است.تعریف هوش مصنوعی با توجه به این دیدگاه ها یعنی:1.منطقی فکر کردن2.منطقی رفتار کردن3.مانند انسان فکر کردن4.مانند انسان رفتار کردنامروزه هر برنامه‌ای که هوشمندی داشته باشد یا به نوعی رفتار انسان را تقلید کند به عنوان هوش مصنوعی پذیرفته میشود. توجه داشته باشید یادگیری ماشین با هوش مصنوعی متفاوت است, یادگیری ماشین را می توان زیر مجموعه ی هوش مصنوعی در نظر گرفت یکی از ویژگی‌های مهم یادگیری ماشین یادگیری با استفاده از داده و بدون استفاده از دستورات مستقیم است, ویژگی دیگر آن تغییر خود با دیدن داده های جدید است یعنی با استفاده از تجربیات جدید رفتار خود را تغییر می‌دهد.الگوریتم های یادگیری ماشین امکانات بسیاری را به جامعه عرضه کرد,مثلاً در حوزه های صنعت دانشگاه سلامت,اقتصاد و تجارت از یادگیری ماشین استفاده میکنند اولین کاربرد های یادگیری ماشین در تشخیص ایمیل های اسپم بود.به دلیل استفاده از الگوهای داده در تصمیم گیری شرکت ها شغل های مرتبط با داده به یکی از محبوب ترین شغلهای حال حاضر تبدیل شده است از دیگر عوامل جذب شدن یادگیری ماشین توجه ویژه برنامه نویسان و شرکت های برنامه سازی به آن است.زبان پایتون و R به دلیل کتابخانه های بسیار قدرتمند که دارد از محبوب ترین زبان ها برای یادگیری ماشین است.با درک اهمیت دانش و اطلاعات جامعه و مردم به تحلیل داده ها  و استفاده از آن علاقمند شدند و نیاز به بررسی آمار و داده ها سبب به وجود آمدن تخصص های زیادی در این زمینه شد. برخی از این تخصص ها عبارتند از:1.تحلیلگر داده  تحلیلگر داده نسبت به دیگر شغلهای آسان تر است و مهارت‌های برنامه‌نویسی ضروری نیست, او داده های خام را از منابع داخلی و خارجی جمع‌آوری می‌کند و پس از آماده سازی آن رادر پایگاه داده ذخیره‌ میکند و داده های مفید را استخراج میکند.2.دانشمند داده همه کارهایی که تحلیلگر داده انجام می‌دهد را دانشمند داده نیز می تواند انجام دهد علاوه بر آن باید با مفاهیم آماری,ریاضیاتی,برنامه نویسی,یادگیری ماشین و هوش مصنوعی برای تحلیل عمیق تر داده آشنا باشد.3.مهندس داده با ظهور کلان داده و انفجار داده مفاهیم و ابزارهای جدیدی برای مدیریت این پدیده به وجود آمد, کار یک مهندس داده رامی توان با مفاهیم کلان داده یا روند رسیدن داده خام به دست مصرف کنندگان داده نسبت داد.4.مهندس یادگیری ماشین مهندسی یادگیری ماشین نقطه تلاقی مهندسی نرم‌افزار و علم داده است,مهندس یادگیری ماشین و مهندس داده هر دو در فرایند رسیدن داده از محل تولید تا مدل نقش داشته علاوه بر این مهندسی یادگیری ماشین مسئول رساندن خروجی به کاربر نهایی نیز هست.صنایع معدنی با توجه به عدم قطعیت بالا و حجم بسیار زیاد اطلاعات جزو صنایع پیچیده است لذا یادگیری ماشین و هوش مصنوعی در این صنعت مورد استفاده زیادی قرار می گیرد,از جمله این کاربردها عبارتند از:1.پردازش تصاویر ماهواره ای 2.پیش بینی متغیرها ژئومتالورژیکی 3.آنالیز تصاویر مربوط به جعبه مغزه ها(گمانه ها) 4.پردازش تصاویر گرفته شده از پهپاد برای شناسایی هدف های از پیش تعیین شده. یادگیری ماشین ریشه در تحقیقات هوش مصنوعی داشته است.برخی از تعریف های یادگیری ماشین:_یک برنامه کامپیوتری است که به داده دسترسی پیدا می کند و از آن برای آموزش خود استفاده می کند.( اکثر کاربردها) _یادگیری ماشین زمینه‌ای از تحقیقات است که به کامپیوتر ها توانایی یادگیری بدون برنامه نویسی صریح را میدهد.( آرتور ساموئ) _وقتی می توان گفت که یک برنامه از روی تجربیات E  برای کاربردT  و معیار کارآییP آموزش دیده است که کارآیی  Pآن در کاربردT  با استفاده از تجربیاتE  بالا برود(تام میشل)ویژگی اصلی یادگیری ماشین خود آموزشی می باشد,داده ها عنصر محوری یادگیری ماشین هستند,انواع داده ها:1.تصاویر  بینایی ماشین بیشترین پیشرفت را در سال‌های اخیر و زندگی روزمره ما داشته است,کاربردها:تشخیص پلاک خودرو,باز شدن قفل گوشی,هواشناسی و رادیولوژی و سونوگرافی2. کلمات یا جمله ها (پردازش زبان طبیعی)  باعث میشود ماشین‌ به منبع بسیار بزرگی از اطلاعات که توسط انسان تولید میشود دسترسی پیداکنند.کاربردها:تشخیص گفتار,دسته بندی متون و نوشتارها و پاسخ به سوال ها3. جدول   معادل جدول پایگاه داده,داده های جدولی به دو دسته تقسیم می شوند:1.داده های عددی,مثل سن 2.داده های دسته ای,مثل جنسیت4. سری های زمانی ترتیب و توالی درآن مهم است,مثل داده های قیمت(بورس),داده های پزشکی(نوار قلب ومغز)رویکرد انجام یادگیری ماشین: 1.یک مدل تصمیم گیری 2.یک معیار امتیازگیری 3.یک رویه خودکار برای محاسبه کیفیت مدل بر اساس امتیاز 4.یک رویه خودکار برای بهبود امتیازیادگیری ماشین به 3 دسته کلی تقسیم میشود:1.یادگیری با نظارت   (supervised learning)در این نوع از یادگیری، نمونه‌ها دارای برچسب هستند,و به دو دسته طبقه بندی و رگرسیون تقسیم میشود:در طبقه‌بندی، هدف ما پیدا کردن برچسب یا دسته مناسب برای نمونه‌های بدون برچسب می‌باشد.خروجی ها گسسته هستند.در رگرسیون هدف ما تخمین مقدار یک ویژگی برای یک نمونه می باشد,خروجی ها پیوسته هستند.رگرسیوندسته بندی2.یادگیری بدون نظارت(unsupervised learning) در یادگیری بدون نظارت برچسب وجود ندارد ومدل باید به تنهایی الگوهای پنهان را پیدا کند.و به 3 دسته خوشه بندی,کاهش ابعاد و استخراج قانون وابستگی تقسیم می شود.عکس زیر نمونه ای از خوشه بندی داده ها به 3 دسته بر اساس معیار فاصله اقلیدوسی3.یادگیری تقویتی نزدیک‌ترین حالت به یادگیری انسان است.یادگیری فعالیتهایی که پاداش را ماکزیموم می کند.شکل زیر نشان میدهد که چگونه یک ربات یادمیگیرد که به آتش نزدیک نشود:زبان برنامه نویسی پایتون یک زبان بسیار ساده و سطح بالا که در سال1991توسط خیدو فان روسوم در هلند اختراع شد. برخلاف زبان c و c++ که زبان هایی کامپایلری هستند پایتون یک زبان مفسر است,مفسر برنامه را در محیطی به نام kernel به bytecode ترجمه و آن را به صورت خط به خط اجرا می‌کند.پایتون به دلیل وجود کتابخانه ها و ابزار های قوی و متعدد,قابل فهم بودن کد های ,جامعه‌ای بزرگی از توسعه دهندگان که از این زبان استفاده میکنند و چند پارادایمی بودند برای علوم داده مناسب است.برتری‌های پایتون و R نسبت به یکدیگر:پایتون کتابخانه‌های متعدد و قوی‌ای دارد,هر18 ماه یک بار نسخه‌ی جدید عرضه می‌کند,دارای نوشتار ساده است.R توانایی کشیدن نمودارهای با کیفیت و متنوعی را دارد وسرعت در حال توسعه است و تقریبا برای همه‌ی تکنیک‌های آماری پکیج دارد.اما تفاوت اصلی کاربرد بیشتر پایتون در صنعت است. به صورتی که اکثر شرکت‌ها برای بخش productionاز پایتون استفاده می‌کنند و R بیشتر به استفاده‌های آکادمیک محدود شده است.پایتون کتابخانه های متنوعی برای کاربا داده و انجام عملیات یادگیری ماشین دارد,پرکاربردتریت آن ها عبارتند: 1.نامپای(numpy)داد از منابع و قالب های مختلف جمع آوری می شود و در نهایت به شکل آرایه ای از اعداد در می آید. پردازش و محاسبات سریع تر انجام می شود,اعضای یک آرایه همه از یک نوع هستند و این ویژگی باعث می شود تا آرایه ها حجم کمتری اشغال کنند و وجود توابع بسیار از ویژگیهای نام پایه است.2.پاندا (pandas)ساختار اصلی داده به شکل دیتا فریم است (آرایه دو بعدی )ازویژگی های به محاسبات سریع بر روی داده های جدولی وعملیات تحلیل و پاکسازی و آماده سازی داده هاخیلی سریع تر و آسانتر انجام میشود.3.مت پلات لیب(matplotlib)ساخت نمودار هایی 2 بعدی که بتوانند اطلاعات را به خوبی انتقال دهند از مهم ترین ویژگی های این کتابخانه است.4.سایکت لرن(scikit-learn)این کتابخانه ابزارهای متنوعی برای یادگیری ماشین و مدلسازی آماری دارد و واسط کاربری بسیار منسجمی دارد که کار با آن بسیار آسان است.ازکتابخانه ها دیگردر زمینه مصور سازی داده به Plotly,Seaborn ,برای امور یادگیری عمیق Pytorch,TensorFlow,Keras,برای پردازش متن nltk,Spacyو در زمینه پردازش عکس OpenCV,scikit-image نام برد.یادگیری ماشین به دلیل افزایش بی حد و حصر داده ها,ذخیره سازی مقرون ‌به ‌صرفه داده ها و افزایش قدرت پردازنده ها و کاهش هزینه آنها خیلی اسانتر وسریع تر میتوان از آن استفاده کرد.داده اساس یادگیری ماشین است.کیفیت نامناسب داده,داده های بی کیفیت و ویژگی های نامربوط از جمله چالش هایی است که به داده ها مربوط می شود.از دیگر چالش‌های مربوط به داده تعداد ناکافی داده است اگر به تعداد کافی داده به الگوریتم تزریغ نکنیم نمی‌توانیم انتظار عملکرد خوبی داشته باشیم. همواره باید سعی در انتخاب ویژگی هایی داشته باشیم که مدل بتواند از آنها بیاموزد و از دل آنها الگوهایی برای پیش بینی آینده استخراج کند.بیش برازش(Overfitting),کم برازش(Underfitting) و زمان نمونه‌ای از چالش‌های مربوط به مدل ها و الگوریتم های هوش مصنوعی و یادگیری ماشین هستند که در اینجا به آنها می پردازیم.Overfitting  نمی تواند آینده را به درستی پیش‌بینی کند علت عدم توانایی در پیش بینی آینده این است که داده های آموزشی را زیاد از حد یاد گرفته است و نمونه کم آموزشی و پیچیدگی مدل از علت های دیگر بیش برازش هستند.Underfitting وقتی به وجود می آید که مدل نتواند به خوبی از دادگان آموزش یاد بگیرد این مسئله می‌تواند به دلیل های زیادی به وجود بیاید,داده نامناسب یکی از آن دلیل ها است.منظور از داده نامناسب آن است که داده به قدری بی کیفیت است که اطلاعات دقیق و جامعی از هدفی که قصد مدل کردن آن را داریم به دست نمی دهد.زمان از دو جهت اهمیت دارد:مدت زمانی که طول میکشد تا آموزش مدل تمام شود,( که طول مدت توسعه محصول را تحت تاثیر قرار می دهد) و زمانی که مدل برای پیش بینی نمونه ها مصرف می کند(زمانی است که به کاربر نهایی تجربه می کند).فرایند آموزش مدل به زمانبر بودن معروف است الگوریتم ها برای یادگیری زمان زیادی احتیاج دارند بنابراین مدلی انتخاب می‌کنیم که پیچیدگی زمانی مناسبی داشته باشد.از راه حل هایی که برای رفع مسئله زمان مطرح می‌شود استفاده از سخت افزار پیچیده و حرفه ای تر است. چرخه تب تکنولوژی اولین بار موسسه گانتر مطرح کرد هر تکنولوژی پنج مرحله اصلی دارد اولین مرحله معروف و مشهور شدن است در مرحله دوم اوج قله است و نام تکنولوژی همه جا شنیده می شود در مرحله سوم محدودیت‌های این تکنولوژی شناخته می شود و از شهرت آن کاسته می شود در مرحله چهارم برخی کسانی که در عرصه آن تکنولوژی باقی ماندند شروع به فعالیت اصلی در این حوزه می کند و در مرحله آخر پختگی و ثبات نسبی برنامه است.در شکل زیر چرخهی تب تکنولوژی در حوزه‌ی هوش مصنوعی سال 2020 را می‌بینیم.عامل های هوشمند که امروزه ساخته می شوند معمولاً در حل یک مسئله خاص به هوشمندی رسیده‌اند مثل تشخیص انسانهای داخل تصویر,به این نوع از هوش مصنوعی هوش مصنوعی محدود یا ضعیف می گویند.در مقابل آن هوش مصنوعی قوی یا عمومی وجود دارد که از ساخت عامل های هوشمندی که مانند انسان از هوشی عمومی برخوردار باشد که توانایی آموختن در مواجهه با هر مسئله جدیدی را داشته باشد و محدود به یک زمینه یا مسئله خاص نباشد.یکی از بهترین راه ها برای تحقیق درباره هوش عمومی مطالعه هوش طبیعی است, هر چه شناخت بهتری نسبت به مغز خودمان و نحوه کارکرد آن پیدا کنیم ابعاد بیشتری از مسائل هوش برایمان باز می شود از همین روست که یکی از زمینه های مطالعه رشته های علوم عصبی و روانشناسی است.زمانی که پیشرفت تکنولوژی به نقطه ای غیر قابل کنترل و برگشت ناپذیر برسد که تمدن انسانی را تحت تاثیر قرار دهد اگر انسان بتواند یک موجود هوشمند تر از خود پدید آورد, این نقطه هم باعث شکوه می شود و هم باعث دلهرهبرای انجام پروژه در زمینه هوش مصنوعی و یادگیری ماشین قدرت پردازشی بالا و فراوانی داده از اهمیت زیادی برخوردار است برخی از این شرکت های پیشرو در این زمینه ها عبارتند از:شرکت دیپ ماین در لندن سال ۲۰۱۰ پایه گذاری شدهشرکت openAI که در سانفرانسیسکو در سال ۲۰۱۵ پایه گذاری شدهگروه AI شرکت فیسبوکگروه AI شرکت گوگلمهمترین کتب یادگیری ماشین عبارتند از:خلاصه ای از مطالب دوره آموزشی دروازه ورود به یادگیری ماشین در سایتqueraمنبع(https://quera.ir/college/land/college/8522) :</description>
                <category>FatemeHeidari</category>
                <author>FatemeHeidari</author>
                <pubDate>Thu, 25 Nov 2021 16:12:44 +0330</pubDate>
            </item>
            </channel>
</rss>