0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

機器學(xué)習(xí)所需的數(shù)學(xué)知識你能夠有效使用嗎

jmiy_worldofai ? 來源:工程師曾玲 ? 2019-02-02 17:10 ? 次閱讀

開始機器學(xué)習(xí)之旅,需要什么層次的數(shù)學(xué)功底? 尤其是對于那些沒有學(xué)過數(shù)學(xué)和統(tǒng)計學(xué)的同學(xué)們來說,這個問題當(dāng)前不甚清楚,在這篇文章中,我將要為那些使用機器學(xué)習(xí)技術(shù)來開發(fā)產(chǎn)品或做學(xué)術(shù)研究的人們提供一些數(shù)學(xué)背景方面的建議。這些建議源于我與機器學(xué)習(xí)工程師、研究人員和教育工作者的對話,以及我在機器學(xué)習(xí)研究和產(chǎn)業(yè)方面的獨到經(jīng)驗。

為了構(gòu)造(機器學(xué)習(xí)中)數(shù)學(xué)的背景,我會先講一些與傳統(tǒng)課堂不同的思維模式和策略。然后,我會概述不同類型機器學(xué)習(xí)工作所需的具體背景,畢竟機器學(xué)習(xí)涉及的學(xué)科范圍太廣泛了(它涵蓋了高中級別的統(tǒng)計和微積分,也涵蓋了概率圖形模型(PGM)的最新進展)。

我希望讀者們在讀到文章的最后時,能夠知道自己有效使用機器學(xué)習(xí)所必需的數(shù)學(xué)知識。

作為這篇文章的前言,我想說:對于不同學(xué)習(xí)者的個人需求或目標(biāo)來說,學(xué)習(xí)的風(fēng)格、架構(gòu)和資源都應(yīng)該是獨一無二的!

數(shù)學(xué)焦慮癥的小貼士

事實證明,很多人——包括工程師——都害怕數(shù)學(xué)。首先,我想談?wù)劇吧瞄L數(shù)學(xué)”這類傳說。

事實是,擅長數(shù)學(xué)的人都做過大量的數(shù)學(xué)練習(xí)。因此,在研究數(shù)學(xué)問題被卡住時,他們依然能夠“風(fēng)雨不動安如山”。如最近的研究所示,學(xué)生的心態(tài),而非先天才能,才是預(yù)測一個人學(xué)習(xí)數(shù)學(xué)的能力的主要因素。

要清楚的是,要達到這種境界,需要時間和精力。這顯然不是你天生就有的能力。本文的剩余部分將幫助您確定所需的數(shù)學(xué)功底,并概述構(gòu)建它的策略。

萬事開頭難 作為軟性先修數(shù)學(xué)條件,我們假設(shè)你對線性代數(shù)/矩陣微積分都有了解,這樣你就不會為奇怪的符號苦惱。同時我們還假設(shè)你有基礎(chǔ)的概率知識。我們鼓勵你擁有基本的編程能力,這是領(lǐng)悟機器學(xué)習(xí)中的數(shù)學(xué)的有力工具。之后,你可以根據(jù)你感興趣的內(nèi)容調(diào)整你的學(xué)習(xí)重點。

如何在課外學(xué)習(xí)數(shù)學(xué)?

我相信學(xué)習(xí)數(shù)學(xué)的最佳方式是以學(xué)生的身份全職學(xué)習(xí)。脫離了學(xué)校的環(huán)境,你可能不太容易獲得系統(tǒng)的知識結(jié)構(gòu)、正能量的同學(xué)壓力和其他可用資源。

為了在課外學(xué)習(xí)數(shù)學(xué),我建議大家將學(xué)習(xí)小組或午餐研討會作為學(xué)習(xí)的重要途徑。在研究型的實驗室中,這可能以閱讀小組的形式呈現(xiàn)。在構(gòu)建知識結(jié)構(gòu)方面,你的小組可以把教科書各章節(jié)過一遍,并定期對課程進行討論,同時通過Slack平臺的途徑參與遠程問答。

這里,企業(yè)文化發(fā)揮著重要的作用——這種“額外”的研究學(xué)習(xí)應(yīng)該受到管理層的鼓勵和激勵,而不是被視為影響產(chǎn)品交付的消極怠工行為。事實上,雖然短期內(nèi)會花費一些成本,但是構(gòu)建同伴驅(qū)動的學(xué)習(xí)環(huán)境可以使你在長期的工作中更有效率。

