天天看點

技術大牛帶你走向機器學習“正道”:小朋友才迷信算法,大人們更重視工程實踐

雷鋒網按:“算法”這兩字在人工智能圈已然成為“高大上”的代名詞,由于不少在校生和職場新人對它的過度迷戀,多名 ai 資深人士均對這一現象表示擔憂。李開複曾這樣說到:

現在的 ai 科學家大部分是在科研環境中培養出來的,不但欠缺工程化、産品化的經驗,而且對于錯綜複雜的商業環境也并不熟悉,更缺乏解決實際問題所必須的資料資源。

随着開源架構層出不窮,人工智能産品化和商業化程序不斷加速,使得算法的門檻逐漸降低,但對工程的要求不斷在提高。這種情況下,實際應用和工程能力基礎紮實的技術人才變得異常搶手。

其實 ai 新人們在進入職場後也愈發意識到這個問題,那他們該如何提升自己的實戰能力?

雷鋒網(公衆号:雷鋒網)特邀王剛為大家講述機器學習的實戰與應用,王剛根據工程、産品、業務等多個次元幫大家梳理如何系統地去學習機器學習。

王剛,前樂視大資料總監,現任某電商平台大資料總監。10 年大資料領域工作經驗,具有 hadoop 和 spark 生态相關技術的實際應用經驗。目前專注于機器學習,搜尋和推薦系統的設計和開發。

以下為王剛所撰寫的正文: 

機器學習對很多初學者來說,最大的學習困難和障礙就是模型、算法、“眼花缭亂”的數學公式所帶來的抽象感,無法有效的建立起直覺上的了解。是以本文的目的是嘗試給初學者具體的學習方式建議,以幫助初學者打通機器學習的任督二脈,然後通過不斷的學習和實踐,使得自己在機器學習領域的專業能力持續提升。

目前被提及的高頻詞語是“ai人工智能”、“機器學習”、“深度學習”。那這些詞語背後所代表的技術之間到底是什麼關系呢?充分的了解這個關系,有利于建立起更加系統的專業學習架構。

首先,我們要搞明白機器學習到底學習的是什麼,答案是模型“參數”,比如y=ax+b是個機器學習的模型,通過樣本資料,可以學習出參數a和b的确定值。然後基于這兩個參數,對模型進行泛化,即對給定的x對y進行預測。明白了機器學習到底是學習什麼之後,我們一起看看下圖來搞清楚機器學習與人工智能和深度學習之間的關系。

技術大牛帶你走向機器學習“正道”:小朋友才迷信算法,大人們更重視工程實踐

如上圖所示,人工智能是最大的一個範疇,人工智能的實作目前看主要有兩種途徑:一種是基于腦科學的方式來實作智能。另一種是基于機器學習的方式來實作智能,這種方式的假設是當學習的資料足夠充分,就可以大機率的逼近事實。

再回到公式y=ax+b,我們可以看到機器學習是通過x和y來學習出參數a和b,而在機器學習中,x是人工構造的特征,y是人工進行标注的标簽。一句話,機器學習就是通過構造x和y來學習參數a和b。但通常情況下,構造x和标注y需要耗用大量的人力和時間。是以,對于如何更智能的構造x和标注y是機器學習很重要的研究方向。深度學習的一個重要作用就是能夠更智能的構造x,即進行更好的特征表示。是以深度學習是機器學習的一個子集。那如何更好的标注y呢,目前流行的對抗生成網絡(gan)就是一種解決方案。 

機器學習的三個關鍵要素是模型、政策、算法。模型指的是具體的機器學習模型,比如決策樹、svm、神經網絡、lda等具體模型。政策指的是最小化模型結構性風險的手段,即避免模型欠拟合和過拟合的應對政策,在這裡專指正則化(regularization)。算法指的是建立好模型之後,如何對模型中的參數進行學習。也即最優化的方法。是以,初學者需要掌握的基礎知識為:

1.導數與微積分,以及還需要對泰勒展開式、拉格朗日等定理和公式有充分的掌握。這是進行算法推導的基礎中的基礎。

2.線性代數,矩陣運算等要做到熟練掌握,因為機器學習的最優化算法中涉及到的複雜計算需要線性代數好矩陣運算的内容。

3.機率論,機率論的基礎知識是了解像極大似然、最大熵、em算法、貝葉斯網絡、機率圖模型的基礎。

