TensorFlow從基礎到實戰:一步步教你創建交通標誌分類神經網路
?【下載】2015中國數據分析師行業峰會精彩PPT下載(共計21個文件)
選自DataCamp
作者:Karlijn Willems
機器之心編譯
參與:Panda
TensorFlow已經成為了現在最流行的深度學習框架,相信很多對人工智慧和深度學習有興趣的人都躍躍欲試。對於初學者來說,TensorFlow也是一個非常好的選擇,它有非常豐富的入門學習資料和龐大的開發者社區。近日,數據科學學習平台DataCamp發表了一篇針對TensorFlow初學者的教程,從向量和張量的基本概念說起,一步步實現了一個分類交通標誌圖像的神經網路。機器之心對本教程進行了編譯介紹。
深度學習是機器學習的一個子領域,包含了一系列受大腦的結構和功能啟發得到的演算法。
TensorFlow是谷歌開發的第二個機器學習框架,可用於設計、構建和訓練深度學習模型。你可以使用TensorFlow庫進行數值計算,這本身似乎並沒有什麼特別的,但這些計算是使用數據流圖完成的。在這些圖中,節點表示數學運算,而邊則表示數據——通常是多維的數組或張量,在這些邊之間傳遞。
看到了吧?TensorFlow的名字就源自神經網路在多維數組或張量上執行的這種運算!它本質上就是張量的流。這就是目前你需要了解的關於張量的所有內容,但在接下來的章節中,我們還會更加深入!
這份TensorFlow入門教程將會以一種互動式的方式為你呈現如何進行深度學習:
首先你將了解張量。
然後,本教程將簡單介紹幾種在你的系統上安裝TensorFlow的方式,以便你能上手練習以及在你的工作空間中載入數據。
之後,你將了解一些TensorFlow基礎知識:你會看到你可以輕鬆開始執行一些簡單計算。
之後,你將開始進入實際工作:你將載入比利時交通標誌數據,然後使用簡單的統計和繪圖工具對其進行探索。
在你的探索中,你將看到你需要操作數據,以便你能將其饋送給你的模型。所以你需要花時間調整你的圖片的大小,並將其轉換成灰度圖像。
接下來,你終於可以開始做你自己的神經網路模型了!你將一層層地構建起你的模型。
一旦設置好了架構,你就可以使用它來迭代式地訓練你的模型,並且最終通過給它饋送一些測試數據來評估它。
最後,你將得到一些用於未來進步的建議指導,以便你了解你能用你剛構建好的模型做什麼以及你該如何繼續使用TensorFlow進行學習。
你也可以在這裡下載本教程:https://github.com/Kacawi/datacamp-community/blob/master/TensorFlow%20Tutorial%20For%20Beginners/TensorFlow%20Tutorial%20For%20Beginners.ipynb
另外,你可能也會對下面三個課程感興趣:
Python深度學習:https://www.datacamp.com/courses/deep-learning-in-python
DataCamp的Keras教程:https://www.datacamp.com/community/tutorials/deep-learning-python
使用R語言的Keras教程:https://www.datacamp.com/community/tutorials/keras-r-deep-learning
介紹張量
為了很好地了解張量,最好先了解一點線性代數和向量計算的知識。你在引言中已經讀到了,張量在TensorFlow中是作為多維數據數組實現的,但為了完全理解張量及其在機器學習領域的應用,也許還是需要更多一些介紹。
平面向量(planevector)
在你了解平面向量之前,我們先簡單澄清一下「向量」的概念。向量是特殊類型的矩陣(即數字構成的矩形陣列)。因為向量是有序的數字集合,所以它們往往被看作是列矩陣:它們只有一列和一定數量的行。換句話說,你也可以將向量看作是有一個方向的標量。
記住:標量是「5米」或「60米/秒」這樣的量,而向量則是「向北5米」或「向東60米/秒」這樣的量。這兩者之間的不同很顯然:向量有一個方向。但是,到目前為止你看到的這些例子與你在機器學習問題中實際操作的向量可能相差很大。這很正常;數學向量的長度是純數字:是絕對的。而方向則是相對的:它的度量是相對於某個參考方向,並且有弧度或度作單位。你通常假設方向是正的,並且從參考方向按逆時針方向旋轉。
當然在視覺上你可以將向量表示成箭頭,如上圖所示。這意味著你可以將向量看作是有方向和長度的箭頭。方向又箭頭的頭表示,而長度則由箭頭的長度表示。
那麼什麼又是平面向量呢?
平面向量是最簡單的張量配置。它們就像是你上面看到的常規向量,唯一的不同是它們處在一個向量空間中。為了更好地理解這一點,讓我們從一個例子開始:你有一個2×1的向量。也就是說該向量屬於一次配對兩個數的實數集。或者換句話說,它們是一個二維空間的一部分。在這種情況,你可以使用箭頭或射線在坐標(x,y)平面表示向量。
從一個標準位置(其中向量的起點為(0,0))的坐標平面出發,你可以通過查看該向量的第一行來推導x坐標,同時你也可以在第二行找到y坐標。當然,並不一定總是要維持這種標準位置,向量可以在平面內平行移動而不發生改變。
註:類似地,對於大小為3×1的向量,那就是在談論一個三維空間。你可以將該向量表示成一個三維圖形,帶有指向其向量速度位置的箭頭:它們被畫在標準的x,y和z軸上。
將這些向量表示到坐標平面上是很好的,但本質上,這些向量可以用來執行運算,為了幫助做到這一點,你可以將你的向量表示成基礎或單位向量。
單位向量是指幅度為1的向量,通常用帶有「帽子」的小寫字母表示。如果你想
推薦閱讀:
※交通違章代碼查詢
※北京網約車新政為何要求京人京車?北京市交通委回應
※從科學的角度講,左行道和右行道哪個更科學?
※一個初到日本大阪外國人怎麼選擇交通工具?