深度學習入門筆記系列 二

2021-09-20 05:39:54 字數 2332 閱讀 4141

本系列將分為 8 篇 。今天是第二篇 。主要講講 tensorflow 框架的特點和此系列筆記中涉及到的入門概念 。

tensorflow 從單詞上可以分成 tensor 和 flow 兩個單詞 。tensor 即張量 ,表明了其資料結構 ;flow 翻譯可理解為流 ,直觀的表達了張量之間通過計算相互轉化的過程 ;還有乙個很重要的概念 session ,即對話的概念 ,用於執行定義好的運算 。簡單的理解 ,flow 體現了 tf 框架的計算模型 ;tensor 體現了 tf 框架的資料模型 ;二者可組織資料和定義相應的運算 ,並用圖(graphs)表示計算任務 。圖(graphs)中的節點稱之為op(operation),乙個op獲得0個或多個tensor 。而對話則是用於執行定義好的運算 ,即運算都是在 session 中執行的 。

上述介紹結構見下圖 ,搭配起來就比較好理解了 。

值得一提的是運算的執行在會話中進行 ,如何進行有兩種方式 ,乙個是明確呼叫會話生成和關閉 。另乙個是利用 with 上下文管理器 。這裡建議利用 python 上下文管理器的機制 ,將所有的計算放在「with」內部即可 ,這樣一來 ,當上下文管理器退出時候會自動釋放所有資源 ,這樣既解決了因為異常退出時資源釋放的問題 ,還解決了忘記呼叫 session.close 函式產生的資源洩露 。上述介紹舉例如下 :

首先得了解什麼是代價函式 ,也可以是說是損失函式 。指的是乙個可以衡量**值和真實值差異的函式 ,具體形式可以有多種選擇 。我們可以用 c(ω) 表示代價函式 ,根據其意義 ,不難理解代價函式有如下性質 :

對於每種演算法來說 ,代價函式不是唯一的 ;

代價函式是引數 ω 的函式 ;

總的代價函式可以用來評價模型的好壞 ,代價函式越**明模型和引數越符合訓練樣本 (x, y) ;

代價函式是乙個標量 ;

常用的代價函式有如下幾種 :

1.二次代價函式(quadratic cost)

交叉熵代價函式(cross-entropy)

3.對數釋然代價函式(log-likelihood cost)

總的來說 ,我們在訓練過程中 ,目標就是通過訓練使得代價函式盡可能降低 ,從而使得預期輸出和實際輸出接近 。

在我們機器學習或者訓練深度神經網路的時候經常會出現欠擬合和過擬合這兩個名詞 。首先欠擬合是指模型沒能較好的捕捉到資料特徵 ,不能夠較理想的擬合資料 ;相對的 ,過擬合就是模型把資料學習的太徹底,以至於把雜訊資料的特徵也學習到了 ,導致在後期測試的時候不能夠很好地識別資料 ,即不能正確的分類 ,模型泛化能力太差 。如下圖所示(**於吳恩達老師課程)

模型訓練之初 ,往往是欠擬合的 ,所以我們才有進步空間 ,不斷調整演算法使得模型能夠較好的擬合資料 。欠擬合的解決方法大體有下面幾種思路 。

新增其他特徵項 ,有時候我們模型出現欠擬合的時候是因為特徵項不夠導致的 ,可以新增其他特徵項來很好地解決 。

新增多項式特徵 ,這個在機器學習演算法裡面用的很普遍 ,例如將線性模型通過新增二次項或者三次項使模型泛化能力更強 。例如上面的的例子 。

減少正則化引數 ,正則化的目的是用來防止過擬合的 ,但是現在模型出現了欠擬合 ,則需要減少正則化引數 。

至於過擬合 ,可以想象乙個很複雜的網路 ,包含引數相當的多 ,但是我們用於訓練的資料卻相對有限 。反覆的訓練之下 ,模型學習太過徹底 。如上圖過擬合圖中在訓練集上十分精確 ,但是在測試集中卻得不到較理想的結果 ,即模型的泛化能力很差 。常見的解決辦法如下 :

重新清洗資料,導致過擬合的乙個原因也有可能是資料不純導致的,如果出現了過擬合就需要我們重新清洗資料。

增大資料的訓練量,還有乙個原因就是我們用於訓練的資料量太小導致的,訓練資料佔總資料的比例過小。

採用正則化方法。正則化方法包括l0正則、l1正則和l2正則,而正則一般是在目標函式之後加上對於的範數。

採用dropout方法。這個方法在神經網路裡面很常用。dropout方法是imagenet中提出的一種方法,通俗一點講就是dropout方法在訓練的時候讓神經元以一定的概率不工作。

本篇較為乾燥 ,小詹自己寫的都看不下去了 。但是上邊提到的一些概念是本系列文章中會用得到的 ,比如過擬合的一些處理在 mnist 識別分類中就可以用上 。所以為了方便檢視理解 ,還是枯燥一點寫(讀)下去吧 ,如果有紕漏 ,敬請批評指正 。

深度學習 MATLAB 入門系列(二)

本系列來自 mathworks load a pre trained,deep,convolutional network alex alexnet layers alex.layers modify the network to use five categories layers 23 full...

深度學習入門筆記系列 三

本系列將分為 8 篇 今天是第三篇 主要講講感知器模型和 tensorboard 的基本使用方法 因為小詹之前寫過一篇感知器模型的介紹 這裡就不贅述了 tensorboard 是 tensorflow 自帶的視覺化結構管理和除錯優化網路的工具 在我們學習深度學習網路框架時 我們需要更直觀的看到各層網...

深度增強學習入門筆記(二)

知乎專欄智慧型單元的學習筆記,就真的只是一邊看一邊記的而已,僅為自己學習所用,侵刪。是增強學習領域最重要的乙個方程。使用價值函式進行決策就需要計算這個函式,那怎麼計算呢?bellman方程。簡而言之,bellman方程的作用 表明價值函式是可以迭代進行計算的。將價值函式的公式 a 表示,s代表狀態,...