談?wù)剻C(jī)器學(xué)習(xí)與傳統(tǒng)編程之間的區(qū)別

2021-02-14    分類: 網(wǎng)站建設(shè)

有些人認(rèn)為 AI 和 ML 被過分夸大了,認(rèn)為它們只不過是寫一些 if 語句,或者僅僅是和編程有關(guān)的玩意兒,但我建議你對(duì)這些觀點(diǎn)進(jìn)行仔細(xì)的思考和分辨。在本文中,我將對(duì)它們涉及到的術(shù)語進(jìn)行比較,并展示這兩個(gè)領(lǐng)域的專家之間的區(qū)別:他們究竟是做什么的?軟件工程師、軟件開發(fā)人員、機(jī)器學(xué)習(xí)專家、數(shù)據(jù)科學(xué)家......有些人甚至用程序員或碼農(nóng)稱呼他們,有些人甚至可以成為大佬、大師或明星!但是他們真的一樣嗎?如果是這樣的話,那機(jī)器學(xué)習(xí)和傳統(tǒng)編程之間究竟有什么區(qū)別?

首先,什么是機(jī)器學(xué)習(xí)?

盡管說起來很容易,AI 和 ML 只不過是 if 編程,或者更深入一點(diǎn),它只是簡(jiǎn)單的統(tǒng)計(jì)數(shù)據(jù)。我們還能知道些什么呢? ML 只是一個(gè)描述數(shù)學(xué) + 算法的新詞嗎?盡管有時(shí)這種簡(jiǎn)化似乎很有趣,但很明顯,ML更復(fù)雜。

但是讓我們來看一個(gè)更合適的解釋。

因此,簡(jiǎn)單來說,人工智能是一個(gè)包含其他領(lǐng)域的大筐,如圖像處理、認(rèn)知科學(xué)、神經(jīng)網(wǎng)絡(luò)等等。機(jī)器學(xué)習(xí)也是這個(gè)大筐中的一個(gè)組成部分。它的核心思想是:計(jì)算機(jī)不只是使用了預(yù)先編寫的算法,還學(xué)習(xí)如何解決問題本身?;蛘?,換句話說,Arthur Samuel?給出了一個(gè)很好的定義(他實(shí)際上創(chuàng)造了ML的術(shù)語):

機(jī)器學(xué)習(xí)是一個(gè)研究領(lǐng)域,使計(jì)算機(jī)無需明確編程即可學(xué)習(xí)。

是的,ML 教一臺(tái)機(jī)器來解決難以通過算法解決的各種復(fù)雜任務(wù)。那些任務(wù)是什么?好吧,你可能已經(jīng)在實(shí)踐中偶然發(fā)現(xiàn)了它們。例如它可以是你的手機(jī)上的面部識(shí)別或語音識(shí)別,駕駛汽車(Google自動(dòng)駕駛汽車),按癥狀診斷疾?。╓atson),推薦商品(如:書籍(亞馬遜),電影(Netflix),音樂(Spotify) ),個(gè)人助理(Siri,Cortana)的功能......這個(gè)列表可以列的很長(zhǎng)很長(zhǎng)。

我希望說得已經(jīng)足夠清楚了,接下來繼續(xù)談?wù)撽P(guān)于 ML 的另一個(gè)重要的問題。

任何有效的 ML 技術(shù)都可以有條件地歸于三個(gè)級(jí)別的可訪問性。這是什么意思?嗯,第一個(gè)層面是 Google 或 IBM 等這種科技巨頭的特殊用例。第二個(gè)層次是,比方說,具有一定知識(shí)的學(xué)生可以使用它。而最后一個(gè)也就是 ML 可訪問性的第三個(gè)層次是甚至一個(gè)老奶奶能夠應(yīng)對(duì)它。

我們目前的發(fā)展階段是機(jī)器學(xué)習(xí)正處在第二級(jí)和第三級(jí)交界處。因此借助這項(xiàng)技術(shù),世界的變化將會(huì)日新月異。

