看官,機器學習了解一下?
隨著人工智慧火熱的持續升級,入門機器學習已經迫在眉睫
越來越多的企業已經開始逐步在產品中應用機器學習的模型,當下人工智慧火熱,未來引發一場技術革命也說不準。身為程序員,需要時刻了解前沿的各種信息,這樣才能保證自己不被時代所淘汰。
本文將自己在機器學習中的筆記內容分享出來,也記錄自己的學習過程。
什麼是機器學習?
機器學習顧名思義,就是人類教會計算機利用以往的經驗來完成指定的任務,能夠像人類一樣學習。
機器學習有三個要素:。這三者之間的關係就是通過數據利用一定的演算法生成模型,讓機器可以按照模型去處理或者預測新的數據。
機器學習常用的演算法主要有等演算法。此文先用簡單的例子來逐一講解各個演算法概念,後續會詳細介紹具體的原理和推導過程。
決策樹
舉個例子,我們有一些統計某些APP的下載情況的數據,如下圖:
現在我們需要根據這些數據預測新用戶會下載哪類APP,來進行精準的APP廣告投放。
通過分析數據得出,我們可以根據年齡和性別大概判斷不同的用戶會下載哪類APP。
這就類似我們提出一個問題,通過判斷,將答案分成兩類,然後重複以上步驟,繼續提問回答,最終得到類似樹杈的模型,如下圖所示:
這種預測的方式被稱為決策樹。
樸素貝葉斯
我們換個例子,現在我們需要製作一個垃圾郵件檢測分類器,首先我們根據現有的郵件來手動標記垃圾郵件,找到垃圾郵件一般含有的特徵。比如有100封郵件,我們手工找出垃圾郵件有25封,然後我們發現垃圾郵件中含有"cheap"這個單詞有20封,這樣可以推測如果一封郵件中含有「cheap」單詞,那麼它是垃圾郵件的概率為80%.
同理,我們也可以尋找其他的特徵來預測,比如錯別字,沒有標題等等。這種通過打標籤計算概率來分類事物的方式被稱為樸素貝葉斯。
線性回歸
再來個,我們有一些大house,還有一些小居室,分別知道他們的面積和房價。現在需要預測一個面積位於他們之間的房子的價格。
將這些數據用坐標系表示出來,橫軸代表面積,縱軸代表房價:
然後找到某一條直線能夠擬合所有的數據,這裡尋找這條直線使用梯度下降法(後面會介紹),通過找到所有數據點到直線距離的平方和的最小值(最小二乘法),來確定最優擬合直線。
這種方式被稱為線性回歸。
梯度下降法
上文提到梯度下降法,很容易理解,假設我們在某個山頂,目標是到達山底。
該怎麼處理呢?一般來說我們會查看四周下山的路,找到下降距離最大的方向,然後朝這個方向下山,反覆此步驟,直至到達山底,這種方式就是梯度下降法。
在現實中我們可以把山頂想像成要解決的問題,到達山底可以當成對問題的解答。
邏輯回歸
是個好東西,能夠幫助我們理解概念。假設一所學校的招生辦,有一些往年學校招生的成績數據。現在有位學生申請學校,入學考試為7分,在校成績為6分,需要判斷該學生是否達標。
觀察往年的招生數據,我們會發現招生和未被招進的數據大概可以用直線分割,使用最小二乘法找到最擬合的分割線,通過梯度下降法來尋找,找到以後將該學生成績帶入坐標系中來查看結果。如圖所示:
可以預測該學生可以被錄取,這種演算法被稱為邏輯回歸。
神經網路
還是用上面的例子,假如我們有一名同學入學成績是9分,但是在校成績是1分,按照上面的預測,該學生可以入學。但是實際上這是不合理的,因為在校成績太低,此時模型已經不能覆蓋類似這種數據。
這種情況下該如何處理呢?可能實際錄取學生的數據是這樣的:
此時一條直線已經不能完全將錄取和未被錄取的學生分割了,可以用兩條直線來區分這些數據,這樣會分成4個區域,這樣可以根據不同的成績來將數據寫入坐標系,然後判定數據在直線上方標記為YES,在直線下方標記為NO,就可以得到下圖的模型:
最後將該學生數據帶入模型中,入學成績為9,在校成績為1的數據應該寫在右下方區域,分別為YES和NO。根據"和"原則,結果應該為NO,即不能錄取。
這種判斷方式就是神經網路,輸入數據根據"和"原則來判斷輸出結果為「YES」還是「NO」。
由於和人類的神經處理方式極為相似,因此被稱為神經網路。神經網路在很多方面都有應用,比如面部識別,語音識別,AlphaGo以及無人駕駛。
SVM(支持向量機)
假設我們有幾個點的數據,現在需要使用線條分割這些數據,從圖中看出我們可以找到至少兩條直線都能將數據分割開來。
我們目標是找到一條最優直線,在這個過程中,首先需要去掉離直線最遠的點,這些點會有較大幹擾。然後找到剩餘的點到直線的距離,查看這些點到哪條直線的最小距離最大,我們的目標就是讓這個最小值儘可能的大,同樣這個過程也會使用梯度下降法來找到這條最優直線。
從上圖中可以看出,最終黃線的效果要比藍線的效果好,這種方式被稱為SVM(支持向量機)。
題後話
機器學習並不僅僅局限於上述提到的演算法,也並不像所說的那樣簡單,現實中會有大量的數據和各種問題需要處理,本文總結的內容都盡量避免了數學的內容,但想搞懂機器學習原理最終都要回歸到數學上,例如概率與統計學,線性代數,微積分這些都是少不了的(大學欠下的債遲早要還的)。
後續的文章中我會盡量用通俗的語言來總結,但是如果想入門機器學習,數學是一定需要的,這是理解原理必備的理論基礎。
最後,歡迎大家關注我的公眾號,讓我們一起學習分享,努力實現開掛的人生!
※VAR和智能晶元亮相世界盃賽場 法國隊成最大贏家;GPU、FPGA晶元成為增強機器學習的「左膀右臂」
※AI開發人員可以使用18個機器學習平台
TAG:機器學習 |