人工智能項(xiàng)目的十條建議—指導(dǎo)篇
承接昨天的人工智能項(xiàng)目十條建議-理論篇,今天我們來(lái)說(shuō)說(shuō)人工智能項(xiàng)目的 10 條指導(dǎo)原則。
在制定人工智能項(xiàng)目方案時(shí),確定構(gòu)建模型的目標(biāo)至關(guān)重要,但這種理解只能提供成功的解決方案。在時(shí)真正按照完善的建議交付,人工智能項(xiàng)目團(tuán)隊(duì)必須在執(zhí)行項(xiàng)目時(shí)遵循最佳實(shí)施路線(xiàn)。為了幫助能按照正確的路徑執(zhí)行,對(duì)之前提出的十條建議,現(xiàn)在一起探討一下執(zhí)行路徑
1. 了解您的問(wèn)題
解決任何問(wèn)題的最基本部分是確切地知道你正在解決什么問(wèn)題。確保你了解你要預(yù)測(cè)的內(nèi)容、任何限制以及該項(xiàng)目最終目的是什么。盡早提出問(wèn)題,并與同行、業(yè)務(wù)專(zhuān)家和最終用戶(hù)驗(yàn)證你的理解。如果你發(fā)現(xiàn)答案與你的理解一致,那么你就知道你是走在正確的道路上。
2. 了解您的數(shù)據(jù)
通過(guò)了解你的數(shù)據(jù)的含義,你就能夠了解哪種模型運(yùn)行良好以及使用哪些功能。數(shù)據(jù)背后的問(wèn)題將影響哪個(gè)模型最成功,計(jì)算時(shí)間將影響項(xiàng)目成本。通過(guò)使用和創(chuàng)建有意義的功能,你可以模仿或改進(jìn)人工決策。了解每個(gè)字段的含義對(duì)問(wèn)題很重要,尤其是在受監(jiān)管的行業(yè)中,數(shù)據(jù)可能需要匿名化,因此不太清楚。如果你不清楚某個(gè)功能的含義,請(qǐng)咨詢(xún)相關(guān)業(yè)務(wù)專(zhuān)家。
3. 拆分OR清洗您的數(shù)據(jù)
你的模型將如何處理看不見(jiàn)的數(shù)據(jù)?如果它不能泛化到新數(shù)據(jù),那么它在給定數(shù)據(jù)上的表現(xiàn)并不是最重要的。我們?cè)谟?xùn)練時(shí)不能讓你的模型看到部分?jǐn)?shù)據(jù),你可以驗(yàn)證它在未知情況下的表現(xiàn)如何。這種方法對(duì)于選擇正確的模型架構(gòu)和調(diào)整參數(shù)以獲得最佳性能是至關(guān)重要的。
對(duì)于監(jiān)督學(xué)習(xí)問(wèn)題,你需要將數(shù)據(jù)分成兩部分或三部分。
訓(xùn)練數(shù)據(jù)——模型從中學(xué)習(xí)的數(shù)據(jù)——通常是隨機(jī)選擇的原始數(shù)據(jù)的 75-80%。
測(cè)試數(shù)據(jù)——你評(píng)估模型的數(shù)據(jù)——是剩余的數(shù)據(jù)。
根據(jù)你正在構(gòu)建的模型類(lèi)型,你可能還需要第三個(gè)稱(chēng)為驗(yàn)證集的保留數(shù)據(jù),用于比較已根據(jù)測(cè)試數(shù)據(jù)調(diào)整的多個(gè)監(jiān)督學(xué)習(xí)模型。在這種情況下,你需要將非訓(xùn)練數(shù)據(jù)拆分為兩個(gè)數(shù)據(jù)集,即測(cè)試和驗(yàn)證。你想使用測(cè)試數(shù)據(jù)比較同一模型的迭代,并使用驗(yàn)證數(shù)據(jù)比較不同模型的最終版本。
在 Python 中,正確拆分?jǐn)?shù)據(jù)的最簡(jiǎn)單的方法就是使用 Scikit-learn 的 train_test_split 函數(shù)。
4. 不要泄露測(cè)試數(shù)據(jù)
重要的是不要將測(cè)試數(shù)據(jù)中的任何信息輸入到你的模型中。這可以對(duì)整個(gè)數(shù)據(jù)集的訓(xùn)練產(chǎn)生負(fù)面影響,也可以像在拆分之前執(zhí)行轉(zhuǎn)換(例如縮放)一樣微妙。例如,如果你在拆分之前對(duì)數(shù)據(jù)進(jìn)行規(guī)范化,則模型正在獲取有關(guān)測(cè)試數(shù)據(jù)集的信息,因?yàn)槿肿钚≈祷蜃畲笾悼赡茉诒A舻臄?shù)據(jù)中。
5.使用正確的評(píng)估指標(biāo)
由于每個(gè)問(wèn)題都是不同的,因此必須根據(jù)上下文選擇適當(dāng)?shù)脑u(píng)估方法。最幼稚—也可能是最危險(xiǎn)的——分類(lèi)指標(biāo)的準(zhǔn)確性??紤]檢測(cè)癌癥的問(wèn)題。如果我們想要一個(gè)相當(dāng)準(zhǔn)確的模型,我們總是預(yù)測(cè)“不是癌癥”,因?yàn)槌^(guò) 99% 的時(shí)間可以驗(yàn)證我們都是正確的。然而,這不是一個(gè)非常有用的模型,我們實(shí)際上想要檢測(cè)癌癥。注意考慮在分類(lèi)和回歸問(wèn)題中使用哪種評(píng)估指標(biāo)。
6.保持簡(jiǎn)單
在處理問(wèn)題時(shí),重要的是為工作選擇正確的解決方案,而不是最復(fù)雜的模型。管理層、客戶(hù),甚至你可能都想使用“最新最好的”。你需要使用最簡(jiǎn)單(非最先進(jìn))的模型來(lái)滿(mǎn)足你的需求,即奧卡姆剃刀原理。這不僅會(huì)提供更多可見(jiàn)性并縮短培訓(xùn)時(shí)間,而且實(shí)際上可以提高性能。簡(jiǎn)而言之,不要用火箭筒射擊蒼蠅或試圖用蒼蠅拍殺死哥斯拉。
7. 不要過(guò)擬合(或欠擬合)你的模型
過(guò)度擬合,也稱(chēng)為方差,會(huì)導(dǎo)致模型在未見(jiàn)過(guò)的數(shù)據(jù)上表現(xiàn)不佳。該模型只是簡(jiǎn)單地記憶訓(xùn)練數(shù)據(jù)。欠擬合,也稱(chēng)為偏差,是給模型提供的信息太少,無(wú)法學(xué)習(xí)問(wèn)題的正確表示。平衡這兩者——通常被稱(chēng)為“偏差-方差權(quán)衡”——是人工智能過(guò)程的重要組成部分,不同的問(wèn)題需要不同的平衡。
我們以一個(gè)簡(jiǎn)單的圖像分類(lèi)器為例。它的任務(wù)是對(duì)圖像中是否有狗進(jìn)行分類(lèi)。如果你過(guò)擬合此模型,它將無(wú)法將圖像識(shí)別為狗,除非它以前看過(guò)該確切圖像。如果你對(duì)模型進(jìn)行欠擬合,即使它以前看過(guò)該特定圖像,它也可能無(wú)法將圖像識(shí)別為狗。
8. 嘗試不同的模型架構(gòu)
大多數(shù)時(shí)候,為一個(gè)問(wèn)題考慮不同的模型架構(gòu)是有益的。對(duì)一個(gè)問(wèn)題最有效的方法,可能對(duì)另一個(gè)問(wèn)題不是很好。嘗試混合使用簡(jiǎn)單和復(fù)雜的算法。例如,如果執(zhí)行分類(lèi)模型,請(qǐng)嘗試像隨機(jī)森林一樣簡(jiǎn)單和像神經(jīng)網(wǎng)絡(luò)一樣復(fù)雜的事情。有趣的是,極端梯度提升 (XGBoost) 通常遠(yuǎn)遠(yuǎn)優(yōu)于神經(jīng)網(wǎng)絡(luò)分類(lèi)器。一個(gè)簡(jiǎn)單的問(wèn)題通常最好用一個(gè)簡(jiǎn)單的模型來(lái)解決。
9.調(diào)整你的超參數(shù)
超參數(shù)是模型計(jì)算中使用的值。例如,決策樹(shù)的一個(gè)超參數(shù)是樹(shù)的深度,即在決定答案之前它會(huì)問(wèn)多少個(gè)問(wèn)題。模型的默認(rèn)超參數(shù)是那些平均提供最佳性能的超參數(shù)。但是你的模型不太可能正好落在那個(gè)最佳位置。如果選擇不同的參數(shù),你的模型就可以表現(xiàn)得更好。調(diào)整超參數(shù)最常用的方法是網(wǎng)格搜索、隨機(jī)搜索和貝葉斯優(yōu)化搜索,當(dāng)然還有許多其他更高級(jí)的技術(shù)。
10. 正確比較模型
機(jī)器學(xué)習(xí)的最終目標(biāo)是開(kāi)發(fā)一個(gè)泛化良好的模型。這就是為什么正確比較和選擇最佳模型如此重要的原因。如上所述,你需要使用與訓(xùn)練超參數(shù)進(jìn)行評(píng)估時(shí)使用不同的保持集。此外,你還需要使用適當(dāng)?shù)慕y(tǒng)計(jì)測(cè)試來(lái)評(píng)估結(jié)果。
既然你已經(jīng)掌握了執(zhí)行人工智能項(xiàng)目的指導(dǎo)原則,請(qǐng)?jiān)谀憬酉聛?lái)的人工智能項(xiàng)目中嘗試一下。