當前位置:
首頁 > 最新 > 經驗分享:我的Deeplearning.ai課程學習之旅!

經驗分享:我的Deeplearning.ai課程學習之旅!

最近我完成了吳恩達的deeplearning.ai的最後一個課程,所以我想分享一些我的想法和經驗,幫助你們來學習這套課程。我發現吳恩達對前三門課程的評論非常有用,所以希望我的課程回顧能夠幫助到你。

團隊領導;博士

參加這五門課程非常有益。內容結構合理,當然,需要對每個對矩陣代數至少有一點理解、編寫Python代碼的一些經驗也是必需的。在我看來,這個課程是讓你開始深度學習各個主題的絕佳方式,而參加完課程後,你應該就會知道自己在哪個領域能夠進一步深入學習。

背景

我必須承認,在參加這些課程之前,我對神經網路(NN)持懷疑態度。就傳統的機器學習(ML)來說,我不認為像一個黑盒子方法可以將某些函數(神經元)切換在一起,我不能單獨進行訓練和評估,可能會超越一個精細調整好的評估模型。事實上,深度學習(DL)和人工智慧(AI)這樣的流行語,讓我更加懷疑。

在之前的課程中,我已經體驗到Coursera平台很適合我的學習方式。從他的第一個大型開放式網路課程(MOOC)的視頻中,我知道吳恩達是ML領域的一名講師。但是由於Octave,我從來沒有在那個課程中完成任務。但我知道這一系列課程可能是以結構化方式進入DL領域的好機會。

通常情況下,我只在一門特定的課程中註冊一個我想學習的主題,觀看內容並儘快完成作業。但是這一次,我決定徹底和循序漸進地做到這一點。我希望,關於認知具有挑戰性的話題的工作可能會幫助我儘快獲得好成績。編程任務一直是重新回到編碼和定期在計算機上工作的好機會。事實上,在開始的幾周內,我只能坐在顯示器前面,看看是否有短暫的時間限制。所以我必須列印出作業,在一張紙上解決,然後在提交給評分員之前輸入丟失的代碼。此外,在開始時發生了意想不到的副作用。在前三個課程中有可選的視頻,吳恩達採訪了DL的領袖人物(Hinton,Bengio,Karpathy等)。這些視頻不僅具有豐富的內容,而且非常具有激勵性,至少對我來說尤其如此。

期待什麼

在專業層面上,當你對這個主題相當陌生時,你可以學到很多做deeplearning.ai的專業知識。首先,你要學習NN的基本概念。簡單順序模型中的前向傳遞如何,什麼是反向傳播等等。我曾經在一段時間之內,閱讀並聽說過NN的這些基本構建塊。但從來沒有像吳恩達那樣清晰、有條理。所以我經歷了這套課程,作為學習基礎知識的非常有效的方式,並且比我事先通過的所有教程、博客文章和講座都更有價值。

儘管在技術領域的大量營銷工作中另有說明,但在第一個入門課程中也會學到,NN在生物模型中沒有對應物。神經元中的信號處理與功能(線性的,具有非線性應用)完全不同,神經元由NN組成。

對新手來說,非常有用的是了解DL項目的不同方法。是否使用預先訓練的模型進行轉移學習或採取端到端的學習方法。數據增強的概念至少在方法層面得到了解決。

在更高級的課程中,將了解圖像識別(課程4)和序列模型(課程5)的主題。這裡教導了卷積神經網路(CNN)和遞歸神經網路(RNN)的最常見變體。我認為這是專業化的一個主要優勢,你可以得到各種最先進的模型和方法。它可能不會讓你成為DL的專家,但你會感覺到你可以進一步專註於該領域的哪一部分。

我發現對深化理解非常有用的是,通過Fran?oisChollet的書籍「深度學習與Python」來補充課程的工作。本課程範圍內的技術方法論基礎在課程講座中得到了很好的闡述。另一方面,DL項目的實際方面在本課程中有所涉及,但在任務中未得到廣泛實施,這些內容已在本書中詳細介紹。特別是數據預處理部分在課程的編程任務中明顯缺失。在第二組中,您確實得到了使用DL框架(tensorflow和Keras)的教程,但是很明顯,Keras的inital創建者的一本書將教會您如何更深刻地實現DL模型。

