1. 程式人生 > >吳恩達deeplearning.ai課程系列筆記01

吳恩達deeplearning.ai課程系列筆記01

#寫在最前,deeplearning.ai系列課程相較於之前的Andrew Ng在coursea上2014釋出的機器學習課程內容更加豐富。 重要的是此次課程示例程式碼都是用python來實現,不需要去熟悉octave,對大部分需要用python來學習機器學習的同學來說是個福音! 原課程視訊請移步網易雲課堂或者coursea上學習。

#本文內容部分來自網路,只為自己學習以及分享供更多的人學習使用微笑

關於課程內容與你將獲得的收穫:

摘自課程視訊:

本課程教你如何在實際工作中利用深度學習,而不僅僅是瞭解深度學習的簡單描述知識。

所以在完成本課程的學習之後,您應該能夠在你的應用中使用深度學習技術。

如果您正在尋找一份AI相關的工作,那麼在本課程學習完成之後,您可以回答一些基本面試問題。

主要分為兩類,包括監督學習和無監督學習:

舉個最近的例子,以前版本的AlphaGo就屬於監督學習的例子,因為需要前期輸入資料,從前人的經驗中學習,

而DeepMind最近推出的新版本AlphaGo Zero則屬於無監督學習的例子,完全從零開始,功能相當強大。

1、神經網路

首先,要知道什麼是神經網路?

舉個小栗子:

如果要預測房屋的價格,如圖所示,家庭人口、步行化程度以及學校的質量都能幫助你預測房屋的價格。

以此為例, x 是所有的這四個輸入, y是你嘗試預測的價格,把這些單個的神經元疊加在一起,我們就有了一個稍微大一點的神經網路。


2、監督學習

在監督學習中,我們需要給定一些訓練資料,包含對應的輸入和輸出。

通過這些資料,我們可以訓練出一個模型,根據該模型,可以用於預測其他的輸入對應的輸出可能會是什麼。


目前,一個應用的非常多的場景是線上廣告。它可以根據該使用者的習慣來預測該使用者對哪些廣告資訊點選的可能性更大來給使用者有選擇的推薦廣告,從而提高廣告的推廣作用。

對於影象相關的應用,通常卷積神經網路(CNN)可以發揮更大的優勢。

對於語音等與時間序列相關的應用,遞迴神經網路(RNN)則更為適用。

下圖表示的是一個標準結構的神經網路。

卷積神經網路常用用於處理影象相關的應用。卷積神經網路的結構如下:

迴圈神經網路常常用於與時間序列有關的資料。其基本結構如下:

在機器學習領域,我們通常將輸入資料非為結構化資料和非結構化資料兩類。

結構化資料意味著資料的基本資料庫。例如在房價預測中,你可能有一個數據庫,有專門的幾列資料告訴你臥室的大小和數量,這就是結構化資料。或預測使用者是否會點選廣告,你可能會得到關於使用者的資訊,比如年齡以及關於廣告的一些資訊,然後對你的預測分類標註,這就是結構化資料,意思是每個特徵,比如說房屋大小臥室數量,或者是一個使用者的年齡,都有一個很好的定義。相反非結構化資料是指比如音訊,原始音訊或者你想要識別的影象或文字中的內容。這裡的特徵可能是影象中的畫素值或文字中的單個單詞。

相對結構化資料而言,計算機對於非結構化的資料更加地難以理解和處理。

從歷史經驗上看,處理非結構化資料是很難的,與結構化資料比較,讓計算機理解非結構化資料很難,而人類進化得非常善於理解音訊訊號和影象,文字是一個更近代的發明,但是人們真的很擅長解讀非結構化資料。

3、無監督學習

不同於監督學習的資料的樣子,無監督學習中沒有任何的標籤或者是有相同的標籤或者就是沒標籤。

無監督學習演算法可能會把這些資料分成兩個不同的簇。所以叫做聚類演算法。

聚類應用的一個例子就是在谷歌新聞中。

谷歌新聞每天都在,收集非常多,非常多的網路的新聞內容。

它再將這些新聞分組,組成有關聯的新聞。所以谷歌新聞做的就是搜尋非常多的新聞事件,自動地把它們聚類到一起。

4、深度學習相關

對於深度學習而言,想要發揮其優勢需要滿足以下三點:

1 足夠的資料量:若資料量不足,則無法發揮深度學習的優勢

2 足夠的計算能力:若計算能力不足,則無法快速訓練得到模型,不具備實際意義。

3 優秀的演算法:優秀的演算法可以在相同的資料量和計算能力時,得到更好的效能。同時,一些演算法也可以簡化計算,提高計算效率,例如用ReLU替換sigmod函式。

在深度學習的研究與應用過程中,整理流程通常如下:

1 提出一個想法

2 程式設計進行實現

3 訓練得到模型並驗證演算法效能

4 分析並提出新的想法進行改進