深度學習乾貨|基於Tensorflow深度神經網絡(DNN)詳解

2021-01-08 DailyGitHub
如果文章感興趣,歡迎點擊上方「關注」

深度神經網絡(Deep Neural Networks,簡稱DNN)是深度學習的基礎,想要學好深度學習,首先我們要理解DNN模型。

DNN的基本結構

神經網絡是基於感知機的擴展,而DNN可以理解為有很多隱藏層的神經網絡。多層神經網絡和深度神經網絡DNN其實也基本一樣,DNN也叫做多層感知機(MLP)。

DNN按不同層的位置劃分,神經網絡層可以分為三類,輸入層,隱藏層和輸出層,如下圖示例,一般來說第一層是輸入層,最後一層是輸出層,而中間的層數都是隱藏層。

網絡結構

層與層之間是全連接的,也就是說,第i層的任意一個神經元一定與第i+1層的任意一個神經元相連。雖然DNN看起來很複雜,但是從小的局部模型來說,它還是和感知機一樣,即一個線性關係加上一個激活函數。

訓練過程中包含前向傳播算法和後向傳播算法

DNN前向傳播算法

就是利用若干個權重係數矩陣W,偏倚向量b來和輸入值向量X進行一系列線性運算和激活運算,從輸入層開始,一層層地向後計算,一直到運算到輸出層,得到輸出結果為值。

DNN反向傳播算法

如果我們採用DNN的模型,即我們使輸入層n_in個神經元,而輸出層有n_out個神經元。再加上一些含有若干神經元的隱藏層,此時需要找到合適的所有隱藏層和輸出層對應的線性係數矩陣W,偏倚向量b,讓所有的訓練樣本輸入計算出的輸出儘可能的等於或很接近樣本輸出,怎麼找到合適的參數呢?

在進行DNN反向傳播算法前,我們需要選擇一個損失函數,來度量訓練樣本計算出的輸出和真實的訓練樣本輸出之間的損失。接著對這個損失函數進行優化求最小化的極值過程中,反向不斷對一系列線性係數矩陣W,偏倚向量b進行更新,直到達到我們的預期效果。

在DNN中,損失函數優化極值求解的過程最常見的一般是通過梯度下降法來一步步迭代完成的,也可以是其他的迭代方法比如牛頓法與擬牛頓法。

深度學習過擬合問題

解決方法如下:

獲取更多數據:從數據源獲得更多數據,或數據增強;數據預處理:清洗數據、減少特徵維度、類別平衡;增加噪聲:輸入時+權重上(高斯初始化);正則化:限制權重過大、網絡層數過多,避免模型過於複雜;多種模型結合:集成學習的思想;Dropout:隨機從網絡中去掉一部分隱神經元;限制訓練時間、次數,及早停止。核心代碼

核心代碼