下面列出你可以特別期望從這五門課程中學到什麼,以及一些在課程工作中的個人經驗。之後,我會總結一些最後的想法。

神經網路與深度學習

本課程向您介紹NN的基本構建模塊。您將了解邏輯回歸、成本函數、激活以及(sochastic-&mini-batch-)梯度下降如何工作。你也可以用Python中的numpy快速介紹矩陣代數。

該課程是一個簡單的介紹。吳恩達是一位出色的講師,即使是數學背景較弱的人也應該能夠很好地跟蹤內容。

在作業中,首先用單個感知器進行二元分類,然後為同一任務研究生成多層感知器,最後編碼一個具有numpy的深度NN。尤其是這兩個圖像分類任務在某種意義上具有啟發性和回報性,您將從中獲得有效的貓分類器。正如你在圖片上看到的那樣,它決定了貓是否在圖像上。

改進深度神經網路:超參數調整、正則化和優化

正如其標題所示,在本課程中,您將學習如何微調您的深層神經網路。這些講座中最常見的問題,如過度擬合或消失/爆炸漸變,得到了解決。您將學習如何找到合適的權重初始化、使用丟失、正則化和規範化。當然,不同的優化演算法是如何工作的,以及哪一種是您的問題的選擇權。

本課程最有用的見解是我使用隨機值進行超參數調整,而不是採用更加結構化的方法。事實證明,在規定的空間和正確的尺度上選取隨機值比使用網格搜索更有效率。

這個課程的任務有點枯燥,我想是因為他們必須處理的內容。但是,每一個都是非常有啟發意義的,特別是有關優化方法的。作為獎勵,您將在課程結束時獲得有關如何使用tensorflow的教程,這對於下列課程即將進行的作業非常有用。

構建機器學習項目

這絕對是一隻黑天鵝。由於它的內容只是為期兩周的研究,我期望在前兩個入門課程和之後的關於CNN和RNN的高級課程之間有一個快速的填充。此外,我認為我很習慣構建ML項目。但事實證明,這對我來說是最有價值的課程。

在本課程中,將學習開發DL模型的良好實踐。將你的數據分解成一個訓練,開發和測試集應該聽起來很熟悉大多數ML從業者。在開始項目之前,請徹底決定要優化的矩陣。而且,應該量化模型執行的域的Bayes-Optimal-Error(BOE)。這是一個重要的步驟,我之前沒有意識到(通常,我將性能與基準模型進行了比較 - 這一點同樣重要)。當你必須評估模型的性能時,你當然會將開發錯誤與BOE(或HLE)和訓練錯誤進行比較。因此,你可以將可避免的偏差(BOE與訓練錯誤)與模型的差異(訓練到開發錯誤)進行比較。而這兩者的哪一個更大取決於,你應該採用什麼策略來進一步提高性能。例如,如果方差存在問題,則可以嘗試獲取更多數據,添加正則化或嘗試完全不同的方法(例如替代體系結構或不同的超參數搜索)。

你還可以了解建立項目的不同策略以及具體的轉移和端到端學習。

卷積神經網路

由於我對計算機視覺不太感興趣,至少在參加本課程之前,我對其內容的期望並不高。但事實證明,這成為我整個系列課程中最有教育意義的一門課程。

在本課程中,你將主要了解CNN及其如何應用於計算機視覺任務。從演講視頻中,你可以了解CNN的構建模塊以及它們如何能夠改變張量。有些視頻也專門用於殘留網路(ResNet)和初始體系結構。

我親自找到了有關YOLO演算法的視頻,分別是關於YOLO演算法的作業。基本功能在演講中非常直觀,我從未想過,物體檢測可以是一項令人愉快的任務。但建立一個傑出但複雜的模型有時也是不夠的。在YOLO的背景下,特別是其繼任者,很顯然,預測速度也是一個重要的衡量指標。

對所有五個課程最有教育意義的任務成為一個,在那裡你實現一個低水平抽象的CNN架構。編碼反向傳播的可選部分加深了對逆向學習步驟如何真正起作用的理解。

