文章目錄
- Tensorflow與深度學習
- 神經網路
- 神經網路基礎
- 感知機
- 感知機與邏輯回歸的聯系與區別
- 演示:
- 神經網路的發展
- 杰弗里·埃弗里斯特·辛頓
- 神經網路的特點
- 神經網路的組成
- 淺層人工神經網路模型
- Mnist資料集神經網路分析
- one-hot編碼分析
- one-hotAPI介紹
- 獲取資料
- SoftMax回歸
- 1、全連接-從輸入直接到輸出
- 想一想線性回歸的損失函式,那么如何去衡量神經網路的損失?
- 損失計算-交叉熵損失公式(了解)
- 2、SoftMax計算、交叉熵
- 損失值串列平均值計算
- 其他方法-損失下降API
- 準確性計算
- Mnist資料集神經網路實作流程
- 深層的神經網路
- 卷積神經網路
- 全連接神經網路的缺點
- 卷積神經網路的發展歷史
- 卷積神經網路錯誤率
- 卷積神經網路的結構分析
- 神經網路(neural networks)的基本組成
- 資料變化
- 卷積神經網路的結構
- 卷積層計算程序(一個通道一個Filter一步長)
- 卷積層計算程序(當步長為2的時候)
- 卷積層的零填充
- 如果需要卷積之后輸出大小一樣:零填的大小為2
- 卷積網路API介紹
- 多通道圖片-外圍補充與多Filter
- 新的激活函式-Relu
- 激活函式:
- 池化層(Pooling)計算
- 池化:
- Full Connected層
- Mnist手寫數字圖片識別卷積網路案例
- Mnist資料集人工神經網路分析
- Mnist數字識別卷積實作
- 常見卷積網路模型的結構
- AlexNet:2012年
- GoogleNet:
Tensorflow與深度學習
神經網路
1、神經網路基礎
2、人工神經網路(ANN)
3、Mnist資料集淺層神經網路分析
4、卷積神經網路(CNN)
5、Mnist數字圖片識別
神經網路基礎
1、感知機
2、人工神經網路
感知機
有n個輸入資料,通過權重與各資料之間的計算和,
比較激活函式結果,得出輸出
應用:很容易解決與、或、非問題
——Rosenblatt在1957年,于Cornell航空實驗室時所發明的一種
——人工神經網路

感知機與邏輯回歸的聯系與區別
激活函式、結果分析
演示:
http://playground.tensorflow.org/#activation=sigmoid®ularization=L2&batchSize=10&dataset=circle®Dataset=reg-plane&learningRate=0.03®ularizationRate=0&noise=0&networkShape=3&seed=0.84062&showTestData=false&discretize=false&percTrainData=50&x=true&y=true&xTimesY=false&xSquared=false&ySquared=false&cosX=false&sinX=false&cosY=false&sinY=false&collectStats=false&problem=classification&initZero=false&showTestData_hide=true&learningRate_hide=true®ularizationRate_hide=true&percTrainData_hide=true&numHiddenLayers_hide=true&discretize_hide=true&activation_hide=true&problem_hide=true&noise_hide=true®ularization_hide=true&dataset_hide=true&batchSize_hide=true&playButton_hide=false
神經網路的發展
——定義:在機器學習和認知科學領域,人工神經網路(artificial neural network,
——縮寫ANN),簡稱神經網路(:neural network,縮寫NN)或類神經網路,是一
——種模仿生物神經網路的結構和功能的計算模型,用于對函式進行估計或近似,
——神經網路的種類:
——基礎神經網路:單層感知器,線性神經網路,BP神經網路,Hopfield神經網路等?
——進階神經網路:玻爾茲曼機,受限玻爾茲曼機,遞回神經網路等?
——深度神經網路:深度置信網路,卷積神經網路,回圈神經網路,LSTM網路等?
杰弗里·埃弗里斯特·辛頓
(英語:Geoffrey Everest Hinton)(1947年12月6日-)是一位英國出生的計算機學家和心理學家,以其在神經網路方面的貢獻聞名,辛頓是反向傳播演算法的發明人之一,也是深度學習的積極推動者,
Yann Lecun
Yoshua Bengio
Geoffrey Hinton
Andrew Ng
神經網路的特點
——輸入向量的維度和輸入神經元的個數相同
——每個連接都有個權值
——同一層神經元之間沒有連接
——由輸入層,隱層,輸出層組成
——第N層與第N-1層的所有神經元連接,也叫全連接
——
神經網路的組成
——結構(Architecture)例如,神經網路中的變數可以是神經元連接的權重
——激勵函式(Activity Rule)大部分神經網路模型具有一個短時間尺度的動力學規則,來定義神經元如何根據其他神經元的活動來改變自己的激勵值,
——學習規則(Learning Rule)學習規則指定了網路中的權重如何隨著時間推進而調整,(反向傳播演算法)

淺層人工神經網路模型
1、SoftMax回歸
2、損失計算API
3、其他方法API介紹
Mnist資料集神經網路分析


one-hot編碼分析


one-hotAPI介紹

獲取資料
——from tensorflow.examples.tutorials.mnist import input_data
——
——mnist = input_data.read_data_sets(FLAGS.data_dir, one_hot=True)
SoftMax回歸
公式:



1、全連接-從輸入直接到輸出
——特征加權:
——tf.matmul(a, b,name=None)+bias
——return:全連接結果,供交叉損失運算
——不需要激活函式(因為是最后的輸出)
想一想線性回歸的損失函式,那么如何去衡量神經網路的損失?
損失計算-交叉熵損失公式(了解)
公式:

