官术网_书友最值得收藏!

1.2 機(jī)器學(xué)習(xí)應(yīng)用的核心開(kāi)發(fā)流程

我們經(jīng)常聽(tīng)到機(jī)器學(xué)習(xí)的研究人員開(kāi)口“特征”,閉口“模型”,也聽(tīng)過(guò)他們調(diào)侃自己是“調(diào)參”師,然而,他們口中的這些術(shù)語(yǔ)到底指什么呢?若想了解這些術(shù)語(yǔ),就先要清楚機(jī)器學(xué)習(xí)應(yīng)用開(kāi)發(fā)的核心流程。

圖1-1把機(jī)器學(xué)習(xí)應(yīng)用的核心開(kāi)發(fā)流程劃分為4個(gè)階段,實(shí)際上,基本上所有機(jī)器學(xué)習(xí)項(xiàng)目的開(kāi)發(fā)流程都是按照這4個(gè)階段來(lái)劃分和實(shí)施的。

圖1-1 機(jī)器學(xué)習(xí)的基本流程

下面對(duì)圖1-1所示的4個(gè)階段進(jìn)行解釋。

1.數(shù)據(jù)預(yù)處理(Preprocessing)

機(jī)器學(xué)習(xí)的第1階段就是處理原始數(shù)據(jù)。從圖1-1可以看出,我們需要處理帶有標(biāo)簽的原始數(shù)據(jù),形成用于模型訓(xùn)練的訓(xùn)練數(shù)據(jù)集和用于驗(yàn)證模型效果的測(cè)試數(shù)據(jù)集,包含如下兩項(xiàng)核心工作。

(1)特征提取。我們要處理的原始數(shù)據(jù)往往是以多種形式存在的,可以是來(lái)自MySQL數(shù)據(jù)庫(kù)的不同字段,也可以是原始的文本文件或圖像、視頻、音頻等多媒體文件。然而,絕大部分機(jī)器學(xué)習(xí)算法的輸入通常是某種浮點(diǎn)數(shù)矩陣形式或者向量形式的。把這些多樣化的原始數(shù)據(jù)轉(zhuǎn)化為符合算法數(shù)據(jù)的數(shù)據(jù)格式,是工作的第1步,我們通常可以把這一步稱為“特征提取”。而從原始數(shù)據(jù)中挑選出來(lái)進(jìn)行轉(zhuǎn)換,并最終用于機(jī)器學(xué)習(xí)的數(shù)值就被稱為“特征值”。例如,我們要識(shí)別花的種類,從花的圖片中將花瓣顏色、花瓣形狀、花瓣長(zhǎng)度、花瓣寬度、葉片長(zhǎng)度、葉片形狀等屬性數(shù)值化,這些數(shù)值就被定義為花的“特征”。注意,我們?cè)谶@里是通過(guò)經(jīng)驗(yàn)去選取我們覺(jué)得重要且有用的特征值的,因?yàn)樵诂F(xiàn)實(shí)場(chǎng)景下可能會(huì)有成百上千種數(shù)據(jù)類型(例如一個(gè)業(yè)務(wù)中所有數(shù)據(jù)表的字段)備選,我們不太可能將它們?nèi)坑糜跈C(jī)器學(xué)習(xí),必須有所取舍,這就是特征工程的目的。然而,依賴經(jīng)驗(yàn)選擇并不是100%可靠的。在實(shí)際工作中,我們需要和業(yè)務(wù)專家一起不斷討論和嘗試驗(yàn)證,直到確認(rèn)我們選取的特征值的確能達(dá)到業(yè)務(wù)要求。

(2)數(shù)據(jù)清洗。有時(shí),我們哪怕是把數(shù)據(jù)轉(zhuǎn)化為符合算法輸入的形式,也會(huì)出現(xiàn)很多問(wèn)題,例如,需要輸入的某些特征可能不存在、不同特征的數(shù)值區(qū)間差別太大、某些特征可能是文字形式等,這時(shí)我們需要根據(jù)情況處理這些不規(guī)范的特征值。例如,將不存在的特征設(shè)為0或取平均值,對(duì)文字形式的特征進(jìn)行編碼,或者對(duì)數(shù)值區(qū)間較大的特征進(jìn)行歸一化(Normalization)等。數(shù)據(jù)清洗的目的是讓算法訓(xùn)練所用的數(shù)據(jù)集盡量理想化,不包含不必要的干擾數(shù)值,從而提高模型訓(xùn)練的精度。

