中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

我們該如何面對和使用機(jī)器學(xué)習(xí)技術(shù)?

2019-01-10    來源:raincent

容器云強(qiáng)勢上線!快速搭建集群,上萬Linux鏡像隨意使用

當(dāng)我第一次聽說機(jī)器學(xué)習(xí)的時候,我的反應(yīng)幾乎是 “切”。我才不管呢。

我不認(rèn)為它對我和我的工作有多大的影響。我當(dāng)時正忙著開發(fā)一個軟件,這個軟件主要實現(xiàn)從某些遠(yuǎn)程源提取數(shù)據(jù), 將規(guī)則應(yīng)用于這些數(shù)據(jù),并將其顯示在屏幕上。機(jī)器學(xué)習(xí)并不會改變這個流程。

事實上,我上面所說的只是一個蒼白的謊言。我當(dāng)時被嚇壞了。因為每當(dāng)有一種新的技術(shù)正在流行,那么我必須掌握,這樣才能保持與時俱進(jìn)。而這一次, 它不僅僅是一個新的編程語言或 JavaScript 框架。這是一門全新的技術(shù)。我不知道這會對我寫的軟件產(chǎn)生怎樣的影響,但我有預(yù)感,這絕不是好事。

沒錯,事實證明確實是我落后了。機(jī)器學(xué)習(xí)的確非常適合我所從事的工作,雖然從使用上來講與之前的方法肯定有所不同,但并沒有達(dá)到讓人震驚的地步,也證明我的害怕并不合理。讓我用一種看似離題的東西來解釋——“業(yè)務(wù)邏輯”。

“業(yè)務(wù)邏輯層”是位于 “表示層” (即用戶看到的內(nèi)容) 和 “數(shù)據(jù)層” (即我們擁有的信息) 之間的代碼位(譯者注:可參考三層架構(gòu))。它是一種雙向適配器,它通過一種有意義的方式獲取數(shù)據(jù)并將其呈現(xiàn)給用戶,同時可以從用戶那里獲取有意義的輸入并且用技術(shù)手段保存數(shù)據(jù)。

對于一個簡單的應(yīng)用程序,在業(yè)務(wù)邏輯方面往往沒有什么特別的設(shè)計。這些數(shù)據(jù)與用戶希望看到的內(nèi)容相匹配,因此這些應(yīng)用程序只關(guān)注將數(shù)據(jù)放在屏幕 (也可能是一張紙) 上。它們往往很容易編寫和維護(hù),因為沒有很重要的邏輯關(guān)系。

當(dāng)然,你最終還是需要多一點的邏輯性的東西。當(dāng)用戶輸入一個特定的值——通知他們某一特定的東西;當(dāng)數(shù)據(jù)有一些特殊的價值——顯示一些特殊的東西。像這樣的規(guī)則便是應(yīng)用程序的業(yè)務(wù)邏輯。這些規(guī)則往往一開始很簡單,由于經(jīng)驗不足或出于權(quán)宜之計,這些規(guī)則往往被錯誤地放入表示層或數(shù)據(jù)層。但它們很快變得相當(dāng)復(fù)雜,你的代碼將變得復(fù)雜且沒有邏輯,這對應(yīng)用開發(fā)來說是難以維護(hù)和發(fā)展的。那么正確處理這些規(guī)則的正確方案是什么呢?答案是:讓他們自己成為獨(dú)立的一層。

但是隨著規(guī)則的增長和擴(kuò)展,業(yè)務(wù)邏輯層本身可能會變得相當(dāng)復(fù)雜。我在一家保險公司工作了多年,我的親身經(jīng)歷讓我明白這一點。在俄亥俄州的庫亞霍加縣,如果環(huán)保局對車輛的檢查不超過 90 天,那就做一件事。但如是在富蘭克林或庫亞霍加 (而不是其他任何縣),環(huán)保局的檢查不超過 60 天,則做一些其他的事情。真是令人抓狂!這樣的代碼會很快失控,變得像個 marinara 面條。

通常,解決這個問題的辦法是使用規(guī)則引擎。你可以在外部軟件中定義所有規(guī)則,然后使用該軟件來執(zhí)行規(guī)則,而不是編寫一組深度嵌套的難以理解的條件。規(guī)則引擎針對管理這些規(guī)則進(jìn)行了優(yōu)化,甚至可以將它們公開給業(yè)務(wù)本身,而不僅僅是開發(fā)人員。但有時即使是規(guī)則引擎也會變得難以管理,同時,規(guī)則在其中的相互作用也會變得難以理解。如果將寫代碼比作制作意大利面的話,那么最終你的代碼將是復(fù)雜的 marinara 面條,什么亂七八糟的配料都有,而不是簡單的肉醬面,可以清楚的看到你的面條。

在這一點上,有一個值得重視的事實。所有這些方法都是在過于復(fù)雜的情況下才會出現(xiàn)問題,可以肯定的是,復(fù)雜性對于每個方法來說是相對而言的。但是,一旦規(guī)則過于復(fù)雜,這些方法都會變得難以管理。那么,業(yè)務(wù)邏輯層就僅僅是實現(xiàn)一個固定的規(guī)則引擎嗎?

你好,機(jī)器學(xué)習(xí)了解一下?

機(jī)器學(xué)習(xí)就像一個類固醇上的規(guī)則引擎。它允許我們創(chuàng)建封裝復(fù)雜模式的規(guī)則,而其他技術(shù)幾乎不可能完成這樣的功能。但是,它并不是用來建立規(guī)則的,而是找到規(guī)則,然后為我們提供規(guī)則的編碼。我們要提供的只是示例和正確的答案 (對應(yīng)機(jī)器學(xué)習(xí)理論中的特征和標(biāo)簽),它將創(chuàng)建一個抽象的對象以供我們執(zhí)行這些規(guī)則(即模型)。

這真的是一個相當(dāng)巧妙的技巧!

這意味著我們可以使用模型取代所有的業(yè)務(wù)邏輯功能嗎?當(dāng)然不是。規(guī)則引擎并不能取代我們編碼的所有業(yè)務(wù)邏輯,它可以對業(yè)務(wù)邏輯層進(jìn)行增強(qiáng)。有時,我們的代碼只需要一個簡單的條件就可以工作得很好,而有時, 合理使用規(guī)則引擎可以更好地管理業(yè)務(wù)邏輯。代碼、規(guī)則引擎與機(jī)器學(xué)習(xí)三者并非對抗關(guān)系,我們應(yīng)當(dāng)從三者中正確挑選方法。應(yīng)用程序的業(yè)務(wù)邏輯層,即數(shù)據(jù)層和用戶之間的層,可以由很多東西組成: 代碼中的簡單規(guī)則、規(guī)則引擎和現(xiàn)在的機(jī)器學(xué)習(xí)模型。

事實證明,機(jī)器學(xué)習(xí)并不能改變我正在做的事情。我還在編寫軟件,主要實現(xiàn)從一些遠(yuǎn)程源提取數(shù)據(jù),將規(guī)則應(yīng)用于這些數(shù)據(jù),然后將其展示在屏幕上。但是我們找到了一種新的方法來封裝過于復(fù)雜的規(guī)則,以前我們無法管理,甚至在某些情況下無法定義這些規(guī)則。

作者:Guy Royse 譯者:郝毅

查看英文原文:Machine Learning for Developers: Lies, Truth, and Business Logic

標(biāo)簽: 代碼

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:談?wù)劵跈C(jī)器學(xué)習(xí)的編程到底比傳統(tǒng)編程強(qiáng)在哪里?

下一篇:用 Python 做機(jī)器學(xué)習(xí)不得不收藏的重要庫