Python深度學習入門級知識詳解

2021-02-23 技福教育

自學深度學習是一個漫長而艱巨的過程。您需要有很強的線性代數和微積分背景,良好的Python編程技能,並紮實掌握數據科學、機器學習和數據工程。即便如此,在你開始將深度學習應用於現實世界的問題,並有可能找到一份深度學習工程師的工作之前,你可能需要一年多的學習和實踐。然而,知道從哪裡開始,對軟化學習曲線有很大幫助。如果我必須重新學習Python的深度學習,我會從Andrew Trask寫的Grokking deep learning開始。大多數關於深度學習的書籍都要求具備機器學習概念和算法的基本知識。除了基本的數學和編程技能之外,Trask的書不需要任何先決條件就能教你深度學習的基礎知識。這本書不會讓你成為一個深度學習的嚮導(它也沒有做這樣的聲明),但它會讓你走上一條道路,讓你更容易從更高級的書和課程中學習。

大多數深度學習書籍都是基於一些流行的Python庫,如TensorFlow、PyTorch或Keras。相比之下,《運用深度學習》(Grokking Deep Learning)通過從零開始、一行一行地構建內容來教你進行深度學習。

《運用深度學習》

你首先要開發一個人工神經元,這是深度學習的最基本元素。查斯克將帶領您了解線性變換的基本知識,這是由人工神經元完成的主要計算。然後用普通的Python代碼實現人工神經元,無需使用任何特殊的庫。

這不是進行深度學習的最有效方式,因為Python有許多庫,它們利用計算機的圖形卡和CPU的並行處理能力來加速計算。但是用普通的Python編寫一切對於學習深度學習的來龍去是非常好的。

在Grokking深度學習中,你的第一個人工神經元只接受一個輸入,將其乘以一個隨機權重,然後做出預測。然後測量預測誤差,並應用梯度下降法在正確的方向上調整神經元的權重。有了單個神經元、單個輸入和單個輸出,理解和實現這個概念變得非常容易。您將逐漸增加模型的複雜性,使用多個輸入維度、預測多個輸出、應用批處理學習、調整學習速率等等。

您將通過逐步添加和修改前面章節中編寫的Python代碼來實現每個新概念,逐步創建用於進行預測、計算錯誤、應用糾正等的函數列表。當您從標量計算轉移到向量計算時,您將從普通的Python操作轉移到Numpy,這是一個特別擅長並行計算的庫,在機器學習和深度學習社區中非常流行。

Python的深度神經網絡

有了這些人造神經元的基本構造塊,你就可以開始創建深層神經網絡,這基本上就是你將幾層人造神經元疊放在一起時得到的結果。

當您創建深度神經網絡時,您將了解激活函數,並應用它們打破堆疊層的線性並創建分類輸出。同樣,您將在Numpy函數的幫助下自己實現所有功能。您還將學習計算梯度和傳播錯誤通過層傳播校正跨不同的神經元。

隨著您越來越熟悉深度學習的基礎知識,您將學習並實現更高級的概念。這本書的特點是一些流行的正規化技術,如早期停止和退出。您還將獲得自己版本的卷積神經網絡(CNN)和循環神經網絡(RNN)。

在本書結束時,您將把所有內容打包到一個完整的Python深度學習庫中,創建自己的層次結構類、激活函數和神經網絡體系結構(在這一部分,您將需要面向對象的編程技能)。如果您已經使用過Keras和PyTorch等其他Python庫,那麼您會發現最終的體系結構非常熟悉。如果您沒有,您將在將來更容易地適應這些庫。

在整本書中,查斯克提醒你熟能生巧;他鼓勵你用心編寫自己的神經網絡,而不是複製粘貼任何東西。

代碼庫有點麻煩

並不是所有關於Grokking深度學習的東西都是完美的。在之前的一篇文章中,我說過定義一本好書的主要內容之一就是代碼庫。在這方面,查斯克本可以做得更好。

在GitHub的Grokking深度學習庫中,每一章都有豐富的jupiter Notebook文件。jupiter Notebook是一個學習Python機器學習和深度學習的優秀工具。然而,jupiter的優勢在於將代碼分解為幾個可以獨立執行和測試的小單元。Grokking深度學習的一些筆記本是由非常大的單元格組成的,其中包含大量未注釋的代碼。

這在後面的章節中會變得尤其困難,因為代碼會變得更長更複雜,在筆記本中尋找自己的方法會變得非常乏味。作為一個原則問題,教育材料的代碼應該被分解成小單元格,並在關鍵區域包含注釋。

此外,Trask在Python 2.7中編寫了這些代碼。雖然他已經確保了代碼在Python 3中也能順暢地工作,但它包含了已經被Python開發人員棄用的舊編碼技術(例如使用「for i in range(len(array))」範式在數組上迭代)。

更廣闊的人工智慧圖景

Trask已經完成了一項偉大的工作,它匯集了一本書,既可以為初學者,也可以為有經驗的Python深度學習開發人員填補他們的知識空白。