在數(shù)據(jù)集處理完成后,我們通常需要把數(shù)據(jù)集劃分為訓(xùn)練數(shù)據(jù)集和測(cè)試數(shù)據(jù)集,這樣的劃分通常是隨機(jī)的,隨機(jī)挑選80%的數(shù)據(jù)用于訓(xùn)練,將剩下的20%用于測(cè)試驗(yàn)證。數(shù)據(jù)集其實(shí)在不同的機(jī)器學(xué)習(xí)框架中均有對(duì)應(yīng)的API進(jìn)行快速劃分,這里不做詳述。

2.學(xué)習(xí)(Learning)

這個(gè)階段也是我們常說(shuō)的訓(xùn)練階段。我們已經(jīng)在數(shù)據(jù)預(yù)處理階段構(gòu)建了合適的數(shù)據(jù)集,在這個(gè)階段就需要根據(jù)自己的最終目標(biāo)選擇合適的算法模型,并根據(jù)我們的數(shù)據(jù)集進(jìn)行合理的參數(shù)設(shè)置,開(kāi)始模型訓(xùn)練。

什么是模型訓(xùn)練?我們?cè)谥袑W(xué)都學(xué)過(guò)多元函數(shù),例如:

其中,y 就是標(biāo)簽,在數(shù)據(jù)集中已經(jīng)標(biāo)注好;x1x2x3就是前面提到的特征值。我們可以這樣描述:

花的類別=a×花蕊顏色+b×花瓣顏色 +c×葉片顏色

這里,y就是花的類別,x1x2x3就分別是花蕊顏色、花瓣顏色和葉片顏色。

假設(shè)這個(gè)公式正確,我們接下來(lái)需要做的就是通過(guò)訓(xùn)練集中的數(shù)據(jù)輸入,把abc反推出來(lái)。當(dāng)然,一般來(lái)說(shuō)我們不可能找到100%完美的abc,使以上算法得到的結(jié)果和訓(xùn)練集中所有的輸入都一致,所以我們只能讓結(jié)果盡量接近原始數(shù)據(jù),并設(shè)定損失函數(shù)(Loss Function),設(shè)法使整體誤差最小。在實(shí)際場(chǎng)景中,我們通常使用MSE(Mean Squared Error,均方誤差)作為損失函數(shù)的誤差計(jì)算。

當(dāng)然,上面的例子非常簡(jiǎn)單,所要推導(dǎo)的參數(shù)也不多。在實(shí)際的深度學(xué)習(xí)模型中,我們需要推導(dǎo)的參數(shù)是以萬(wàn)甚至百萬(wàn)為單位的,這些參數(shù)通常被稱為“權(quán)重”(Weight)并被存為特定格式的文件(不同框架所存的權(quán)重文件格式各不相同)。我們將在第2章深入接觸深度學(xué)習(xí)并了解其訓(xùn)練過(guò)程。

3.評(píng)價(jià)(Evaluation)

我們?cè)趯W(xué)習(xí)階段將誤差降到足夠小之后,就可以停止訓(xùn)練,將訓(xùn)練好的模型用在數(shù)據(jù)預(yù)處理階段生成的測(cè)試數(shù)據(jù)集上驗(yàn)證效果。因?yàn)闇y(cè)試數(shù)據(jù)集的所有數(shù)據(jù)都沒(méi)有在訓(xùn)練階段出現(xiàn)過(guò),所以我們可以把測(cè)試數(shù)據(jù)視為“新”數(shù)據(jù),用來(lái)模擬真實(shí)環(huán)境的輸入,從而預(yù)估模型被部署到真實(shí)環(huán)境后的效果。

4.預(yù)測(cè)(Prediction)

我們?cè)谠u(píng)價(jià)階段確認(rèn)模型達(dá)到了預(yù)期的準(zhǔn)確率和覆蓋率(召回率)之后,就可以將模型部署上線。注意,在小規(guī)模研究中,我們可以直接使用訓(xùn)練后的模型;但在真正大流量的產(chǎn)品環(huán)境中,我們往往需要使用專門(mén)的模型服務(wù)框架(如TensorFlow Serving[4])將模型轉(zhuǎn)換為專有的格式,并在該框架下進(jìn)行高效服務(wù)。我們將在第9章學(xué)習(xí)如何在TensorFlow Serving上進(jìn)行模型的部署與驗(yàn)證。

主站蜘蛛池模板: 喀喇沁旗| 甘孜县| 凌源市| 上思县| 曲周县| 原平市| 张家口市| 井陉县| 山阴县| 苏州市| 斗六市| 南汇区| 望奎县| 武安市| 高要市| 瑞金市| 浑源县| 子洲县| 开封市| 方山县| 尼玛县| 图们市| 台南市| 屯昌县| 信丰县| 孝义市| 定陶县| 新营市| 榆树市| 公安县| 内丘县| 英山县| 佛山市| 额敏县| 岳西县| 丹寨县| 游戏| 伊春市| 乌拉特后旗| 玛沁县| 荣昌县|