《神經網路與深度學習》的教學方法

2021-07-10 20:44:36 字數 1240 閱讀 7706

神經網路,是人們發明的最優美的程式設計正規化之一。在通常程式設計模式下,人們告訴計算機做些什麼,把乙個大問題拆解成多個小問題,並精確定義任務,以方便計算機去執行。神經網路則與此相反,人們並不告訴計算機如何求解問題,而是由計算機通過觀察資料進行學習,自行得出解決問題的辦法。

人們期待神經網路能從資料中自動學習,但在2023年之前,除了極少數的個例,人們並不知道如何訓練神經網路,使其超越傳統程式設計方式。2023年,人們發明了叫做「深度神經網路」的學習技術,情況改變了。這項技術,就是人們現在所說的「深度學習"。至今,深度學習技術有了長足進步,在計算機視聽覺和自然語言處理等重大問題上,取得突出成就。谷歌、微軟、臉書等大公司都在開發深度學習技術。

本書的目的,是要幫助你完全掌握神經網路的核心知識,其中包括深度學習的技術。在學習過程中,你要編寫神經網路和深度學習的**,以解決有關模式識別的複雜問題。這會為你攻克其他具體問題,打下基礎。

本書秉持這樣的理念:寧可通曉核心知識,不要懵懂一堆瑣碎事情。弄懂了核心思想,可以快速理解其他新東西。這如同學習一門新的程式語言時,要先精通核心語法、庫和資料結構。結果,可能開始你僅僅懂這門語言的一小部分,但你能快捷輕鬆地掌握新的庫和資料結構。

這就意味著,本書不是介紹如何使用某些特定神經網路庫的教程。如果你非要學習某個庫不可,就不要來讀這本書!你去找這個庫吧,通過它的文件和教材去學習。但你應該注意這樣做的利弊得失。當你需要弄懂神經網路內部真實發生了什麼時,你會發現,僅僅學會熱門的庫是不夠的。你應該對神經網路具有持久不衰的真知灼見。技術變來變去,真知灼見永恆。

我們學習神經網路和深度學習的核心知識,是在攻克乙個難題的過程中進行。這個難題就是教會計算機識別人們手寫的數字。對於常規程式設計來說,這是極其困難的事情。你會看到,使用簡單的神經網路,僅僅幾十行**,也無需特別的庫支援,就能輕鬆搞定。甚至,我們會通過多次迭代來改進程式,逐步融入神經網路和深度學習的核心思想。

說明一點,閱讀本書對數學知識的要求並不高。大多數章節中都有一些數學內容,但它通常只是涉及函式的初等代數和圖形,我期望大多數讀者會認可。我偶爾會使用更高階的數學內容,但做了結構化處理,你可以跟著學,也可以避開數學細節。大量使用數學的是第2章,用到了多變數微積分和線性代數。考慮到有人對此不熟悉,我在第2章開頭討論了如何瀏覽數學相關的內容。如果你還是覺得它太難,可以直接跳到該章的總結部分。在任何情況下,不必一開始就擔心數學問題。

如果一本書同時以」注重原理「和」注重動手程式設計「作為目的,是很少見的。但我相信,如果掌握了神經網路的基本思想,你會學習得非常好。我們要開發出生動的**,而不只是抽象的理論。你可以進一步探索和擴充套件**。這樣你就會從理論實踐兩方面,進一步增加你的知識。

機器學習,深度學習,神經網路,深度神經網路

先來說一下這幾者之間的關係 人工智慧包含機器學習,機器學習包含深度學習 是其中比較重要的分支 深度學習源自於人工神經網路的研究,但是並不完全等於傳統神經網路。所以深度學習可以說是在傳統神經網路基礎上的公升級。神經網路一般有輸入層 隱藏層 輸出層,一般來說隱藏層大於2的神經網路就叫做深度神經網路,深度...

深度學習 深度神經網路

神經網路是由乙個個神經元相互連線並按層次排列構成的,深度神經網路是有任意層的神經網路,這裡的深度是指層次的多,而不是神經元數量的多。有任意層,那麼就要有乙個迴圈來負責遍歷每一層進行計算。所以深度神經網路的計算形式,就必須要適應這個迴圈結構。我們先來說說神經元吧 對於多神經元神經網路,其實也是一樣的。...

神經網路與深度學習(一)

參考 關於權重和偏置的合理解釋 這周開始考慮在基於mp實現一些特定應用的時候,其實我心中是有幾個雛形的,但是涉及到技術細節的時候,還是有些缺乏,所以就想找本書能提供些參考。巧合的是,發現了這本 神經網路與深度學習 正好也是基於python的,有用武之地。本章通過神經網路來識別手寫數字,在這一章中涉及...