1. 程式人生 > >幹貨 | 機器學習沒有你想的那麽復雜

幹貨 | 機器學習沒有你想的那麽復雜

強化學習 語言 bit 需要 是的 分析師 處理 自己 而且

技術分享圖片

作者 | Anish Phadnis
翻譯 | Mika
本文為 CDA 數據分析師原創作品,轉載需授權

人腦是最神奇的。你知道我更感興趣的是什麽嗎?是我們的學習能力。我們如何能夠適應並學習全新的技能,然後應用到日常生活之中呢?

我有一個6歲的弟弟,我看著他從懵懵懂懂的小嬰兒逐漸長大。他學會了如何爬行、走路、跑;如何學會說話,理解簡單的語法和簡單的數學。

本文中我就要談談如何讓機器復制這種學習的能力。

假設我想教機器如何區分狗和貓。這很簡單,我的弟弟很容易就能做到。但是如何將其編程在機器上呢?我們不能簡單的認為,所有的貓都是尖耳朵,或所有的狗都有毛。如果我們試圖用代碼寫下所有貓狗間的差異,從而來解決這個問題,那麽這是非常繁瑣的,而且成功的可能性很低。

技術分享圖片

通過機器學習,算法能夠理解貓與狗之間的差異,而無需刻意進行編程。它不需要我們去指導應該如何區分貓和狗。算法只需要看許多不同的貓和狗圖像,並學習當中的區別。

這與我弟弟學會辨別貓狗很類似。不需要告訴他貓狗的差異,只需要告訴他,這張圖是狗,這張圖是貓。隨著時間的推移,小孩子就能慢慢了解貓狗的分別是什麽樣了。

總而言之,機器學習能夠讓機器學會如果執行任務,而無需明確地編程。

深度學習

我們知道機器學習是什麽,那麽深層學習到底是什麽呢?

很簡單,深度學習只是機器學習中的一個領域。

技術分享圖片

深度學習只是機器學習的一個子集

深度學習算法被稱為神經網絡,它以人腦為模型,模仿人類學習的方式。

讓我們以區分貓狗的例子來理解神經網絡的運行原理。從本質上講,神經網絡接收輸入,這裏也就是貓狗的圖像;然後得出輸出,即標簽為貓或狗的圖像。在輸入和輸出之間,隱藏層從圖像中提取特征。例如,這張圖中有長鼻子,鋒利的牙齒,尾巴等,然後通過這些信息預測圖像為貓還是狗。

技術分享圖片

神經網絡

有時候這些特征很重要,比如狗的鼻子比貓長;而有時特征並不重要。為了解決這個問題,神經網絡給某些特征賦予了比其他特征更多的權重,即如果一張圖像中的動物鼻子較長,則更有可能是狗。最終大量的特征匯集在一起??,神經網絡通過足夠的特征判斷圖像是否是狗,如果是的話則輸出這張圖是是狗。

但是如果出錯了呢?當然,神經網絡無法一開始就準確無誤。神經網絡判斷圖像為貓,然而實際上是狗,這是學習的地方。

那這時會怎樣呢?它進入隱藏層,神經網絡決定將相應的權重放在相應的功能上。如果出錯,網絡必須進行調整,從而得出正確的結果。經過反復的調整,最終神經網絡將能夠分辨出兩者間的差異。

我實際上能夠構建這樣的神經網絡,並得出95%的準確率。結果並不完美,但仍然是驚人的。

機器學習能解決哪些問題

在機器學習中,有3個不同的分支,它們都分別解決不同類型的問題。

監督學習

監督學習是我到目前為止在向你解釋的,因為它是最容易理解的。給出輸入,並得知輸出是什麽。我們有貓的圖像,而且知道它被標記為貓。通過給合適的特征賦予合適的權重,從而得出正確的結果,即圖像為貓。

這就類似你在復習細胞生物學測試。你在在測試自己是否掌握了細胞不同部分的功能。你正在學習細胞結構,即輸出,並將其與輸出——細胞各部分的功能相匹配。這就是你在學習從輸入到輸出的過程。

