人工智慧TensorFlow(十三)讀懂CNN卷積神經網絡

2021-01-09 網易

2020-12-16 06:10:02 來源: 人工智慧一加一

舉報

  通過往期文章的分享,我們了解了神經網絡的結構,一般分為輸入層,隱藏層,輸出層

  

  TensorFlow神經網絡

  那什麼是卷積神經網絡呢,這就要我們追溯一下人類識別圖像的原理

  人類的視覺原理如下:從原始信號攝入開始(瞳孔攝入像素 Pixels),接著做初步處理(大腦皮層某些細胞發現邊緣和方向),然後抽象(大腦判定,眼前的物體的形狀,是圓形的),然後進一步抽象(大腦進一步判定該物體是只氣球)。下面是人腦進行人臉識別的一個示例:

  

  人類識別圖形原理

  對於不同的物體,人類視覺也是通過這樣逐層分級,來進行認知的:

  

  我們可以看到,在最底層特徵基本上是類似的,就是各種邊緣,越往上,越能提取出此類物體的一些特徵(輪子、眼睛、軀幹等),到最上層,不同的高級特徵最終組合成相應的圖像,從而能夠讓人類準確的區分不同的物體。CNN卷積神經網絡就是來源於此識別過程來實現。

  卷積神經網絡

  卷積神經網絡依舊是層級網絡,只是層的功能和形式做了變化,可以說是傳統神經網絡的一個改進。比如下圖中就多了許多傳統神經網絡沒有的層次。

  

  CNN神經網絡

  一般卷積神經網絡有如下結構:

  •數據輸入層/ Input layer

  •卷積計算層/ CONV layer

  •ReLU激勵層 / ReLU layer

  •池化層 / Pooling layer

  •全連接層 / FC layer

  當然卷積層,Relu激勵層與Pooling層可以多次使用

  輸入層/ Input layer

  該層要做的處理主要是對原始圖像數據進行預處理,其中包括:

  •去均值:把輸入數據各個維度都中心化為0,如下圖所示,其目的就是把樣本的中心拉回到坐標系原點上。

  •歸一化:維度歸一化到同樣的範圍,如下所示,即減少各維度數據取值範圍的差異而帶來的幹擾,比如,我們有兩個維度的特徵A和B,A範圍是0到10,而B範圍是0到10000,如果直接使用這兩個特徵是有問題的,好的做法就是歸一化,即A和B的數據都變為0到1的範圍。

  •PCA/白化:用PCA降維;白化是對數據各個特徵軸上的幅度歸一化

  卷積計算層/ CONV layer

  這一層是卷積神經網絡最重要的一個層次,也是「卷積神經網絡」的名字來源。

  在這個卷積層,有兩個關鍵操作:

  •局部關聯。每個神經元看做一個濾波器(filter)

  •窗口(receptive field)滑動, filter對局部數據計算

  下圖比較簡單的介紹了一個卷積的過程,原始數據是5*5 卷積核為3*3 步長為1

  

  CNN卷積計算

  ReLU激勵層 / ReLU layer

  這一層也是我們前期分享的激勵函數層

  

  CNN採用的激勵函數一般為ReLU(The Rectified Linear Unit/修正線性單元),它的特點是收斂快,求梯度簡單,但較脆弱,圖像如下。

  

  Relu

  池化層 / Pooling layer

  池化層夾在連續的卷積層中間, 用於壓縮數據和參數的量,減小過擬合。簡而言之,如果輸入是圖像的話,那麼池化層的最主要作用就是壓縮圖像。池化層用的方法有Max pooling 和 average pooling,而實際用的較多的是Max pooling。

  

  Pooling

  對於每個2*2的窗口選出最大的數作為輸出矩陣的相應元素的值,比如輸入矩陣第一個2*2窗口中最大的數是6,那麼輸出矩陣的第一個元素就是6,如此類推。

  全連接層 / FC layer

  兩層之間所有神經元都有權重連接,通常全連接層在卷積神經網絡尾部。也就是跟傳統的神經網絡神經元的連接方式是一樣的:

  

  FC layer

  