關(guān)于 ML 最后還有一點(diǎn)點(diǎn)說明:大多數(shù) ML 任務(wù)可以分為跟著老師學(xué)(監(jiān)督學(xué)習(xí))和沒有老師去教(無監(jiān)督學(xué)習(xí))。如果你想象一個(gè)程序員一只手拿鞭子,另一只手拿著糖,那就有點(diǎn)誤會(huì)了。

“老師”這個(gè)名字意味著人為干預(yù)數(shù)據(jù)處理的想法。在有老師參與培訓(xùn)時(shí),這是監(jiān)督學(xué)習(xí),我們有數(shù)據(jù),需要在其基礎(chǔ)上預(yù)測(cè)一些事情。另一方面,當(dāng)沒有老師進(jìn)行教學(xué)時(shí),這是無監(jiān)督學(xué)習(xí)時(shí),我們?nèi)匀挥袛?shù)據(jù),但需要自己去找到它的屬性。

好的,那么它與編程有什么不同?

但是當(dāng)我們要對(duì)某些東西進(jìn)行預(yù)測(cè)時(shí),需要用到有各種輸入?yún)?shù)的算法。若要預(yù)測(cè)匯率,必須添加昨天的匯率的詳細(xì)信息,以及發(fā)行貨幣的國(guó)家的外部和內(nèi)部經(jīng)濟(jì)變化等數(shù)據(jù)。

因此,我們需要設(shè)計(jì)一個(gè)能夠接受一組參數(shù)的解決方案,并能夠根據(jù)輸入的數(shù)據(jù)預(yù)測(cè)新的匯率。

我們需要添加成百上千個(gè)參數(shù),用它們的有限集去構(gòu)建一個(gè)非?;就瑫r(shí)不可擴(kuò)展的模型。是的,任何人都很難處理如此龐大的數(shù)據(jù)陣列。

對(duì)于這個(gè)任務(wù),我們可以用機(jī)器學(xué)習(xí)方法,那么它是怎么做的呢?

為了用 ML 方法解決相同的問題,數(shù)據(jù)工程師使用完全不同的過程。他們需要收集一系列歷史數(shù)據(jù)用于半自動(dòng)模型的構(gòu)建,而不是自己去開發(fā)算法。

在得到一組令人滿意的數(shù)據(jù)之后,數(shù)據(jù)工程師將其加載到已定制的 ML 算法中。結(jié)果會(huì)得到一個(gè)模型,這個(gè)模型可以接收新數(shù)據(jù)作為輸入并預(yù)測(cè)新結(jié)果。

數(shù)據(jù)工程師如何用機(jī)器學(xué)習(xí)設(shè)計(jì)解決方案

ML 的一個(gè)顯著的特點(diǎn)是不需要建立模型。這種復(fù)雜但有意義的事由 ML 算法完成。 ML 專家只會(huì)對(duì)其做一個(gè)小小的編輯。

ML 與編程的另一個(gè)明顯差異取決于模型能夠處理的輸入?yún)?shù)的數(shù)量。為了能夠準(zhǔn)確預(yù)測(cè),你必須添加數(shù)千個(gè)參數(shù)并以高精度執(zhí)行,因?yàn)槊總€(gè)參數(shù)都會(huì)影響最終結(jié)果。人類很難以合理的方式使用所有這些細(xì)節(jié)去構(gòu)建一種算法。

但是對(duì)于 ML 沒有這樣的限制。只要你有足夠的處理能力和內(nèi)存,就可以根據(jù)需要使用盡可能多的輸入?yún)?shù)。毫無疑問,這一事實(shí)使得 ML 現(xiàn)在變得如此強(qiáng)大和廣泛。

總結(jié)一下:ML專家,數(shù)據(jù)科學(xué)家,程序員和軟件工程師......究竟誰是誰?

根據(jù) Wiki 上的定義,Data Science?是一個(gè)多學(xué)科領(lǐng)域,它使用科學(xué)方法、流程、算法和系統(tǒng)從結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)中提取知識(shí)和見解。

看上去并不是那么酷。

但接下來還有一些有趣的東西:

使用最強(qiáng)大的硬件,最強(qiáng)大的編程系統(tǒng),以及解決問題的最有效算法。

