日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TensorFlow学习笔记(二):快速理解Tutorial第一个例子-MNIST机器学习入门 标签: 机器学习SoftmaxTensorFlow教程 2016-08-02 22:12 3729人阅

發布時間:2025/3/21 编程问答 28 豆豆
?

TensorFlow學習筆記(二):快速理解Tutorial第一個例子-MNIST機器學習入門

標簽:?機器學習SoftmaxTensorFlow教程 ?3729人閱讀?評論(0)?收藏?舉報 ?分類: TensorFlow(4)??深度學習 DeepLearning(2)?

目錄(?)[+]

??? TensorFlow教程的第一章“MNIST機器學習入門”很簡單,用了一個很簡單的網絡,實現了MNIST樣本訓練。

??? 教程鏈接:http://wiki.jikexueyuan.com/project/tensorflow-zh/tutorials/mnist_beginners.html

??? 下面這些內容主要是解釋這個教程中不是特別明確的地方。

1. 怎樣理解MNIST

MNIST的全稱是Mixed National Institute of Standards and Technology database,是一系列帶標記的數字圖片。原始的NIST數據集的訓練集是美國人口普查局的雇員的筆跡,而驗證集是采集自美國中學生的筆跡。所以從機器學習的角度看,這是一種不太合理的樣本采集。因此Lecun在進行卷積神經網絡的研究時候從原始的NIST兩個數據集中選擇并重新混合形成新的訓練集和驗證集,也就是現在的MNIST。MNIST的圖片一般都是28*28的圖片,每個像素值進行了歸一化,使得其在0-1范圍內,不過也有部分數據集把它們又恢復到0-255,每個數字圖片都有對應的標記。MNIST的訓練集一共有60000個樣本,而驗證集有10000個樣本。

2.怎樣理解權值和Softmax

“MNIST機器學習入門”里面,沒有用卷積神經網絡,而是用了一個全連接神經網絡+Softmax輸出層。

MNIST的一幅圖片是28*28,因此一共有784個像素值,在第一個例子里面,我們就直接就考慮用這784個數字得出正確的數字結果。最簡單的考慮,我們要對這個784個數字進行加權求和,然后加點偏置,然后衡量一下得出的結果,看到底和哪個數字最像。那么這個加權加偏移的結構就是全連接神經網,而這個衡量結果的過程就是Softmax。實際的運算是將784個像素輸入加權,并且用不同的權值加權10次(因為有0-9一共10個數字),得到10個不同的結果,最后使用Softmax進行結果的輸出。

Softmax的公式如下,這個Xi是得到的10個不同的結果。

因此,最終得到的10個輸出都會有一個概率值,這個概率值處于0-1之間,而且10個輸出相加等于1。

將整個神經網絡表示成一個表達式,就是:

其中W是權值,b是偏移

3.怎樣訓練這個網絡?

按照TensorFlow的封裝,訓練這個例子中的神經網絡只是幾句話的事情。

為了衡量目前神經網絡中的權值和偏移是否合理,我們可以定義交叉熵。交叉熵的公式是:

y?是我們預測的概率分布,?y'?是實際的分布,比如我這個數字是2,那么我實際的分布就應該是(0,0,1,0,0,0,0,0,0,0)。而神經網輸出的結果即預測的分布y可能是(0.01,0.05,0.5,0.05,0.04.......),那么交叉熵就是-log(0.5)>0,因此如果神經網絡的性能約好,那么交叉熵就會越小,最終接近于0. 在這個例子的訓練中,使用的是隨機梯度下降法結合反向傳播進行參數訓練。隨機梯度下降可以看Andrew NG的機器學習講義,也可以百度一篇文章。不過TensorFlow封裝的比較好,所以只需要3句話就可以訓練1000次,100是每次隨機選擇100個樣本進行訓練:

[python]?view plaincopy
  • <code?class="language-python">for?i?in?range(1000):</code>????
  • ??batch_xs,?batch_ys?=?mnist.train.next_batch(100)??
  • ??sess.run(train_step,?feed_dict={x:?batch_xs,?y_:?batch_ys})??
  • TensorFlow教程第一章用了一個十分簡單的網絡結構,重點講了如何設定網絡,如何訓練,如何計算正確率。在下一章里面,教程會介紹如何用復雜一些的架構,取得更好的訓練效果。

    總結

    以上是生活随笔為你收集整理的TensorFlow学习笔记(二):快速理解Tutorial第一个例子-MNIST机器学习入门 标签: 机器学习SoftmaxTensorFlow教程 2016-08-02 22:12 3729人阅的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。