0
本文作者: 叢末 | 2019-03-04 10:53 |
雷鋒網(wǎng) AI 科技評論按:本文作者 Thomas Nield,是美國西南航空公司的商務(wù)顧問,著有《Getting Started with SQL (O'Reilly)》等書,是一位經(jīng)驗豐富的數(shù)據(jù)科學(xué)家。他對于自己從事多年的職業(yè)有著非常深入的洞察和思考,日前,他在 Towards Data Science 網(wǎng)站上發(fā)表了一篇帶著點諷刺色彩的對話體文章,在為數(shù)據(jù)科學(xué)新入門者提出建議的同時,也道出了許多人對于「數(shù)據(jù)科學(xué)」這個概念的困惑(例如,當(dāng)下不少人很容易將數(shù)據(jù)科學(xué)與其他相類似的學(xué)科搞混)。文章發(fā)布后,不少讀者在評論區(qū)感慨道:「原來我不是一個人!」
本文由一位想通過自學(xué)數(shù)據(jù)科學(xué)成為數(shù)據(jù)科學(xué)家的入門者和一位真正的數(shù)據(jù)科學(xué)家的對話組成。在對話中,數(shù)據(jù)科學(xué)家向入門者提出了一大堆建議,然而入門者在聽取這些建議后最終得出的結(jié)論竟然是——「我還是把時間花在別的事情上吧」,諷刺意味顯而易見。而其中延展出了關(guān)于數(shù)據(jù)科學(xué)家的工作內(nèi)容與其他數(shù)據(jù)相關(guān)職位的工作內(nèi)容的區(qū)別等問題,更是折射出了大多數(shù)人都無法很好地將「數(shù)據(jù)科學(xué)」與其他學(xué)科區(qū)分開來——這種困惑感實質(zhì)上也是入門者在整個對話過程中都呈現(xiàn)一種「霧里看花」?fàn)顟B(tài)的原因。本文整體文風(fēng)詼諧有趣,對話稍帶點諷刺意味,其中暴露的問題也發(fā)人深省。同時,對于那些想進(jìn)入數(shù)據(jù)科學(xué)領(lǐng)域或正在從事數(shù)據(jù)科學(xué)相關(guān)工作的讀者來說,這篇文章也是一篇非常值得一讀的干貨文。以下是雷鋒網(wǎng) AI 科技評論的編譯。
我所寫的這篇文章受啟發(fā)于 2016 年的一篇文章《How it feels to learn JavaScript in 2016》。本文是一篇「諷刺作品」,因此對于其中的一些言論或建議,希望大家不要太較真。文中所提到的建議有些是好的,有些卻是非常糟糕的,很大程度上就跟大家對數(shù)據(jù)科學(xué)的定義一樣,它們都只是我的個人觀點。
正文內(nèi)容
據(jù)說你就是那個人約我見面的人。非常感謝,也感謝你請我喝咖啡。你了解數(shù)據(jù)科學(xué)是嗎?
是的,我了解。我去年加入了 PyData 和 O'Reilly Strata,并且開發(fā)了一些模型。
是的,我聽說你上周給我們公司做了一個非常好的關(guān)于機(jī)器學(xué)習(xí)的展示。我同事說這個展示非常有用。
貓和狗圖像的分類器嗎?是的,感謝你們的肯定。
無論如何,我已經(jīng)下決心要重視數(shù)據(jù)科學(xué)、人工智能以及機(jī)器學(xué)習(xí)了。我擔(dān)任了多年的分析師和顧問,工作內(nèi)容就是在 Excel 工作簿中處理數(shù)字、做數(shù)據(jù)透視表和圖表。不過,我一直都有關(guān)注「 AI 將替代人類工作」(文章閱讀地址:https://thenewstack.io/ai-starts-taking-white-collar-jobs/)之類的文章,據(jù)說連我這種白領(lǐng)也難以幸免。
我在谷歌上搜索「怎樣成為一位數(shù)據(jù)科學(xué)家」時找到了這張「路線圖」,還了解到了什么是存在主義危機(jī)。讓我問你這個問題:我如果想成為一位數(shù)據(jù)科學(xué)家,是否需要掌握這張圖中的所有東西?
這是你想成為一位自信的數(shù)據(jù)科學(xué)家所要掌握的所有東西(2013 年)。完全是可實現(xiàn)的,不是嗎?(圖源:Swami Chandrasekaran,http://nirvacana.com/thoughts/2013/07/08/becoming-a-data-scientist/)
簡而言之,不需要。沒有人使用這張「路線圖」了。這張圖是 2013 年繪制出來的,里面甚至都沒有包括 TensorFlow,你完全可以在這張圖中找出幾種路線。我認(rèn)為在當(dāng)時那個時間,「數(shù)據(jù)科學(xué)家」這個概念就已經(jīng)變得更加細(xì)分也更加專業(yè)化了。針對每個細(xì)分方向的「數(shù)據(jù)科學(xué)家」采用不同的學(xué)習(xí)方式可能會更好些。
好的,你說的這些讓我心里好受了些。所以我是否應(yīng)該回學(xué)校學(xué)習(xí)專業(yè)知識呢?我從某些地方了解到許多數(shù)據(jù)科學(xué)家都至少有碩士學(xué)歷,我是否應(yīng)該去讀個數(shù)據(jù)科學(xué)專業(yè)的碩士呢?
天哪,為什么你要那樣做?·您必須警惕「數(shù)據(jù)科學(xué)」項目,這些項目很大程度上就是變相的的「業(yè)務(wù)分析」學(xué)位。此外,日常學(xué)術(shù)界往往落后于工業(yè)界,也就是說,你在學(xué)校學(xué)到的技術(shù)可能是過時的。為了保持與時俱進(jìn),利用 Coursera 或 Khan Academy 自學(xué)可能是更好的選擇。
噢。
不過,如果你去上大學(xué),可能學(xué)的是物理學(xué)或運籌學(xué)專業(yè)?這很難講。據(jù)說,我曾遇到過的很多優(yōu)秀的數(shù)據(jù)科學(xué)家都來自這些研究領(lǐng)域。你或許也能夠找到一個不錯的「數(shù)據(jù)科學(xué)」項目。這些我都無法預(yù)料,建議你去看看這位讀博期間中途輟學(xué)的作者 Jeremie Harris 所寫的文章(「Do you need a graduate degree for data science?」,閱讀地址:https://towardsdatascience.com/do-you-need-a-graduate-degree-for-data-science-8e3d0ef39253)
那我該怎樣開始自學(xué)呢?LinkedIn 上有一些人說,對數(shù)據(jù)科學(xué)感興趣的人應(yīng)該從學(xué)習(xí) Linux 開始;接著我又去 Twitter 上看了一下,那里的人又堅持道:數(shù)據(jù)科學(xué)家應(yīng)該學(xué)習(xí) Scala,而不是 Python 或 R 語言。
LinkedIn 上這么說的人還差點道行。至于那些推薦學(xué)習(xí) Scala 的人的意見,相信我,Scala 就是條羊腸小道,不值得一直沿著它走到黑?,F(xiàn)在都是 2019 年了,Scala 在數(shù)據(jù)科學(xué)界都消失了——如果它還在,就沒有 PySpark (獲取地址:https://spark.apache.org/docs/0.9.0/python-programming-guide.html)什么事了。并且絕對不要聽語言潮人的話,比如那些一直在討論 Kotlin 的人(相關(guān)視頻播放地址:https://www.youtube.com/watch?v=J8GYPG6pt5w&feature=youtu.be)。
是嗎?那么 R 語言呢?大家似乎很喜歡使用它。
R 語言擅長數(shù)學(xué)建模,不過也僅是這樣。而使用 Python 的話,你可以獲得更多的學(xué)習(xí)投資回報,而且還可以執(zhí)行更廣泛的任務(wù),如數(shù)據(jù)整理和設(shè)置 Web 服務(wù)等。
但是 R 語言在 Tiobe 上的排名非常高,并且它有非常多的社區(qū)和資源,使用它有什么壞處嗎?
聽著,你可以使用 R 語言。如果你僅僅對數(shù)學(xué)感興趣,你使用 R 語言或許是更好的選擇,并且它與 Tidyverse 一起使用時表現(xiàn)會更好。但是數(shù)據(jù)科學(xué)要遠(yuǎn)遠(yuǎn)超出數(shù)學(xué)和統(tǒng)計學(xué)的范疇。相信我,在 2019 年,使用 Python 能讓你走得更遠(yuǎn)。
好的,那么... 我猜我將會去學(xué) Python。
你不會后悔的。
Python 很難學(xué)嗎?當(dāng)機(jī)器人接管相關(guān)工作時,Python 能維持我的市場競爭力嗎?
當(dāng)然,Python 是一種非常容易的語言,你可以使用 Python 自主執(zhí)行許多任務(wù)以及做一些很酷的事情。然而你甚至不需要 Python,因為數(shù)據(jù)科學(xué)又不僅僅是腳本和機(jī)器學(xué)習(xí)的問題。
你這話是什么意思?
這些軟件都是些工具。你使用 Python 不過是為了基于數(shù)據(jù)做分析。數(shù)據(jù)科學(xué)有時候會涉及到機(jī)器學(xué)習(xí),但是大多數(shù)時候不會,它也可以僅僅是創(chuàng)建圖表的問題。事實上,你甚至都不必要學(xué) Python,僅用 Tableau 就可以了。Tableau 在宣傳中稱,僅僅使用這些產(chǎn)品就能「讓你組織機(jī)構(gòu)中的每個人都成為數(shù)據(jù)科學(xué)家」(該宣傳文章閱讀地址:https://www.tableau.com/learn/whitepapers/make-everyone-your-organization-data-scientist)。
Tableau 非常自信自己能解決數(shù)據(jù)科學(xué)家的職工問題
什么?那我是不是只需要去買一個 Tableau 的 license,就能成為一位數(shù)據(jù)科學(xué)家了?好的,就讓我們有所保留地將這句話視作營銷的說辭吧。雖然我可能一無所知,但我知道數(shù)據(jù)科學(xué)不僅僅是制作漂亮的可視化圖表。這個我用 Excel 就能做到。
當(dāng)然,不過你需要承認(rèn)的是,它就是一次圓滑的營銷。將數(shù)據(jù)圖表化是一個有趣的階段,并且 Tableau 省去了耗時而痛苦的數(shù)據(jù)處理部分:清洗、整理、遷移以及加載。
是的,這也是我為什么認(rèn)為學(xué)習(xí)代碼很有價值。那么讓我們聊聊 Python 吧。
事實上,你堅持下去就可以了。不過或許你也可以去學(xué)習(xí)一下 Alteryx。
什么?
Alteryx 是另一款軟件,你可以使用它來清洗、整理、遷移和加載數(shù)據(jù)。它很好用,因為它使用了一個可任意拖放的界面來混合數(shù)據(jù)并且...
我的天哪,請先停一下!先不要說這個可任意拖放的工具。我想要學(xué)的是 Python,而不是 Tableau 或者 Alteryx。
抱歉。我只是想讓你避開學(xué)習(xí)代碼,讓你的人生更容易些。另外我這樣做或許也是因為我們公司也購買了 Tableau 的 license,而我們現(xiàn)在也正在使用。但是無論如何,如果要學(xué) Python,你就要學(xué)習(xí)使用一些開發(fā)庫,例如學(xué)習(xí) Pandas 來操作數(shù)據(jù)框架以及學(xué)習(xí) matplotlib 來制作圖表。實際上,也可以舍棄 matplotlib 去學(xué)習(xí) Plotly,它采用了 d3.js 并且更好使用。
我知道這其中的一些詞,但什么是數(shù)據(jù)框架?
它是一項功能,可以在具有行和列的表格結(jié)構(gòu)中操作數(shù)據(jù)。在 Python 環(huán)境中,轉(zhuǎn)移、可視化以及聚合等所有這些很酷的操作都可以使用數(shù)據(jù)框架實現(xiàn)。
等下,那么它和 Excel 的區(qū)別到底在哪里呢?我畢業(yè)后就在一直在完成這些任務(wù),這是否就意味著我已經(jīng)是一位數(shù)據(jù)科學(xué)家了?
如果你這樣標(biāo)榜自己更舒服的話,當(dāng)然可以。當(dāng)你去聚會或者寫簡歷的時候,不妨標(biāo)注上這個自封的頭銜。
所以 Python 和 Excel 的區(qū)別到底在哪?
Python 的不同之處在于,你可以在 Jupyter notebook (獲取地址:https://jupyter.org/)中執(zhí)行它。你可以逐步執(zhí)行數(shù)據(jù)分析的每個階段,并且 notebook 還可以將每一步都可視化。這個過程大概就像你在創(chuàng)造一個你可以與其他人分享的故事。畢竟,交流和講故事是數(shù)據(jù)科學(xué)至關(guān)重要的部分。
這樣說的話,Python 跟 PowerPoint 很像。我之前也一直使用 PowerPoint 處理數(shù)據(jù)。我現(xiàn)在非常困惑。
這二者有很大區(qū)別。Notebook 要遠(yuǎn)遠(yuǎn)更自動化和更先進(jìn),并且可以輕松追溯分析每個步驟。但是提到這一點,我記得有些人說過甚至不喜歡使用 Notebook,因為它的代碼不是很實用(相關(guān)視頻:https://www.youtube.com/watch?v=7jiPeIFXb6U)。如果你需要將代碼轉(zhuǎn)變成軟件產(chǎn)品,在 notebook 以外將代碼模塊化會更簡單些。
因此現(xiàn)在的數(shù)據(jù)科學(xué)也是軟件工程嗎?
數(shù)據(jù)科學(xué)和軟件工程很大程度可以劃等號,但是現(xiàn)在先別分心到這個上?,F(xiàn)在要先學(xué)習(xí)更為緊迫的事情。數(shù)據(jù)科學(xué)很明顯是需要數(shù)據(jù)的。
當(dāng)然。
并且開始之初,獲取數(shù)據(jù)的一個不錯的方法就是從網(wǎng)頁上爬取數(shù)據(jù),例如一些維基頁面。
此外,我們試圖實現(xiàn)的是什么?
我們可以獲得一些數(shù)據(jù)來實踐一下。從網(wǎng)頁頁面上爬取數(shù)據(jù)并使用 Beautiful Soup(獲取地址:https://www.crummy.com/software/BeautifulSoup/) 解析可以提供大量非結(jié)構(gòu)化文本數(shù)據(jù)供我們實踐。
我很困惑。我剛剛才讀一本關(guān)于 SQL 的 130 頁的圖書(《Getting Started with SQL: A Hands-On Approach for Beginners》,圖書查看地址:https://www.amazon.com/dp/1491938617),對于數(shù)據(jù),一般我會查詢表而不是從網(wǎng)頁上爬取。獲取數(shù)據(jù)最主要的途徑不應(yīng)該是 SQL 嗎?
我們使用非結(jié)構(gòu)化文本數(shù)據(jù)可以做很多很酷的事情。我們能用它對社交媒體貼文上的觀點進(jìn)行分類,或者進(jìn)行自然語言處理。非關(guān)系型的數(shù)據(jù)庫(NoSQL)擅長存儲這類爬取的數(shù)據(jù),因為我們存儲的數(shù)據(jù)還沒有被處理為對分析有用的數(shù)據(jù)。
我聽說過 NoSQL 這個術(shù)語,它是指 SQL,還是指反 SQL?我是不是可以理解為——它能夠處理大數(shù)據(jù)?
首先「大數(shù)據(jù)」的風(fēng)頭在 2016 年就過去了,之后其實大部分人都沒有真正使用過這個概念了,當(dāng)你再提起這個概念就不夠酷了。像很多令人興奮的科技一樣,它也已經(jīng)過了技術(shù)成熟曲線(Gartner Hype Cycle)的高峰期(相關(guān)文章閱讀:https://www.analyticsindiamag.com/big-data-buzz-is-on-decline-is-2017-the-year-of-demise-for-big-data/),僅僅只能在某些地方找到它的市場。但是 NoSQL 基本上就是「大數(shù)據(jù)」運動的產(chǎn)物,并成長成像 MongoDB 這樣的平臺。
那為什么叫「NoSQL」呢?
NoSQL 的意思是指「不僅僅是 SQL」,并且支持關(guān)系表以外的數(shù)據(jù)架構(gòu)。不過,NoSQL 數(shù)據(jù)庫通常都不使用 SQL,而是使用專屬的查詢語言。下圖是 MongoDB 和 SQL 的語言比較:
我的天哪,真糟糕!所以你剛剛是說每個 NoSQL 平臺都有自有的查詢語言?那 SQL 有什么問題呢?
我理解你的感受。除了已存在了幾十年,SQL 沒有什么其他問題。這種非結(jié)構(gòu)化數(shù)據(jù)熱潮帶來了一個可以嘗試此前不可能使用的方式去做些不一樣或者巨大規(guī)模的事情。不過,我猜更多人可能認(rèn)為 SQL 的存在是有價值的(相關(guān)文章閱讀:https://blog.timescale.com/why-sql-beating-nosql-what-this-means-for-future-of-data-time-series-database-348b777b847a/),它能讓分析變得更簡單得多。事實上,許多 NoSQL 和「大數(shù)據(jù)」技術(shù)都在爭相將 SQL 層添入某種形態(tài)或形式中(相關(guān)文章閱讀:https://www.networkworld.com/article/3019122/tech-primers/the-hidden-costs-of-nosql.html)。畢竟,即便有些人發(fā)現(xiàn) SQL 很難學(xué),但它也還是一種非常通用的語言。
好的。我總結(jié)一下你剛剛說的話,學(xué)習(xí) NoSQL 對于成為一位數(shù)據(jù)科學(xué)家來說不再是起決定性作用的,除非我的工作在某種程度上需要用到它。這樣說的話,似乎我僅了解 SQL 就很安全了。
仔細(xì)想來,還真是,我認(rèn)為你總結(jié)得對,除非你立志成為一位數(shù)據(jù)工程師(才需要學(xué)習(xí) NoSQL)。
數(shù)據(jù)工程師?
是的,數(shù)據(jù)科學(xué)家分為兩個專業(yè)方向。數(shù)據(jù)工程師一般使用產(chǎn)品系統(tǒng)工作,并幫助將數(shù)據(jù)和模型處理為可用的,但他們會比較少涉及機(jī)器學(xué)習(xí)和數(shù)學(xué)建模工作——這部分工作由數(shù)據(jù)科學(xué)家負(fù)責(zé)。二者間的區(qū)分是必要的,因為大多數(shù) HR 和招聘者在看簡歷時都不會跳過「數(shù)據(jù)科學(xué)家」這個頭銜(相關(guān)閱讀:https://www.fastcompany.com/40432834/what-if-the-data-science-skills-gap-is-just-a-hiring-hot-mess)??紤]到這些,如果你想成為一位數(shù)據(jù)工程師,我推薦你優(yōu)先學(xué)習(xí) Apache Kafka,之后才是學(xué)習(xí) NoSQL?,F(xiàn)在,Apache Kafka 非常熱門。
下面這張維恩圖或許對你有幫助,如果你想獲得「數(shù)據(jù)科學(xué)家」的頭銜,你需要重點關(guān)注 Math/Statistics 圓圈與其他學(xué)科之間的重疊部分。
數(shù)據(jù)科學(xué)維恩圖
好吧。我現(xiàn)在還不知道我想成為一位數(shù)據(jù)科學(xué)家還是一位數(shù)據(jù)工程師。我們繼續(xù)討論一下。但要先回到前面的這個問題:為什么我們從維基頁面上爬取數(shù)據(jù)?
這是因為從維基頁面上爬取的數(shù)據(jù)可以很好地作為自然語言處理的數(shù)據(jù)輸入,之后就像創(chuàng)建一個聊天機(jī)器人一樣執(zhí)行相關(guān)操作。
就像微軟的 Tay 機(jī)器人一樣?這個機(jī)器人是否足夠聰明來預(yù)測銷售額,同時幫我維持合適數(shù)目的存貨來發(fā)布新產(chǎn)品呢?是否存在機(jī)器人變成種族主義的風(fēng)險呢?
理論上來說,它可能會。如果你通過汲取相關(guān)新聞文章中的技術(shù),也許可以創(chuàng)建一些模型來找到影響業(yè)務(wù)決策建議的趨勢。但是這真的「真的」很難實現(xiàn)。這樣想來,這可能不是一個好的起點。
來自 Gordon Ramsay,該個機(jī)器人正在打破烹飪藝術(shù)的界限,它甚至寫出了一本烹飪書(相關(guān)閱讀:http://aiweirdness.com/tagged/cookbook)
所以... 自然語言處理、聊天機(jī)器人以及非結(jié)構(gòu)文本數(shù)據(jù)幾乎就跟我沒什么關(guān)系了?
大概沒有,但是需要注意的是,現(xiàn)在有大量的數(shù)據(jù)科學(xué)。谷歌、Facebook 等硅谷公司現(xiàn)在都處理大量的非結(jié)構(gòu)化數(shù)據(jù)(例如社交媒體的貼文以及新聞文章等),并且很明顯地是,他們對于「數(shù)據(jù)科學(xué)」的定義影響巨大。之后就是其他的公司使用某個相關(guān)的數(shù)據(jù)庫中的業(yè)務(wù)運營數(shù)據(jù)以及使用如 SQL 等不是那么厲害的技術(shù)了。
這樣說也沒錯。我認(rèn)為他們也致力于將非結(jié)構(gòu)化數(shù)據(jù)的處理能力大范圍地用于挖掘用戶貼文、郵件以及故事來進(jìn)行廣告宣傳,或?qū)崿F(xiàn)其他邪惡的目的。
這恰恰就是這件事的本質(zhì)。但是你也可能發(fā)現(xiàn)樸素貝葉斯方法的趣味以及某些有用的東西。你可以采用文本的主體來預(yù)測它的分類,從頭開始這項操作也非常簡單:
使用樸素貝葉斯方法來分類文本主體的演示視頻播放網(wǎng)址:https://youtu.be/JLSdW60t898
不錯,樸素貝葉斯方法真的很酷,但是除此之外,我看不到非結(jié)構(gòu)化數(shù)據(jù)的任何其他價值。
我們之后會繼續(xù)討論一下這個問題。這么說的話,你現(xiàn)在工作中處理的大量數(shù)據(jù)都是列表數(shù)據(jù)(tabular data):電子數(shù)據(jù)表、表格以及大量記錄的數(shù)字。這些工作內(nèi)容看上去是你想做一些預(yù)測或統(tǒng)計分析。
是的,最終我們就是要實現(xiàn)這些現(xiàn)實問題?,F(xiàn)在這些領(lǐng)域引入了神經(jīng)網(wǎng)絡(luò)或者深度學(xué)習(xí)嗎?
哎哎哥們你別急啊。我之前就打算建議你從一些有均值和標(biāo)準(zhǔn)差的正態(tài)分布開始學(xué)習(xí)。也可以用 z-scores 和一兩個線性回歸計算進(jìn)行概率計算。
但是我還是要說一遍,這些我用 Excel 就能完成!這里我漏聽了什么嗎?
話是這樣說,你可以用 Excel 完成大部分這樣的工作,但是當(dāng)你使用寫腳本的方式去做的時候,工作的靈活性會大大增強(qiáng)。
像 VBA 之類的 Visual Basic 嗎?
我繼續(xù)說一下這個問題,當(dāng)做你沒有說過那些話。Excal 有很出色的統(tǒng)計算符和好的線性回歸模型。但是如果你需要為項目的每個類別都做一個離散的正態(tài)分布或回歸,用 Python 語言寫腳本要比創(chuàng)建一個長得可怕(都可以成為測量到月球距離的度量標(biāo)準(zhǔn))的公式要容易得多。
當(dāng)你熟練掌握 Excel 時,你會遭受與所有人一同工作的痛苦
此外,你還可以使用非常好用的開發(fā)庫 scikit-learn(獲取地址:https://scikit-learn.org/stable/index.html)。針對回歸和機(jī)器學(xué)習(xí)模型,你有很多更佳的選擇。
完全明白了。你說的這個就涉及到數(shù)學(xué)建模領(lǐng)域了,如果遇到數(shù)學(xué)問題,我該從何開始呢?
「傳統(tǒng)智慧」說,線性代數(shù)是許多數(shù)據(jù)科學(xué)的基石,這是你應(yīng)該開始的地方。將矩陣相乘和相加(稱為點積)是你今后需要反復(fù)做的運算,另外如行列式、特征向量等都是重要的概念。3Blue1Brown 幾乎是唯一一個你能找到對線性代數(shù)進(jìn)行直觀解釋的地方(相關(guān)視頻播放地址:https://www.youtube.com/watch?v=fNk_zzaMoSs&list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab)。
將一個數(shù)字網(wǎng)格與另一個數(shù)字網(wǎng)格相乘/加法,是我將來需要反復(fù)做的事情?這聽起來毫無意義并且無聊。你能舉一個用例嗎?
可以..... 機(jī)器學(xué)習(xí)!當(dāng)你做線性回歸(相關(guān)閱讀:https://towardsdatascience.com/linear-regression-using-gradient-descent-97a6c8700931)或構(gòu)建自己的神經(jīng)網(wǎng)絡(luò)時,就要使用隨機(jī)權(quán)重值來進(jìn)行大量的矩陣乘法和縮放。
所以矩陣跟數(shù)據(jù)框架關(guān)系很大嗎?二者聽起來很相似。
實際上,等等... 我在重新思考這個問題。讓我們先回到上一個問題,在實踐中,你并不需要做線性代數(shù)。
真的嗎?那我還要學(xué)線性代數(shù)嗎?
在實踐中,你可能不需要學(xué)習(xí)線性代數(shù)(相關(guān)閱讀:https://machinelearningmastery.com/why-learn-linear-algebra-for-machine-learning/)。TensorFlow、scikit-learn 等開發(fā)庫實際上已經(jīng)為你完成所有線性代數(shù)相關(guān)的工作。不管怎么說,線性代數(shù)很乏味并且很無聊。最后,你可能希望了解一下這些開發(fā)庫的工作原理。但就目前而言,你只需開始使用機(jī)器學(xué)習(xí)庫,同時可以完全忽略線性代數(shù)。
你的不確定性讓我不安,我能相信你嗎?
能有點感恩之心嗎?我把你救出了另一個「兔子洞」。好吧,沒關(guān)系。
啊
此外,在我忘記之前,我還要提醒你:不要只使用 TensorFlow,另外用上 Keras 可讓 TensorFlow 的操作更加簡單。
說到機(jī)器學(xué)習(xí),線性回歸真的能夠?qū)崿F(xiàn)機(jī)器學(xué)習(xí)嗎?
是的,線性回歸構(gòu)成了「機(jī)器學(xué)習(xí)」的工具包。
這真是太好了,我一直都用 Excel 來做線性回歸。所以我也能稱為自己是一位機(jī)器學(xué)習(xí)從業(yè)者嗎?
(嘆氣)從技術(shù)上來說,是的。但是你可能需要擴(kuò)展一下你的寬度。你可以看到,機(jī)器學(xué)習(xí)(不從技術(shù)上來說)一般就是兩個任務(wù):回歸和分類。不過從技術(shù)上來說,分類就是回歸。決策樹、神經(jīng)網(wǎng)絡(luò)、 支持向量機(jī)、邏輯回歸以及線性回歸執(zhí)行的都是曲線擬合的某些形式。根據(jù)具體情況,每個模型都有利弊。
等等,所以機(jī)器學(xué)習(xí)就僅僅是回歸?他們都能有效地將曲線擬合成點?
大部分都能。像線性回歸這樣的一些模型是清晰且可解釋的,而像神經(jīng)網(wǎng)絡(luò)等更先進(jìn)的模型,從定義上來看,復(fù)雜并且難以解釋。神經(jīng)網(wǎng)絡(luò)實際上只是使用了一些非線性函數(shù)的多層回歸。當(dāng)只有 2-3 個變量時,它看起來可能不怎么引人注意,但是當(dāng)你有數(shù)百或數(shù)千個變量時,它就開始令人感興趣了。
簡單的神經(jīng)網(wǎng)絡(luò)演示視頻播放網(wǎng)址:https://youtu.be/tAioWlhKA90
當(dāng)你這樣使用神經(jīng)網(wǎng)絡(luò),當(dāng)然會讓人感興趣。那圖像識別也僅僅是線性回歸嗎?
是的,每個圖像像素基本上都變成了數(shù)值的輸入變量。這讓我想起,你必須警惕維度懲罰(curse of dimensionality.)。這基本上意味著擁有的變量(維度)越多,就需要更多的數(shù)據(jù)來防止其變得稀疏。這是機(jī)器學(xué)習(xí)如此不可靠和散亂的眾多原因之一,并且還會需要大量你所沒有的經(jīng)過標(biāo)注的數(shù)據(jù)。
我現(xiàn)在有很多問題。
(那就開始提問吧)
怎么解決員排班或者交通運輸?shù)葐栴}?數(shù)獨(Sudoku)問題呢?機(jī)器學(xué)習(xí)能解決所有這些問題嗎?
當(dāng)你遇到這些類型的問題時,有些人會指出,它們都不是數(shù)據(jù)科學(xué)或機(jī)器學(xué)習(xí)。它們是「運籌學(xué)」(相關(guān)閱讀:https://en.wikipedia.org/wiki/Operations_research)。
對我來說,這些似乎都是實際問題。那么運籌學(xué)與數(shù)據(jù)科學(xué)無關(guān)嗎?
實際上,二者間存在相當(dāng)多的重疊。機(jī)器學(xué)習(xí)使用到的大量優(yōu)化算法,其實都是運籌學(xué)所提供的。此外,運籌學(xué)還為常見的「AI」問題(就如你剛剛所提到的)提供了許多解決方案。
那么我們使用什么算法來解決這些問題呢?
絕對不是使用機(jī)器學(xué)習(xí)算法,這一點很少有人知道。解決這些問題可以使用存在了幾十年的更好的算法,例如樹搜索、啟發(fā)式演算法、線性規(guī)劃以及其他的運籌學(xué)方法論(相關(guān)閱讀:https://www.coursera.org/learn/discrete-optimization/home/welcome),它們已經(jīng)被使用了很長時間,并且對于這些類型的問題,它們的表現(xiàn)要比機(jī)器學(xué)習(xí)算法更好。
那么為什么每個人在談?wù)摰亩际菣C(jī)器學(xué)習(xí)而不是這些算法呢?
(嘆氣)因為這些優(yōu)化問題在短時間內(nèi)就得到了令人滿意的解決,并且之后也沒有發(fā)生關(guān)于這些方法的熱點新聞。信不信由你,關(guān)注這些算法的首輪 AI 熱潮發(fā)生在幾十年前。當(dāng)下的 AI 熱潮則是由機(jī)器學(xué)習(xí)點燃的,同時點燃的還有機(jī)器學(xué)習(xí)能很好解決的問題類型:圖像識別、自然語言處理、圖像生成等。
那人們建議使用機(jī)器學(xué)習(xí)來解決排班問題,或者如數(shù)獨這類簡單問題時,這種做法是否錯誤呢?
差不多,是的。機(jī)器學(xué)習(xí)、深度學(xué)習(xí)等等...... 今天這些炙手可熱的技術(shù)通常都無法解決離散優(yōu)化問題——至少無法很好地解決。研究者們都有過嘗試,但效果非常不理想。
因此,如果機(jī)器學(xué)習(xí)只是回歸,為什么每個人都小題大做地認(rèn)為機(jī)器人和人工智能會威脅到人類的工作和社會?我的意思是...... 擬合曲線真的有危險嗎?當(dāng)「AI」在進(jìn)行回歸時,它又有多強(qiáng)的自我意識?
人們已經(jīng)發(fā)現(xiàn)了一些更明智的回歸應(yīng)用,例如在給定的轉(zhuǎn)彎上找到最佳的國際象棋移動(這個離散優(yōu)化也可以實現(xiàn)),或者自動駕駛汽車計算出要轉(zhuǎn)向的是哪個方向。當(dāng)然,這其中有相當(dāng)多的炒作成分,而且回歸也僅有這么些應(yīng)用并且只能運行一個任務(wù)。
我還在適應(yīng)這種脫節(jié)。我一直都有閱讀關(guān)于 DeepMind 在國際象棋游戲中復(fù)制類人的智能的文章(雷鋒網(wǎng)相關(guān)報道文章:《AlphaGo稱王!柯潔輸?shù)羧遄詈笠粓?/span>》),如今它正致力于擊敗《星際爭霸》中的人類玩家(雷鋒網(wǎng)相關(guān)報道文章:《多圖詳解 DeepMind 的超人類水準(zhǔn)星際爭霸 AI 「AlphaStar」》)!這些機(jī)器學(xué)習(xí)算法在所有這些游戲中都擊敗了人類玩家!這是否也意味著他們接下來將取代我等人類的工作呢?
《星際爭霸》人類玩家中又有多少人威脅到你的工作呢?
(默默地疑惑)
難道你能說玩《星際爭霸》游戲跟從事你的工作完全類似嗎?
如果《星際爭霸》人類玩家威脅不到你的工作,又為什么要擔(dān)心《星際爭霸》機(jī)器人玩家呢?它們經(jīng)過硬編碼和訓(xùn)練來完成這一項任務(wù):玩《星際爭霸》。那些沒有花時間去做其他事的人無法威脅到你,同理,它們對你也夠不成威脅。
我不確定要持放心還是懷疑的態(tài)度。首先是國際象棋,然后是星際爭霸...... 也許接下來就是自動化分析以及機(jī)器人做戰(zhàn)略性業(yè)務(wù)決策。不過,也許第三項是前兩項基礎(chǔ)上的大飛躍。其他我就不知道了。
有人從數(shù)據(jù)科學(xué)的角度寫了一篇關(guān)于深度學(xué)習(xí)到達(dá)局限的文章,你不妨前去閱讀一下:
閱讀網(wǎng)址:https://towardsdatascience.com/is-deep-learning-already-hitting-its-limitations-c81826082a
好的??傊?,我們該如何從數(shù)據(jù)科學(xué)轉(zhuǎn)向人工智能?我越試圖去定義「數(shù)據(jù)科學(xué)」,我就越...... 無法描述它。整件事情是如此混亂和模糊。
這里我找到了同一位作者寫的另一篇文章,你也可以閱讀一下:
閱讀地址:https://towardsdatascience.com/data-science-has-become-too-vague-538899bab57
感謝你。我需要去散個步來消化這些東西。要說我已經(jīng)從中得到了什么的話,那就是我認(rèn)為我使用 Excel 所做的工作符合「數(shù)據(jù)科學(xué)」的條件。雖然我不知道我是否想擁有「數(shù)據(jù)科學(xué)家」的頭銜,但它看上去可以是任何東西。我還是把時間花在別的事情上吧。希望數(shù)據(jù)科學(xué)接下來發(fā)生的「下一件大事」不會那么瘋狂。
你不妨關(guān)注 IBM 一段時間?
為什么呢?
既然數(shù)據(jù)科學(xué)聽起來不那么有趣了,那么量子計算了解一下?(微笑)
(完)
via:https://towardsdatascience.com/how-it-feels-to-learn-data-science-in-2019-6ee688498029
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。