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

                    <item>
                <title>مثال در دنیای واقعی براي بيش برازش و كم برازش</title>
                <link>https://virgool.io/@m_20924244/%D9%85%D8%AB%D8%A7%D9%84-%D8%AF%D8%B1-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D9%88%D8%A7%D9%82%D8%B9%DB%8C-%D8%A8%D8%B1%D8%A7%D9%8A-%D8%A8%D9%8A%D8%B4-%D8%A8%D8%B1%D8%A7%D8%B2%D8%B4-%D9%88-%D9%83%D9%85-%D8%A8%D8%B1%D8%A7%D8%B2%D8%B4-f4ahkyalljca</link>
                <description>مثال هاي متنوعي ميتوان براي Over-fittingدر نظر گرفت فرض كنيد شما فردا امتحان داريد و مياييد تمام نمونه سوالهاي سالهاي قبل رو ميخونيد ، بجاي اينكه منبع اصلي رو بخونيد و نمونه سوالهاي قبلي رو ياد ميگيريد اما فردا سر امتحان نمونه سوال ها فرق ميكنه و اينجا شما Over-fitting ميشد و خيلي راحت با توجه به اينكه كلي هم وقت گذاشتيد و مثلا درس خوندين و خودتون رو براي امتحان اماده كردين، اما براي سوال هايي كه اگر، مثل سوال هاي قبلي باشه  و در غير اين صورت نميتونيد جواب بدين.درواقعOver-fitting به این موضوع اشاره دارد که مدل ما بسیار خوب آموزش دیده است اما به خوبی تعمیم نیافته است. اجازه دهید با یک مثال واقعی پیش برویم.فرض کنید شما به یک کشور خارجی رفته اید و قصد دارید با تاکسی به جایی بروید و از بد روزگار راننده آن تاکسی شما را تلکه می کند و پول زیادی از شما می گیرد و در نهایت شما می گویید تمامی رانندگان تاکسی آن کشور دزد هستند. Over-generalization یا Over-fitting دقیقا همین چیزی است که در زندگی انسان ها در حال رخ دادن است و جالب است بدانید که ماشین نیز ممکن است در این دام بیفتد اگر به خوبی مراقب عملکردتان نباشید. بنابراین تعریف Over-fit را اینگونه می گوییم که بسیار خوب آموزش دیده است اما قدرت تعمیم پذیری یا Generalization ندارد.براي مفهوم under fitting هم مثال هاي خيلي زيادي در دنياي واقعي ميتوان پيدا كرد كه اكثرا به اينصورت هستتند كه شما بايكسري اطلاعات كم يه چيزي ياد ميگيرين و بعد وقتي داده هاي زياد تر با مشحصات بالاتر مياد شما قشنگ نميتونيد انها را تشخيص بدين يا بفهمين مثلا به شما فقط درخت زردالو نشون ميدن و درخت هاي ميوه ديگري رو نشون نميدن بعد شمارو ميبرن داخل يك باغ با درخت هاي ميوه متنوع اينجاس كه شما اندر فيت ميشيفرض کنید سه دانش آموز برای امتحان ریاضی آماده شده اند.  دانش آموز اول فقط عملیات ریاضی جمع را مطالعه کرده و از سایر عملیات ریاضی مانند تفریق، تقسیم، ضرب و غیره صرف نظر کرده است.  دانش آموز دوم حافظه خوبی دارد. بدین ترتیب دانش آموز دوم تمام مسائل ارائه شده در کتاب درسی را حفظ کرده است.  و دانش آموز سوم تمام عملیات ریاضی را خوانده و به خوبی برای امتحان آماده شده است.  دانش آموز در امتحان فقط می تواند سوالات مربوط به جمع را حل کند و در مسائل یا سوالات مربوط به سایر عملیات ریاضی مردود می شود.  دانش آموز دو تنها در صورتی قادر به پاسخگویی به سؤالات خواهد بود که به صورت اتفاقی در کتاب درسی آمده باشد (همانطور که او آن را حفظ کرده است) و نمی تواند به سؤالات دیگری پاسخ دهد.  دانش آموز سه می تواند تمام مسائل امتحان را به خوبی حل کند.  الگوریتم های یادگیری ماشین رفتاری مشابه با سه دانش آموز ما دارند، گاهی اوقات مدل تولید شده توسط الگوریتم مشابه دانش آموز اول است. آنها فقط از بخش کوچکی از مجموعه داده آموزشی یاد می گیرند، در چنین مواردی مدل Underfitting است</description>
                <category>امیرحسین مجد</category>
                <author>امیرحسین مجد</author>
                <pubDate>Thu, 13 Jan 2022 23:33:34 +0330</pubDate>
            </item>
                    <item>
                <title>كراس وليديشن (اعتبار سنجی) در یادگیری ماشین:چگونه آن را به درستی انجام دهیم</title>
                <link>https://virgool.io/@m_20924244/%D9%83%D8%B1%D8%A7%D8%B3-%D9%88%D9%84%D9%8A%D8%AF%D9%8A%D8%B4%D9%86-%D8%A7%D8%B9%D8%AA%D8%A8%D8%A7%D8%B1-%D8%B3%D9%86%D8%AC%DB%8C-%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-hrc4o1bhcgx6</link>
                <description>Cross-Validation (اعتبار سنجی) در یادگیری ماشین:چگونه آن را به درستی انجام دهیمدر یادگیری ماشین (ML)، تعمیم معمولاً به توانایی یک الگوریتم اشاره دارد.كه در ورودي هاي مختلف موثر باشد.  این بدان معنی است که مدلML در ورودي هاي جديد كه از توزيع يكسان داده هاي اموزشي است با كاهش عملكرد مواجه نميشود.براي انسان ها ،‌تعميم ،طبيعي ترين چيز ممكن است. براي مثال ما مطمئنا يك سگ راميتوانيم تشخيص دهيم اگر حتي ندانيم كه از چه نژادي هست . با این وجود برای یک ml ممکن است به عنوان یک چالش دیده شود. به همین دلیل است که بررسی توانایی الگوریتم برای تعمیم یک کار مهم است که در ساخت مدل نیاز به توجه زیادی دارد.برای این کار از Cross-Validation (CV) استفاده می کنیم.در این مقاله به موارد زیر  را پوشش خواهیم داد:كراس وليديشن چیست، تعریف، هدف استفاده و تکنیک هاتکنیک های مختلف CV: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بهترین تمرینات و نکات: سری های زمانی ، داده های پزشکی و مالی ، تصاویرCross-Validation چیست:كراس وليديشن یا اعتبار سنجی یک تکنیک است برای ارزیابی یک مدل یادگیری ماشین و تست عملکرد ان.كراس وليديشن معمولا در یادگیری ماشین کاربرد دارد. این به مقایسه کمک می کند و یک مدل مناسب برای پیش بینی  مسئله مدل سازی خاص انتخاب میکند.فهمیدن CVبسیار اسان است و راحت پیاده سازی میشود . و تمایل به داشتن بایاس کمتری نسبت به روش های دیگر دارد و همه این ها باعث شده که CVبه یک ابزار قدرتمند برای انتخاب بهترین مدل تبدیل شود .تکنیک های مختلفی وجود دارد که شاید برای مدل اعتبار سنجی مورد استفاده قرار بگیرد. با این حال، همه آنها یک الگوریتم مشابه دارند:1- مجموعه داده را به دو بخش تقسیم میشود: یکی برای آموزش، دیگری برای آزمایش2- مدل را روی مجموعه دادههای  آموزشی،  آموزش دهید3- اعتبار مدل را رو داده های تست بدست میاوریم4-مرحله یک تا سه را چندین بار تکرار میکنیم . تعداد تکرار ها بستگی روشی دارد که ما برای CVمورد استفاده قرار میدهیم .همانطور که می دانید، تکنیک های CV زیادی وجود دارد.که فقط برخی از آنها معمولا استفاده می شود و بقیه در حد تئوری کار می کنند. بیایید روش‌های اعتبارسنجی را که در این مقاله پوشش داده خواهد شد، ببینیم:· Hold-out· K-folds· Leave-one-out· Leave-p-out· Stratified K-folds· Repeated K-folds· Nested K-folds· CompleteHold-out1. روش اعتبار سنجیHold-out  ساده ترین و رایج ترین تکنیک است که مورد استفاده قرار میگیرد. در زندگی روز مره خیلی از این روش بودن انکه بدانید دارید استفاده میکنید .2. الگوریتم به این صورت است:3. مجموعه داده ای را به دو قسمت تقسیم میکنیم: یکی مجموعه دادها ی اموزشی دودیگری مجموعه داده های تست. که معمولا 80درصد داده ها برای اموزش در نظر گرفته میشود و 20 درصد ان برای هم برای تست اما هر تقسیم بندی که به نظر شما مناسب تر است را میتوانید انتخاب کنید .4. مدل را روی داده های اموزشی ، اموزش میدهیم5. با استفاده از داده های تست انرا ارزیابی میکنیم6. نتیجه را ذخیره میکنیموتمام.ما معمولا از روش hold-outبرای داده های بزرگی که مدل ان فقط نیاز به یک بار اموزش دارند، استفاده میکنیم.پیاده سازی hold-outبسیار راحت است. برای مثال میتوانید از sklearn.model_selection.train_test_split.  استفاده کنید.با این حال این روش یک ایراد بزرگ دارد.به عنوان مثال میتوان به مجموعه داده ای که بصورت یکنواخت توزیع نشده اند اشاره کرد. که بعد از تقسیم بندی ممکن است نقاط بسیار نامناسب بدست بیاید. برای مثال دیگر نمیتوان داده های تست را به عنوان نماینده های داده های اموزشی در مرحله اموزش در نظر گرفت چون ممکن است بسیار متفاوت از یکدیگر باشند مثلا یکی برای مدل بسیار اسان و یکی بسیار سخت باشد.علاوه بر این ما مدل خودمون رو یک بار ازمایش میکنیم که ممکن است یک گلوگاه بوجود بیاد. با توجه به دلایلی که بیان شد امکان دارد نتایجی که در این روش بدست می اید نادرست باشد.K-Foldدر این روش ما ماییم معایب روش قبل را کاهش یا از بین میبریم. این روش ما بصورت جدیدی به تقسیم بندی داده های میپردازیم که کمک میکند تا بتوانیم گلوگاهی که در روش قبلی ممکن بود بدست بیاد را از بین ببریم.الگوریتم روش k-Fold:1. یک عدد برای K در k-Fold درنظر میگیریم. که معمولا 5 یا 10 میباشد اما هر عدد که کمتر از طول مجموعه داده باشد را میتوانید انتخاب کنید2. مجموعه داده را به k قسمت مساوی (در صورت امکان) تقسیم کنید که به آنها folds گفته می شود.3. k – 1فواد را به عنوان داده های اموزشی انتخاب کنید. وبقیه هم برای داده های تست در نظر میگیریم.4. مدل را با توجه به داده های اموزشی، اموزش میدهیم. در هر تکرار برای CV ما باید یک مدل جدید مستقل از مدل اموزشی قبلی را اموزش دهیم.5. با داده های تست ارزیابی میکینم6. نتایج را ذخیره میکنیم7. مرحله سه تا شش را برای K بار تکرار میکنیم. و هر بار هم از فولد های باقی مانده برای تست استفاده میکنیم. ودر اخر مدل را روی تمام فولد های که داریم ارزیابی میکنیم.8. برای به دست آوردن امتیاز نهایی، میانگین نتایجی که در مرحله شش را دست می آوردیم.برای پیاده سازی این روش از sklearn.model_selection.train_test_split.  استفاده کنید:به طور کلی همیشه بهتر است به جای Hold-out از تکنیک k-Fold استفاده کنید. از آنجایی که آموزش و آزمایش بر روی چندین بخش مختلف مجموعه داده انجام می شود و چون مجموعه داده را به چندین بخش مختلف تقسیم میکند و تست و اموزش روی همه انها انجام میدهد قابل اعتماد تر میباشد. اگر تعداد K هایی که در نظر گرفته میشود را افزایش دهیم ما میتوانیم امتیاز کلی بهتر و قوی تری را بدست بیاریم . اما این روش هم یک نقطه ضعف دارد که با افزایش K ها تعداد دفعات اموزش و تست هم افزایش میابد که این باعث زمان بر بودن و هزینه بر بودن هم هست.Leave-one-out cross-validation (LOOCV)LOOCV تشدیدشده ی مدل قبلی هست به این صورت که درنظر بگیر که بجای K تا دیگر n تا داریم که این تعداد نمونه های مجموعه داده است.الگوریتم روش LOOCV :1. یک نمونه از مجموعه داده را انتخاب می‌کنیم که مجموعه تست خواهد بود.2. N-1 نمونه باقی مانده را به عنوان نمونه ازمایشی در نظر میگیرم3. مدل را باتوجه به داده های اموزشی، اموزش میدهیم. و در هر تکرار باید مدل جدید اموزش داده شود4. با نمونه تست ارزیابی میکینم5. نتیجه ارزیابی را ذخیره میکنیم6. مرحله 1تا 5 را تکرار کنید برای n  تا نمونه که باید n تا نمونه تست و اموزشی مختلف داشته باشیم.7. برای بدست اوردن نتیجه نهایی میانگین نتایج بدست امده در مرحله 5 را محاسبه میکنیمبرای این روش هم کتابخانه sklearn  یک روش را ساخته است میتوانید با استفاده از model_selection در کتابخانه sklearn.model_selection.LeaveOneOut مورد استفاده قرار بدید:بزرگترین مزیت این روش است که همه انها مورد ازمایش و تست قرار میگیرد و هیچ کدام هدر نمیرود و فقط از یک نمونه برای تست تمام داده ها استفاده میکنیم و بقیه به عنوان نمونه ازمایشی مورد استفاده قرار میگیرد. اما اگر بخواهیم با روش قبلی مقایسه کنیم تعداد تقسیم بندی به تعداد نمونه هاست که خیلی بیشتر از روش قبلی است و این به امر باعث هزینه بر بودن و زمان بر بودن بیشتری نسبت به روش قبلی میشود. بنابراین  با توجه به شواهد تجربی و تحقیقات مختلف که جامعه علم داده انجام داده است روش فولد با تعداد 5 یا 10 را به این روش ترجیح داده میشود.Leave-p-out cross-validation (LpOC)این روش خیلی نزدیک به روش قبلی است .و تمام مجموعه های تست و اموزش رو تولید میکنیم با در نظر گرفتن p نمونه برای داده های تست. و تمام شرایط دیگر که در روش LOOCVوجود داشت برای LPOCVهم برقرار است.با این حال میتوان به این نکته توجه کرد که بر خلاف دو روش قبلی داده های تست در این روش همپوشانی دارند.الگوریتم روش LPOC1.  انتخاب p نمونه برای مجموعه داده ای تست2. باقی داده هایی که میماند را برای آموزش در نظر میگیریم3. مدل را با توجه به داده ای اموزشی ، اموزش میدهیم.در هر تکرار یک مدل جدید باید اموزش داده شود4. با توجه به داده های تست ارزیابی میکینم5. تنایج بدست امده در قسمت ارزیابی را ذخیره میکنیم6. مرحله های دو تا پنج را ?  بار انجام میدهیم7. برای بدست اوردن نتیجه نهایی نتایج بدست امده در قسمت 5 را میانگین گیری میکنیممیتوان Leave-p-out CV را با sklearn.model_selection.LeavePOut مورد استفاده قرار داد:این روش تمام معایب روش قبل را دارد اما با این وجود مثل روش قبل قوی است.Stratified k-Foldگاهی اوقات ممکن است با ناهماهنگی بزرگی در مقادیرهدف از مجموعه دادها مواجه شویم. برای مثال فرض کنید یک مجموعه قیمت برای ساعت های مچی داریم و تعداد ساعت با قیت بالا زیاد باشد. یا در دسته بندی مجموعه سگ ها و گربه ها ممکن است تغییرات بزرگی در داده های مربوط به سگ ها وجود داشته باشد.این روش یک نوعی از فولد است و طوری طراحی شده است تا در چنین مواردی برای رسید به هدف مورد نظر موثر باشد.به این صورت عمل میکند که دسته بندی مجموعه داده ها را روی k تا انجام میدهیم به طوری که تقریبا هر  kیک  درصد یکسان از نمونه های کل مجموعه را شامل میشود.و دراین روش این اطمینان داده میشود که تقریبا میانگین مقدار هدف همه فولد ها برابر باشد.الگوریتم روش  Stratified k-Fold  به صورت زیر است:1. یک عدد برای مقدار k انتخاب میکنیم2. مجموعه داده ها را به k تا تقسیم میکنیم. هر قسمت یا فولد باید شامل درصد مشابهی از نمونه های کلاس هدف در مجموعه کل داده ها باشد.3. K-1 قسمت یافولد را برای اموزش مورد استفاده قرار میدهیم و بقیه را برای تست4. با توجه به داده های اموزشی مدل خود را اموزش میدهیم و هر تکرار باید با مدل جدید اموزش ببیند5. با داده های تست انرا ارزیابی میکنیم6. مقدادیر بدست امده را ذخیره میکنیم.7. مراحل سه تا شش را تکرار میکنیم در هر تکرار باید مدل را روی هر قسمت یا فولد ارزیابی کنیم8. برای بدست اوردن نتایج نهایی میانگین مقادیر بدست امده در قسمت شش را میانگینگیری میکنیم.این روش نسبت به k-Fold CV  مزایای واضحی دارد. اولا نسبت تقسیم داده های تست و اموزش به تعداد تکرار ها وابسته نیست دوما ما میتوانیم نسبت های منحصر به فردی را برای هر تکرار در نظر بگیریم . سوما انتخاب تصادفی نمونه ها باعث افزایش قدرت این روش میشود.با این حال این روش هم معایب خاص خود را دارد. در روش k-Fold CV تضمین میشود که روی همه نمونه ها ازمایش شود در حالی که در این روش بر اساس تصادفی سازی صورت میگیرد که ممکن است برخی نمونه ها هرگز در مجموعه ازمایش قرار نگیرد و انتخاب نشود و یا بعضی از نمونه ها چندین بار انتخاب شوند.برای پیاده سازی این روش باید تعداد قسمت ها یا فولد هایی که میخواهیم داشته باشیم را مشخص کنیم و همچنین تعداد دفعاتی که تقسیم انجام میشود.Nested k-Foldبرخلاف سایر تکنیک های CVاین روش برای ارزیابی کیفیت الگوریتم طراحی شده است که محبوبترین روش برای تنظیم پارامترهای یک الگوریتم میباشدفرض کنید ما یک پارمتری مثل  p  داریم که معمولا به الگوریتم اعتبار سنجی ما وابسته است. برای مثال رگرسیون لاجستیک دارای پارامترهای  جریمه ای است که برای مشخص کردن جریمه مورد استفاده قرار میگیرد و مشخص میشود.الگوریتم Nested k-Foldبه صورت زیر است1. K-aعدد را انتخاب میکنیم2. پارمتر p انتخاب میکنیم که مثالا درالگوریتم لجستیک میتواند نقاط پنالتی ما باشد3. مجموعه داده ای خود را به 10 قسمت تقسیم میکنیم و یکی از انها برای تست انتخاب میکنیم وذخیره4. یکی از دادههای ترین را برای برای ارزیابی ذخیره میکنیم5. برای هر یک از مقادیر p اموزش را انجام میدهیم البته با 8 تا قسمت باقیمانده6. مراحل چهار و پنج را نه بار تکرار کنید. هر کدام از قسمت ها یا فولد ها را بچرخانید و به عنوان ولیدیشن درنظر بگیرید. اکنون 9*4 تا اندازه گیری داریم.7. P را انتخاب میکنیم که میانگین خطاهای کمتری در 9 تا قسمت یا فولد های انتخاب شده داشته باشد. و ان p را به عنوان ارزیاب برای مجموعه داده های تست در نظر میگیریم8. مرحله 2 را 10بار تکرار کنید واز هر فولد در هر نوبت به عنوان فولد تست استفاده کنید9. میانگین و انحراف معیار هر ارزیابی راکه با نظر گرفتن 10 بار قسمت های فلود تست بدست امده را ذخیره کن10. الگوریتمی که بهترین عملکرد را دارد که بهترین میانگین را در این 10 لایه داشته باشداین تکنیک از نظر محاسباتی بسیار گران است چون که در طول مراحل یک تا ده مدل های زیادی باید ارزیابی بشوند با این وجود این روش مورد استفاده قرار میگیرد چون بسیار موثر میباشد.متاسفانه در کتابخانه sklearn متدی برای پیاده سازی این روش وجود ندارد اما میتوان با کمی سرچ در گوگل یکسری پیاده سازی های شخصی را پیدا کنید و ان را برای خودتان شخصی سازی کنید یا باتوجه به الگوریتمی که ارئه شد خودتان کدش را بزنید.Complete Cross-ValidationCV کامل کم استفاده ترین تکنیک در CV میباشد. ایده کلی این روش به این صورت میباشد که ما یک عدد مانند k را درنظر میگیریم که طول داده های اموزشی ماهستند و ارزیابی یا اندازه گیری را روی k تا تقسیم ممکن بر روی نمونه اموزشی انجام میدهیم.میزان ان تقسیم ها را میتوان با استفاده از ?  بدست اورد که n طول مجموعه داده های ما میباشد. اگر  k از 2 بزرگتر باشد باید مدل خود را چندین بار آموزش دهیم که همانطور که قبلاً متوجه شدیم یک زمان فرآیند گران قیمت و از نظر محاسباتی است.بخاطر همین از که از این روش فقط در تحقیقات تئوری و یا در صورت وجود فرمول موثر که محاسبات را به حداقل برساند مورد استفاده قرار میگیرد.الگوریتم این روش به صورت زیر است:1. عددk  را به عنوان طول ست اموزش انتخاب میکنیم2. مجموعه داده را تقسیمبندی میکنیم3. روی داده های اموزشی، اموزش میدهیم4. با استفاده از داده های تست ان را ارزیابی میکنیم5. نتیجه را ذخیره میکنیم6. مرحله دو تا پنج را ? بار تکرار میکنیم7. برای ادست اوردن نتیجه نهایی میانگین تمام نتیجه هایی که در محله 5 بدست امد را اندازه گیری میکنیم.Cross-Validation  در یادگیری ماشینبیشتر تکنیک های اعتبار سنجی که بیان شد در یادگیری ماشین مورد استفاده قرار میگیرد. خیلی مهم است که این موضوع را فراموش نکنیم که استفاده از این تکنیک ها در زمان شما صرفه جویی میکند و کمک میکند تا بتوانید بهترین مدل را انتخاب کنید. واین به این معناست که اولا ، بهتر است مدلتان را همیشه CVکنید و دوما یکی از روش ها را که مناسب کار شماست انتخاب کنید. بنابراین دانستن اینکه چه مزایا و معایبی دارند بسیار با اهمیت است.شایان ذکر است اکر میخواهیم یک مدل را CVکنیم، باید از مدل کاملا اطلاعات را در دست داشته باشیم یا به عبارتی دفترچه راهنمای مدل در دست ما باشد چونکه ممکن است برخی از روش های ماشین لرنینگ داخل خودش CV را داشته باشند  و میتوانید از انها بجای استفاده از کتابخانه  sklearnاستفاده کنید.به طور کلی همانطور که متوجه شدید تکنیک های CV  را میتوان با استفاده از کتابخانه sklearn پیاده سازی کنید و بسیار مفید هم هستند از این بابت که در وقت شما بسیار صرفه جویی میکنند.Cross-Validation in Deep Learningاعتبار سنجی در یادگیری عمیق ممکن است مقداری مشکل باشدبخاطر اینکه اکثر تکنیک های CV حداقل یکی دوبار نیاز مند مدل های اموزشی میباشد.در یادگیری عمیق ما معمولا وسوسه میشویم که از استفاده CV اجتناب کنیم چونکه اموزش k مدل مختلف هزینه بر است. بجای انجام k-fold یا سایر تکنیک های cvممکن است از زیرمجموعه‌ای تصادفی از داده‌های آموزشی خود به عنوان نگهدارنده برای اهداف اعتبارسنجی استفاده کنید. به عنوان مثال، کتابخانه یادگیری عمیق Keras به شما این امکان را می دهد که یکی از دو پارامتر را برای تابع fit که آموزش را انجام می دهد، ارسال کنید.1. validation_split  : درصدی از داده هایی که باید برای اعتبار سنجی نگهداری شوند2. validation_data: : یک زوج مرتب از (X, y) که باید برای اعتبارسنجی استفاده شود. این پارامتر validation_split را نادیده می گیرد، به این معنی که شما می توانید تنها یکی از این پارامترها را در یک زمان استفاده کنید.همین رویکرد در آموزش های رسمی سایر فریمورک های DL مانند PyTorch و MxNet استفاده می شود. آنها همچنین پیشنهاد می کنند مجموعه داده را به سه بخش تقسیم کنید: آموزش، اعتبار سنجی و آزمایش.1. آموزش – بخشی از مجموعه داده برای آموزش2. اعتبار سنجی - بخشی از مجموعه داده برای ارزیابی در حین آموزش3. تست - بخشی از مجموعه داده برای اعتبار سنجی نهایی مدلبا این حال، می توانید از CV در وظایف یادگیری عمیق استفاده کنید اگر مجموعه داده کوچک باشد (شامل صدها نمونه) در این مورد، یادگیری یک مدل پیچیده ممکن است یک  غیرضروری باشد، بنابراین مطمئن شوید که با انجام ان کار را بیشتر پیچیده نکنید.بهترین تمرینات و نکاتشایان ذکر است که گاهی اوقات پیاده سازی اعتبارسنجی متقابل ممکن است کمی مشکل باشد. به عنوان مثال، اشتباه منطقی هنگام تقسیم مجموعه داده خیلی راحت بوجود می‌اید که ممکن است منجر به یک CV غیرقابل اعتماد شود.نکات زیر را برای مدل کردن CVدرنظر داشته باشید:1. هنگام تقسیم داده ها منطقی باشید (آیا روش تقسیم منطقی است)2. از روش CV مناسب استفاده کنید (آیا این روش برای مورد استفاده من قابل اجرا است)3. هنگام کار با سری‌های زمانی، گذشته را ارزیابی نکنید (به اولین نکته توجه کنید)4. هنگامی که با داده های پزشکی یا مالی سروکار دارید حتما توسط یک شخصی انها را جداسازی کنید. از داشتن داده برای یک نفر هم در آموزش و هم در مجموعه تست خودداری کنید زیرا ممکن است به عنوان نشت داده در نظر گرفته شود5. هنگام برش تکه‌ها از تصاویر بزرگ‌تر، به یاد داشته باشید که با شناسه تصویر بزرگ تقسیم کنیدالبته، نکات هر روش یا کار با روش یا کار دیگر متفاوت است و پوشش همه آنها تقریبا غیرممکن است. به همین دلیل است که انجام یک تجزیه و تحلیل داده های اکتشافی قوی قبل از شروع اعتبارسنجی (CV) یک مدل همیشه بهترین روش است.اخرین نظرات(جمع بندی)اعتبار سنجی ابزار قدرتمندی است. هر دانشمند داده باید با آن آشنا باشد. در زندگی واقعی، شما نمی توانید پروژه را بدون CV یک مدل به پایان برسانید.به نظر من بهترین تکنیکهای CV را میتوانNested k-Fold  و استانداردk-Fold در نظر گرفت. من شخصاً از آنها استفاده کردم. Nested k-Fold  بهتر از GridSeachCV به من کمک کرده است و از طرف دیگر، ازk-Fold برای ارزیابی عملکرد مدل استفاده میکنم.در این مقاله، ما متوجه شدیم که CV چیست، چه تکنیک‌های برای CV وجود دارد و چگونه آنها را پیاده‌سازی کنیم. در آینده الگوریتم های یادگیری ماشین قطعاً حتی بهتر از امروز عمل خواهند کرد. با این حال، CV همیشه برای پشتیبان گیری از نتایج شما مورد نیاز است.امیدواریم با این اطلاعات، مشکلی در تنظیمات CV برای پروژه بعدی یادگیری ماشین خود نداشته باشید!منبع 1. Cross-Validation in Machine Learning: How to Do It Right - neptune.ai</description>
                <category>امیرحسین مجد</category>
                <author>امیرحسین مجد</author>
                <pubDate>Thu, 16 Dec 2021 21:49:02 +0330</pubDate>
            </item>
                    <item>
                <title>هوش مصنوعی و یادگیری ماشین</title>
                <link>https://virgool.io/@m_20924244/%D9%87%D9%88%D8%B4-%D9%85%D8%B5%D9%86%D9%88%D8%B9%DB%8C-%D9%88-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-gojw92hxahr9</link>
                <description>باسلام خدمت شما خواننده محترم در این آموزک قست داریم نگاهی به هوش مصنوعی و یادگیری ماشین داشته باشیم و همچنین سعی میکنیم به سوالات زیر پاسخ بدهیم:1- هوش مصنوعی چیست و چه رابطه ای با یادگیری ماشین دارد.2- داده چیست و چه انواعی دارد و چگونه در یادگیری استفاده میشود3- در چه مواردی از یادگیری ماشین استفاده میشود4-روش های یادگیری ماشین به چند دسته تقسیم میشوند5-چه چالش های بر سر راه یادگیری ماشین قرار دارد6- در خصوص زبان و کتابخانه های مورد استفاده و در اخر هم یکسری منابعتاریخچه هوش مصنوعی به گذشته خیلی دور بر می گردد از زمانی که یونانی ها در این باور بودند که بتوانند یک مغز مکانیکی درست کنندو اثارتاريخي بدست آمده نشان میدهد حتی تا ساخت این هم پیش رفته بودند.یکی از اولین پروژه های علمی هوش مصنوعی ایده گرفتن از مفهوم شبکه عصبی و نورون ها بودکه توسط شاگردان دانشگاه هاروارد ساخته شد. انتخاب هوشمندی، در قدم اول و ساخت عامل هوشمند،در قدم بعدی صورت می گیرد که اين عمليات ها میتواند به صورت سخت افزاری یا نرم افزاری باشد و بر حسب اون محیطی که قراره داخلش قرار داده بشه و مورد استفاده بگیره اعضای مختلفی داشته باشیم.هوش مصنوعی هم که گفته شد از سالهای گذشته مورد توجه بوده و در سال های اخیر عملیاتی شده و یکی از جذاب ترین بحث های مورد استفاده بین دانشمندان قرار گرفته است. فرایند اندیشه و تفکر مغز از گذشته تا الان خیلی مورد توجه قرار گرفته و سعی شد مانند آن ساخته شود.یکی از برجسته ترین دانشمندان حوزه هوش مصنوعی آلن تورینگ بود كه در زمینه یادگیری تقویتی هم گام‌های مهمی برداشته است.هوش مصنوعی تعریف های زیادی دارد اما از دو بعد مورد بررسی قرار می گیرد بعد اول: هوشمندی یا در رفتار است و یا در تفکر، و در بعد بعدی: هوشمندی در انسان گونه بودن یا منطقی بودن است به طور کلی هوش مصنوعی در چهار دسته بندي مهم قرارميگيرد:1-منطقی فکر کردن2- منطقی رفتار کردند3- مانند انسان فکر کند4- مانند انسان رفتار کند.به طور کلی برنامه هایی که هوشمندی داشته باشند یا به نوعی رفتار انسان رو بتوانند تقلید کنند به عنوان هوش مصنوعی پذیرفته میشود .یادگیری ماشین زیر مجموعه ای از هوش مصنوعی است اما ویژگی‌هایی دارد که از روش‌های هوش مصنوعی متمایز می کند. در هوش مصنوعی توانایی ماشین برای تقلید از رفتار انسان و اتخاذ تصمیم هوشمندانه مانند انساندر نظر گرفته مي‌شود اما در یادگیری ماشین توانایی ماشین برای یادگیری بدون نیاز به برنامه نویسی اختصاصی صورت می گیرد و مسائل را حل کند.یادگیری ماشین بعد از هوش مصنوعی موضوعیت پیدا کرد و یکی از زیر مجموعه های هوش مصنوعی هست که کاربردهای خیلی زیادی داره و در ادامه به آن‌ها خواهیم پرداخت. با توجه به قدرتمند بودن الگوریتم های یادگیری ماشین، در حوزه های بسيار زيادي مورد توجه قرار گرفته است به عنوان مثال صنعت، دانشگاه، سلامت و غیره به عناوان مثال ميتوان به ماشین های بدون راننده كه در سطح شهر حرکت می‌کننداشاره كرد كه نمونه‌ای از الگوریتم های یادگیری ماشین است.یکی از عواملی که باعث این شده که یادگیری ماشین در عصر حاضر خیلی مورد توجه ویژه توسط كاربران يا شرکت ها قرار بگیره آن است که محیط بسیار وسیعی را در اختیار برنامه نویس قرار می دهد با توجه به کتابخانه‌ها و ابزارهایی که دارد و برنامه نویس می‌تواند با توجه به آنها تمام نیازها و کارهای مد نظرش رو به خوبی انجام بدهد و برای تکمیل این جذابیت مسابقات داده ای خیلی زیادی هم حالا اجرا می‌باشد. لازم به ذکر است قسمت جدا نشدنی یادگیری ماشین داده است.با درک اهمیت دانش و اطلاعات، بسیاری از افراد به فکر استفاده از اطلاعات افتادند و سعی کردند با استفاده از آن ها در نتایج و تصمیم گیری های صحيح و درست برسند، از تنظیم و تحلیل این اطلاعات مي‌‌توان براي اخذ تصمیمات بسیار مفیدی برای آینده استفاده کرد. این نیاز در جامعه موجب به وجود آمدن تخصصهای در این زمینه شده که افراد در خیلی از شرکت ها و سازمان ها در این موضوع مشغول به فعالیت و کار هستند. شغلهای بسیار زیادی در خصوص داده به وجود آمده است مانند تحلیلگر داده، دانشمند داد، مهندس داده و یا مهندس یادگیری ماشین که درآمدهای بسیار خوبی دارند.تحلیلگر داده شخصی است که معماری مناسبی برای جمع آوری اطلاعات در یک سازمان طراحی می کند و یک پایگاه داده مناسب هم برای این کار انتخاب می کند و داده های خام رو از منابع داخلی و خارجی جمع آوری كرده و براي استفاده آماده می‌کند، سپس در پایگاه داده ای که طراحی کرده ذخیره خواهدكرد همچنین استخراج اطلاعات مفید و آماده سازی نتایج به صورتي كه براي هر شخصي قابل فهم و ساده باشد از کارهای او محسوب می شود.شغلي بعدي در زمينه داده دانشمند داده است و به شخصي گفته مي‌شودکه نیازمند دانش آماری و ریاضیاتی و برنامه نویسی می‌باشد و علاوه بر این ها با مفاهیم یادگیری ماشین و دانش برنامه نویسی هم بايد آشنا باشد تا بتواند از ابزارهايي که برای تحلیل عمیق تر داده ها طراحی شده است استفاده کنند.با توجه به اینکه اطلاعات و داده ها به صورت قابل توجهی رو به افزایش است مدیریت هایی که در گذشته صورت می گرفته دیگر پاسخگو نیست و روش های جدیدی برای تحلیل گران و توسعه دهندگان به وجود آمده که کار يك مهندس داده مي‌‌تواند در خصوص بررسی این داده هاو سطح کلان باشد و چگونگی رسیدن داده ها به مصرف کننده از کارهای او می باشد.وحالا مهندسی یادگیری ماشین، در درجه اول باید با ساختارهای داده و پیچیدگی آنها آشنایی داشته باشد و داشتن دانش یادگیری ماشین را هم باید جزوه الزامات کارش قرار دارد و همچنین داده را از زمان ورود تا زمانی که تبدیل به خروج شود بايد زیر نظر دارد مهندس یادگیری ماشین باشد، و دانش کاملی نسبت به الگوریتم ها و روشهای یادگیری ماشین داشته باشد.یادگیری ماشین کاربردهای بسیار جذابی دارد مثل دستیارهای صوتی که امروزه خيلي مورد استفاده قرار می‌گیرد ويا سیستم‌هایی که یک چیزی را به ما پیشنهاد میدهد. اگه بخواهیم يك مثال در رابطه با حوزه فعالیت یادگیری ماشین بزنیم مي‌توان از کاربرد آن در حوزه صنعت معدن نام برد به این صورت که با توجه به حجم بسیار زیاد اطلاعات در حوزه صنایع معدنی و همچنین عدم قطعیت بالا، بسیار مورد استفاده قرار گرفته است. یادگیری یادگیری ماشین در قسمت پردازش تصاویر ماهواره‌ای بسیار کارآمد بوده و می‌تواند با مشخص کردن و دسته بندی تصویر نتایج مورد نظر را به دست آورد که از دقت بسیار بالایی برخوردار است. با توجه به هزینه بر بودن نمونه برداری در معادن به دست آوردن نتیجه درست از حداقل تست ها، یک بحث بسیار مفید می‌تواند باشد که با استفاده از ماشین لرنینگ و الگوریتم هایی مانند svm آن را انجام داد.يکی از خروجی های تحقیقات هوش مصنوعی یادگیری ماشین است که به پیدا کردن الگو های داده و پیش بینی روند داده ها کمک کرد. یادگیری ماشین به عنوان یک برنامه کامپیوتری با استفاده از دسترسی به داده ها می‌تواند خود را آموزش دهد. پس یکی از ویژگی‌های اصلی یادگیری ماشین این است که خود آموزشی می باشد به این معنی که با استفاده از مدلسازی آماری و بدون استفاده از دستورات مستقیم کار خود را انجام می‌دهد.یکی از عنصرهاي اصلی یادگیری ماشین داده ها هستند و ماشین با استفاده از آن داده ها یاد میگیرد که چه کاری را انجام بده و خروجی مورد نیاز ما را تولید می‌کند.به طور کلی داده، توصیف یا نتیجه مشاهدات و اندازه گیری های ما می‌باشد و هر چه به واقعیت نزدیکتر باشد و اطلاعات بهتری را در اختیار ما قرار دهد با ارزشمند تر است. داده ها به صورت های زیادی تولید می شود به عنوان مثال زبان طبیعی که ما مورد استفاده قرار می دهیم مي‌تواند یکی از تولید کننده‌های داده برای ماشین باشد که با وجود پیشرفت های زیاد، می‌تواند به دانسته‌های انسان مجهز شود. چالش‌های خیلی زیادی بر سر راه آن قرار دارد که می‌توان تفاوت زبان روزمره و رسمی را به عنوان چالش اصلی آن در نظر گرفت. یکی دیگر از راههای ذخیره داده بحث تصاویر هستند که همچنین در حوزه های مختلف یادگیری ماشین و بینایی ماشین مورد استفاده قرار می‌گیرد و پیشرفت چشمگیری هم داشته است.یکی دیگر از داده هایی که مورد استفاده قرار می گیرد جداول هستند تفاوت آن با داده های قبلی ساختارمند بودن آن است که در خیلی جاها مثلا بانک ها مورد استفاده قرار می گیرد یادگیری ماشین با استفاده از داده ها به کمک انسان می‌آید و خیلی از مشکلات را حل می کند به عنوان مثال در بحث تصاویر می توان با استفاده از یادگیری ماشین و ثبت تصاویر که توسط دوربین‌ها انجام می‌شود پلاک های خودرو را تشخیص داد یا می‌توان با استفاده از داده هایی که در سری های زمانی به دست می آید به پیش بینی مثلاً یک سهام در بازار بورس پرداخت.یادگیری ماشین با برنامه نویسی سریع متفاوت است در یادگیری ماشین ما مدلی را طراحی می‌کنیم که مدل می‌‌تواند به پیدا کردن الگو به یادگیری صورت اتوماتیک بپردازد اما در برنامه نویسی اینطور نیست. همانطور که گفته شد داده ها را می توان به عنوان تجربه ای برای یادگیری ماشین در نظر گرفتتعریف‌های زیادی از یادگیری ماشین وجود دارد که معروف‌ترین آن به صورت زیر است فرض کنید تکالیف t با تابع سنجشp  ارزیابی می شود و با استفاده از تجربهe کارایی سیستم افزایش می یابد آن گاه می توانیم بگوییم که برنامه یاد گرفته است از تجربه با توجه به تکالیف و تابع ارزیابی استفاده کند. در واقع t مسئله ای هست که ما انتظار داریم با استفاده از یادگیری ماشین حل کنیم. E نمونه ها که اطلاعات مورد نیاز مسئله را به ما می‌دهد می باشد و P معیاری برای بررسی اندازه‌گیری میزان دقت الگوریتم هست که به صورت درصدی میتوان آن را بیان کرد.چهار عنصر اصلی که برای انجام یادگیری ماشین مورد نیاز است، عبارت اند از:۱ یک مدل یا الگوریتم برای تصمیم گیری۲ یک معیار برای امتیاز دهی۳ بررسی مدل و کیفیت آن بر اساس امتیاز۴ ایجاد تغییرات درمدل به صورت خودکار برای بهبود امتیازکسب مهارت یا دانش از طریق تجربه کردن را همان یادگیری ماشین می دانیم و انواع مختلفی از این نوع وجود دارد:1- یاد گیری با نظارت2-یادگیری بی نظارت3- یادگیری تقویتیالگوریتم با ناظر به این صورت عمل می‌کند که ما یکسری داده‌های اولیه داریم که مشخص هست این داده ها چه هستند و برچسب دارند سپس داده هایی داده میشود که دوباره تاکید بر این داره که انها داده‌هایی که ما مد نظر من هست نیست و سیستم میتواند تفاوت بین آن ها رو تشخیص بدهد البته با یادگیری به عبارت دیگه داده های ما برچسب مشخصی میخورد. نکته قابل توجه در یادگیری با نظارت پیدا کردن برچسب ها یا دسته های مناسب برای یادگیری می باشد.اصلی ترین دسته بندی یادگیری با ناظر طبقه‌بندی و رگرسیون هست طبقه بندی می تواند برای داده‌های گسسته و رگرسیون برای داده‌های پیوسته مورد استفاده قرار بگیرد.بحث بعدی یادگیری بدون نظارت است که تنها تفاوت آن با یادگیری با ناظر نبودن آن برچسبها می باشد یکی از راه های ساده متمایز کردن داده ها نسبت به همدیگه می تواند بحث تراکم آنها در منطقه باشد. به طور کلی به سه دسته تقسیم می‌شود خوشه بندی، کاهش ابعاد و استخراج قانون وابستگی است. در خوشه بندی ما به صورت اتوماتیک داده‌ها را به دسته های همگن دسته بندی می کنیم و قبل از آن یک معیار برای خوشه بندی انتخاب میکنیم. بحث بعدی در خصوص کاهش ابعاد است با توجه به این که داده ها دارای ابعاد خیلی زیادی هستند با این روش می توانیم با کاهش دادن ابعاد به درد نخور از پیچیدگی مسئله بکاهیم.یادگیری تقویتی یکی از روش های یادگیری ماشین است به این صورت عمل می کند که با هر حرکت امتیازی سیستم دریافت می کند آن امتیازی که دریافت می‌کنند، ممکن است پاداش باشد یا مجازات.یادگیری تقویتی خیلی نزدیک به آموختن یک کودک است زمانی که یک خطای صورت می گیرند مجازات شده و زمانی که کار خوب می کند مورد تشویق قرار می‌گیرد نکته قابل توجه در یادگیری تقویتی این است که وابستگی به داده ندارد و از تعامل با محیط یاد میگیرد.زمان بر بودن یکی از چالش های یادگیری تقویتی است.یکی از ابزارهایی که در توسعه یادگیری ماشین خیلی مورد استفاده قرار میگیره زبان برنامه نویسی پایتون است که یک زبان برنامه نویسی سطح بالا لحاظ می شود و در حوزه علم داده بسیار پرکاربرد استیکی از ویژگی های بارز زبان پایتون قابل فهم بودن کدهای آن است و کاربرد بیشتر پایتون در صنعت باعث به وجود آمدن تفاوت اصلی آن نسبت به بقیه زبان های برنامه نویسی شده است و دارای کتابخانه‌های زیادی در حوزه یادگیری ماشین است که معروفترین آنها کتابخانه numpy ,pandas, matplotlib, scikit-learn می باشد.اهمیت داده ها در زندگی روزمره ما هر روز بیشتر و بیشتر و بیشتر می‌شود و نحوه استفاده صحیح از این داده ها باعث می شود که در هر حوزه ای به پیشرفت برسیم با توجه به اینکه داده ها به صورت خیلی زیادی افزایش پیدا کرده اند و همچنین ذخیره سازی آنها مرقوم به صرفه ممکن است نباشد وهمچنین پردازش آنها شامل هزینه خیلی زیادی ممکن است بشود، اینجاست یادگیری ماشین به کمک ما آمده و تمام این مشکلات را حل می‌کند. اساس یادگیری ماشین وجود داده هاست حال اگر این داده‌ها به درد نخور ،ناکافی و دارهای کیفیت نامناسب باشد باعث بد عمل کردن سیستم یادگیری ما می‌شود. بنابراین داده ها بسیار تاثیر گذار هستند.بخش بعدی تاثیر گذار در سیستم یادگیری انتخاب ویژگی های ماست که که خوب یا بد بودن انتخاب آنها در سیستم بسیار تاثیرگذار است چالش های خیلی زیادی به همراه الگوریتم های هوش مصنوعی و یادگیری ماشین قرار دارد به عنوان مثال در یادگیری ماشین می خواهیم با توجه به داده های گذشته آینده را پیش بینی کنیم اما اگر نتوانیم مدل خوبی طراحی کنیم ممکن است پیش بینی درستی نداشته باشد یکی از علت‌هایی که باعث این رخداد میشود آموزش زیاد از حد می باشد. همانطور که گفته شد داده های بی کیفیت ممکن است آن جامعه هدفی که ما قست مدل کردن آن را داریم به دست نیاوریم.انتخاب پیچیدگی زمانی مناسب برای الگوریتم یادگیری ماشین بسیار پر اهمیت است که باعث می شود در مدت زمان مناسب یادگیری کند و سپس نتیجه را به ما اعلام کند.کلا برای حل سوالات یاد گیری ماشین باید دیتاست ها را مورد بررسی و ارزیابی قرار داد. استفاده از کتابخانه های بیان شده برای حل مسائل ماشین لرنینگ بسیار مفید است و کار را بسیار ساده میکند. در حل مسائل باید دقت کرد که پس از دریافت داده های ورودی آنها را به یک واحد داده‌ای مشخص تبدیل کرد فرض کنید می خواهیم از روی قد افراد وزن آنها را با توجه به جنسیت آنها مشخص کنید در درجه اول دیتاهای خود را به برنامه می دهیم اولین کاری روی داده ها انجام میشدیکسان سازی تمام واحدهای اون داده است به عبارتی همه را یک ریخت کرده و مورد استفاده قرار می دهیم به عنوان مثال ممکن است یکسری قد هارا به سانتی متر باشد و یکسری به متر که همه را به یک واحد هماهنگ تبدیل می کنیم برای ساخت داده های آموزشی و آزمایشی داده های ورودی را به دو قسمت تقسیم می کنیم یه قسمت برای آموزش و یک قسمت برای آزمایش مورد استفاده قرار می گیرد سپس مدل مناسبی را برای آموزش انتخاب می کنیم و مقادیر تست را تخمین می‌زنیم و مورد ارزیابی قرار می‌دهیم. نتیجه ای که به دست میاد نشان میدهد که ما می‌توانیم با استفاده از جنسیت و قد افراد ۹۰% حدس درست بزنیم که وزنش چقدر است.بر اساس چرخه تب تکنولوژی هر تکنولوژی ۵ مرحله اصلی را طی می‌کند به این صورت که در ابتدا(مرحله اول) معرفی می شود و مسیر مشهور شدن را طی میکند مرحله دوم به اوج قله می رسد، مرحله سوم محدودیت‌های تکنولوژی شناخته می‌شود و کم کم از شهرت اش کاسته می شود در مرحله چهارم تنها بخشی از کسانی که در آن حوزه فعالیت داشته اند در آن تکنولوژی باقی می مانند و مرحله پنجم هم پختگی و ثبات نسبی آن تکنولوژی است. باید توجه داشت که سرعت هر تکنولوژی در این پنج مرحله متفاوت است.چندین نوع هوش مصنوعی وجود دارد به عنوان مثال هوش مصنوعی محدود یا ضعیف که می‌تواند مثلاً یک انسان را داخل ۱ تصویر تشخیص دهد و در مقابل آن هوش مصنوعی عمومی و قوی هست که مانند انسان می‌تواند از هوشی عمومی برخوردار باشد. به این نکته باید توجه کرد که تحولات هوش مصنوعی در حتما نقطه‌ای به شکوه خود می‌رسد و اما آن شکوه با ترس هم همراه خواهد شد که به آن نقطه تکینگی فناوری میگویند.که غیر قابل کنترل و برگشت پذیر است.در عرصه پژوهش و نوآوری در زمینه هوش مصنوعی می توان به شرکتهای بزرگی چون همچون deep mind, openAi, facebook AI ,google AI , اشاره کرد که نقش بسیار فعالی در پیشرفت و ارائه محصولات در زمینه هوش مصنوعی داشته اند.مطالب و کتاب های بسیار زیادی در زمینه های هوش مصنوعی و یاد گیری ماشین وجود دارد که برای اگاهی بیشتر و مطالعه معرفی میشود.1-machine learning for Dummies  2- artificial  intelligence :a modern approach 3- python for data analysis  4- pattern recognition and machine larning  است که در سطح های مختلف برای افراد مبتدی تا پیشرفته تهیه شده است البته لیست کتاب ها خیلی بیشتر است و تنها بخشی از ان اورده شده است.ممنون که وقت گذاشتید مطالعه کردید********حتما به منبع سر بزنید مصاحبه هایی تهیه شده است  از متخصصان این حوزه که بسیار بسیار مفید هست و میتواند با دیدن انها هدف های خود را مشخص کنید و از اهمیت این فناوری در حوزه های مختلف مطلع شوید.منبع(https://quera.ir/college/land/college/8522/)</description>
                <category>امیرحسین مجد</category>
                <author>امیرحسین مجد</author>
                <pubDate>Thu, 25 Nov 2021 00:22:17 +0330</pubDate>
            </item>
            </channel>
</rss>