作者:Ben Sanders;翻譯:吳慧聰;校對:鄭滋
本文約2400字,建議閱讀10分鐘。
本文將簡要介紹什麼是機器學習,其運作原理,以及兩個主要的機器學習的演演算法。
簡介
本文中,資料科學創業公司Yhat的前聯合創始人,現任Waldo的聯合創始人兼技術長Greg Lamp將會為我們這些機器學習菜鳥分享他對機器學習的看法。
目錄
一、什麼是機器學習?
-
機器學習是一個知識熔爐 –沒什麼新知識
二、機器學習是如何工作的?
三、機器學習的演演算法: 分類(Classification)與回歸(Regression)
-
演演算法介紹
-
過擬合(Overfitting)
四、什麼是Tensorflow?
五、為什麼機器學習會如此熱門?
一、什麼是機器學習?
我認為機器學習的定義是使用資料去尋找資料模型。這主要包括兩個主要的概念:
-
使用數學和統計的知識最佳化模型 ;
-
這個最佳化模型的過程稱為訓練(Training)。
網際網路對機器學習的描繪
一個可能會令一些人不高興的觀點來了。
人工智慧和機器學習是一個相同的東西。
沒錯,機器學習(Machine Learning)和人工智慧(AI)確實是一個回事,但確實言過其實。當那些市場營銷的同行講起人工智慧,他們認為人工智慧可能最終會發展到統治人類的位置。我也同意這些看法。 這確實是一個很好的概括了機器學習的觀點,因為機器學習已經可以自學習任何輸入的資料。
再者,人工智慧在未來還有潛在的發展空間。
網際網路對人工智慧的描繪。看,多麼像
-
沒有什麼新知識
我認為機器學習最有趣的應該是它沒有真正的新知識。主要流行的機器學習演演算法已經流行了一段時間。這期間機器學習最大的變化是計算機變得:
-
更快
-
更便宜
-
更方便
因為上述計算機的三大發展特點和機器學習庫的不斷擴充套件和便於使用,比如scikit-learn, tensorflow和R(統計學常用的機器學習的語言),越來越多的人會接觸到機器學習的內容。可及性在有限的使用量上反過來促進了傳播。
二、機器學習是如何工作的?
在機器學習中可以使用不同的演演算法去尋找資料的模型。雖然這些演演算法都是做相同的事情:讀取資料並賦予這些資料一個權重。但是這些權重可以用於預測未來相同形式的資料。
在過去幾年中,機器學習在資料讀取上有一個大的躍進,在演演算法上,對於資料讀取的嚴格的限制條件被減少了。但儘管這樣,基本上所有的演演算法都需要讀取簡潔,格式一致的資料以提高運算效率。
現在當這些演演算法需要訓練(Train)和校對(Calibrate)的時候, 其實是需要去找出一組點之間的最小距離。讓我們看圖更能說清楚。
以上圖為例。這是一個經典的線性回歸(Simple Linear Regression)的例子。藍點表示想要預測的資料。紅線表示“最佳擬和線”,該線是機器學習演演算法中(用於線性回歸的例子)最好地表示資料集特徵。
你可以使用這條線去預測後面的觀測資料。
三、分類(Classification)與回歸(Regression)
我知道我的讀者們在想什麼了,接下來可能我會來講講 Tensorflow以及如何使用它在來滿足你最狂野的希望和夢想的同時使得業務盈利。 但你們可能誤解了。
下麵將概述機器學習的兩個主要的演演算法。
絕大多數機器學習任務分為兩類:
-
回歸:預測一個數值(例如價格或失效時間)
-
分類:預測某個事物的類別(狗/貓,好/壞,狼/牛)
在回歸中,你要儘量計算的是一條將要位於所有資料點“中間”的線(如上所示)。在分類中,你要計算的是一條將要把資料點“分類”的線。
-
演演算法介紹
這是最酷的一部分。不同的演演算法可以使用不同的形狀,數字和線的種類來計算中間線或分離線。例如,在上面的狼和牛例子中,有3種不同的演演算法用於分隔每個類別。如你所見,因為支撐向量機(SVM)的方法是非線性的,這意味著它不必使用直線。但是當使用邏輯回歸(Logistic Regression)的方法,因為它是線性的,只能透過直線來分離資料點。第三個例子是決策樹(Decision Tree),它使用設定的自動生成的規則來分隔類別。
所以為什麼我們不能只使用最複雜的方法呢?
-
過擬合
現在仍然不是講Tensorflow的時候。
好吧,有時候你的模型可能太聰明瞭。我知道這似乎是倒退了一步,但這是真的。這模型確實是對的。你的人工智慧模型可能非常善於理解你所展示的資料集。因此,用於預測未來就不準確了。
舉出一個類比的例子。比如在產品管理這樣的領域,如果你與一位客戶交談,他們說他們不會購買你的產品,除非按鈕是青色的。因為他們公司在徽標和品牌中使用的同樣可愛的青色陰影。
青色的按鈕
如果您是一名糟糕的產品經理,那麼你可能會聽取該客戶的意見,並使把網站的所有按鈕都變成青色。這就是過度擬合。
但你不是一個糟糕的產品經理。你知道,雖然這個客戶可能因為你沒有青色按鈕而不會購買你的產品,但你知道還有很多其他客戶不會對按鈕顏色不滿意。這是因為您對典型客戶關心的內容有一個的固有的心理模型。
四、你還打算講TensorFlow嗎?
好,現在來講一下Tesnorflow。Tensorflow是一個Google生產的機器學習庫。但它並不是那麼容易使用。你需要知道自己在做什麼,才能比用簡單直接的庫(如scikit-learn)獲得更高的投資回報率。
Tensorflow的確做得很好,提供了一種定義和訓練神經網路(Neural Network)的簡單直觀的方法。神經網路是另外一種用來計算線路的演演算法。神經網路及其同類的深度神經網路(Deep Neural Network)都是便於使用的方法,因為它們可以處理非結構化的資料(如影象,影片等)。我說那些資料是非結構化的是因為最終它們仍然以表格格式輸入演演算法。你不必非常關註資料的精確和純凈程度。十分便於使用!
五、為什麼機器學習會如此熱門?
機器學習學起來不再困難了,因為它有很豐富的庫。如果你看不出來庫的區別,我很喜歡用Scikit-learn. 這有很多原因:
-
在用的時候不需要寫很多程式碼;
-
它可以實現大部分或者一些機器學習的功能,所以我所做的任何關於機器學習的內容都可以不離開這個庫;
-
它很舊,這意味著它的功能成熟,功能成熟代表不需要處理那些費腦的程式碼錯誤;
-
建立者和維護者他們非常友好地建立了出色的使用說明;
-
如果我得聽一個關於機器學習的講座,我更喜歡那些像Olivier Grise的人,帶著輕微的法國口音,從而增加娛樂價值。
我的那些喜歡機器學習的法語愛好者使用scikit-learn可以把一個非常複雜的機器學習模型減少到5行程式碼。機器學習的程式設計不需要很多行的程式碼。也不需要一個天體物理的博士學位甚至一個技術學位的背景去學習機器學習的知識。
下麵是一個隨機森林(Random forest)的程式碼例子:
from sklearn.ensemble import RandomForestClassifier #套用隨機森林的資源包
clf = RandomForestClassifier()#clf是隨機森林的分類函式
target_variable = 'does-make-more-than-50k'#target_variable是隨機森林分類的標準
columns = ['age', 'education', 'hours-worked-per-week']#隨機森林的節點
clf.fit(df[columns], df[target_variable])#形成樹
原文標題:
Machine Learning for People Who Don’t Care About Machine Learning —— AI vs. ML explained for the rest of us
原文連結:
https://towardsdatascience.com/machine-learning-for-people-who-dont-care-about-machine-learning-4cf0495dee2c
譯者簡介:吳慧聰,加拿大戴爾豪斯大學計算機和統計雙專業本科畢業生,主攻資料科學。準備繼續攻讀資料分析(人工智慧方向)的研究生。
朋友會在“發現-看一看”看到你“在看”的內容