1219

1

為什么要學(xué)原理和公式推導(dǎo)

1)

現(xiàn)成的算法庫、學(xué)習(xí)框架料仗。

數(shù)據(jù)輸入工具、框架中伏蚊,

用幾行代碼指定模型的類型和參數(shù)立轧,

就能自動計(jì)算出結(jié)果。

2)

機(jī)器學(xué)習(xí)的原理和數(shù)學(xué)推導(dǎo)一定要學(xué)躏吊!

工具就像是武器氛改,只是學(xué)會了這種武器最基本的招式和套路。

而理論學(xué)習(xí)即策略學(xué)習(xí)颜阐,工具的活用平窘,拆開綜合用,還有設(shè)計(jì)新工具

3)

我們將學(xué)到:

算法庫的安裝+庫函數(shù)的調(diào)用凳怨;

數(shù)據(jù)的 I/O 轉(zhuǎn)換瑰艘。

會安裝幾個支持庫

會調(diào)幾個接口

4)

?DSAT 都 Fix 不了啊肤舞?

再多投入幾倍資源也達(dá)不到 95%——干脆直接用 Rule-Base 來解決紫新?

……

ML/DL

新框架/工具/模型/算法

?TensorFlow?

?Caffe?

分類器

邏輯回歸

換成 RNN

5)

用這個譜聚類做數(shù)據(jù)預(yù)處理,歸根到底不還是利用詞袋模型算詞頻李剖,

比直接計(jì)算 tf-idf 做排序能好多少呢芒率?

6)

模型特質(zhì)

適用場景

數(shù)據(jù)匹配

算力和時間的消耗;

框架對軟硬件的需求和并行化的力度篙顺;

7)

針對技術(shù)需求偶芍,提供高質(zhì)量模型。

針對業(yè)務(wù)需求德玫,提供高質(zhì)量的解決方案匪蟀。

8)

優(yōu)化模型

選特征、調(diào)超參宰僧、換模型材彪,

9)

?指標(biāo)有哪些,如何計(jì)算琴儿?

是怎么工作的段化?

超參數(shù)?

特征選取有哪些原則造成、方法可運(yùn)用显熏?

他們完全有可能針對具體業(yè)務(wù)問題,構(gòu)造出目標(biāo)函數(shù)晒屎,甚至開發(fā)出符合自身軟硬件資源特點(diǎn)的求解算法佃延。

?Google 一下 Best Practice

必須具備理論基礎(chǔ)和數(shù)學(xué)層面的建模能力才行现诀。

————————————————

2

了解一件事是如何運(yùn)行的夷磕,明晰事物發(fā)展的客觀規(guī)律履肃,知道從最簡單的原理學(xué)著手逐層推進(jìn),比從一個已經(jīng)很復(fù)雜的狀態(tài)入手坐桩,一下子糾纏在各種不得要領(lǐng)的細(xì)節(jié)中要高效得多尺棋。

大多數(shù)人最常用的思維模型是 KV Pair,有些人似乎終身只有這一種思維模型绵跷。

對于原因和結(jié)果的關(guān)系膘螟,多數(shù)人根本沒想過去探究其轉(zhuǎn)換模型,而直接默認(rèn)是線性關(guān)系碾局。

線性回歸模型:選定一些特征荆残,針對每個特征獨(dú)立打分,最終加權(quán)求和(例如大學(xué)排名之類)净当。

問題待以后會回答:如何驗(yàn)證打分

我分享出來只是想說明:學(xué)習(xí)機(jī)器學(xué)習(xí)原理和公式推導(dǎo)内斯,并非只是做一些無聊的數(shù)字變換。很可能由此為我們打開一扇窗像啼,讓我們從新的角度看待世界俘闯,并為日常的思考過程提供更加可量化的方法。

3

以模型為驅(qū)動忽冻,了解“機(jī)器學(xué)習(xí)”的本質(zhì)

我選擇了幾種經(jīng)典模型

(例如:線性回歸真朗、邏輯回歸、

決策樹僧诚、支持向量機(jī)遮婶、條件隨機(jī)場、

K 均值等)湖笨,作為入門的進(jìn)階旗扑。