特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺「網易號」用戶上傳並發布,本平臺僅提供信息存儲服務。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關焦點

  • 人工智慧TensorFlow(十五)CNN 結構(代碼實現)
    MNIST  通過上期的分享,我們了解了手寫數字識別的基本原理以及CNN卷積神經網絡的基本原理,本期我們結合MNIST數據集,來用代碼來實現CNN。(手寫數字識別是TensorFlow人工智慧最基礎的案例,這個跟學習程式語言的hello Word一樣)
  • 一步一步學用Tensorflow構建卷積神經網絡
    在過去的一年中,我一直在研究深度學習技術,因此,我想和大家分享一下如何使用Tensorflow從頭開始構建和訓練卷積神經網絡。這樣,我們以後就可以將這個知識作為一個構建塊來創造有趣的深度學習應用程式了。  為此,你需要安裝Tensorflow(請參閱安裝說明),你還應該對Python編程和卷積神經網絡背後的理論有一個基本的了解。
  • 如何在AMD的GPU上運行TensorFlow?
    /tensorflow-1.8.0-cp35-cp35m-manylinux1_x86_64.whlpip3 install ./tensorflow-1.8.0-cp35-cp35m-manylinux1_x86_64.whl ▌ROCm-docker 安裝指南 Rocm-docker 的安裝指南: https://github.com/RadeonOpenCompute/ROCm-docker/blob/master/quick-start.md 啟動 TensorFlow
  • 人工智慧學習入門之TensorFlow2.2版本安裝(Windows10)
    谷歌的TensorFlow目前已經成為最為流行的人工智慧開源項目。很多公司基於TensorFlow實現自己的人工智慧程序。最新版本的TensorFlow不僅支持Linux作業系統,而且可以支持MacOS和Windows,今天我們就介紹一下如何在Windows10上安裝TensorFlow。
  • 玩轉TensorFlow Lite:有道雲筆記實操案例分享
    新智元推薦作者:有道技術團隊編輯:克雷格【新智元導讀】這一兩年來,在移動端實現實時的人工智慧已經形成了一波潮流。去年,谷歌推出面向移動端和嵌入式的神經網絡計算框架TensorFlow Lite,將這股潮流繼續往前推。TensorFlow Lite如何進行操作?
  • TensorFlow 攜手 NVIDIA,使用 TensorRT 優化 TensorFlow Serving...
    API at:localhost:8501 …$ curl -o /tmp/resnet/resnet_client.py https://raw.githubusercontent.com/tensorflow/serving/master/tensorflow_serving/example/resnet_client.py$ python
  • TensorFlow是什麼?
    TensorFlow 實質上是一個編程系統,官方說法是一個使用數據流圖(data flow graphs)技術來進行數值計算的開源軟體庫,也是人工智慧時代的「作業系統」。 只要計算任務可以表示為一個數據流圖,我們就可以使用Tensorflow 來構建數據流圖來描述計算任務,TensorFlow 則提供有用的工具來幫助用戶組裝「子圖」(常用於神經網絡)。一旦輸入端的所有數據準備好,節點將被分配到各種計算設備完成異步並行運算。
  • 如何提升Tensorflow服務性能
    Tensorflow文檔提供了以SavedModel格式導出訓練模型的示例。我們將使用深度殘差網絡(ResNet)模型,該模型可用於對ImageNet的1000個類的數據集進行分類。加載tensorflow_serving和tensorflow庫的延遲成本很高。每次調用tf.contrib.util.make_tensor_proto也會增加不必要的延遲開銷。我們實際上並不需要的tensorflow或tensorflow_serving包進行預測的請求。如前所述,Tensorflow預測API被定義為protobufs。
  • 如何利用TensorFlow.js部署簡單的AI版「你畫我猜」圖像識別應用
    這個卷積神經網絡將在 Quick Draw 數據集(https://github.com/googlecreativelab/quickdraw-dataset)上接受訓練。該數據集包含 345 個類別的大約 5 千萬張手繪圖像。
  • mnist tensorflow 預測專題及常見問題 - CSDN
    tmp/data", one_hot=True) 6 7 import tensorflow as tf 8 # 初始化網絡超參數 9 learning_rate = 0.001 10 training_iters = 200000 11 batch_size = 64 12 display_step = 20 13 14 # 初始化網絡參數 15 n_input = 784 #
  • 深度學習概述:NLP vs CNN
    最初的人工智慧和深度學習算法比較簡單,就像我們所知的簡單感知器模型和單層神經網絡一樣。隨著時間的推移和更加專注的研究,我們已經擁有了具有多層結構的複雜神經網絡。一些公司在他們的軟體和服務中使用了LSTMs、GANs、變分自編碼器等算法。本文在以下部分列出了人工智慧領域當前最熱門的技術以及正在研究這些熱門技術的公司。看了這些創新之後,準備好大吃一驚吧。
  • 數字圖片分類實例--玩轉R中的Tensorflow
    安裝 R 和 R studio此次省略300字,建議使用雲計算平臺如Kaggle Kernel/Google Codelab/Google Cloud 等安裝 keras package查看 tensorflow 版本
  • 能看破並說破一切的TensorFlow
    pip install -U--pre tensorflow=="2.*"確保已安裝pycocotools:!pip installpycocotools獲取 tensorflow/models 或cd 到倉庫的父目錄:import osimport pathlibif"models"in pathlib.Path.cwd().parts:
  • TensorFlow 2.0正式版官宣!深度集成Keras
    >>>人工智慧改變中國,我們還要跨越這三座大山 | 獻禮 70 周年 TensorFlow 2.0正式版終於發布了! 谷歌今天宣布,開源機器學習庫TensorFlow 2.0現在可供公眾使用。
  • 小叮噹機器學習:Python3.6配置TensorFlow的GPU版詳細安裝教程
    然而網上的大多數都是圍繞python2.7版本的tensorflow教程,下面我們就來看看在Centos7 +pyton3.6的環境下,我們怎麼安裝使用這個功能強大的開源庫的GPU版本。Step1.環境確認想要使用GPU版的TesnorFlow來加速我們的神經網絡運算,首先要確保,我們的GPU依賴環境已經搭好。
  • 基於TensorFlow2.0的中文深度學習開源書來了!GitHub趨勢日榜第一
    十三 發自 凹非寺 量子位 報導 | 公眾號 QbitAITensorFlow 2.0 發布已有一個半月之久,你會用了嗎?近日,一個叫做深度學習開源書的項目在火了。GitHub趨勢日榜排名全球第一,已斬獲2K+星。為什麼這麼火?因為這是一本基於TensorFlow 2.0 正式版的中文深度學習開源書。
  • Win10安裝GPU版本的Tensorflow 2.1
    1,創建envs環境conda create -n tf2.1 python==3.72,進入envs環境conda activate tf2.13,安裝cuda和cudnnconda install cudatookit=10.1conda install cudnn=7.64,安裝tensorflowpip install tensorflow
  • TensorFlow與PyTorch之爭,哪個框架最適合深度學習
    論文地址:http://download.tensorflow.org/paper/whitepaper2015.pdfTensorFlow 現已被公司、企業與創業公司廣泛用於自動化工作任務和開發新系統,其在分布式訓練支持、可擴展的生產和部署選項、多種設備(比如安卓)支持方面備受好評。
  • 如何用一個Python示例入門TensorFlow?
    如果你使用 Anaconda 安裝 TensorFlow,可以按照以下步驟完成:通過運行命令來創建一個 conda 環境「tensorflow」。conda create -n tensorflow pip python=3.5通過命令激活創建的環境:activate tensorflow調用該命令來在你的環境中安裝 TensorFlow。
  • 在Windows中安裝Tensorflow和Kears深度學習框架
    在命令提示符窗口輸入下列命令: 建立Tensorflow Anaconda虛擬環境 conda create --name tensorflow python=3.5 anaconda 執行後屏界面顯示如圖3-9所示。