4.最優化,機器學習中的模型訓練是通過對模型中參數的學習來進行泛化推廣。如何對模型中的參數進行學習是最優化要解決的問題。比如線性優化、非線性優化的各種主要方法(比如梯度下降法、牛頓和拟牛頓法等)要有充分的了解。

5.機器學習模型的思想和具體實作方式要了解透徹。

特征工程,如上面所說就是造x,機器學習實踐中大部分的實踐都在處理特征工程上。是以真正有機器學習實踐經驗的人都知道機器學習更多的時間不是高大上的算法,而是苦逼特征工程。工程師每天更多的是基于對業務的深刻了解,通過建構“更好”的特征,持續提升模型的準确度。

推薦系統與搜尋系統

當推薦和搜尋這些字眼出現在網頁中,專業書籍中,或是大部分的教育訓練課程中,更多的是與機器學習和算法關聯起來。這種情況的原因可能是為了迎合機器學習在大部分人認知中的“高大上”吧。

在實際的産品設計和開發中,推薦系統和搜尋系統是有着一個更大概念的系統架構,絕非僅僅是隻有機器學習和算法。其中ui/ue的重要性占比為40%,業務了解重要性占比為30%,資料重要性占比為20%,模型重要性占比為10%。

以推薦系統舉例,整個推薦系統的架構應當如下圖所示:

技術大牛帶你走向機器學習“正道”:小朋友才迷信算法,大人們更重視工程實踐

下圖是電商平台上推薦系統的架構

技術大牛帶你走向機器學習“正道”:小朋友才迷信算法,大人們更重視工程實踐

是以,建議的推薦系統知識學習體系為:

一、推薦系統之整體架構

1.推薦系統的本質、目标及價值

2.一個好的推薦系統的相貌

3.線下零售的促銷員與電商平台的推薦系統的關系

3.推薦系統與搜尋的關系

4.主流電商平台上的推薦系統學習

5.推薦系統的整體架構圖以及如何學習推薦系統

二、推薦系統之政策及模型

1. 基于規則的推薦算法

2. 基于内容(content-based)的推薦算法

3. 基于協同過濾(cf)的推薦算法

4. 基于隐因子(svd/svd++/mf/fm/ffm/plsa/lda)的推薦算法

5. 推薦結果的排序模型(gbdt+lr,ltr)

6. 數學基礎及典型最優化算法

7.不同場景下的推薦政策(如在電商平台上,首頁、詳情頁、購物車頁、搜尋結果頁等不同場景下的推薦政策)

8.推薦系統評估

如何評估線下模型,如何評估線上效果

三、推薦系統之特征工程

1.使用者畫像如何建構

2.特征工程如何建構,以及如何進行特征分析

四、推薦系統之互動體驗

如何向使用者展示推薦系統的權威性、取得使用者的信任、如何幫助使用者決策、如何擷取使用者回報。

對于大多數人來說,如果以抽象的方式開始學習一項内容肯定不是最好的方式。相反,先建立起直覺,然後建立具體到抽象的映射,再深入學習抽象部分完成對細節部分的掌握,最後循環到具體的應用是适合大多數人的學習方式。是以對于機器學習初學者建議的學習路徑為:

步驟一:先選擇一門實戰性非常強的機器學習及其應用課程進行學習。目标是通過足夠多具體的應用,能夠深刻了解機器學習的實際使用方式,進而建立起直覺。

步驟二:學習機器學習的理論課程,包括具體的模型算法,最優化方法,以及相關的公式推導。過了這一關,就完成了對機器學習細節的更好掌控。

步驟三:如果能夠立刻參與到機器學習的實際項目中是最好不過了。如果不能,可以去完成kaggle中的一些比賽項目。

最後,也是最最重要的建議,如果要想“更快速”“更高效”的掌握機器學習,找到合适的教育訓練課程進行學習是最合适的方式。用錢買時間,買别人的經驗,以更高效的方式掌握機器學習後,這些付出的費用可能僅僅是你工作之後月薪的很小的一部分。

在任督二脈打通之後,可以适當的對分布式存儲和計算相關體系的内容進行學習。即靠的是個人的持續修行,在理論與實踐循環提升中,成長為真正的專家。

ps:為了推動 ai 人才全面化,雷鋒網将為大家提供一個業界頂級的專業 ai 技術教育訓練平台:1024mooc 。其中王剛老師也會在1024mooc 開展系統的機器學習實戰教育訓練課程,具體開課時間在年後一周左右,請大家持續關注雷鋒網資訊。

本文作者:亞峰

繼續閱讀