數(shù)學(xué)與代碼 在機器學(xué)習(xí)工作流程中,數(shù)學(xué)和代碼緊密結(jié)合。代碼通常直接由數(shù)學(xué)直覺構(gòu)建,有時它甚至?xí)蛿?shù)學(xué)符號使用相同的句法。事實上,現(xiàn)代數(shù)據(jù)科學(xué)框架應(yīng)用(例如NumPy)使得數(shù)學(xué)運算(例如矩陣/矢量積)與可讀代碼之間的轉(zhuǎn)換變得直觀和有效。

我鼓勵你將編寫代碼作為鞏固學(xué)習(xí)的一種方式。學(xué)習(xí)數(shù)學(xué)和編寫代碼都依賴于你對問題理解和表述的精準(zhǔn)程度。例如,手動編寫損失函數(shù)或優(yōu)化算法,就是真正理解這些基礎(chǔ)概念的好方法。

讓我們來探索一個實際的問題:在你的神經(jīng)網(wǎng)絡(luò)中實現(xiàn)ReLU函數(shù)激活的反向傳播(是的,即使Tensorflow / PyTorch可以替你做這個?。_@里簡單介紹一下,反向傳播是一種依賴于微積分鏈?zhǔn)揭?guī)則來有效計算梯度的技術(shù)。為了在這個問題設(shè)定下使用鏈?zhǔn)揭?guī)則,我們將上游導(dǎo)數(shù)與ReLU函數(shù)的梯度相乘。

我們先將ReLU激活函數(shù)進行可視化(就是下圖的樣子),然后這樣定義這個函數(shù):

機器學(xué)習(xí)所需的數(shù)學(xué)知識你能夠有效使用嗎

為了計算函數(shù)的梯度(直觀來說就是斜率),你可以想象出這樣一下分段函數(shù),如下面的指示函數(shù)所示:

機器學(xué)習(xí)所需的數(shù)學(xué)知識你能夠有效使用嗎

NumPy為我們提供了有用且直觀的語法——我們的激活函數(shù)(藍色曲線)可以通過代碼表述出來,其中x是我們的輸入,relu是我們的輸出:

relu = np.maximum(x, 0)

ReLU函數(shù)的梯度函數(shù)(紅色曲線)可以如下所示,grad表示上游梯度:

grad[x < 0] = 0

在沒有首先自己推導(dǎo)梯度公式的情況下,這行代碼可能沒有任何意義。在我們的代碼中,對于滿足[h <0]條件(即x<0)的所有元素,將其對應(yīng)上游激活函數(shù)的梯度(grad)數(shù)值設(shè)置為0。在數(shù)學(xué)上,這實際上相當(dāng)于ReLU梯度函數(shù)的分段表示,所有x軸上小于0的數(shù)值,當(dāng)乘以上游梯度時,它的值會變成0。

正如我們所見,通過我們對微積分的基本理解,我們可以清楚地理解代碼的含義。

構(gòu)建機器學(xué)習(xí)產(chǎn)品必需的數(shù)學(xué)知識

為了介紹這一節(jié),我與機器學(xué)習(xí)工程師進行了交談,確定了數(shù)學(xué)在調(diào)試系統(tǒng)時最有力的地方。以下是工程師基于數(shù)學(xué)見解回答的問題示例。

如果你還沒有遇到過它們,請不要擔(dān)心。希望本節(jié)能夠為你提供一些特定問題的相關(guān)內(nèi)容,也許你也會遇到類似的問題并嘗試解決喲!

Q:我該用哪種聚類方法可視化高維的客戶數(shù)據(jù)呢?

A:PCA或者tSNE。

Q:我該如何校準(zhǔn)用來阻隔虛假用戶交易的安全閾值(例如在0.9或0.8的置信水平下)?

A:可以使用概率校準(zhǔn)(Probability calibration)。

Q:描述我衛(wèi)星數(shù)據(jù)在世界特定地區(qū)(如硅谷與阿拉斯加州)的偏差的最佳方法是什么?

A:這是一個開放的研究型問題。也許可以基于“人口平價”(demographic parity,該方法是要求預(yù)測必須與某特定敏感屬性不相關(guān))的原則展開。

