吳恩達機器學習第一周課後感
前言
第一周很自然,肯定是要從Introduction開始。在簡單闡述吳恩達的Introduction之前,我先來簡單做一下我寫這系列文章的Introduction吧。吳恩達的《Machine Learning》和《Deep Learning》的兩門課都非常優秀,我都非常喜歡,深入淺出,非常適合剛入門的新人。但是課程結束之後,到了應用層面,很多細節我都沒有辦法記住,十分頭疼。想來,我自己有寫讀書讀後感、觀影觀後感的習慣,那為什麼不寫課後的課後感呢?完完全全用到了費曼的學習方法,用自己的語言闡述一遍課程內容,這種記憶法的效果是最好的;且在工作中如果有些內容需要溫習,我也有處可尋。所以,從今天開始,我要把之前課程重溫一遍,完成全課程的課後感,當然更是為了塑造我自己堅持不懈的優秀品格。開始,加油!
目錄
一、主要內容
二、個人感受
三、實際應用
正文
一、主要內容
第一周主要分成了三個部分Introduction、Linear Regression with One Variable、以及Linear Algebra Review。非常基礎,不需要了解非常難的數學常識,其中的線性代數雖然是大學數學的部分,但是內容依舊非常非常初級,就連量子力學裡反覆使用的本徵值都沒有出現,可見內容之簡單。
1. Introduction
首先吳恩達闡述了什麼是機器學習,吳恩達借用了Arthur Samuel和Tom Mitchell的概念。其中Tom Mitchell說得更加符合現代的標準,他認為機器學習就是一個程序,可以通過經驗獲得提高,從而處理一些任務,而且有相應的標準可以衡量。這邊說一點題外話,之前在quora上看到一種說法很有意思,「機器學習是現階段實現人工智慧最可行的辦法」。
機器學習比較粗獷的分類方法分為監督學習(Supervised Learning)和非監督學習(Unsupervised Learning)。解釋監督學習的時候,吳恩達使用了房價與房屋面積兩個變數之間的正相關來解釋。通過輸入大量房價和房屋面積的數據,然後匹配線性模型或者對數模型,最後選擇一任意房屋面積(即使不在資料庫內也可以),計算機就可以匹配到對應的房價。這種有連續數據的機器學習方法叫做回歸(Regression)。還有一種方法叫做分類(Classification)。相對於輸入不同的條件,獲得不同的答案,分類則是輸入不同的值只會獲得類似「是」或「否」這樣簡單的答案。
非監督學習(Unsupervised Learning)即與監督學習相反。在不需要輸入大量數據的情況下,計算機依舊可以通過某些特定的方法去解決問題。聚類(Clustering)是非監督學習中最常用的方法之一。不是Coursera的課程,而是在吳恩達斯坦福大學的課程上,吳恩達舉的例子非常有趣。就是讓計算機通過圖片中的特徵勾勒出不同物體的邊框。結果也非常好,一家人在金門大橋前的合影被計算機勾出了線條,幾個人和金門大橋的線條明顯可以被辨認出來。還有一種方法就是非聚類(Non-Clustering)。其適用於在複雜場景中辨別出某個特殊的值,吳恩達使用了雞尾酒會演算法(Cocktail Party Algorithm)進行了具體展示。在嘈雜的雞尾酒會,計算機可以通過非監督學習識別出酒會中某位男士的聲音,並消掉背景噪音,只讓我們聽到該男士的聲音。
2. Linear Regression with One Variable
這一部分被分為兩小節《模型和成本函數(Model and Cost Function)》和《參數學習(Parameter Learning)》。
《模型和成本函數(Model and Cost Function)》
開始是構建一個模型,吳恩達再一次舉出了房價與面積的例子(在之後《深度學習》的課程中他還會繼續使用該模型)。當我們輸入m個特徵值x,輸出變數y。當輸入的數據足夠大了之後,我們可以獲得相對更加準確的答案,當然這種簡單的模型還非常初級。成本函數(Cost Function)是一個非常重要的概念,通常我們用J來表示,在之後的《深度學習》中也會出現,這是用來檢驗我們假象函數的準確度的。其中通過平方差來計算是最準確的一種方法。
在課程中的例子非常好懂,當假想函數與輸入數據完全相符時,成本函數會為零,計算可得。這是我們最理想的情況,因此在日後我們追求的目標就是成本函數最小。得到零是不可能的,在大數據普及的今天成本函數為零簡直是妄念。之後我們可以為假想函數取不同的模型參數,相應獲得的x與y可以算出不同的成本函數值J。取最小值J的模型參數,也就是例子最開始使成本函數為零的那個參數。
上述例子是最簡單的模型,即y=kx。相對複雜一點,模型可能為y=kx+c。當我們同時調整k和c就會獲得非常多種組合方式,再加上最後的解J,我們需要一個三維圖像才能表示,圖片會像一個盆,當然二位也不是不可以。我最近在玩的《曠野之息》中需要看海拔地圖,轉換成二點陣圖像就是這樣。在我們獲得的二維圖像中,盆地的中心點就是我們需要獲得最小值,是我們最理想模型參數之所在。
《參數學習(Parameter Learning)》
梯度下降(Gradient Descent)非常非常重要,應該說是貫穿整個機器學習的重要線索之一。既然有梯度(Gradient),那就說明其中就有多項微積分的應用。承接上文,當我們在海拔地圖邊緣的時候,我們如何才能找到最低點呢?朝著最低點走過去,直到最低點即可。其中需要注意alpha值,也就是梯度下降時的學習效率,不可以太大,步子太大容易扯蛋。也不能太小,否則時間會很久。在線性回歸中我們可以使用梯度下降。由於線性回歸是一個凸函數,所以必定有一個局部最優解。當我們用梯度下降找到最優解之後,我們的線性回歸將是最合適的方案。同時我們可以批量(Batch)進行梯度下降,即對所有的樣本進行求和計算。
3. Linear Algebra Review
對線性代數的一些基礎內容進行簡單的複習,沒有任何高深的概念。講述了矩陣和向量的定義,其實都不需要浪費時間看。向量的加法、減法、以及如何與標量相乘,很基礎,跟四則運算差不多。矩陣的乘法,注意一下前後順序不能顛倒,形狀記得變化也沒什麼。最後的反函數概念與倒數類似。旋轉矩陣時則要注意位置,千萬不能填錯。
二、個人感受
第一周的內容很簡單,更像是進行科普,而不是在學習知識,這應該是最輕鬆的學習氛圍了吧。學習的確就是應該在這種輕鬆的氛圍下進行。最重要的是每個視頻都很短,平常午休時間,或者下午茶時間完全可以拿出一、兩個視頻進行學習。如果我可以善於利用時間的話,每周一篇,甚至於一周兩篇都是有可能的,當然我本人的自控力沒有達到這麼厲害的程度,能保證一周兩篇已經很不錯了。
回到課程內容,因為我個人相對來說比較熱愛學習,所以會在Coursera、網易公開課上東看看西看看。絕大多數課程第一周永遠都是最讓人興奮的,因為教授們總是會泛泛而談,大炒特炒各種概念。再將一些相應的實驗室應用拿到課堂上來,讓學生們彷彿置身於馬上就要學會「原力」的興奮狀態。隨著課程的深入,大家逐漸發現內容的局限性,意識到即使學會了也並非無所不能。期末考試之後才發現自己學到的東西只能解題,於是有些學生們會開始鼓吹「讀書無用論」。實際上雙方都有過度誇張。
我們要意識到技術還不是無所不能,但也可以做到很多事情。比如現在AlphaGo Zero可以100:0地吊打AlphaGo,which已經吊打了人類界的極大好手,雖然局限性還是很多,但是進步我們都有目共睹。積極結合監督學習和非監督學習的semi-supervised Learning,吳恩達在努力推動的遷移學習(Transfer Learning)在未來都有非常大為技術進步的空間。技術的未來還是有非常多值得我們去想像的,畢竟未來邏輯腦基本可以靠AI就能代替掉了,我們真正重要的想像力才是我們需要培養的。而且在業界,其實大家也都有共事,場景的選取比演算法的選取更加重要。學習機器學習的應用在將來會成為非常必要的人生過程。
三、實際應用
這一周的內容沒有辦法被應用,因為都是概念。
2017年10月28日
不過有一個可以嘗試一下,如果我要是能獲取《曠野之息》的地圖信息,其實我可以自己去實現最短路徑計算,跟谷歌地圖一樣方便。
還有就是可以嘗試針對《曠野之息》的強化學習,讓計算機學習如何讓林克大殺四方,或許可以打破其他玩家最快通關記錄。
這些想法還是太初級,之後希望有更多的
推薦閱讀:
※如何理解機器學習?
※機器學習基石筆記12:非線性轉換
※Titanic倖存者預測
TAG:機器學習 |