無監督學習

無監督學習是一個數據集,但當中沒有標簽或沒有正確的答案。當中只有數據點,無監督學習的目的是找出數據中的模式,並幫助得出結論。

舉一個簡單的例子。給監督學習算法一個正方形,告訴它是正方形,然後在給出一個三角形,告訴它這是三角形,諸如此類。接著它會理解是正方形是什麽樣的,三角形又是什麽樣的。

而在無監督的學習問題中,它只會給出一堆形狀,而不會被告知它這些是形狀。在這種情況下,無監督學習算法將相似的形狀組合在一起,可能是邊的數量相同的形狀,具有相同區域的形狀,具有相似顏色的形狀等等。接著它會找到基礎模式能夠將形狀分類。

技術分享圖片

這就是無監督學習算法如何嘗試在數據點中找到模式的例子。算法確定這是數據點之間的最佳分割,因為所有黃點與其他黃點最相似,所有紅點與其他紅點最相似,並且所有藍點與其他藍點相似。

強化學習

這實際上是我在機器學習中最喜歡的主題,也是我在編程方面投入時間最多的部分。最吸引我的就是以下視頻中的這種行走機器人。

強化學習是理解如何在環境中讓獎勵最大化獎勵的智能體。在以上視頻中,當智能體能夠行走時就將獲得獎勵。為了將獎勵最大化,它將盡可能長時間地行走。

智能體通過測試所有可能的腿部動作來實現行走。智能體會因此獲得獎勵,因此它會繼續行並重復這一行動。

這很類似當我六歲的弟弟學走路時,媽媽會在他邁步時會鼓掌和歡呼。當他摔倒時他會停止讓他跌倒的行動,並繼續采取獲得媽媽鼓掌歡呼的步驟。最終,他學會了跑。

強化學習每次都讓我大吃一驚。

應用
讓我們來談談機器學習在現實中的應用。

自然語言處理(NLP)
計算機通過0和1中說話,我們用文字說話。我們的談話方式與計算機的談話方式之間存在差距,我們必須訓練計算機來理解我們的語言。使用NLP,計算機不僅能夠轉錄單詞,而且能夠從中提取意義,甚至能以某種語調進行對話!有了Siri,Alexa和Cortana等助手,與智能手機交談最終會像在手機上使用鍵盤一樣普遍。

計算機視覺(CV)

NLP讓計算機具有通話能力,CV讓計算機能夠看到。這被應用在自動駕駛汽車中,用於檢測不同的物體,如其他汽車、行人以及道路上的車道。這能夠讓計算機從攝像機中提取信息。這還可以用於簡單的人臉識別和檢測算法,正如Facebook上使用的那樣。

技術分享圖片


分析健康數據

想象一下,Mark每天都在他家附近的公園裏散步,但突然有一天他摔倒了,心臟病發作了。心臟病像許多其他疾病一樣是非常突然的,幾乎沒有任何預兆。我們身體中的某些模式預示著即將發生的某些健康方面的問題。通過使用Fitbits等設備能夠來跟蹤我們身體的健康數據,從而能夠分析這些數據並提前開始進行預測。通過分析健康數據,在Mark心臟病發作前一周,醫生們就能夠知道,並及時提供他需要的幫助。

關鍵要點
機器學習能夠機器學習如何執行任務,而且無需明確地編程。

深度學習是機器學習的一個子集,它使用稱為神經網絡的特定算法,該算法是以人腦為模型的。

監督學習具有輸入和輸出,其目的是弄清楚如何從輸入到輸出。無監督學習具有數據點,其目的只是在數據中找到模式。

強化學習是機器人在物理和虛擬世界中學習如何走路、跳躍和執行其他人類行為的方式。

機器學習和深度學習的潛力是無限的,它將以前所未有的方式徹底改變世界。

幹貨 | 機器學習沒有你想的那麽復雜