通常,統(tǒng)計和線性代數(shù)可以通過某種方式應(yīng)用于這些問題中的任何一個。但是,要獲得滿意的答案通常需要針對特定領(lǐng)域的方法。如果是這樣的話,你如何縮小你所需學(xué)習(xí)的數(shù)學(xué)范疇呢?

定義一個系統(tǒng)我們并不缺乏資源(例如數(shù)據(jù)分析使用scikit-learn,深度學(xué)習(xí)使用keras)去幫助我們進行系統(tǒng)建模。而在建模之前,我們需要圍繞將要被建模的系統(tǒng)考慮這些問題:

系統(tǒng)的輸入/輸出分別是什么?

應(yīng)該如何準(zhǔn)備好合適的數(shù)據(jù)格式,從而適應(yīng)系統(tǒng)要求?

如何進行特征建?;驍?shù)據(jù)整理,以便于模型的推廣?

如何為需要解決的問題設(shè)定合理的目標(biāo)?

你會驚訝地發(fā)現(xiàn)——要定義一個系統(tǒng),其實非常復(fù)雜。而搭建數(shù)據(jù)工作流(data pipeline)也并不容易。換句話說,構(gòu)建一個機器學(xué)習(xí)產(chǎn)品需要進行大量的繁瑣復(fù)雜的工作;而這些工作并不需要太深的數(shù)學(xué)背景。

數(shù)學(xué)需要“按需學(xué)習(xí)”當(dāng)你一頭扎進一個機器學(xué)習(xí)的任務(wù)中時,會發(fā)現(xiàn)其中有些步驟對你來說難以進行,這種情況在進行算法調(diào)試時尤為常見。當(dāng)你停滯其中時,是否知道該如何解決這一窘境呢?你設(shè)定的權(quán)重是否合理?

為什么模型沒有按照某個損失定義進行收斂?衡量成功的正確指標(biāo)是什么?此時,有一些方法可以幫助到你:對數(shù)據(jù)做出假設(shè)、以不同方式約束優(yōu)化、或嘗試不同的算法。

通常,你會發(fā)現(xiàn)建模/調(diào)試過程中需要數(shù)學(xué)直覺(例如,選擇損失函數(shù)或評估指標(biāo)),這些直覺可能有助于做出明智的工程決策。 這些是你學(xué)習(xí)的機會!

來自Fast.ai的Rachel Thomas是這種“按需”方法的支持者——在教育學(xué)生時,她發(fā)現(xiàn)對于深度學(xué)習(xí)的學(xué)生來說,讓他們對將要學(xué)習(xí)的內(nèi)容感到興奮更為重要。之后,針對這些學(xué)生的數(shù)學(xué)教育即可“按需”填補之前未涉及的知識漏洞。

接下來我將介紹對研究性工作中的機器學(xué)習(xí)方法有用的數(shù)學(xué)思維方式。批判性的觀點認(rèn)為,機器學(xué)習(xí)研究方法就像是就像是“拿來主義”,人們只是通過把更多運算扔進模型中,從而獲得更好的預(yù)測表現(xiàn)。在一些圈子里,研究人員對實證研究方法仍然持懷疑態(tài)度,認(rèn)為這些方法缺乏數(shù)學(xué)上的嚴(yán)謹(jǐn)性(例如某些深度學(xué)習(xí)方法),這些方法是不能將人類智慧發(fā)揮到極致的。

值得關(guān)注的是,研究界是建立在現(xiàn)有系統(tǒng)和假設(shè)的基礎(chǔ)上,而這些系統(tǒng)和假設(shè)可能不會擴展我們對該領(lǐng)域的基本理解。研究人員需要提供新的基本模塊,供我們在該領(lǐng)域中獲取全新洞察力和方法。

這可能意味著我們需要像“深度學(xué)習(xí)教父” Geoff Hinton在他最近的Capsule Networks論文中所做的那樣 ,重新思考構(gòu)建某些領(lǐng)域的基礎(chǔ)知識(如應(yīng)用于圖形分類的卷積神經(jīng)網(wǎng)絡(luò))。

為了邁出下一步,我們需要提一些基本問題。這需要在數(shù)學(xué)方面的極度熟練——深度學(xué)習(xí)一書的作者Michael Nielsen稱之為“有趣的探索”。這個過程涉及數(shù)千小時停滯、提問、重新思考問題以探索新觀點。