一定要搞清楚其

問題域、模型函數(shù)赶么、目標(biāo)函數(shù)肩豁、訓(xùn)練算法……潛入到數(shù)學(xué)公式推導(dǎo)的層面,

對每一步的公式變換和對應(yīng)的物理意義有所理解辫呻,然后再去實(shí)踐清钥。

這一個個的模型,就是機(jī)器學(xué)習(xí)的“肌肉”放闺,我們要通過觀察學(xué)習(xí)這一塊塊肌肉祟昭,

以其為載體來了解機(jī)器學(xué)習(xí)的核心——將事物轉(zhuǎn)化為數(shù)值,將關(guān)系怖侦、變換轉(zhuǎn)化為運(yùn)算篡悟,以事實(shí)(數(shù)據(jù))為依據(jù)谜叹,以規(guī)章(算法)為準(zhǔn)繩,通過計(jì)算來掌握事物的客觀規(guī)律(模型)搬葬。

要知道荷腊,這些經(jīng)典模型固然經(jīng)典,但是到了實(shí)際應(yīng)用中急凰,它們并非神圣不可改變女仰。也不是說機(jī)器學(xué)習(xí)就僅限于這些經(jīng)典模型。

只有掌握了機(jī)器學(xué)習(xí)精髓的人抡锈,才可能靈活運(yùn)用現(xiàn)有模型去解決實(shí)際問題疾忍,甚至進(jìn)一步針對具體問題得出自己的模型和算法。

反復(fù)學(xué)習(xí)床三,從記憶到掌握

當(dāng)然一罩,達(dá)到這種程度并非一蹴而就,總要從最簡單的模型開始撇簿。

聂渊。

多學(xué)幾遍,從頭到尾掌握整件事情的邏輯补疑,知

掌握了事物內(nèi)在的邏輯歧沪,再去記憶,就容易多了莲组。

學(xué)習(xí)標(biāo)準(zhǔn)設(shè)置得不必太高诊胞,比如可以這樣:

第一遍學(xué),只要求自己能完全掌握機(jī)器學(xué)習(xí)數(shù)據(jù)锹杈、模型撵孤、算法相互作用的基本關(guān)系,訓(xùn)練過程和評價標(biāo)準(zhǔn)竭望。具體的模型邪码,掌握最簡單的線性回歸就可以。

只要從頭到尾掌握了第一個模型咬清,做到:能夠從模型函數(shù)開始推導(dǎo)出目標(biāo)函數(shù)闭专,再用梯度下降算法求解,用(偽)代碼實(shí)現(xiàn)梯度下降求解過程旧烧。

第一遍學(xué)習(xí)掌握一個模型影钉;第二遍學(xué)習(xí)就不難掌握2-3個模型;第三遍就有可能掌握本課列出的大部分模型………如此由易到難掘剪,螺旋式推進(jìn)平委。

對于一些本身就比較復(fù)雜的數(shù)學(xué)模型,比如條件隨機(jī)場夺谁、隱馬爾科夫這類涉及場論和勢函數(shù)的模型廉赔,如果直接入手肉微,往往會卡在模型函數(shù)本身上。但是當(dāng)有了前面幾個模型的基礎(chǔ)蜡塌,了解了更抽象層面的原理碉纳,掌握起來就容易多了。

數(shù)學(xué)需要多精深岗照?

村象。如果數(shù)學(xué)工具實(shí)在掌握得太少,最起碼也要讀懂一組公式推導(dǎo)中的第一個和最后一個式子:

讀懂它們都針對哪些變量進(jìn)行了怎么樣的運(yùn)算攒至;

這些變量和運(yùn)算的物理意義是什么;

第一個式子是對哪種真實(shí)場景的數(shù)學(xué)描述躁劣;

最后推導(dǎo)的結(jié)果又具備怎樣的特征迫吐。

enter image description here

兩條路徑反芻數(shù)學(xué)知識

所以,同學(xué)們應(yīng)力求理解每一步推導(dǎo)過程账忘。

