<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های zeynab moradi</title><link>https://virgool.ir/feed/@Zeynab.moradi</link><description>کارشناسی مهندسی it و دانشجو ارشد مهندسی کامپیوتر_هوش مصنوعی</description><language>fa</language><pubDate>2026-11-11 10:26:26</pubDate><image><url>https://files.virgool.ir/upload/users/1332182/avatar/TQqdL4.jpeg</url><title>zeynab moradi</title><link>https://virgool.ir/@Zeynab.moradi</link></image><item><title>بایاس</title><link>https://virgool.ir/@Zeynab.moradi/بایاس-tc6ui1vxxinr</link><description>واریانس  با تغییرات کوچک در داده، مقدار پیش‌بینی‌های مدل‌مان را تغییر می‌دهد . یعنی اگر بر اثر خطای انسانی واریانس مدل‌کم باشه انتظار داریم این خطای کوچک در داده‌ها، به پیش‌بینی‌ ما لطمه نزند. اگر واريانس داشته باشيم over fit رخ می‌دهد یعنی با بالا رفتن یادگیری مدل بر روی داده های آموزشی میکنیم و الگوریتم مورد استفاده مدل ما بدلیل یاد گرفتن همه نمونه های آموزشی تبدیل به یک مدل پیچیده شده تا جایی که اگر یک نمونه جدید تست به این مدل داده شود خطای بالایی را تولید خواهد کرد. بایاس، خطای تقریب یک پدیده‌ی پیچیده با یک مدل ساده‌ست. اگه باياس داشته باشيم underfit رخ ميدهد و وقتی دچار underfit میشویم که الگوریتم یک مدلِ خیلی کلی از مجموعه آموزشی به دست می‌آورد اگر خودِ داده‌های مجموعه‌ی آموزشی را نیز به این الگوریتم بدهیم خطایی قابل توجه خواهد. حال با تعریف هایی که داشتیم میخواهیم یک مثال از دنیای واقعی را بگوییم که فهم آن را راحت تر کند فرض کنید درحال نوشتن برنامه ای برای تشخیص حیوان گاو هستید و ۲۰عدد عکس گاو دارید و میگویید اگر حیوان گاو را دیدی بنویس این حیوان گاو است اگر مدل ما کامل این حیوانات را با جزییات یاد بگیرد و تصویر یکی از گاو ها رو برعکس کنید و نتواند تشخیص دهد این گاو است میگوییم مدل دچارOverfittingشد چون انقد رو جزییات رفته که با کوچکترین تغییر دچار این مشکل شد حالا اگر مدل ما فقط به طور کلی یادگرفته باشد که این تصویر مربوط به حیوان گاو است اما دقیق یاد نگرفته باشد بازهم مدل نمیتواند تشخیص بدهد که این چه حیوانی است حتی اگر یکی از همان تصاویر را ببیند نمیتواند تشخیص دهد چون فقط به طور کلی یاد گرفته است در این صورت نیز میگوییم  Underfit رخ داده است </description><category>zeynab moradi</category><author>zeynab moradi</author><pubDate>Fri, 14 Jan 2022 21:45:34 +0330</pubDate></item><item><title>Cross validation In machine learning</title><link>https://virgool.ir/@Zeynab.moradi/cross-validation-in-machine-learning-wf7u3nmrvvnu</link><description>اعتبار سنجی متقابل در یادگیری ماشین : چگونه آن را درستی انجام بدهیمدر یادگیری ماشین ، تعمیم معمولا به توانایی یک الگوریتم برای موثر بودن در ورودی های مختلف اشاره دارد . این بدان معناست که مدل با کاهش عملکرد در ورودی های جدید از توزیع یکسان داده های آموزشی جلوگیری میکند . برای انسان تعمیم یک امر طبیعی است . ما میتوانیم براحتی انجام دهیم . بعنوان مثال ، ما یک سگ را تشخیص میدهیم ، حتی اگر نژادش را از قبل ندیده باشیم . با این وجود ممکن است برای یک مدل چالش باشد . به همین دلیل است که بررسی توانایی الگوریتم برای تعمیم یک کار بسیار مهم است که در ساخت مدل نیاز به توجه خاصی دارد .برای این کار از Cross-Validation (CV) استفاده میکنیم .در این مقاله به موارد زیر خواهیم پرداخت :• Cross-Validation چیست : تعریف ، هدف استفاده و تکنیک• تکنیکهای مختلف CV شامل :hold-out ,  k-folds , Leave-one-out , Leave-p-out ,Stratified k-folds , Repeated k-folds , Nested k-folds , Complete CV• چگونگی استفاده از این تککنیکها : sklearn• Cross-Validation در یادگیری ماشین : sklearn , CatBoost• Cross-Validation در یادگیری عمیق : Keras , PyTorch , MxNet• بهترین شیوه ها و نکات : سری های زمانی ، داده های پزشکی و مالی ، تصاویرCross-Validation  چیست ؟Cross-Validation تکنیکی برای ارزیابی یک مدل یادگیری ماشین و آزمایش عملکرد آن است . از CV معمولا در کارهای کاربردی یادگیری ماشین استفاده میشود . این به مقایسه و انتخاب یک مدل مناسب برای مسیله مدل سازی پیش بینی کننده خاص کمکان  میکند .درک CV آسان است ، پیاده سازی آن آسان است ، و تمایل به تعصب کمتری نسبت به سایر روش های مورد استفاده برای شمارش امتیازهای کارایی مدل دارد . همه ی اینها Cross-Validation را به ابزاری قدرتمند برای انتخاب بهترین مدل برای کار خاص تبدیل میکند .تکنیکهای مختلفی وجود دارد که ممکن است برای Cross-Validation یک مدل استفاده شود . به هر حال همه ی آنها یک الگوریتم مشابه دارند :• مجموعه داده را به دو بخش تقسیم کنید : یکی برای آموزش ، دیگری برای آزمایش• مدل را روی مجموعه آموزشی ، آموزش دهید• اعتبار مدل را در مجموعه آزمایشی تایید کنید• این مراحل را چند بار تکرار کنید . این اعداد به روش رزومه ای که استفاده میکنید بستگی داردهمانطور که میدانید تکنیکهای CV زیادی وجود دارند . برخی از آنها پرکاربرد هستند ، برخی دیگر فقط در بخش تیوری کار میکنند . بیایید روشهای Cross-Validation را که در این مقاله به آن پرداخته شده است را بررسی کنیم :• Hold-out• K-folds• Leave-one-out• Leave-p-out• Stratified K-folds• Repeated K-folds• Nested K-folds• CompleteHold-outHold-out Cross-Validation ساده ترین و رایج ترین تکنیک است . شاید ندانید که این روش Hold-out است ، اما قطعا هر روز از آن استفاده میکنید .الگوریتم تکنیک Hold-out :1) مجموعه داده را به دو بخش مجموعه آموزشی و مجموعه تست تقسیم بندی کنید . معمولا 80% مجموعه داده به مجموعه آموزشی و 20% به مجموعه آزمایشی اختصاص می یابد ، اما میتوانید هر تقسیم بندی که مناسب تر باشد را انتخاب کنید .2) مدل را روی مجموعه آموزشی آموزش دهید .3) در مجموعه آزمایشی اعتبار سنجی کنید .4) نتیجه اعتبار سنجی را ذخیره کنید .?خودشه !ما معمولا از روش Hold-out در مجموعه داده های بزرگ استفاده میکنیم ، زیرا فقط یکبار نیاز به آموزش مدل دارد .اجرای Hold-out واقعا ساده است . برای مثال ، میتوانید این کار را با استفاده از دستور زیر استفاده کنید :sklearn.model_selection.train_test_splitimport numpy as npfrom sklearn.model_selection importtrain_test_splitX, y = np.arange(10).reshape((5, 2)), range(5)X_train, X_test, y_train, y_test = train_test_split(X, y,test_size=0.2,random_state=111)با این حال ، Hold-out یک نقطه ضعف بزرگ دارد .به عنوان مثال ، مجموعه داده ای که از نظر توزیع کاملاً یکنواخت نیست در نظر بگیرید . اگر چنین است ، ممکن است پس از تقسیم در یک نقطه ناهموار قرار بگیریم . به عنوان مثال ، اگر مجموعه آموزشی نشان دهنده مجموعه تست نباشد هر دو مجموعه آموزشی و تست ممکن است بسیار متفاوت باشند ، یکی از آنها ممکن است آسان تر یا سخت تر باشد .علاوه بر این ، این واقعیت که ما مدل خود را فقط یک بار آزمایش می کنیم ممکن است یک گلوگاه برای این روش باشد . با توجه به دلایلی که قبلا ذکر شد ، نتیجه به دست آمده با تکنیک Hold-outممکن است نادرست در نظر گرفته شود .K-foldK-fold Cross-Validation تکنیکی است که معایب روش Hold-out را به حداقل می رساند . K-fold روش جدیدی را برای تقسیم مجموعه داده معرفی می کند که به غلبه بر &#34;تست فقط یک بار گلوگاه&#34; کمک می کند .الگوریتم تکنیک K-fold :1) تعداد k دسته را انتخاب کنید . معمولاً k یا 5 است یا 10 ،اما می‌توانید هر عددی را انتخاب کنید که کمتر از طول مجموعه داده باشد .2) مجموعه داده را به k قسمت مساوی (در صورت امکان) تقسیم کنید . (به آنها folds گفته می شود)3) k – 1 folds را بعنوان مجموعه آموزشی انتخاب کنید . foldهای باقیمانده مجموعه آزمایشی خواهد بود .4) مدل را روی مجموعه آموزشی آموزش دهید . در هر تکرار از Cross-Validation ، باید یک مدل جدید مستقل از مدل آموزش داده شده در تکرار قبلی آموزش دهید .5) در مجموعه آزمایشی اعتبار سنجی کنید .6) نتیجه اعتبار سنجی را ذخیره کنید .7) مراحل 3 تا 6 را k بار تکرار کنید . هر بار از fold باقی مانده به عنوان مجموعه تست استفاده کنید . در پایان ، شما باید مدل را روی هر fold که دارید اعتبارسنجی کرده باشید.8) برای به دست آوردن امتیاز نهایی ، نتایجی که در مرحله 6 به دست آوردید را میانگین گیری نمایید .?برای انجام Cross-Validation ، k-Fold می توانید از sklearn.model_selection.KFold استفاده کنید .import numpy as npfrom sklearn.model_selection import KFoldX = np.array([[1, 2], [3, 4], [1, 2], [3, 4]])y = np.array([1, 2, 3, 4])kf = KFold(n_splits=2)for train_index, test_index inkf.split(X):print(&#34;TRAIN:&#34;, train_index, &#34;TEST:&#34;, test_index)X_train, X_test = X[train_index], X[test_index]y_train, y_test = y[train_index], y[test_index]به طور کلی همیشه بهتر است به جای Hold-out از تکنیک k-Fold استفاده کنید . از آنجایی که آموزش و آزمایش بر روی چندین بخش مختلف مجموعه داده انجام می شود ، به صورت مو به مو ، مقایسه k-Fold نتیجه پایدارتر و قابل اعتمادتری به دست می دهد . اگر تعداد fold ها را برای آزمایش مدل بر روی بسیاری از زیر مجموعه‌های مختلف افزایش دهیم ، می‌توانیم امتیاز کلی را قوی‌تر کنیم .با این حال ، روش k-Fold یک نقطه ضعف دارد . افزایش k منجر به آموزش مدل های بیشتر می شود و فرآیند آموزش ممکن است بسیار گران و زمان بر باشد .Leave-one-outCross-Validation Leave-one-out(LOOCV) یک مورد شدید از K-Fold CV است . تصور کنید کهk برابر با n باشد که nتعداد نمونه های مجموعه داده است . هرمورد k-Fold معادل تکنیک Leave-one-out است .الگوریتم تکنیک LOOCV :1) یک نمونه از مجموعه داده را به عنوان مجموعه آموزشی انتخاب کنید .2) n–1نمونه باقیمانده مجموعه آموزشی خواهد بود .3) مدل را روی مجموعه آموزشی آموزش دهید . در هر تکرار، یک مدل جدید باید آموزش داده شود .4) در مجموعه آزمایشی اعتبار سنجی کنید .5) نتیجه اعتبارسنجی را ذخیره کنید .6) مراحل 1 تا 5 را n بار تکرار کنید ، همانطور که برای n نمونه، n مجموعه آموزشی و تست متفاوت داریم .7) برای به دست آوردن امتیاز نهایی ، نتایجی را که در مرحله 5 به دست آوردید ، میانگیری نمایید .?برای LOOCV sklearn همچنین یک روش built-in موجود است که می توان آن را در کتابخانه model_selection - sklearn.model_selection.LeaveOneOut پیدا کرد .import numpy as npfrom sklearn.model_selection importLeaveOneOutX = np.array([[1, 2], [3, 4]])y = np.array([1, 2])loo = LeaveOneOut()for train_index, test_index inloo.split(X):print(&#34;TRAIN:&#34;, train_index, &#34;TEST:&#34;, test_index)X_train, X_test = X[train_index], X[test_index]y_train, y_test = y[train_index], y[test_index]بزرگترین مزیت Cross-Validation ، Leave-one-out این است که داده های زیادی را هدر نمی دهد . ما فقط از یک نمونه از کل مجموعه داده به عنوان یک مجموعه آزمایشی استفاده می کنیم ، در حالی که بقیه مجموعه آموزشی است . اما وقتی با k-Fold CV مقایسه می‌شود ، LOOCV نیاز به ساخت n مدل به جای kمدل دارد ، می‌دانیم که n که مخفف تعداد نمونه‌های مجموعه داده است بسیار بیشتر از k است . این بدان معناست که LOOCV از نظر محاسباتی گرانتر از k-Fold است ، ممکن است زمان زیادی برای اعتبارسنجی متقابل مدل با استفاده ازLOOCV نیاز باشد.بنابراین ، جامعه علوم داده یک قاعده کلی بر اساس شواهد تجربی و تحقیقات مختلف دارد که نشان می‌دهد اعتبارسنجی متقابل 5 یا 10 fold CV باید بر LOOCV ترجیح داده شود .Leave-p-outCross-Validation Leave-p-out (LpOC)  شبیه LOOCVاست . زیرا تمام مجموعه های آموزشی و آزمایشی ممکن را با استفاده از p نمونه به عنوان مجموعه آزمایشی ایجاد می کند . تمام موارد ذکر شده در مورد LOOCV و برای LpOC درست است .با این حال ، لازم به ذکر است که بر خلاف LOOCV و k-Foldمجموعه‌های تست برای LpOC اگر p بالاتر از 1 باشد ، همپوشانی دارند .الگوریتم تکنیک LpOC :1) نمونه های p را از مجموعه داده انتخاب کنید که مجموعه آزمایشی خواهد بود .2) n-p نمونه باقیمانده مجموعه آموزشی خواهد بود .3) مدل را روی مجموعه آموزشی آموزش دهید . در هر تکرار ، یک مدل جدید باید آموزش داده شود .4) در مجموعه آزمایشی اعتبار سنجی کنید .5) نتیجه اعتبارسنجی را ذخیره کنید .6) مراحل 2 تا 5 را Cpn (ترکیب p از n) بار تکرار کنید .7) برای به دست آوردن امتیاز نهایی ، میانگین نتایجی را که در مرحله 5 به دست آوردید محاسبه نمایید .می‌توانید Leave-p-out CV را با استفاده از sklearn – sklearn.model_selection.LeavePOut انجام دهید .import numpy as npfrom sklearn.model_selection import LeavePOutX = np.array([[1, 2], [3, 4], [5, 6], [7, 8]])y = np.array([1, 2, 3, 4])lpo = LeavePOut(2)for train_index, test_index in lpo.split(X):print(&#34;TRAIN:&#34;, train_index, &#34;TEST:&#34;, test_index)X_train, X_test = X[train_index], X[test_index]y_train, y_test = y[train_index], y[test_index]LpOC تمام معایب LOOCV را دارد ، اما ، با این وجود ، به اندازه LOOCV قوی است .Stratified k-Foldگاهی اوقات ممکن است با عدم تعادل زیادی در مقدار هدف در مجموعه داده مواجه شویم . به عنوان مثال ، در مجموعه داده‌های مربوط به قیمت ساعت‌های مچی ، ممکن است تعداد بیشتری از ساعت‌های مچی قیمت بالایی داشته باشند . در مورد طبقه‌بندی ، در مجموعه داده‌های گربه‌ها و سگ‌ها ممکن است تغییر زیادی به سمت طبقه سگ وجود داشته باشد .K-Fold طبقه بندی شده نوعی از تکنیک استاندارد K-Fold CVاست که به گونه ای طراحی شده است که در چنین مواردی از عدم تعادل هدف موثر باشد .K-Fold به صورت زیر عمل می کند ، Stratified k-Foldمجموعه داده را به k دسته تقسیم می کند به طوری که هر دسته تقریباً دارای درصد مشابهی از نمونه های هر کلاس هدف به عنوان مجموعه کامل است . در مورد رگرسیون ، Stratified k-Fold اطمینان حاصل می کند که میانگین مقدار هدف تقریباً در همه دسته ها برابر است .الگوریتم تکنیک طبقه بندی k-fold:1- تعدادی k-fold را انتخاب کنید .2- مجموعه داده را به k دسته تقسیم کنید . هر fold باید تقریباً دارای درصد مشابهی از نمونه‌های هر کلاس هدف در مجموعه کامل باشد .3- k–1 foldsرا انتخاب کنید که مجموعه آموزشی خواهد بود . fold باقیمانده مجموعه آزمایشی خواهد بود.4- مدل را روی مجموعه آموزشی آموزش دهید . در هر تکرار یک مدل جدید باید آموزش داده شود .5- در مجموعه آزمایشی اعتبار سنجی کنید .6- نتیجه اعتبارسنجی را ذخیره کنید .7- مراحل 3 تا 6 را k بار تکرار کنید . هر بار از fold باقی مانده به عنوان مجموعه تست استفاده کنید . در پایان ، شما باید مدل را روی هر fold که دارید اعتبارسنجی کرده باشید .8- برای به دست آوردن امتیاز نهایی ، میانگین نتایجی که در مرحله 6 به دست آوردید ، محاسبه نمایید .?همانطور که ممکن است متوجه شده باشید ، الگوریتم تکنیک Stratified k-Fold مشابه K-Folds استاندارد است . شما نیازی به کدنویسی اضافی ندارید زیرا این روش همه کارهای لازم را برای شما انجام می دهد .Stratified k-Fold همچنین یک روش داخلی در sklearn دارد - sklearn.model_selection.StratifiedKFold.import numpy as npfrom sklearn.model_selection importStratifiedKFoldX = np.array([[1, 2], [3, 4], [1, 2], [3, 4]])y = np.array([0, 0, 1, 1])skf = StratifiedKFold(n_splits=2)for train_index, test_index in skf.split(X, y):print(&#34;TRAIN:&#34;, train_index, &#34;TEST:&#34;, test_index)X_train, X_test = X[train_index], X[test_index]y_train, y_test = y[train_index], y[test_index]تمام موارد ذکر شده در بالا در مورد K-Fold CV برای تکنیک Stratified k-Fold صادق است . هنگام انتخاب بین روش های مختلف CV، مطمئن شوید که از روش مناسب استفاده می کنید . به عنوان مثال ، ممکن است فکر کنید که مدل شما عملکرد بدی دارد ، صرفاً به این دلیل که از K-Fold CV برای اعتبارسنجی مدلی استفاده می‌کنید که بر روی مجموعه داده با عدم تعادل کلاس آموزش داده شده است. برای جلوگیری از آن ، همیشه باید یک تجزیه و تحلیل داده های اکتشافی مناسب روی داده های خود انجام دهید .Repeated k-FoldCross-Validation k-Fold تکراری یا نمونه ‌برداری تصادفی فرعی تکراری احتمالاً قوی ‌ترین تکنیک از تمام تکنیک‌های CV در این مقاله است . این یک تغییر از k-Fold است اما در مورد K-Folds تکراری k تعداد fold ها نیست . تعداد دفعاتی است که ما مدل را آموزش خواهیم داد .ایده کلی این است که در هر تکرار، نمونه‌هایی را به‌ طور تصادفی از سرتاسر مجموعه داده به عنوان مجموعه آزمایشی انتخاب می‌کنیم . به عنوان مثال ، اگر تصمیم بگیریم که 20٪ از مجموعهداده ها مجموعه آزمایشی ما باشد ، 20٪ نمونه به طور تصادفیانتخاب می شوند و 80٪ بقیه به مجموعه آموزشی تبدیل می شوند.الگوریتم تکنیک Repeated k-Fold :1- k را بعنوان تعداد دفعاتی که مدل آموزش داده می شود ، انتخاب کنید .2- تعدادی نمونه را انتخاب کنید که مجموعه آزمایشی خواهد بود .3- مجموعه داده را تقسیم کنید .4- روی مجموعه آموزشی تمرین کنید . در هر تکرار اعتبارسنجی متقاطع ، یک مدل جدید باید آموزش داده شود5- در مجموعه آزمایشی اعتبار سنجی کنید .6- نتیجه اعتبارسنجی را ذخیره کنید .7- مراحل 3 تا 6 را k بار تکرار کنید .8- برای به دست آوردن امتیاز نهایی ، میانگین نتایجی که در مرحله 6 به دست آوردید ، محاسبه نمایید .?K-Fold تکراری مزایای واضحی نسبت به استاندارد k-Fold CV دارد . اولا ، نسبت تقسیم آموزش / آزمایش به تعداد تکرارها بستگی ندارد . ثانیا ، ما حتی می توانیم نسبت های منحصر به فردی را برای هر تکرار تنظیم کنیم . ثالثاً ، انتخاب تصادفی نمونه‌ها از مجموعه داده‌ها، Repeated k-Fold را برای بایاس انتخابی مقاوم می‌سازد .با این حال ، برخی از معایب وجود دارد k-Fold CV تضمین می‌کند که مدل روی همه نمونه‌ها آزمایش می‌شود ، در حالی که K-Fold تکراری بر اساس تصادفی‌ سازی است که به این معنی است که برخی از نمونه‌ها ممکن است هرگز برای قرار گرفتن در مجموعه آزمایش انتخاب نشوند . در همان زمان ، برخی از نمونه ها ممکن است چندین بار انتخاب شوند .Sklearn به شما در پیاده سازی Repeated k-Fold CV کمک می کند . فقط از sklearn.model_selection.RepeatedKFoldاستفاده کنید . در اجرای sklearn این تکنیک باید تعداد فولدهایی که می خواهید داشته باشید (n_splits ) و تعداد دفعاتی که تقسیم انجام می شود (n_repeats ) را تنظیم کنید . این تضمین می کند که در هر تکرار فولدهای مختلفی داشته باشید .import numpy as npfrom sklearn.model_selection import RepeatedKFoldX = np.array([[1, 2], [3, 4], [1, 2], [3, 4]])y = np.array([0, 0, 1, 1])rkf = RepeatedKFold(n_splits=2, n_repeats=2, random_state=42)for train_index, test_index in rkf.split(X):print(&#34;TRAIN:&#34;, train_index, &#34;TEST:&#34;, test_index)X_train, X_test = X[train_index], X[test_index]y_train, y_test = y[train_index], y[test_index]Nested k-Foldبرخلاف سایر تکنیک‌های CV، که برای ارزیابی کیفیت یک الگوریتم طراحی شده‌اند ، Nested k-Fold CV محبوب ‌ترین راه برای تنظیم پارامترهای یک الگوریتم است .تصور کنید که ما یک پارامتر p داریم که معمولاً به الگوریتم پایه ای که ما در حال اعتبارسنجی متقابل آن هستیم بستگی دارد . به عنوان مثال ، برای رگرسیون لجستیک ، ممکن است پارامتر جریمه باشد که برای تعیین هنجار مورد استفاده در جریمه استفاده می شود.الگوریتم تکنیک Nested k-Fold :1- k را به عنوان تعداد فولدها انتخاب کنید . به عنوان مثال ، 10 :فرض کنیم این عدد را انتخاب کرده ایم .2- یک پارامتر p را انتخاب کنید . فرض کنید الگوریتم ما رگرسیون لجستیک است و p پارامتر جریمه p = {&#39;l1&#39;, &#39;l2&#39;, &#39;elasticnet&#39;, &#39;none&#39;}3- مجموعه داده را به 10 fold تقسیم کنید و یکی از آنها را برای آزمایش رزرو کنید .4- یکی از فولدهای آموزشی را برای اعتبار سنجی رزرو کنید .5- برای هر مقدار p روی 8 fold آموزشی باقیمانده آموزش دهید و روی فولد اعتبارسنجی ارزیابی کنید . اکنون 4 اندازه گیری دارید .6- مراحل 4و5 را 9 بار تکرار کنید . بچرخانید که کدام foldآموزشی ، فولد اعتبارسنجی است . اکنون 4 * 9 اندازه گیری دارید .7- p را انتخاب کنید که میانگین خطای آموزش را روی 9 دسته به حداقل می رساند . از آن p برای ارزیابی روی مجموعه تست استفاده کنید .8- از مرحله 2 ، 10 بار تکرار کنید و از هر فولد به نوبت به عنوان فولد آزمایش استفاده کنید .9- میانگین و انحراف معیار اندازه گیری ارزیابی را در 10 foldتست ذخیره کنید .10- الگوریتمی که بهترین عملکرد را داشت ، الگوریتمی بود که بهترین میانگین عملکرد خارج از نمونه را در 10 fold آزمایشی داشت .این تکنیک از نظر محاسباتی گران است زیرا در طول مراحل 1 تا 10 تعداد زیادی مدل باید آموزش و ارزیابی شوند . با این حال ، Nested k-Fold CV معمولا استفاده می شود و ممکن است در چندین کار ML واقعاً مؤثر باشد .متأسفانه ، هیچ روش داخلی در sklearn وجود ندارد که بتواند CV Nested k-Fold را برای شما انجام دهد. این لحظه ای است که شما باید یا گوگل کنید و پیاده سازی شخصی را پیدا کنید یا خودتان آن را کدنویسی کنید.Complete Cross-ValidationCV کامل کم استفاده ترین تکنیک CV است . ایده کلی این است که ما یک عدد k - طول مجموعه آموزشی را انتخاب می کنیم و روی هر تقسیم ممکن شامل k نمونه در مجموعه آموزشی اعتبار سنجی می کنیم .مقدار آن تقسیم‌ ها را می‌توان به صورت ترکیب n از k محاسبه کرد که n طول مجموعه داده است . اگر k بالاتر از 2 باشد ، باید مدل خود را چندین بار آموزش دهیم که همانطور که قبلاً متوجه شدیم از نظر زمان فرآیند گران قیمت و از جنبه محاسبات پیچیده است .به همین دلیل است که از CV کامل یا در تحقیقات نظری استفاده می شود و یا در صورت وجود فرمول مؤثری که به حداقل رساندن محاسبات کمک می کند .الگوریتم تکنیک Complete Cross-Validation :1- یک عدد k را به عنوان طول مجموعه آموزشی انتخاب کنید .2- مجموعه داده را تقسیم کنید .3- روی مجموعه آموزشی تمرین کنید .4- در مجموعه آزمایشی اعتبار سنجی کنید .5- نتیجه اعتبارسنجی را ذخیره کنید .6- مراحل 2 تا 5 را به اندازه ترکیب n از k تکرار کنید .7- برای به دست آوردن امتیاز نهایی ، میانگین نتایجی که در مرحله 5 به دست آوردید ، محاسبه نمایید .Cross-Validation در یادگیری ماشین :بیشتر تکنیک های اعتبار سنجی متقابل ذکر شده در بالا به طور گسترده در ML استفاده می شود . مهم است که به خاطر داشته باشید که استفاده از تکنیک CV مناسب ممکن است در زمان شما صرفه جویی کند و به انتخاب بهترین مدل برای کار کمک کند .این بدان معناست که اولا ً، بهتر است همیشه مدل را اعتبارسنجی متقابل کنید و ثانیاً باید یک روش CV مربوطه را انتخاب کنید . بنابراین ، دانستن مزایا و معایب تکنیک‌های اعتبارسنجی متقابل حیاتی است .لازم به ذکر است که اگر می‌خواهید مدل را Cross-Validationکنید ، همیشه باید دفترچه راهنمای مدل را بررسی کنید زیرا برخی از الگوریتم‌های ML ، به عنوان مثال ، CatBoost روش‌های CVداخلی خود را دارند. ممکن است آنها را مربوط به وظیفه ML خود بیابید و به جای روش های داخلی sklearn از آنها استفاده کنید.به طور کلی ، همانطور که ممکن است متوجه شده باشید ، بسیاری از تکنیک‌های CV دارای روش‌های داخلی sklearnهستند. من به شدت توصیه می کنم از آنها استفاده کنید زیرا این روش ها در زمان برای کارهای پیچیده تر صرفه جویی زیادی می کنند .Cross-Validation در یادگیری عمیق :Cross-Validation در یادگیری عمیق (DL ) ممکن است کمی مشکل باشد زیرا اکثر تکنیک های CV حداقل چند بار نیاز به آموزش مدل دارند .در یادگیری عمیق ، معمولاً به دلیل هزینه‌های مرتبط با آموزش مدل‌های مختلف ، از CV اجتناب می‌کنید . به جای انجام k-Foldیا سایر تکنیک های CV ، ممکن است از یک زیرمجموعه تصادفی از داده های آموزشی خود به عنوان hold-out برای اهداف اعتبار سنجی استفاده کنید .به عنوان مثال ، کتابخانه یادگیری عمیق Keras به شما امکان می دهد یکی از دو پارامتر را برای تابع fit که آموزش را انجام می دهد ، ارسال کنید .validation_split : درصدی از داده هایی که باید برای اعتبار سنجی hold-out شوند .validation_data : یک تاپل از (X, y) که باید برای اعتبارسنجی استفاده شود . این پارامتر ، پارامتر validation_split را نادیده می گیرد ، به این معنی که شما می توانید تنها یکی از این پارامترها را در یک زمان استفاده کنید .همین رویکرد در آموزش های رسمی سایر فریمورک های DLمانند PyTorch و MxNet استفاده می شود . آنها همچنین پیشنهاد می کنند مجموعه داده را به سه بخش تقسیم کنید : آموزش ، اعتبار سنجی و آزمایش .آموزش : بخشی از مجموعه داده برای آموزشاعتبار سنجی : بخشی از مجموعه داده برای اعتبارسنجی در حین آموزشآزمایش : بخشی از مجموعه داده برای اعتبار سنجی نهایی مدلبا این حال ، اگر مجموعه داده کوچک است (شامل صدها نمونه) می توانید از اعتبارسنجی متقابل در وظایف DL استفاده کنید . در این مورد ، یادگیری یک مدل پیچیده ممکن است یک کار بی ربط باشد ، بنابراین مطمئن شوید که کار را بیشتر پیچیده نکنید .بهترین روش ها و نکات :لازم به ذکر است که گاهی اوقات انجام Cross-Validation ممکن است کمی مشکل باشد .به عنوان مثال ، اشتباه منطقی هنگام تقسیم مجموعه داده بسیار آسان است که ممکن است منجر به یک CV غیرقابل اعتماد شود .ممکن است نکاتی را بیابید که باید هنگام Cross-Validation یک مدل همچنان که در زیر آمده مد نظر داشته باشید :1- هنگام تقسیم داده ها منطقی باشید (آیا روش تقسیم منطقی است)2- از روش CV مناسب استفاده کنید (آیا این روش برای مورد استفاده من قابل اجرا است)3- هنگام کار با سری های زمانی ، گذشته را ارزیابی نکنید (به اولین نکته مراجعه کنید)4- هنگام کار با داده های پزشکی یا مالی ، به یاد داشته باشید که آن را بر اساس شخص تقسیم کنید . از داشتن داده برای یک نفر هم در آموزش و هم در مجموعه تست خودداری کنید زیرا ممکن است به عنوان نشت داده در نظر گرفته شود .5- هنگام برش تکه‌ها از تصاویر بزرگ‌تر ، به یاد داشته باشید که با شناسه تصویر بزرگ تقسیم کنید .البته ، نکات از کار به کار متفاوت است و پوشش همه آنها تقریبا غیرممکن است . به همین دلیل است که انجام یک تجزیه و تحلیل داده های اکتشافی جامد قبل از شروع Cross-Validation یک مدل همیشه بهترین روش است .افکار نهایی :Cross-Validation ابزار قدرتمندی است . هر دانشمند داده باید با آن آشنا باشد . در زندگی واقعی ، شما نمی توانید پروژه را بدون اعتبارسنجی متقابل یک مدل به پایان برسانید .به نظر من بهترین تکنیک های CV ، Nested k-Fold و استاندارد k-Fold هستند . من شخصاً از آنها در پروژه تشخیص تقلب استفاده کردم . Nested k-Fold و همچنین GridSeachCV به من کمک کرد تا پارامترهای مدل خود را تنظیم کنم . از طرف دیگر، k-Fold برای ارزیابی عملکرد مدل من استفاده شد .در این مقاله ، ما متوجه شدیم که اعتبارسنجی متقابل چیست ، چه تکنیک‌های CV در طبیعت وجود دارد و چگونه آنها را پیاده‌سازی کنیم . در آینده الگوریتم های ML قطعاً حتی بهتر از امروز عمل خواهند کرد . با این حال ، اعتبار سنجی متقابل همیشه برای پشتیبان گیری از نتایج شما مورد نیاز است .امیدواریم با این اطلاعات ، مشکلی در تنظیم CV برای پروژه بعدی یادگیری ماشینی خود نداشته باشید .منابع :1) https://www.geeksforgeeks.org/cross-validation-machine-learning/2) https://machinelearningmastery.com/k-fold-cross-validation/3) https://towardsdatascience.com/cross-validation-in-machine-learning-72924a69872f4) https://towardsdatascience.com/why-and-how-to-do-cross-validation-for-machine-learning-d5bd7e60c1895) https://scikit-learn.org/stable/modules/cross_validation.html</description><category>zeynab moradi</category><author>zeynab moradi</author><pubDate>Tue, 14 Dec 2021 23:21:39 +0330</pubDate></item><item><title>یادگیری ماشین</title><link>https://virgool.ir/@Zeynab.moradi/یادگیری-ماشین-idvcovhsjdjw</link><description>من در این  دوره قصد دارم به طور خلاصه راجب یادگیری ماشین توضیح بدهم .  در یونان باستان عقیده داشتن که می‌توان در یک بدنه فلزی مغز ساختگی قرار داد و یکی از اسطوره های یونان یک غول آهنی بود که مغز مکانیکی داشت البته یونانیان دست به کار شده بودند در آثار به جا مانده از آنان قطعات مکانیکی پیچیده ای کشف شده بود . آلن تورینگ یکی از تاثیرگذارترین افراد در حوزه هوش مصنوعی است او تست تورینگ را پیشنهاد داد که معیاری برای تشخیص هوشمندی ماشین است. هوشمندی را می‌توان با اشکال مختلف تعریف کرد از منظر اول هوشمندی یا در رفتار است یا در تفکر و از منظر دوم هوشمندی در انسان گونه بودن یا در منطقی فکر کردن است که در کل به چهار تعریف میرسیم . هوش مصنوعی چیزی است که : ۱)منطقی فکر کند ۲)منطقی رفتار کند ۳)مانند انسان فکر کند ۴)مانند انسان عمل کند . یادگیری ماشین بعد از هوش مصنوعی موضوعیت پیدا کرد و آن را می‌توان زیر مجموعه هوش مصنوعی در نظر گرفت. مهم ترین ویژگی یادگیری ماشین ، یادگیری با استفاده از داده و بدون استفاده از دستورات مستقیم است. ویژگی دیگر یادگیری ماشین تغییر خود با دیدن داده ها است یعنی مانند انسان با کسب تجربه رفتار خود را تغییر دهد . حال که با هوش مصنوعی و شاخه های آن آشنا شدیم به بررسی کاربرد ها و مشاغل این حوزه میپردازیم . قدرت الگوریتم های یادگیری ماشین امکانات بسیاری را به جامعه عرضه کرده و حوزه های بسیاری به آن وابسته شدند . صنعت ، تجارت ، دانشگاه ، سلامت ، اقتصاد و … از یادگیری ماشین برای پیشبرد اهداف خود استفاده میکنند . اولین کاربرد آن در تشخیص ایمیل های Spam بود .امروزه ماشین های بدون راننده در سطح شهرها در حال حرکت هستند ، اقتصاددانان برای پیش بینی روند بازار از آن استفاده میکنند . به همین دلیل استفاده الگوهای داده درتصمیم گیری شرکت ها ، شغل های مرتبط با داده به یکی از جذاب ترین شغل ها حاضر تبدیل شدند . یکی از دلایل این جذابیت توجه ویژه برنامه نویسان و شرکت های برنامه سازی به آن است . زبان  Pythonو R  محبوب ترین زبان های قابل استفاده برای یادگیری ماشین هستند . با درک اهمیت دانش و اطلاعات ، بسیاری به فکر استفاده از داده های موجود افتادند و سعی کردند در تصمیم گیری ها از نتایج تحلیل داده استفاده کنند مثل ثبت روزانه وزن ، ثبت پیاده روی روزانه ، ثبت مخارج ماهیانه وپیدا کردن روش هایی برای کاهش هزینه ها و بسیاری از گزارش های دیگر که افراد برای مقاصد شخصی خود از این اطلاعات استفاده کنند . احتمالا کلماتی مانند دانشمند داده ، تحلیلگر داده و مهندس یادگیری ماشین به گوشتان خورده حال به معرفی میپردازیم . تحلیل گر داده : داده خام قبل از تبدیل شدن به دانش نیازمند ذخیره سازی مناسب  و آماده سازی های می‌باشد . تحلیلگرداده معماری مناسب برای جمع اوری اطلاعات یک سازمان را طراحی می‌کند و پایگاه داده مناسب برای این کار را انتخاب می‌کنند و سپس آماده سازی و انتخاب قالب مناسب ، آنها را پایگاه داده ای که طراحی کرده ذخیره می‌کند و قدرت تحلیل بالایی دارند داشتن مهارت برنامه نویسی ضروری نمیباشد می‌تواند از نرم افزارها یا سرویس وب برای انجام امور استفاده کند . دانشمند داده : سطح بالاتری از تحلیلگرداده دارد نیازمند دانش آماری ، ریاضیاتی و برنامه نویسی قوی تری نسبت به تحلیلگر داده است . مهندس داده : کارش با مفاهیم کلان داده یا روند رسیدن داده خام به دست مصرف کنندگان داده میباشد . پس از مشورت با دیگر اعضا شرکت و انتخاب منابع داده ، داده های منابع مختلف را یکپارچه می‌کنند و برای نگهداری بهینه آن ها برنامه ریزی می‌کند . مهندس یادگیری : مهندس یادگیری ماشین نقاط مشترک فراوانی با مهندس داده دارد . هر دو فرایند رسیدن داده از محل تولید تا مدل نقش داشته و با ساختار داده و پیچیدگی های مرتبط با آن آشنایی دارد . دانش یادگیری ماشین برای مهندس یادگیری ماشین الزامی است و مسئول رساندن خروجی به کاربر نهایی است . او مدل تولید شده را بررسی و مدل نظری را وارد فرایند عملیاتی می‌کند . او باید پیچیدگی های محاسباتی و حافظه ای را محاسبه کند و مدل طراحی شده توسط دانشمند داده را برای کار در مقیاس بزرگتر آماده کند . یادگیری ماشین در معدن نیز کاربرد های دارد که شامل : ۱)پردازش تصاویر ماهواره ای : ماهواره های مختلفی برای مقاصد زمین شناسی وجود دارند از این تصاویر برای شناسایی و ترسیم نقشه های زمین شناسی منطقه مورد نظر به دست می آید .۲)پیش بینی متغییرهای ژئومتالوژیکی : آمار و احتمال در حوزه کشف معدن کاربرد دارد چون نمونه برداری در معدن هزینه زیادی دارد و از این روش با کمترین داده بیشترین اطلاعات را بدست آورد استفاده از یادگیری ماشین و در این زمینه بسیار کارآمد است. ۳)آنالیز تصاویر مربوط به جعبه مغزه ها : حفاری اکتشافی به چاه هایی گفته می‌شود که برای برسی های بیشتر در زمین حفر می‌شوند . این حفاری ها در اندازه های مشخصی انجام شده و مغزه های حاصل از حفاری در جعبه های مشخصی برای تحلیل های بعدی قرار میگیرند . ۴)پردازش تصاویر گرفته شده از پهپاد برای شناسایی هدف های از پیش تعیین شده . در مصاحبه با مهندس هادی ستوده ، دانشمند داده در کوئرا ، ایشان توصیه کردند کسی که میخواهد کار کند خودش علمی راجب موضوع که کار میکند داشته باشد که اگر سیستم اشتباه کرد بفهمد و جلو ضرر را بگیرد . حال میخواهیم روش های یادگیری ماشین و همچنین به معرفی انواع داده نحوه بررسی دقت مدل یادگیری بپردازیم . انواع مختلفی داده داریم که شامل : ۱)تصاویر : عموما به آن بینایی ماشین میگوییم داده ها تصاویر هستند که به صورت اعداد در ماشین ذخیره می‌شوند و مسائل را حل می‌کنند مثل تشخیص چهره ، تشخیص پلاک خودرو ۲)کلمات (زبان طبیعی) : امکان برقراری ارتباط میان انسان ها و ماشین ها فراهم می‌شود که ممکن است به صورت نوشتاری یا صوت باشد کاربرد ها آن شامل : تشخیص گفتار ، دسته بندی نوشتاریا نظرات میباشد ۳)جداول : معادل پایگاه داده در سیستم نرم افزاری هستند . اطلاعات داخل جداول را به الگوریتم یادگیری ماشین میدیم و میخواهیم مسائل را حل کنند که دو نوع داده داریم نوع اول داده های عددی هستند مثل سن و نوع دوم داده ها داده دسته ای مثل جنسیت ۴)سری زمانی : در بعضی داده ها تغییرات آن و در نتیجه مقدار آن در طول زمان اهمیت دارد مانند نوار قلب . مراحل انجام یادگیری ماشین دارای چهار عنصر اساسی است : ۱)الگوریتم برای تصمیم گیری ۲)معیاری برای امتیازدهی اینکه عملکرد مدل چقدر خوب بوده است . ۳)بررسی خودکار کیفیت مدل براساس امتیاز . ۴)روش خودکار برای بهبود امتیاز بر اساس ایجاد تغییرات در مدل . یادگیری ماشین سه نوع که شامل یادگیر بانظارت، یادگیری بی نظارت ، یادگیری تقویتی می‌باشد . یادگیری با نظارت : الگوریتمی است که با استفاده از داده های دارای برچسب هستند الگو مناسب را پیدا می‌کند یعنی بتواند خروجی را برای ورودی جدید تخمین بزند و شامل دو دسته می‌شود : طبقه بندی : (داده ها را تقسیم می‌کند و دسته درست برای نمونه های جدید انتخاب می‌کند مانند تشخیص بیماری) -  Regression: ( تخمین مقدار یک ویژگی برای نمونه می‌باشد و خروجی ها پیوسته است مانند تخمین قیمت بازار ) یادگیری بی نظارت : در این روش مدل به تنهایی و‌ بدون کمک برچسب هایی الگو پنهان را پیدا می‌کند و شامل خوشه بندی و کاهش ابعاد می‌شود . خوشه بندی یعنی دسته بندی به صورت اتوماتیک داده ها به این صورت که داده های هر خوشه ویژگی یکسانی داشته باشند . کاهش ابعاد یعنی کاهش دادن تعداد ویژگی هایی که از آنها برای آموزش مدل استفاده میکنیم . اندازه ای به مراتب کوچیکتر از ورودی داشته باشد . یادگیری تقویتی : روشی است که با ذهنیت آزمون خطا کار می‌کند مانند بازی ها.سنجش یادگیری برای آموزش مدل دادگان را استفاده می‌کند که به دادگانی برای آموزش مدل استفاده می‌شود دادگان آموزش و به دادگانی که برای ارزیابی استفاده می‌شوند ، دادگان آزمایش میگویی . در مصاحبه با مهندس هادی یامی ، دانشمند کاربردی در شرکت Microsoft توصیه کردند حوزه یادگیری ماشین کار با داده و هوش مصنوعی به شدت حاد و حادتر خواهد شد و اگر علاقه دارید حتما وارد این حوزه شوید چون هم لذت خواهید برد هم خیلی کار وجود دارد و به شدت حاد و حادتر خواهد شد . Python برای علم داده : Python یک زبان برنامه نویسی است که در اوایل دهه‌ی ۹۰ میلادی ، توسط Guido Van Rossum در هلند اختراع شد . از زمان اختراعش تا امروز به عنوان یک زبان برنامه نویسی سطح بالا در توسعه‌ی برنامه‌های وب و موبایل و همچنین در آنالیز داده و محاسبات علمی به کار رفته است . هدف اصلی از توسعه‌ی این زبان ، اتوماسیون کار‌های تکراری ، برای توسعه سریع برنامه‌ها است . Python زبانی به نسبت آسان برای یادگیری است زیرا کدهای آن تمیز و قابل فهم است . بنابراین غافل‌‌گیر کننده نیست که بیشتر برنامه نویس‌ها با آن آشنا هستند . که دارای مفسر است نوشتار ساده تری دارد به همین دلیل سریع قابل یادگیری بودن بسیار محبوب شده است . این زبان داری کتابخانه های متنوعی برای کار با داده و انجام عملیات یادگیری ماشین دارد که در اینجا به چند مورد از پرکاربردترین کتابخانه های آن اشاره میکنیم .  Numpy: یکی از کتابخانه های پرکاربرد است که داده از منابع مختلف جمع اوری میشود به شکل آرایه ای از اعداد در می آید . Pandas : یکی دیگر از کتابخانه ها است . در پانداس ساختار اصلی داده به صورت Data Form است یعنی در واقع یک آرایه دو بعدی است که در آن سطر و ستون عنوان دارند .  Matplotlib:  هم یکی دیگر کتابخانه های پایتون است . ساخت نمودارهایی که بتوانند اطلاعات را به خوبی انتقال دهند یکی دیگر از مهم ترین کارها در تحلیل داده است و در ساخت نمودارهای دو بعدی کاربرد دارد و رابط کاربری آن بسیار شبیه Matlab است . Scikit Learn : معروف ترین کتابخانه پایتون می‌باشد که حاوی ابزار های متنوعی برای یادگیری ماشین و مدل سازی آماری است . یادگیری ماشین به این دلیل مهم است که کارهایی که قبلا تنها توسط انسان ها امکان پذیر بود را با سرعت بیشتر و دقت بیشتر انجام دهد حتی برای حل مشکلات بزرگتر مثل پیش بینی وقایع طبیعی . به دلایل افزایش بی حد و حصرداده ها ، ذخیره سازی مقرون به صرفه داده ها و افزایش قدرت پردازنده ها و کاهش هزینه های آن ها خیلی آسان‌تر و فراگیر شدند . داده اساس یادگیری ماشین است الگوریتم ها با داده بد عملکرد خوبی ندارند . از جمله چالش ها مربوط به داده تعداد ناکافی داده ها است . یعنی اگر به تعداد کافی داده به الگوریتم تزریق نکنیم نمیتوانیم انتظار عملکرد خوبی داشته باشیم ، داده بی کیفیت یعنی پر از مقادیر اشتباه و گم شده است . و در نهایت انتخاب ویژگی مناسب یعنی ویژگی انتخاب کنیم که مدل بتواند از آن آموزش ببیند و از دل آن الگویی برای پیش بینی آینده استخراج کند . حال که توانستیم چالش های مربوط به داده رو مدیریت کنیم به سراغ چالش های الگوریتمی میرویم که شامل سه چالش میشود . مسئله بیش برازش: مدل نمیتواند آینده را به درستی پیش بینی کند علتش هم این است که داده ها آموزش را زیاد از حد یادگرفته اند . مسئله کم برازش : مدل نمیتواند به خوبی از دادگان آموزش را یاد بگیرد یکی از دلایلش داده نامناسب می‌باشد داده نامناسب یعنی داده به قدری بی کیفیت است که اطلاعات دقیقی از هدفی که قصد مدل کردن آن داریم نمیدهد . مسئله زمان : زمان از دو جهت اهمیت دارد ؛ هم مدت زمانی که طول میکشد آموزش مدل تمام شود ، هم زمانی که مدل برای پیش بینی نمونه ها مصرف می‌کند . دانشمند داده سعی می‌کند هر دو زمان را کمینه کند . در صحبت با مهندس سینا رسولی ، دانشمند و رهبر داده در کافه ‌بازار فهمیدیم که لازم است آمار جبر خطی و یادگیری ماشین آشنا باشیم به طور کلی هر مسیری میروید تلاش کنید و کنار توانایی های مختلف کارهای عملی یاد بگیرید . برای حل مسئله حوزه یادگیری ماشین این گام هایی باید طی شود : ۱)دریافت و بررسی داده  ۲)آماده سازی داده ۳)انتخاب و آموزش مدل مناسب ۴)تست و ارزیابی . برای آشنایی بیشتر با نحوه حل سوالات حوزه یادگیری‌ ماشین ، دیتاست بسیار ساده‌ای را مورد بررسی و ارزیابی قرار داده‌ایم . که به دلیل طولانی بودن برای یادگیری آن به سایت کوئرا مراجعه کنید . مهندس علی بهجتی ، مهندس داده در شرکت Booking در مصاحبه با کوئرا توصیه کردند که زیرساخت های مناسبی برای دیتا در ایران وجود ندارد و شرکت ها در این زمینه جای کار دارند و نیاز اساسی به مهندس داده دارند که پیشرفت زیادی کنند . چرخه تب تکنولوژی : نمودار رشد تکنولوژی‌های مختلف را در طی زمان نشان می‌دهد . بر این اساس هر تکنولوژی ۵ مرحله اصلی را طی می‌کند . به این صورت که ابتدا معرفی می‌شود و شروع به مشهور شدن می‌کند . در این مرحله اغلب شرکت‌ها به استفاده از این فناوری جدید روی می‌آورند . در مرحله دوم که اوج قله است ، نام آن تکنولوژی در همه‌جا شنیده شده و با جذب سرمایه‌گذار ، بسیاری از استارت‌آپ‌ها شروع به معرفی و استفاده از آن می‌کنند . اما در مرحله سوم محدودیت‌های این تکنولوژی شناخته می‌شود و آهسته از شهرت آن کاسته شده و بسیاری استفاده از آن را کنار می‌گذارند . در مرحله  چهارم ، تنها برخی کسانی که در عرصه‌ آن تکنولوژی باقی‌مانده‌اند شروع به فعالیت اصلی در این حوزه کرده و تکنولوژی شروع به رشد می‌کند تا زمانی که به مرحله پایانی یعنی پختگی و ثبات نسبی برسد . هوش مصنوعی که ما تا حالا مطالعه کردیم هوش مصنوعی محدود است .. هوش مصنوعی عمومی عبارت است از ساختن عامل هوشمندی که مانند انسان از هوش عمومی برخوردار باشد که توانایی آموختن در مواجه با هر مسئله جدیدی را داشته باشد و محدود به یک زمینه یا مسئله خاص نباشد داری ابعاد متنوع و رشته های مختلفی باشد . مسئله هوش مصنوعی عمومی ابعاد متنوعی دارد و رشته‌های مختلفی را حول خود گرد می‌آورد . بخشی از مسائل آن به فلسفه و به طور دقیق‌تر فلسفه ذهن برمی‌گردد . بهترین راه‌ها برای تحقیق درباره هوش مصنوعی عمومی ، مطالعه هوش طبیعی است . هر چه شناخت بیشتری از مغز خودمان و نحوه کارکرد آن پیدا کنیم ، ابعاد بیشتری از مسئله هوش به رویمان باز می‌شود . از همین روست که یکی از رویکردهای ارزشمند در این زمینه مطالعه رشته‌هایی مثل علوم اعصاب و روان‌شناسی است که درباره آن چه در سر انسان می‌گذرد تحقیق می‌کنند . تکنیک فناوری : در ادامه تحولات شگفتی که برای هوش مصنوعی پیش‌بینی می‌شود ، از نقطه‌ای نام برده می‌شود که هم با شکوه و هم دلهره برانگیز است و آن نقطه تکینگی فناوری است . زمانی که پیشرفت تکنولوژی به نقطه‌ای غیرقابل کنترل و برگشت‌ناپذیر برسد که تمدن انسانی را تحت تاثیر قرار دهد . از مثال‌های چنین پیشرفتی که می‌تواند شگفت انگیز یا خطرناک باشد ، ادامه دار بودن افزایش قدرت پردازشی و تحقق هوش مصنوعی عمومی است .  شرکت های پیشرو در زمینه هوش مصنوعی و یادگیری ماشین ، قدرت پردازش بالا و فراوانی داده از اهمیت زیاد برخوردار است . به معرفی چهار شرکت معروفت این حوزه میپردازیم . شرکت  Deep Mind: هدف بلند مدت خود را حل مسئله هوشمندی و ساخت سیستم‌های حل مسئله با عمومیت و توانایی بیشتر که از آن به همان هوش مصنوعی عمومی یاد می‌کند اعلام کرده است . شرکت Open AI : مقر اصلی آن در سانفرانسیسکوی آمریکا قرار دارد و در حال حاضر یکی از شرکت‌های پیشروی حوزه هوش مصنوعی است. این شرکت هم هدف خود را ساختن هوش مصنوعی عمومی‌ای می‌داند که برای بشریت مفید واقع شود . هوش مصنوعی عمومی در تعریف آن‌ها سیستم‌های فوق خودکاری هستند که انسان‌ها را در بیشتر کارهای ارزشمند از نظر اقتصادی پشت سر می‌گذارند . شرکت  Facebook AI: یک بخش تحقیقاتی ویژه هوش مصنوعی دارد که از پیش‌گامان این حوزه به شمار می‌رود . زمینه‌های تحقیقاتی این بخش شامل ابعاد مختلف یادگیری ماشین از جمله بینایی ماشین و پردازش زبان طبیعی می‌شود . شرکت  Google AI: شرکت Google هم به پشتوانه منابع پردازشی و داده‌ای عظیمش گروهی ویژه هوش مصنوعی تاسیس کرده است که به دنبال توسعه هوش مصنوعی و استفاده از آن در محصولات و زمینه‌های مختلف است . کتابخانه این شرکت هم‌چنان در صنعت بیشترین استفاده را برای پیاده سازی الگوریتم‌های یادگیری ماشین دارد . در آخر چند کتاب پیشنهادی در سطح های مختلف برای یادگیری هوش مصنوعی معرفی میکنیم :ابتدایی سطحmachine learning for dummies متوسط سطحReinforcement learning an introductionسطح پیشرفته (Pattern recognition and machine learning) امیدوارم توانسته باشم مفاهیم کلی یادگیری ماشین را در این درسنامه گفته باشم که با مراجعه به سایت کوئرا و گذراندن دوره یادگیری ماشین به طور کلی این مفاهیم را درک خواهید کرد .                                  https://quera.ir/college/land/college/8522/   منبع</description><category>zeynab moradi</category><author>zeynab moradi</author><pubDate>Mon, 22 Nov 2021 00:43:27 +0330</pubDate></item></channel></rss>