摘要:機器學(xué)習(xí)也是這個大筐中的一個組成部分。我們目前的發(fā)展階段是機器學(xué)習(xí)正處在第二級和第三級交界處。機器學(xué)習(xí)工程師的職位是怎樣的機器學(xué)習(xí)工程師的位置更具有技術(shù)性。換句話說,機器學(xué)習(xí)工程師與傳統(tǒng)的軟件工程有著比數(shù)據(jù)科學(xué)更多的相同點。
翻譯:瘋狂的技術(shù)宅
https://towardsdatascience.co...
有些人認(rèn)為 AI 和 ML 被過分夸大了,認(rèn)為它們只不過是寫一些 if 語句,或者僅僅是和編程有關(guān)的玩意兒,但我建議你對這些觀點進(jìn)行仔細(xì)的思考和分辨。在本文中,我將對它們涉及到的術(shù)語進(jìn)行比較,并展示這兩個領(lǐng)域的專家之間的區(qū)別:他們究竟是做什么的?軟件工程師、軟件開發(fā)人員、機器學(xué)習(xí)專家、數(shù)據(jù)科學(xué)家......有些人甚至用程序員或碼農(nóng)稱呼他們,有些人甚至可以成為大佬、大師或明星!但是他們真的一樣嗎?如果是這樣的話,那機器學(xué)習(xí)和傳統(tǒng)編程之間究竟有什么區(qū)別?
首先,什么是機器學(xué)習(xí)?盡管說起來很容易,AI 和 ML 只不過是 if 編程,或者更深入一點,它只是簡單的統(tǒng)計數(shù)據(jù)。我們還能知道些什么呢? ML 只是一個描述數(shù)學(xué) + 算法的新詞嗎?盡管有時這種簡化似乎很有趣,但很明顯,ML更復(fù)雜。
但是讓我們來看一個更合適的解釋。
因此,簡單來說,人工智能是一個包含其他領(lǐng)域的大筐,如圖像處理、認(rèn)知科學(xué)、神經(jīng)網(wǎng)絡(luò)等等。機器學(xué)習(xí)也是這個大筐中的一個組成部分。它的核心思想是:計算機不只是使用了預(yù)先編寫的算法,還學(xué)習(xí)如何解決問題本身?;蛘撸瑩Q句話說,Arthur Samuel 給出了一個很好的定義(他實際上創(chuàng)造了ML的術(shù)語):
機器學(xué)習(xí)是一個研究領(lǐng)域,使計算機無需明確編程即可學(xué)習(xí)。
是的,ML 教一臺機器來解決難以通過算法解決的各種復(fù)雜任務(wù)。那些任務(wù)是什么?好吧,你可能已經(jīng)在實踐中偶然發(fā)現(xiàn)了它們。例如它可以是你的手機上的面部識別或語音識別,駕駛汽車(Google自動駕駛汽車),按癥狀診斷疾?。╓atson),推薦商品(如:書籍(亞馬遜),電影(Netflix),音樂(Spotify) ),個人助理(Siri,Cortana)的功能......這個列表可以列的很長很長。
我希望說得已經(jīng)足夠清楚了,接下來繼續(xù)談?wù)撽P(guān)于 ML 的另一個重要的問題。
任何有效的 ML 技術(shù)都可以有條件地歸于三個級別的可訪問性。這是什么意思?嗯,第一個層面是 Google 或 IBM 等這種科技巨頭的特殊用例。第二個層次是,比方說,具有一定知識的學(xué)生可以使用它。而最后一個也就是 ML 可訪問性的第三個層次是甚至一個老奶奶能夠應(yīng)對它。
我們目前的發(fā)展階段是機器學(xué)習(xí)正處在第二級和第三級交界處。因此借助這項技術(shù),世界的變化將會日新月異。
關(guān)于 ML 最后還有一點點說明:大多數(shù) ML 任務(wù)可以分為跟著老師學(xué)(監(jiān)督學(xué)習(xí))和沒有老師去教(無監(jiān)督學(xué)習(xí))。如果你想象一個程序員一只手拿鞭子,另一只手拿著糖,那就有點誤會了。
“老師”這個名字意味著人為干預(yù)數(shù)據(jù)處理的想法。在有老師參與培訓(xùn)時,這是監(jiān)督學(xué)習(xí),我們有數(shù)據(jù),需要在其基礎(chǔ)上預(yù)測一些事情。另一方面,當(dāng)沒有老師進(jìn)行教學(xué)時,這是無監(jiān)督學(xué)習(xí)時,我們?nèi)匀挥袛?shù)據(jù),但需要自己去找到它的屬性。
好的,那么它與編程有什么不同?在傳統(tǒng)編程中,你需要對程序的行為進(jìn)行硬編碼。在機器學(xué)習(xí)中,你將大量內(nèi)容留給機器去學(xué)習(xí)數(shù)據(jù)。
所以這些工作內(nèi)容無法互換:數(shù)據(jù)工程師無法取代傳統(tǒng)編程的工作,反之亦然。盡管每個數(shù)據(jù)工程師都必須使用至少一種編程語言,但傳統(tǒng)編程只是他所做的一小部分。另一方面,我們不能說軟件開發(fā)人員正在用 ML 算法來啟動網(wǎng)站。
ML 不是替代品,而是傳統(tǒng)編程方法的補充。例如,ML 可用于為在線交易平臺構(gòu)建預(yù)測算法,而平臺的 UI、數(shù)據(jù)可視化和其他元素仍然用主流編程語言(如Ruby或Java)編寫。
所以最主要的是:ML 被用在傳統(tǒng)編程策略無法滿足的場景,而且它不足以獨立完全完成某項任務(wù)。
那么這在實施中意味著什么呢?我們用一個匯率預(yù)測的經(jīng)典 ML 問題的需求來進(jìn)行解釋:
傳統(tǒng)的編程方法
對于任何解決方案,第一個任務(wù)是創(chuàng)建最合適的算法并編寫代碼。之后必須設(shè)置輸入?yún)?shù),如果實現(xiàn)的算法沒問題,將會產(chǎn)生預(yù)期的結(jié)果。
軟件開發(fā)人員如何制定解決方案
但是當(dāng)我們要對某些東西進(jìn)行預(yù)測時,需要用到有各種輸入?yún)?shù)的算法。若要預(yù)測匯率,必須添加昨天的匯率的詳細(xì)信息,以及發(fā)行貨幣的國家的外部和內(nèi)部經(jīng)濟變化等數(shù)據(jù)。
因此,我們需要設(shè)計一個能夠接受一組參數(shù)的解決方案,并能夠根據(jù)輸入的數(shù)據(jù)預(yù)測新的匯率。
我們需要添加成百上千個參數(shù),用它們的有限集去構(gòu)建一個非?;就瑫r不可擴展的模型。是的,任何人都很難處理如此龐大的數(shù)據(jù)陣列。
對于這個任務(wù),我們可以用機器學(xué)習(xí)方法,那么它是怎么做的呢?
為了用 ML 方法解決相同的問題,數(shù)據(jù)工程師使用完全不同的過程。他們需要收集一系列歷史數(shù)據(jù)用于半自動模型的構(gòu)建,而不是自己去開發(fā)算法。
在得到一組令人滿意的數(shù)據(jù)之后,數(shù)據(jù)工程師將其加載到已定制的 ML 算法中。結(jié)果會得到一個模型,這個模型可以接收新數(shù)據(jù)作為輸入并預(yù)測新結(jié)果。
數(shù)據(jù)工程師如何用機器學(xué)習(xí)設(shè)計解決方案
ML 的一個顯著的特點是不需要建立模型。這種復(fù)雜但有意義的事由 ML 算法完成。 ML 專家只會對其做一個小小的編輯。
ML 與編程的另一個明顯差異取決于模型能夠處理的輸入?yún)?shù)的數(shù)量。為了能夠準(zhǔn)確預(yù)測,你必須添加數(shù)千個參數(shù)并以高精度執(zhí)行,因為每個參數(shù)都會影響最終結(jié)果。人類很難以合理的方式使用所有這些細(xì)節(jié)去構(gòu)建一種算法。
但是對于 ML 沒有這樣的限制。只要你有足夠的處理能力和內(nèi)存,就可以根據(jù)需要使用盡可能多的輸入?yún)?shù)。毫無疑問,這一事實使得 ML 現(xiàn)在變得如此強大和廣泛。
總結(jié)一下:ML專家,數(shù)據(jù)科學(xué)家,程序員和軟件工程師......究竟誰是誰?根據(jù) Wiki 上的定義,Data Science 是一個多學(xué)科領(lǐng)域,它使用科學(xué)方法、流程、算法和系統(tǒng)從結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)中提取知識和見解。
看上去并不是那么酷。
但接下來還有一些有趣的東西:
使用最強大的硬件,最強大的編程系統(tǒng),以及解決問題的最有效算法。
后面還有更有趣的部分:
2012年,“哈佛商業(yè)評論”稱其為“21世紀(jì)最性感的工作”。
因此數(shù)據(jù)科學(xué)是另一個筐,就像計算機科學(xué)一樣,數(shù)據(jù)科學(xué)旨在處理數(shù)據(jù)并從中提取有用的信息。
那么編程呢?現(xiàn)在的數(shù)據(jù)科學(xué)家為了研究的目的而而需要掌握這種技能。他們不僅是程序員,也應(yīng)該具有應(yīng)用統(tǒng)計或研究背景。有些人還從事軟件工程,特別是在他們的產(chǎn)品中提供數(shù)據(jù)科學(xué)或機器學(xué)習(xí)技術(shù)的公司。最有趣的是,數(shù)據(jù)科學(xué)可以不必編程,但是會被限定在 Matlab、SPSS、SAS等工具上。
機器學(xué)習(xí)工程師的職位是怎樣的?
機器學(xué)習(xí)工程師的位置更具有“技術(shù)性”。換句話說,機器學(xué)習(xí)工程師與傳統(tǒng)的軟件工程有著比數(shù)據(jù)科學(xué)更多的相同點。
ML 工程師的標(biāo)準(zhǔn)任務(wù)通常和數(shù)據(jù)科學(xué)家類似,但是你還需要處理數(shù)據(jù),嘗試用不同的機器學(xué)習(xí)算法來解決問題、創(chuàng)建原型和現(xiàn)成的解決方案。
我要強調(diào)一下關(guān)鍵的區(qū)別:
一種或多種語言(通常是Python)的強大編程技能;
不太重視在數(shù)據(jù)分析過程中工作的能力,而是更加重視機器學(xué)習(xí)算法;
能夠基于現(xiàn)成的庫使用不同的技術(shù),例如,NumPy 或 SciPy;
使用 Hadoop 創(chuàng)建分布式應(yīng)用的能力等。
現(xiàn)在讓我們回到編程并仔細(xì)研究分配給程序員的任務(wù)。
程序員實際上就像數(shù)據(jù)分析師或業(yè)務(wù)系統(tǒng)開發(fā)人員。他們不必自己構(gòu)建系統(tǒng),只需針對現(xiàn)有系統(tǒng)編寫松散結(jié)構(gòu)的代碼。是的,我們可以將數(shù)據(jù)科學(xué)稱為新的編程浪潮,但編碼只是其中的一小部分。所以不要誤會。
但如果深入挖掘,我們會發(fā)現(xiàn)還有其他術(shù)語,如 Software Engineer 和 Software Developer,兩者并不相同。例如軟件工程師必須設(shè)計工程。它們涉及生產(chǎn)應(yīng)用程序、分布式系統(tǒng)、并發(fā)、構(gòu)建系統(tǒng)、微服務(wù)等。而軟件開發(fā)人員需要了解軟件開發(fā)的所有周期,而不僅僅是實現(xiàn)(有時甚至不需要任何編程或編碼)。
那么,你現(xiàn)在感受到編程和機器學(xué)習(xí)的不同了嗎?我希望本文可以幫你避免對這些術(shù)語產(chǎn)生混淆。毫無疑問,這些人都有一些共同點,那就是技術(shù),但之間的差異要大得多。因此機器學(xué)習(xí)工程師、軟件工程師和軟件開發(fā)人員完全不可互換。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/20026.html
摘要:密碼學(xué)家,智能合約之父。本文正是在第三屆區(qū)塊鏈全球峰會年月日上的演講內(nèi)容,從智能合約的發(fā)展著手,用通俗易懂的語言為我們解釋了智能合約與傳統(tǒng)合約的區(qū)別及其用途。我們制定智能合約,其實理由和傳統(tǒng)合約是一樣的,希望創(chuàng)建雙贏的交易。 Nick Szabo:密碼學(xué)家,智能合約之父。 智能合約理念可追溯至1993年,為密碼學(xué)家Nick Szabo所發(fā)明。自從以太坊引入智能合約之后,其在區(qū)塊鏈領(lǐng)域被...
摘要:眾多面向?qū)ο蟮木幊趟枷腚m不盡一致,但是無論哪種面向?qū)ο缶幊陶Z言都具有以下的共通功能。原型編程以類為中心的傳統(tǒng)面向?qū)ο缶幊?,是以類為基礎(chǔ)生成新對象。而原型模式的面向?qū)ο缶幊陶Z言沒有類這樣一個概念。 什么是面向?qū)ο??這個問題往往會問到剛畢業(yè)的新手or實習(xí)生上,也是往往作為一個技術(shù)面試的開頭題。在這里我們不去談如何答(fu)好(yan)問(guo)題(qu),僅談?wù)勎宜斫獾拿嫦驅(qū)ο蟆?從歷...
閱讀 1301·2021-11-24 09:39
閱讀 2678·2021-09-30 09:47
閱讀 1334·2021-09-22 15:15
閱讀 2424·2021-09-10 10:51
閱讀 1971·2019-08-30 15:55
閱讀 2984·2019-08-30 11:06
閱讀 905·2019-08-30 10:53
閱讀 842·2019-08-29 17:26