如果有可能志膀,可以事先復(fù)習(xí)一下大學(xué)本科的高數(shù)(數(shù)學(xué)分析)、概率統(tǒng)計(jì)和線性代數(shù)鳖擒「日悖或者,在學(xué)習(xí)模型的過程中蒋荚,一旦遇到了數(shù)學(xué)上的阻礙戳稽,就回頭去查找相應(yīng)知識。

很多數(shù)學(xué)問題期升,之所以讓人頭大惊奇,其實(shí)并不是真的有多難,而是符號系統(tǒng)比較復(fù)雜播赁,運(yùn)算繁復(fù)颂郎,或者運(yùn)算所表達(dá)的物理意義多樣。

很多時候造成困擾是因?yàn)橄氩黄饋磉@里用到什么定理容为,哪個公式乓序,或者這樣操作表達(dá)的含義是什么。

如果把常用的細(xì)小知識點(diǎn)都記錄下來坎背,按主題整理成速查手冊(小字典)替劈,需要用的時候快速查找對應(yīng)的知識點(diǎn),這樣我們的“機(jī)器學(xué)習(xí)”學(xué)習(xí)之路就順暢不少沼瘫。

下面兩個是我自己制作的例子抬纸,供大家參考:

機(jī)器學(xué)習(xí)常用微積分知識速查手冊

機(jī)器學(xué)習(xí)常用線性代數(shù)知識速查手冊

日常學(xué)習(xí) Tips

記錄

準(zhǔn)備一個筆記本,紙質(zhì)版或電子版均可耿戚。有什么發(fā)現(xiàn)湿故、感想阿趁、疑問、經(jīng)驗(yàn)等等坛猪,全都記下來脖阵。

如果是對某個話題、題目有比較完整的想法墅茉,最好能夠及時整理成文命黔,至少記錄下要點(diǎn)。

隔一段時間把筆記整理一下就斤,把分散的點(diǎn)滴整理成塊悍募,一點(diǎn)點(diǎn)填充自己的“思維地圖”。

分享

知識技能這種東西洋机,學(xué)了坠宴,就得“炫耀”——把學(xué)習(xí)到的新知識、理論绷旗、方法喜鼓,分享給更多的人。

如此一來衔肢,倒逼自己整理體系庄岖、記憶要點(diǎn)。這可以說是與人方便自己方便的最佳實(shí)例角骤。

把自己的感想隅忿、體會、經(jīng)驗(yàn)分享出來的同時启搂,也鍛煉了自己的邏輯思維能力和歸納總結(jié)能力硼控。一舉多得,何樂而不為胳赌?

以上談到的關(guān)聯(lián)牢撼、記錄、分享的內(nèi)容疑苫,大家都可以通過社群內(nèi)的學(xué)習(xí)筆記來提交熏版。我會挑選優(yōu)秀的內(nèi)容進(jìn)行點(diǎn)評和回復(fù)。


4

第04課:為什么要學(xué) Python 以及如何學(xué) Python

理解原理——涉及動手實(shí)踐

去訓(xùn)練一個模型捍掺,測試一些數(shù)據(jù)撼短,編寫一個算法

那些公式、函數(shù)挺勿、算法才能真的在頭腦中留下印象曲横。


Python 是一種說人話的語言

開發(fā)者不需要關(guān)注底層;

不用自己費(fèi)心照顧存儲、網(wǎng)絡(luò)等資源禾嫉。

處理大量非結(jié)構(gòu)化數(shù)據(jù)

Python 的動態(tài)類型設(shè)計(jì)正好

語法簡單直觀灾杰,

表達(dá)形式一致。

Python 的設(shè)計(jì)理念就是讓不同的人所用的表達(dá)形式一致熙参。

容易讀懂艳吠,容易整合。

直接運(yùn)行孽椰。

一條條語句可以直接作為命令行運(yùn)行

大量機(jī)器學(xué)習(xí)支持庫

研究人員和數(shù)據(jù)科學(xué)家昭娩,編程語言本身于他們而言僅僅是一種工具。

作為回報黍匾,他們向 Python 反哺了大量用于數(shù)據(jù)處理和機(jī)器學(xué)習(xí)的支持庫栏渺。