但正如泰溫·蘭尼斯特(Tywin Lannister)所說(每個工程師都會同意),「每個任務都有一個工具,每個工具都有一個任務。」深度學習並不是一根可以解決所有人工智慧問題的魔杖。事實上,對於許多問題,更簡單的機器學習算法,如線性回歸和決策樹,將表現得和深度學習一樣好,而對於其他問題,基於規則的技術,如正則表達式和幾個if-else子句,將優於兩者。

關鍵是,你需要一整套工具和技術來解決AI問題。希望Grokking深度學習能夠幫助你開始獲取這些工具。

你要去哪裡?我當然建議選擇一本關於Python深度學習的深度書籍,比如PyTorch的深度學習或Python的深度學習。你還應該加深你對其他機器學習算法和技術的了解。我最喜歡的兩本書是《動手機器學習》和《Python機器學習》。

你也可以通過瀏覽機器學習和深度學習論壇,如r/MachineLearning和r/deeplearning subreddits,人工智慧和深度學習Facebook組,或通過在Twitter上關注人工智慧研究人員來獲取大量知識。

AI的世界是巨大的,並且在快速擴張,還有很多東西需要學習。如果這是你關於深度學習的第一本書,那麼這是一個神奇旅程的開始。

相關焦點

  • 一個入門級python爬蟲教程詳解
    這篇文章主要介紹了一個入門級python爬蟲教程詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑑價值,需要的朋友可以參考下
  • 分享《深度學習入門:基於Python的理論與實現》高清中文版PDF+原始碼
    《深度學習入門:基於Python的理論與實現》本書是深度學習真正意義上的入門書,深入淺出地剖析了深度學習的原理和相關技術。書中使用Python3,儘量不依賴外部庫或工具,從基本的數學知識出發,帶領讀者從零創建一個經典的深度學習網絡,使讀者在此過程中逐步理解深度學習。
  • python深度學習---帶你從入門到精通
    深度學習在搜索技術,數據挖掘,機器學習,機器翻譯,自然語言處理,多媒體學習,語音,推薦和個性化技術,以及其他相關領域都取得了很多成果。深度學習使機器模仿視聽和思考等人類的活動,解決了很多複雜的模式識別難題,使得人工智慧相關技術取得了很大進步。
  • 「人工智慧師資班」(Python機器學習,圖像識別與深度學習,深度學習與NLP,知識圖譜,強化學習)
    本次培訓分為Python機器學習,圖像識別與深度學習,深度學習與NLP,知識圖譜和強化學習五大專題。本次培訓由權威專家主講,提供實驗環境及實驗數據,並提供配套資料,通過剖析工程案例展現機器學習、深度學習落地全過程。培訓暫定2021年1月5日開始,每個專題6天左右,一共28天,直播集訓。本次培訓由淺入深,面向0基礎、不懂機器學習、不具備任何Python基礎的老師和同學。
  • 十六本python入門學習書籍推薦,python入門新手必看
    隨著人工智慧時代的到來,python程式語言一步登天衝到編程排行榜第一名,因此更多朋友想轉行學習python程式語言的朋友,可以一起看一下:python入門新手必看的十六本python入門學習書籍1、python基礎教程司維所著圖書:本書包括Python程序設計的方方面面,首先從Python
  • GitHub | 機器學習&深度學習&nlp&cv從入門到深入全套資源分享
    深度學習之目標檢測的前世今生(Mask R-CNN)深度學習目標檢測模型全面綜述:Faster R-CNN、R-FCN和SSD從RCNN到SSD,這應該是最全的一份目標檢測算法盤點目標檢測算法綜述三部曲基於深度學習的目標檢測算法綜述(一)基於深度學習的目標檢測算法綜述(二)基於深度學習的目標檢測算法綜述
  • 乾貨分享 | 機器學習、深度學習、nlp、cv從入門到深入全套資源分享
    深度學習之目標檢測的前世今生(Mask R-CNN)深度學習目標檢測模型全面綜述:Faster R-CNN、R-FCN和SSD從RCNN到SSD,這應該是最全的一份目標檢測算法盤點目標檢測算法綜述三部曲基於深度學習的目標檢測算法綜述(一)基於深度學習的目標檢測算法綜述(二)基於深度學習的目標檢測算法綜述
  • 【python】Tkinter可視化窗口(三)
    精彩知識回顧前兩個Tkinter文章為:【python】Tkinter可視化窗口一【python】Tkinter窗口可視化二剽竊;抄襲推薦閱讀:精彩知識回顧【珍藏版】長文詳解python正則表達式這些神經網絡調參細節,你都了解了嗎談談我在自然語言處理入門的一些個人拙見
  • python編程入門,零基礎學習Python基礎教程
    這裡推薦這門python編程入門基礎教程,適合零基礎的同學學習!python軟體工程師都學什麼?自學Python,看視頻學的更快、更透徹一些,給你個課程大綱!階段一:Python開發基礎Python全棧開發與人工智慧之Python開發基礎知識學習內容包括:Python基礎語法、數據類型、字符編碼、文件操作、函數、裝飾器、迭代器、內置方法、常用模塊等。
  • Keras 教程: Python 深度學習終極入門指南
    開始之前, 請注意, 本指南是面向對應用深度學習感興趣的初學者的.我們旨在向你介紹一個最流行的同時也是功能最強大的, 用於建立神經網絡的 Python 庫. 這意味著我們將跳過許多理論與數學知識, 但我們還是會向你推薦一些學習這些的極好的資源.
  • 【python】命令行參數argparse用法詳解
    憂慮的;不安的;敏悟的;知曉的推薦閱讀:精彩知識回顧【珍藏版】長文詳解python正則表達式這些神經網絡調參細節,你都了解了嗎談談我在自然語言處理入門的一些個人拙見大數定律和中心極限定理的區別和聯繫深度學習之激活函數詳解深度學習之卷積神經網絡CNN理論與實踐詳解深度學習之RNN、LSTM及正向反向傳播原理
  • AI | 怎樣快速入門機器學習和深度學習?
    編者按:入門機器學習和深度學習並不是一件容易的事情。需要學習大量的知識,初學者常常會迷茫不知所措。現在我們給你帶來一篇純乾貨,幫助你入門機器學習和深度學習。機器學習算法書籍:《統計學習方法》:李航博士的經典教材。用最精煉的語言描述機器學習算法,轉行AI必讀書籍《機器學習》:周志華教授的西瓜書。統計學習方法涵蓋面太窄,配合西瓜書來擴展寬度。《python機器學習及實現》:適合入門,學習曲線平滑,理論書看累了,就跟著這本書打一遍代碼,對kaggle就會大致的了解。
  • 【python】讀取json文件
    JSON在python中分別由list和dict組成。疏忽,忽視;怠慢推薦閱讀:精彩知識回顧【珍藏版】長文詳解python正則表達式這些神經網絡調參細節,你都了解了嗎談談我在自然語言處理入門的一些個人拙見
  • 程式設計師大神分享零基礎如何30天入門快速學習python
    零基礎如何30天入門快速學python?一:明確自己的學習目標不管我們學習什麼樣的知識,都要對自己的學習目標有一個明確的認識。基本的字典操作方法以上這些可以略微掌握之後就進行下一步,遇到不會的可以在網上查找一下,或者看下書和筆記以及一些基礎的學習視頻。三、掌握Python的條件、循環和相關的執行語句任何知識它的基礎知識都是有些枯燥的,現在我們就可以動手來做一些邏輯層面的東西了。
  • 入門深度學習與機器學習的經驗和學習路徑
    ,也算個初級煉丹選手了,就想分享一些關於如何入門機器學習與深度學習的經驗和學習路徑。可以開始進入學習環節。首先就是python基礎的學習,這裡我個人比較推薦的是Python基礎以及數據分析一起進行學習。基礎的學習路徑如下:python基礎先看莫煩的python基礎教學視頻,非常的友好而且基礎。
  • 可能是最通俗易懂的Python入門資料整理和最優學習路線推薦.
    廖雪峰的Python教程:優點:完整、精煉、有深度。缺點:不太適合新手學習,有一種學「畫馬」的感覺。《笨辦法學 Python3》:優點:做為入門的書籍非常的值得一讀。缺點:涉及知識點較少,某些章節超綱比較嚴重。
  • 最熱門的深度學習框架TensorFlow入門必備書籍
    但進入機器學習和人工智慧領域並不是一件簡單的事情,目前市場上有許多大量的學習資源,許多開發者和想要進入的愛好者往往很難找到適合自己的發展路徑。其實,早在 2015 年底,谷歌就開源了內部使用的深度學習框架 TensorFlow 。眾多研究表明,Tensorflow 是研究深度學習的首選平臺。
  • 入門Python, 看這些資料就夠了
    身邊有不少朋友想學習Python,經常問我怎麼學,有沒有推薦的資料。因此特意針對初學者整理了一份, 希望對即將學習或正在學習Python的你們有幫助。 要入門Python,資料並非越多越好, 基本上看這些資料就夠了。 。
  • 資源 | 300頁Python深度學習pdf-中文版
    又一本中文版的書籍來了,之前的那本沒領的可以點擊下面這個連結:乾貨|520頁中文版《動手學深度學習》視頻+pdf+github獲取。這次免費給大家的pdf是Deep Learning with Python,中文就是Python深度學習。挺全面的,就300頁左右,說多不多,列印出來也就10+塊。
  • 嵌入式如何入門,要不要學習Python
    問題圖片#回答看這個圖片吧單片機我是非常強烈要學習的,單片機是嵌入式的基礎,我特別建議學51,是因為51單片機的東西少,彙編指令也少,資料非常充分,作為入門是再好不過的了。可能大家發現了下面的圖片有一點特點,就是可以直接從單片機學習Linux,我上大學的是否,我們班上有一個打擾就是這樣學的。單片機做基礎,理解了一些硬體的基礎知識,就可以殺入到嵌入式Linux裡面去了。