“有趣的探索”使科學(xué)家們能夠提出深刻,富有洞察力的問題,而不僅僅是簡單的想法或架構(gòu)的結(jié)合。顯而易見,想要學(xué)會機器學(xué)習(xí)研究領(lǐng)域內(nèi)需要的所有知識,是不可能的任務(wù)!要正確地進行“有趣的探索”,你需要遵循自己的興趣,而不是為最熱門的新結(jié)果感到焦慮。

機器學(xué)習(xí)研究是一個非常豐富的研究領(lǐng)域。當(dāng)然,它在公平性、可解釋性和可獲得性方面也存在亟待解決的問題。在所有科學(xué)學(xué)科中都是如此,基本思維的獲得并不能一蹴而就。要在解決關(guān)鍵問題所需的高水平數(shù)學(xué)框架的廣度進行思考,需要長期的耐心。

將機器學(xué)習(xí)研究“大眾化”希望我沒有把“研究數(shù)學(xué)”描繪得太深奧,因為這些通過數(shù)學(xué)而產(chǎn)生的思考應(yīng)該以直觀的形式呈現(xiàn)!可悲的是,許多機器學(xué)習(xí)論文仍然充斥著復(fù)雜且不一致的術(shù)語,使關(guān)鍵的直覺難以被辨別。作為一名學(xué)生,你可以嘗試將密集的論文翻譯成容易被直觀理解和消化的小塊文章,通過博客和推特等發(fā)表,這將對你自己和這個領(lǐng)域大有裨益。你甚至可以從distill.pub中找些例子,當(dāng)作解釋機器模型研究方法結(jié)果的讀物。換句話說,將技術(shù)思想的祛魅化作“有趣的探索”手段——你自己的學(xué)習(xí)(和機器學(xué)習(xí)Twitter)會感謝你的!主要領(lǐng)悟總的來說,我希望這篇文章為你提供了一個思考研究機器學(xué)習(xí)所需數(shù)學(xué)教育的開端。

不同的問題需要不同程度的直覺,我鼓勵你首先弄清楚你的目標(biāo)是什么。

如果你希望構(gòu)建產(chǎn)品,請通過問題尋找同行和學(xué)習(xí)小組,并深入研究最終目標(biāo),激發(fā)你的學(xué)習(xí)。

在研究領(lǐng)域,廣泛的數(shù)學(xué)基礎(chǔ)可以為你提供工具,通過提供新的基礎(chǔ)知識來推動該領(lǐng)域的發(fā)展。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴

原文標(biāo)題:機器學(xué)習(xí)的數(shù)學(xué)焦慮