相關焦點

  • 深度學習篇——Tensorflow-GPU配置
    ,然後執行pip install tensorflow。cudnn配置對於tensorflow而言,真正實現加速的是cudnn,然後cudnn調用的是cuda顯卡驅動。所以最後我們要配置cudnn這個模塊。
  • 《21個項目玩轉深度學習——基於TensorFlow的實踐詳解》分享
    內容簡介《21個項目玩轉深度學習——基於TensorFlow的實踐詳解》以實踐為導向,深入介紹了深度學習技術和TensorFlow框架編程內容。通過本書,讀者可以訓練自己的圖像識別模型、進行目標檢測和人臉識別、完成一個風格遷移應用,還可以使用神經網絡生成圖像和文本,進行時間序列預測、搭建機器翻譯引擎,訓練機器玩遊戲等。全書共包含21個項目,分為深度卷積網絡、RNN網絡、深度強化學習三部分。讀者可以在自己動手實踐的過程中找到學習的樂趣,了解算法和編程框架的細節,讓學習深度學習算法和TensorFlow的過程變得輕鬆和高效。
  • 從零開始搭建深度學習伺服器:TensorFlow + PyTorch + Torch
    本教程轉載於深度學習中文社區(studydl.com).在深度學習大行其道的今天,我們不應該停留於觀望的階段,我們應該多多上手進行實踐,下面將為大家介紹一下最簡單也是最基礎的內容,配置一個自己的深度學習伺服器.1.
  • TFLearn:為TensorFlow提供更高級別的API 的深度學習庫
    TFlearn是一個基於Tensorflow構建的模塊化透明深度學習庫。它旨在為TensorFlow提供更高級別的API,以促進和加速實驗,同時保持完全透明並與之兼容。TFLearn功能包括:通過教程和示例,易於使用和理解用於實現深度神經網絡的高級API。
  • 7種架構範例的深度學習,每個範例都提供了TensorFlow教程
    作為MIT的深度學習基礎系列課程的一部分,本文概述了7種架構範例的深度學習,每個範例都提供了TensorFlow教程的連結。 我們不久前介紹了 MIT 的深度學習基礎系列課程,由 MIT 學術研究員 Lex Fridman 開講,將介紹使用神經網絡解決計算機視覺、自然語言處理、遊戲、自動駕駛、機器人等領域問題的基礎知識。
  • 作為TensorFlow的底層語言,你會用C++構建深度神經網絡嗎?
    隨著 C++ API 的完善,直接使用 C++來搭建神經網絡已經成為可能,本文將向你介紹一種簡單的實現方法。很多人都知道 TensorFlow 的核心是構建在 C++之上的,但是這種深度學習框架的大多數功能只在 Python API 上才方便使用。
  • TensorFlow與PyTorch之爭,哪個框架最適合深度學習
    選自builtin作者:Vihar Kurama機器之心編譯參與:吳攀、杜偉谷歌的 Tensorflow 與 Facebook 的 PyTorch 一直是頗受社區歡迎的兩種深度學習框架。那麼究竟哪種框架最適宜自己手邊的深度學習項目呢?
  • 手把手教你在谷歌雲平臺搭建基於GPU的深度學習
    大數據文摘授權轉載自 數據派THU作者:Saurabh Bodhe編譯:陳振東、車前子我知道,基於GPU的高端的深度學習系統構建起來非常昂貴,並且不容易獲得,除非你……https://hackernoon.com/deep-learning-with-google-cloud-platform-66ada9d7d029
  • 如何用 TensorFlow 搞定知乎驗證碼;深層神經網絡的致命問題詳解 |...
    原文地址:https://zhuanlan.zhihu.com/p/25297378原始碼:https://github.com/burness/tensorflow-101/tree/master/zhihu_code/src深層神經網絡結構及可能存在的致命問題詳解
  • 詳解深度強化學習展現TensorFlow 2.0新特性(代碼)
    讀者也可以在TensorFlow文檔中對此做深入了解:https://www.tensorflow.org/tutorials/eager/eager_basics深度強化學習一般來說,強化學習是解決順序決策問題的高級框架。RL智能體通過基於某些觀察採取行動來導航環境,並因此獲得獎勵。
  • 基於TensorFlow2.0的中文深度學習開源書來了!GitHub趨勢日榜第一
    近日,一個叫做深度學習開源書的項目在火了。GitHub趨勢日榜排名全球第一,已斬獲2K+星。為什麼這麼火?因為這是一本基於TensorFlow 2.0 正式版的中文深度學習開源書。還包含電子書和配套原始碼。話不多說,一起來看看這本爆款書籍吧!深度學習開源書介紹這本書共包含15個章節。
  • 寫給純小白的深度學習環境搭建寶典:pytorch+tensorflow
    每天給小編五分鐘,小編用自己的代碼,讓你輕鬆學習人工智慧。本文將手把手帶你快速搭建你自己的深度學習環境,然後實現自己的第一個深度學習程序。野蠻智能,小白也能看懂的人工智慧。如果你對循環神經網絡的基本原理還不了解,可以通過小編的精講深度學習RNN三大核心點,三分鐘掌握循環神經網絡進行簡單了解。下面進入實戰環節。
  • 深度學習生態圈——CNTK、Keras、Tensorflow
    隨著Python在機器學習方面的廣泛應用,在深度學習領域,Python的應用也越來越廣泛,我們主要來介紹Python在深度學習領域的三個主要類庫:CNTKTensorflowKeras1 CNTKCNTK是微軟出品的一個開源的深度學習工具包,可以運行在CPU上,也可以運行在
  • 深度學習Tensorflow實戰,新課進行曲!
    TensorFlow是谷歌開源的主流深度學習框架,目前已在谷歌、優步、京東、小米等科技公司廣泛應用。本課程使用TensorFlow框架作為深度學習入門,使學員以最快、最有效的方式上手TensorFlow和深度學習。
  • 【強化學習實戰】基於gym和tensorflow的強化學習算法實現
    1新智元推薦【新智元導讀】知乎專欄強化學習大講堂作者郭憲博士開講《強化學習從入門到進階》,我們為您節選了其中的第二節《基於gym和tensorflow的強化學習算法實現》,希望對您有所幫助。同時,由郭憲博士等擔任授課教師的深度強化學習國慶集訓營也將於 10 月 2 日— 6 日在北京舉辦。
  • 深度解讀TensorFlow,了解它的最新發展!
    TensorBoard  TensorBoard是一套可視化工具,研發人員使用TensorFlow寫的神經網絡看上去會顯得非常複雜混亂,為了可以更加直觀的調試、優化神經網絡,谷歌開發了TensorBoard。
  • 深度學習框架tensorflow之環境搭建
    深度學習的tensorflow框架是目前最流行的一種框架。本文先就環境搭建做一介紹。tensorflow的運行語言主要是python,所以電腦上要首先安裝python,推薦直接安裝anaconda,因為anaconda帶了很多tensorflow需要使用的python數學的運算庫,如果自己安裝,可能會遇到各種依賴問題,安裝好了anoconda,後面安裝tensorflow就非常簡單。1.
  • 計算機圖形學遇上深度學習,針對3D圖像的TensorFlowGraphics面世
    GitHub 地址:https://github.com/tensorflow/graphics近幾年,一種可以插入神經網絡架構中的新型可微圖形層(differentiable graphics layer)開始興起。從空間變換器(spatial transformer)到可微圖形渲染器,這些新型網絡層利用多年的計算機視覺和圖形學研究知識來構建更高效的新網絡架構。
  • python應用之基於tensorflow的數據擬合:深度學習之預測入門篇
    實驗目的:1、了解python在深度學習領域的應用2、學習安裝python第三方依賴庫實驗環境:已正確安裝python3.5以及依賴庫tensorflow、matplotlib預測過程展示:1、應用領域
  • 基於RTX2060構建TensorFlow-gpu(keras)學習平臺
    開始菜單運行anaconda navigator檢查是否安裝了notebook(默認有安裝)三、安裝tensorflow/keras在激活的環境中安裝:1. 如果機器上有gpu,則安裝gpu版本,沒有GPU就安裝cpu版。版本問題,現在TensorFlow到了最新的2.0.0版本,但是很多函數不兼容1.**版本。