?NumPy 和 sklearn(scikit-learn)。

TensorFlow膀捷、Caffe 之類的深度學(xué)習(xí)框架迈嘹,主體都是用 Python 來實(shí)現(xiàn),提供的原生接口也是 Python全庸。

怎么學(xué) Python

買書當(dāng)然可以,不過不是必須融痛,特別是壶笼,當(dāng)你學(xué)習(xí)編程的目的是要訓(xùn)練機(jī)器學(xué)習(xí)模型的時候。

個人認(rèn)為雁刷,

閱讀官網(wǎng)文檔或中文版教程

https://docs.python.org/3.7/tutorial/index.html

https://docs.python.org/3.7/index.html覆劈,

并在實(shí)踐中通過 Stack Overflow 直接查找所需實(shí)現(xiàn)問題的 Solution,

可能是比讀書更好的學(xué)習(xí)編程語言的方法沛励。



推薦這本:由 Eric Matthes 撰寫的《Python 編程從入門到實(shí)踐》责语。

不管買不買書,下面的過程都差不多目派。個人建議按照下面的順序入手 Python坤候。

(1)安裝 Python 運(yùn)行環(huán)境。

就選 Python 3吧企蹭。

第一步白筹,在你的系統(tǒng)上安裝好 Python 3。

(2)編寫第一個 Python 程序:“Hello world”谅摄。

雖然有效代碼只有:print(”hello world”)徒河。

但注意,你需要嘗試至少三種不同的運(yùn)行方法:

在命令行直接運(yùn)行送漠;

編寫一個 Python 文件顽照,將 print hello world 封裝為一個函數(shù),通過 main 函數(shù)調(diào)用它來運(yùn)行闽寡;

編寫一個 class代兵,將 print hello world 封裝為一個 method尼酿,通過 main 函數(shù)創(chuàng)建 class 實(shí)例來運(yùn)行 method。

(3)編寫一個或者多個復(fù)雜點(diǎn)的程序奢人,用(2)中第2種或第3種方式執(zhí)行谓媒。

具體程序的功能可以自己定義,目的是借此了解下面這些概念:數(shù)據(jù)類型何乎、變量句惯、函數(shù)、參數(shù)支救、返回值抢野、調(diào)用、遞歸……

學(xué)習(xí)流程控制:順序各墨、條件指孤、循環(huán)。

搞清幾種不同類型:array贬堵、list恃轩、dict、set 的用法黎做。

在這個過程中叉跛,學(xué)習(xí)什么是靜態(tài)類型、什么是動態(tài)類型蒸殿、什么是強(qiáng)類型筷厘、什么是弱類型,這些不同設(shè)計(jì)的目的和應(yīng)用場景分別是什么宏所。

如果你實(shí)在不知道寫什么程序好酥艳,那就寫寫 binary search 和 quick sorting 吧。并順便嘗試一下遞歸和非遞歸的不同實(shí)現(xiàn)爬骤。


——這塊聽不懂


(4)編寫程序練習(xí)文件讀寫充石,文件和目錄操作。

如果使用支持庫封裝好的模型算法盖腕,

把數(shù)據(jù)在文件和各種類型的變量之間導(dǎo)來導(dǎo)去赫冬。

(所以務(wù)必學(xué)會將 tsv、csv 之類的文件讀入 array溃列、list劲厌、dict 等結(jié)構(gòu)

以及將這些變量打印到文本文件中的方法。)——不會

(5)開始寫第一個機(jī)器學(xué)習(xí)程序听隐。

(首先 import numpy 和 sklearn补鼻。

之前當(dāng)然要安裝這兩個支持庫,

一般安裝支持庫使用 apt-get 或者 pip,可以根據(jù)需要選用风范。)——不會


其次咨跌,找一個模型,比如 Logistic Regression硼婿,

網(wǎng)絡(luò)搜索該模型訓(xùn)練和測試的 Example Code锌半,運(yùn)行后看結(jié)果,

并閱讀 Example Code(下面是個例子)寇漫。


? ? from numpy import *?

? ? from sklearn.datasets import load_iris? ? # import datasets?

? ? # load the dataset: iris?