文章出處:【微信號:worldofai,微信公眾號:worldofai】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    編程所需的基礎(chǔ)知識

    編程所需的基礎(chǔ)知識想要在編程行業(yè)能夠走的遠,一些基礎(chǔ)知識是不能少的,基礎(chǔ)奠定了發(fā)展的方向。java私塾建議大家在學(xué)習(xí)java語言本身的同時
    發(fā)表于 10-09 14:16

    學(xué)單片機需要很深的數(shù)學(xué)知識嗎?

    學(xué)單片機需要很深的數(shù)學(xué)知識嗎?我是大一的想學(xué)可以嗎有哪位大神能指個方向 該從哪學(xué)起? 謝謝!
    發(fā)表于 11-11 12:09

    工程電磁場應(yīng)具備哪些數(shù)學(xué)知識

    我是一名大二學(xué)生,專業(yè)是電氣工程及其自動化,最近學(xué)習(xí)了工程電磁場,發(fā)現(xiàn)有許多數(shù)學(xué)知識是高等數(shù)學(xué)中未有的,希望各位學(xué)習(xí)過的大師們,幫幫我我還應(yīng)該學(xué)習(xí)
    發(fā)表于 03-30 18:49

    【下載】《機器學(xué)習(xí)》+《機器學(xué)習(xí)實戰(zhàn)》

    盡可能少地使用數(shù)學(xué)知識. 然而, 少量的概率、統(tǒng)計、代數(shù)、優(yōu)化、邏輯知識似乎不可避免. 因此, 本書更適合大學(xué)三年級以上的理工科本科生和研究生, 以及具有類似背景的對機器學(xué) 習(xí)感興趣的人士. 為方便
    發(fā)表于 06-01 15:49

    構(gòu)建機器學(xué)習(xí)產(chǎn)品必需的數(shù)學(xué)背景

    必讀我們該如何學(xué)習(xí)機器學(xué)習(xí)中的數(shù)學(xué)
    發(fā)表于 08-15 11:44

    BP神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)數(shù)學(xué)知識分享

    一文看懂BP神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)數(shù)學(xué)知識
    發(fā)表于 06-16 07:14

    高一數(shù)學(xué)知識點總結(jié)

    高一數(shù)學(xué)知識點總結(jié)高一數(shù)學(xué)知識點總結(jié)高一數(shù)學(xué)知識點總結(jié)
    發(fā)表于 02-23 15:27 ?0次下載

    高二數(shù)學(xué)知識點總結(jié)

    高二數(shù)學(xué)知識點總結(jié)高二數(shù)學(xué)知識點總結(jié)高二數(shù)學(xué)知識點總結(jié)
    發(fā)表于 02-23 15:27 ?0次下載

    一文匯總機器學(xué)習(xí)和Python(包括數(shù)學(xué))速查表

    新手學(xué)習(xí)機器學(xué)習(xí)很難,就是收集資料也很費勁。所幸Robbie Allen從不同來源收集了目前最全的有關(guān)機器學(xué)習(xí)、Python和相關(guān)數(shù)學(xué)知識
    的頭像 發(fā)表于 07-04 08:25 ?2311次閱讀

    如何自學(xué)人工智能?機器學(xué)習(xí)詳細路徑規(guī)劃

    綜述,機器學(xué)習(xí)的自學(xué)簡單來說分為三個步驟 前期:知識儲備包括數(shù)學(xué)知識,機器學(xué)習(xí)經(jīng)典算法
    的頭像 發(fā)表于 08-04 11:36 ?8840次閱讀
    如何自學(xué)人工智能?<b class='flag-5'>機器</b><b class='flag-5'>學(xué)習(xí)</b>詳細路徑規(guī)劃

    機器學(xué)習(xí)所需要的數(shù)學(xué)知識介紹

    數(shù)學(xué)和代碼在機器學(xué)習(xí)研究中通常是高度混合的。大多數(shù)情況下,代碼都是直接從數(shù)學(xué)邏輯中形成,并且能用代碼語法展示出數(shù)學(xué)表示法。其實現(xiàn)在一些數(shù)據(jù)科
    的頭像 發(fā)表于 08-05 09:00 ?4307次閱讀

    本科生怎樣入門機器學(xué)習(xí)

    此處我們暫且不論文科生,理科生工科生課程大多在大一會有高等數(shù)學(xué)和線性代數(shù)兩門課,機器學(xué)習(xí)大約需要多少數(shù)學(xué)知識呢?
    的頭像 發(fā)表于 05-05 16:50 ?2301次閱讀

    深度學(xué)習(xí)數(shù)學(xué)基礎(chǔ)(三)之簡單數(shù)學(xué)

    從本文開始,之后的三四篇我們都將沐浴在數(shù)學(xué)的海洋里,拼命地?fù)潋v,這個系列我會盡力以通俗易懂的方式來講述這些數(shù)學(xué)知識。
    的頭像 發(fā)表于 12-10 19:13 ?870次閱讀

    機器學(xué)習(xí)理論:k近鄰算法

    KNN(k-Nearest Neighbors)思想簡單,應(yīng)用的數(shù)學(xué)知識幾乎為0,所以作為機器學(xué)習(xí)的入門非常實用、可以解釋機器學(xué)習(xí)算法使用過
    的頭像 發(fā)表于 06-06 11:15 ?657次閱讀
    <b class='flag-5'>機器</b><b class='flag-5'>學(xué)習(xí)</b>理論:k近鄰算法

    自動控制原理需要哪些基礎(chǔ)知識

    自動控制原理是工程學(xué)和應(yīng)用科學(xué)領(lǐng)域的一個重要分支,它涉及到系統(tǒng)的設(shè)計、分析和維護,以確保系統(tǒng)能夠自動地、準(zhǔn)確地響應(yīng)外部或內(nèi)部的變化。 基礎(chǔ)數(shù)學(xué)知識 自動控制原理涉及到大量的數(shù)學(xué)運算和公式,因此,掌握
    的頭像 發(fā)表于 06-11 11:08 ?3054次閱讀