ide : pycharm
深度學習框架:temsorflow-gpu
此文章只是針對在實現該書第一章 mnist資料集時,我遇到的問題的總結
one_hot = true 表示的是,其構造的n維陣列,其中只有乙個元素為1,其餘元素全為0 的陣列
形如(0,1,0,0,0,0,0,0,0,0)
使用onehot的直接原因是現在多分類cnn網路的輸出通常是softmax層,輸出是乙個概率分布,
從而要求輸入的標籤也以概率分布的形式出現,進而算交叉熵。
私以為上述部落格中針對交叉熵的概念講述的較為清楚,我在這裡僅作簡要的概述,如想詳細了解,請登入上述文章
交叉熵,起源於熵的概念,在化學中,熵是用來形容某物質的混亂程度,比如相同數量混亂的人群比排列整齊的人群的熵更大一些。在資訊理論中,entropy是其最初的名字,在中國的學者,注意到,資訊理論中,entropy其**的資訊所呈現出概念,同熵這個詞所呈現的概念及其相似。
如在上述部落格中提到的兩個事件
事件a=巴西世界盃奪冠
事件b= 中國隊世界盃奪冠
顯然,作為五次奪取世界盃冠軍的巴西隊,事件a實現的概率比事件b成立的概率大的多,那麼事件a實現後,我們獲得的資訊相對而言稍微小一點,那麼,資訊量應該和事件發生的概率有關。
假設x是乙個離散型隨機變數,其取值集合為χ,概率分布函式p(x)=pr(x=x),x∈χp(x)=pr(x=x),x∈χ,則定義事件x=x0x=x0的資訊量為:
i(x0)=−log(p(x0))
而熵呢!其描述的就是,資訊量的期望值
h(x)=−∑i=1np(xi)log(p(xi))
講完熵的概念,輪到相對熵,在機器學習中,我們希望得到的方法,最終呈現的結果是能夠盡可能的模擬真實環境,即,y_(**值)盡可能的與y(真實值相近),那麼,在數學中,x的實際分布p,以及我們的模擬分布q,我們寄希望於兩者能夠盡可能的相近。
kl散度的計算公式:
n為事件的所有可能性。
dkl的值越小,表示q分布和p分布越接近
交叉熵相對熵也可以轉化成上述的公式,上述公式,第一項就是原物體真實的期望,不變,後者就是交叉熵,只需要計算後者即可
tf.cast(x,dtype,name = none)
x為乙個tensor,dtype表示型別,
將x的資料格式轉化成dtype.例如,原來x的資料格式是bool,
那麼將其轉化成float以後,就能夠將其轉化成0和1的序列。反之也可以
tf.argmax(input,axis=none,name = none,dimension = none)
input為一tensor,多數人axis顯示的都只是0和1 ,此可以簡單的認為,0表示列,1表示行,但axis為2時,下面部落格例子比較好
d我認為axis=0,表示的是第一軸比較,1表示的是第二軸的比較
如[[[1,2,3],
[2,3,4]]
[[3,4,5].
[4,5,6]]]
上述舉證,第一軸表示的是,[[1,2,3],[2,3,4]] 和[[3,4,5],[4,5,6]]這矩陣,那麼比較的就是[1,2,3]he[3,4,5]對應比較
第二軸表示的是,[[1,2,3]和[2,3,4]],[[3,4,5]和[4,5,6]]比較
第三週,則分的更細,[1,2,3]內部元素比較,
從上面看,axis關於軸的選定,可以簡單的認為是,上訴舉證,的內部衍生,如第一軸,表示,除去最外面【】
第二軸除去最外面兩層【】,當然這除去的步驟是一步一步來,除去第一層,得到[[1,2,3],[2,3,4]] 和[[3,4,5],[4,5,6]]
兩個,再分別對待,得到[1,2,3],[2,3,4],在進行計算。
當不標註axis值時,認為無窮大,直接到最小元素
tf.reduce_?(input_tensor, reduction_indices=none, keep_dims=false, name=none)
1>其中reduction_indices和上面axis一致,表示在哪一維度進行求解
2>keepdims 表示的是否保留其原來的維度,如a =[[1,3,3],[2,2,4]]
tf.reduce_max(a) = [2,3,4]
tf.reduce_max(a,keepdims=true)=[[2,3,4]]
tf.reduce_max求最大
tf.reduce_sum求和
tf.reduce_mean求均值
tf.recude_min求最小
tf.reduce_any邏輯或
tf.reduce_
當然,降維不只有這些函式,大同小異,把握好,axis 和keep_dims這兩個引數就能舉一反三。
深度學習 第一章 引言
本文為閱讀總結個人認為書裡概念性的 對本人有幫助的內容,僅供參考。我們期望通過智慧型軟體自動地處理常規勞動 理解語音或影象 幫助醫學診斷 支援基礎科學研究。人工智慧的真正挑戰在於解決那些對人來說很容易執行 但很難形式化描述的任務。對於這些問題,我們人類往往可以憑藉直覺輕易地解決。層次化的概念讓計算機...
深度學習入門學習 第一章
7.11 深度學習是機器學習的子問題,其主要目的是從資料中自動學習到有效的特徵表示。神經網路僅僅是深度學習領域中的一類數學模型,其他的模型還包括概率圖模型等。深度學習入門第一章 python入門 1.使用版本 python3.x 2.使用庫 numpy庫和matplotlib庫 3.numpy庫是用...
深度學習day1(第一章 什麼是深度學習?)
深度學習之 深度 關係 努力將通常由人類完成的智力任務自動化,包括了機器學習與深度學習 在經典的程式設計 即符號主義人工智慧的正規化 中,人們輸入的是規則 即程式 和需要根據這些規則進行處理的資料,系統輸出的是答案 利用機器學習,人們輸入的是資料和從這些資料中預期得到的答案,系統輸出的是規則。這些規...