? ? iris = load_iris()?

? ? samples = iris.data?

? ? #print samples?

? ? target = iris.target?

? ? # import the LogisticRegression?

? ? from sklearn.linear_model import LogisticRegression?

? ? classifier = LogisticRegression()? # 使用類刊殉,參數(shù)全是默認(rèn)的?

? ? classifier.fit(samples, target)? # 訓(xùn)練數(shù)據(jù)來學(xué)習(xí),不需要返回值?

? ? x = classifier.predict(array([5, 3, 5, 2.5]).reshape(1,-1))? # 測試數(shù)據(jù)州胳,分類返回標(biāo)記?




? ? print x?

一則學(xué)習(xí) sklearn 和 Numpy 庫函數(shù)的調(diào)用记焊,

一方面對 LR 有個感性認(rèn)識∷ㄗ玻——不懂

(6)自己設(shè)置一個實(shí)際問題遍膜,并準(zhǔn)備數(shù)據(jù)。修改(5)的程序瓤湘,用自己的數(shù)據(jù)訓(xùn)練并測試模型瓢颅。

——懂也不懂以前

(7)逐行解讀(6)中調(diào)用的 sklearn 函數(shù)的實(shí)現(xiàn)代碼,

結(jié)合該模型的原理弛说,對比印證惜索,徹底搞懂一個算法的實(shí)現(xiàn)細(xì)則。

——同上

比如例子中的:classifier.fit() 和 classifier.predict()剃浇。

(8)不依賴 sklearn,自己動手實(shí)現(xiàn)一個訓(xùn)練 LR 模型的算法猎物。

完成上面這些步驟后虎囚,你算是可以用 Python 輔助學(xué)習(xí)機(jī)器學(xué)習(xí)基礎(chǔ)知識了。

以上就是緒論部分需要學(xué)習(xí)的內(nèi)容蔫磨,不知道同學(xué)們通過這兩天是否對為什么學(xué)習(xí)和怎么學(xué)習(xí)有了更深的理解淘讥?請把你的心得和問題通過學(xué)習(xí)筆記提交出來吧,我們一起研究堤如,共同進(jìn)步蒲列。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市搀罢,隨后出現(xiàn)的幾起案子蝗岖,更是在濱河造成了極大的恐慌,老刑警劉巖榔至,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抵赢,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)铅鲤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進(jìn)店門划提,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人邢享,你說我怎么就攤上這事鹏往。” “怎么了骇塘?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵伊履,是天一觀的道長。 經(jīng)常有香客問我绪爸,道長湾碎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任奠货,我火速辦了婚禮介褥,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘递惋。我一直安慰自己柔滔,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布萍虽。 她就那樣靜靜地躺著睛廊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪杉编。 梳的紋絲不亂的頭發(fā)上超全,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天,我揣著相機(jī)與錄音邓馒,去河邊找鬼嘶朱。 笑死,一個胖子當(dāng)著我的面吹牛光酣,可吹牛的內(nèi)容都是我干的疏遏。 我是一名探鬼主播,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼救军,長吁一口氣:“原來是場噩夢啊……” “哼财异!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起唱遭,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤戳寸,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后胆萧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體庆揩,經(jīng)...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡俐东,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了订晌。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片虏辫。...
    茶點(diǎn)故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖锈拨,靈堂內(nèi)的尸體忽然破棺而出砌庄,到底是詐尸還是另有隱情,我是刑警寧澤奕枢,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布娄昆,位于F島的核電站,受9級特大地震影響缝彬,放射性物質(zhì)發(fā)生泄漏萌焰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一谷浅、第九天 我趴在偏房一處隱蔽的房頂上張望扒俯。 院中可真熱鬧,春花似錦一疯、人聲如沸撼玄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽掌猛。三九已至,卻和暖如春眉睹,著一層夾襖步出監(jiān)牢的瞬間荔茬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工竹海, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留兔院,地道東北人。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓站削,卻偏偏與公主長得像,于是被迫代替她去往敵國和親孵稽。 傳聞我的和親對象是個殘疾皇子许起,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,870評論 2 361

推薦閱讀更多精彩內(nèi)容