面部識別有兩個任務,一個是人臉識別。這是一個很好的舉措,在這些主題的講座和任務中,您將了解deeplearning.ai團隊成員,至少從他們的照片中可以看出,把這些作為示例圖像來驗證。

神經類型轉移,基本上,你必須實現Gatys,2015年張量流程的體系結構。當你瀏覽中間記錄的結果時,你可以看到你的模型如何學習並在時代中將樣式應用到輸入圖片。

序列模型

最後一個,我認為是最難的。你將學習RNN、門控重發單元(GRU)和長期短期內存(LSTM)的概念,包括它們的雙向實現。雖然這對我來說是使這種專業化理解和使用這些模型的最終目標,但我發現內容難以遵循。這可能是因為複雜的概念,如時間倒序、詞嵌入或波束搜索。而且我認為,這些非平凡主題的數量會更好地分成四個,而不是實際的三個星期時間。

另一方面,本課程的測驗和編程作業顯得非常簡單。你將學習如何開發從角色序列中學習以獲得新的相似內容的RNN。

把所有的東西都化為泡影!使用Word嵌入和LSTM

很棒的是,你在第二周學習的不僅是關於詞嵌入,而且關於它嵌入中包含的社會偏見的問題。而最重要的是,你將學習如何以三步走的方式解決這個問題:識別 - 抵消 - 均衡。最後,一個非常有教育意義的是最後的編程任務。您可以像在Amazon Echo或Google Home設備中找到的觸發器檢測器一樣構建觸發器檢測器來喚醒它們。

最後的想法

最後,我會說,如果你對這個主題不太熟悉,你可以從這個專業化中受益最多。如果您已經熟悉NN的基礎知識,請跳過前兩門課程。如果你對圖像識別和序列模型也非常熟悉,我會建議僅參加「構建機器學習項目」課程。

另一方面,要知道你是哪種學習類型。如果你是一個嚴格的實踐者,這種專業化可能不適合你。人們說,fast.ai提供了更多這樣的體驗。此外,如果你只對理論性的東西感興趣而沒有實際的實施,那麼你可能不會對這些課程感到滿意 - 也許在你當地的大學學習一些課程,也許你只對DL的一個特定領域感興趣,也許你也可能會選擇更合適的課程。比如說,如果你只想了解自動駕駛,那麼在Udacity上註冊「Self-driving Car」nanodegree」可能會更有效率。在deeplearning.ai的第三課中,你對這個主題的了解可能過於膚淺,缺乏實際的實施。但是,如果你認為這個方法是全面的介紹,並且希望將它與DL的各個領域的實踐經驗結合起來,我肯定會推薦進行deeplearning.ai專業化。

做這個專業化可能不僅僅是DL的第一步。每門課程都朝著正確的方向邁出了一步,所以最終總共有五步。儘管如此,我很清楚,這絕對不足以在人工智慧中追求更多職業。我認為它構建了對該領域的基本理解。但進一步說,你必須練習很多,最後還可以閱讀更多有關DL變體方法背景的知識(例如在講座中提到的更高級的論文中)。但是,通過這門課程的學習,你可以開始以結構化的方式開展工作。這非常有價值,尤其是在一個圍繞它開展工作的領域。

如果你想獲得關於deeplearning.ai專業化的更多信息,並聽到另一個(但相似的)我可以推薦觀看Christoph Bonitz關於他參加MOOCs的經歷的談話,他在Vienna Deep學習聚會。

最重要的是,我不會後悔把時間花在Coursera的專業上。我的大部分希望都已經實現,我在專業水平上學到了很多東西。完成所有課程,包括可選部分,這也是一個很好的決定。

最後,我從這個特殊化中脫穎而出:現在我完全相信DL方法及其強大功能。它的主要優勢在於具有大量數據的可擴展性以及模型推廣到類似任務的能力,這些可能不會從傳統的ML模型中獲得。所以,我想感謝吳恩達,整個deeplearning.ai團隊和Coursera在DL上提供如此有價值的內容。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 AI全球動態 的精彩文章:

新手必讀系列:實例解讀TensorFlow

TAG:AI全球動態 |