注:

2、SoftMax計算、交叉熵
——tf.nn.softmax_cross_entropy_with_logits(labels=None,
—— logits=None,name=None)
—— 計算logits和labels之間的交叉損失熵
——labels:標簽值(真實值)
——logits:樣本加權之后的值
——return:回傳損失值串列
損失值串列平均值計算
——tf.reduce_mean(input_tensor)
——計算張量的尺寸的元素平均值
其他方法-損失下降API
——tf.train.GradientDescentOptimizer(learning_rate)
——梯度下降優化
——learning_rate:學習率,一般為
——minimize(loss):最小化損失
——return:梯度下降op
準確性計算
1、equal_list = tf.equal(tf.argmax(y, 1), tf.argmax(y_label, 1))
2、accuracy = tf.reduce_mean(tf.cast(equal_list, tf.float32))

Mnist資料集神經網路實作流程
1、準備資料
2、全連接結果計算
3、損失優化
4、模型評估(計算準確性)
深層的神經網路
——深度學習網路與更常見的單一隱藏層神經網路的區別在于深度,深度學
——習網路中,每一個節點層在前一層輸出的基礎上學習識別一組特定的特征,
——隨著神經網路深度增加,節點所能識別的特征也就越來越復雜,
卷積神經網路
1、卷積神經網路與簡單的全連接神經網路的比較
2、卷積神經網路的發展歷史
3、卷積神經網路的結構分析
4、卷積網路API介紹
全連接神經網路的缺點
——引數太多,在cifar-10的資料集中,只有32323,就會
——有這么多權重,如果說更大的圖片,比如2002003就需
——要120000多個,這完全是浪費
——沒有利用像素之間位置資訊,對于影像識別任務來說,
——每個像素與周圍的像素都是聯系比較緊密的,
——層數限制
——
——
卷積神經網路的發展歷史

卷積神經網路錯誤率

卷積神經網路的結構分析

神經網路(neural networks)的基本組成
包括輸入層、隱藏層、輸出層,而卷積神經網路的特點在于隱藏層分為卷積層和池化層
——(pooling layer,又叫下采樣層),
——卷積層:通過在原始影像上平移來提取特征,每一個特征——就是一個特征映射
——池化層:通過特征后稀疏引數來減少學習的引數,降低
——網路的復雜度,(最大池化和平均池化)
資料變化

卷積神經網路的結構
——1、卷積層過濾器
——個數
——大小
——步長
——零填充
——
——卷積層輸出深度、輸出寬度
——深度由過濾器個數決定
——輸出寬度:
——
——
——1、激活函式
——
——1、池化層
——
——2、全連接層

卷積層計算程序(一個通道一個Filter一步長)

卷積層計算程序(當步長為2的時候)

卷積層的零填充
——卷積核在提取特征映射時的動作稱之為padding(零填充),由于移動步長不
——一定能整出整張圖的像素寬度,其中有兩種方式,SAME和VALID
——
——SAME:越過邊緣取樣,取樣的面積和輸入影像的像素寬度一致,
——VALID:不越過邊緣取樣,取樣的面積小于輸入人的影像的像素寬度
如果需要卷積之后輸出大小一樣:零填的大小為2

卷積網路API介紹
——卷積層:
——tf.nn.conv2d(input, filter, strides=, padding=, name=None)
——計算給定4-D?input和filter張量的2維卷積
——input:給定的輸入張量,具有[batch,heigth,width,
——channel],型別為float32,64
——filter:指定過濾器的大小,[filter_height, filter_width,
—— in_channels, out_channels]
——strides:strides = [1, stride, stride, 1],步長
——padding:“SAME”, “VALID”,使用的填充演算法的型別,
——使用“SAME”,其中”VALID”表示滑動超出部分舍棄,
——“SAME”表示填充,使得變化后height,width一樣大
多通道圖片-外圍補充與多Filter

新的激活函式-Relu

第一,采用sigmoid等函式,反向傳播求誤差梯度時,計算量相對大,而采用Relu激活函式,整個程序的計算量節省很多
第二,對于深層網路,sigmoid函式反向傳播時,很容易就會出現梯度消失的情況(求不出權重和偏置)

激活函式:
——tf.nn.relu(features, name=None)
——
——features:卷積后加上偏置的結果
——return:結果
池化層(Pooling)計算
Pooling層主要的作用是特征提取,通過去掉Feature Map中不重要的樣本,進一步減少引數數量,Pooling的方法很多,最常用的是Max Pooling,

池化:
tf.nn.max_pool(value, ksize=, strides=, padding=,name=None)
——輸入上執行最大池數
——value:4-D Tensor形狀[batch, height, width, channels]
——ksize:池化視窗大小,[1, ksize, ksize, 1]
——strides:步長大小,[1,strides,strides,1]
——padding:“SAME”, “VALID”,使用的填充演算法的型別,
——使用“SAME”
——
Full Connected層
分析:前面的卷積和池化相當于做特征工程,后面的全連接相當于做特征加權,最后的全連接層在整個卷積神經網路中起到“分類器”的作用,
Mnist手寫數字圖片識別卷積網路案例
Mnist資料集人工神經網路分析


Mnist數字識別卷積實作
流程:
1、準備資料
2、卷積、激活、池化(兩層)
3、全連接層
4、計算準確率
常見卷積網路模型的結構

LeNet:1986年
AlexNet:2012年

60M以上的引數總量
GoogleNet:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/313193.html
標籤:AI
上一篇:如何使用白色疊加修復或平衡影像?