后面還有更有趣的部分:

2012年,“哈佛商業(yè)評(píng)論”稱其為“21世紀(jì)最性感的工作”。

因此數(shù)據(jù)科學(xué)是另一個(gè)筐,就像計(jì)算機(jī)科學(xué)一樣,數(shù)據(jù)科學(xué)旨在處理數(shù)據(jù)并從中提取有用的信息。

那么編程呢?現(xiàn)在的數(shù)據(jù)科學(xué)家為了研究的目的而而需要掌握這種技能。他們不僅是程序員,也應(yīng)該具有應(yīng)用統(tǒng)計(jì)或研究背景。有些人還從事軟件工程,特別是在他們的產(chǎn)品中提供數(shù)據(jù)科學(xué)或機(jī)器學(xué)習(xí)技術(shù)的公司。最有趣的是,數(shù)據(jù)科學(xué)可以不必編程,但是會(huì)被限定在 Matlab、SPSS、SAS等工具上。

機(jī)器學(xué)習(xí)工程師的職位是怎樣的?

機(jī)器學(xué)習(xí)工程師的位置更具有“技術(shù)性”。換句話說,機(jī)器學(xué)習(xí)工程師與傳統(tǒng)的軟件工程有著比數(shù)據(jù)科學(xué)更多的相同點(diǎn)。

ML 工程師的標(biāo)準(zhǔn)任務(wù)通常和數(shù)據(jù)科學(xué)家類似,但是你還需要處理數(shù)據(jù),嘗試用不同的機(jī)器學(xué)習(xí)算法來解決問題、創(chuàng)建原型和現(xiàn)成的解決方案。

我要強(qiáng)調(diào)一下關(guān)鍵的區(qū)別:

  • 一種或多種語言(通常是Python)的強(qiáng)大編程技能;
  • 不太重視在數(shù)據(jù)分析過程中工作的能力,而是更加重視機(jī)器學(xué)習(xí)算法;
  • 能夠基于現(xiàn)成的庫使用不同的技術(shù),例如,NumPy 或 SciPy;
  • 使用 Hadoop 創(chuàng)建分布式應(yīng)用的能力等。

現(xiàn)在讓我們回到編程并仔細(xì)研究分配給程序員的任務(wù)。

程序員實(shí)際上就像數(shù)據(jù)分析師或業(yè)務(wù)系統(tǒng)開發(fā)人員。他們不必自己構(gòu)建系統(tǒng),只需針對(duì)現(xiàn)有系統(tǒng)編寫松散結(jié)構(gòu)的代碼。是的,我們可以將數(shù)據(jù)科學(xué)稱為新的編程浪潮,但編碼只是其中的一小部分。所以不要誤會(huì)。

但如果深入挖掘,我們會(huì)發(fā)現(xiàn)還有其他術(shù)語,如?Software Engineer?和?Software Developer,兩者并不相同。例如軟件工程師必須設(shè)計(jì)工程。它們涉及生產(chǎn)應(yīng)用程序、分布式系統(tǒng)、并發(fā)、構(gòu)建系統(tǒng)、微服務(wù)等。而軟件開發(fā)人員需要了解軟件開發(fā)的所有周期,而不僅僅是實(shí)現(xiàn)(有時(shí)甚至不需要任何編程或編碼)。

那么,你現(xiàn)在感受到編程和機(jī)器學(xué)習(xí)的不同了嗎?我希望本文可以幫你避免對(duì)這些術(shù)語產(chǎn)生混淆。毫無疑問,這些人都有一些共同點(diǎn),那就是技術(shù),但之間的差異要大得多。因此機(jī)器學(xué)習(xí)工程師、軟件工程師和軟件開發(fā)人員完全不可互換。

名稱欄目:談?wù)剻C(jī)器學(xué)習(xí)與傳統(tǒng)編程之間的區(qū)別
當(dāng)前鏈接:http://www.muchs.cn/news/100999.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、關(guān)鍵詞優(yōu)化網(wǎng)站策劃、網(wǎng)站收錄手機(jī)網(wǎng)站建設(shè)、定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)