近期工作:
1.對車輛碰撞、駕駛行為分析方面**彙總,並選擇性的閱讀了幾篇。
2.學習深度學習相關知識,python資料處理知識。
3.學習tensorflow神經網路庫,並搭建了開發環境。
深度學習(deep learning)是
機器學習的一種形式
,概念源於人工神經網路的研究。含多隱層的多層感知器就是一種深度學習結構。深度學習通過組合低層特徵形成更加抽象的高層表示屬性類別或特徵,以發現資料的分布式特徵表示。
深度學習是機器學習研究中的乙個新的領域,其動機在於建立、模擬人腦進行分析學習的神經網路,它模仿人腦的機制來解釋資料,例如影象,聲音和文字。
神經網路是由一層一層構建的,那麼每層究竟在做什麼?
每層神經網路的數學理解:
用線性變換跟隨著非線性變化,將輸入空間投向另乙個空間
。線性可分視角:神經網路的學習就是
學習如何利用矩陣的線性變換加啟用函式的非線性變換,將原始輸入空間投向線性可分/稀疏的空間去分類/回歸。
增加節點數:增加維度,即增加線性轉換能力。
增加層數:增加啟用函式的次數,即增加非線性轉換次數。
知道了神經網路的學習過程就是學習控制著空間變換方式(物質組成方式)的權重矩陣後,接下來的問題就是如何學習每一層的權重矩陣
。既然我們希望網路的輸出盡可能的接近真正想要**的值。那麼就可以通過比較當前網路的**值和我們真正想要的目標值,再根據兩者的差異情況來更新每一層的權重矩陣(比如,如果網路的**值高了,就調整權重讓它**低一些,不斷調整,直到能夠**出目標值)。因此就需要先定義「如何比較**值和目標值的差異」,這便是損失函式或目標函式(loss
function or objective function),用於衡量**值和目標值的差異的方程。loss function的輸出值(loss)越高表示差異性越大。那神經網路的訓練就變成了盡可能的縮小loss的過程。所用的方法是梯度下降(gradient descent):通過使loss值向當前點對應梯度的反方向不斷移動,來降低loss。一次移動多少是由學習速率(learning
rate)來控制的。
然而使用梯度下降訓練神經網路擁有兩個主要難題。
梯度下降尋找的是loss function的區域性極小值,而我們想要全域性最小值。如下圖所示,我們希望loss值可以降低到右側深藍色的最低點,但loss有可能「卡」在左側的區域性極小值中。
試**決「卡在區域性極小值」問題的方法分兩大類:
機器學習所處理的資料都是高維資料,該如何快速計算梯度、而不是以年來計算。 其次如何更新隱藏層的權重? 解決方法是:計算圖:反向傳播演算法 這裡的解釋留給非常棒的computational
graphs: backpropagation 需要知道的是,反向傳播演算法是求梯度的一種方法。如同快速傅利葉變換(fft)的貢獻。 而計算圖的概念又使梯度的計算更加合理方便。
前饋神經網路(feedforward neural network),簡稱前饋網路,是人工神經網路的一種。在此種神經網路中,各神經元從輸入層開始,接收前一級輸入,並輸出到下一級,直至輸出層。整個網路中無反饋,可用乙個有向無環圖表示。
前饋神經網路採用一種單向多層結構。其中每一層包含若干個神經元,同一層的神經元之間沒有互相連線,層間資訊的傳送只沿乙個方向進行。其中第一層稱為輸入層。最後一層為輸出層.中間為隱含層,簡稱隱層。隱層可以是一層。也可以是多層。
損失函式:
遞迴神經網路是在時間結構上存在共享特性的神經網路變體。時間結構共享是遞迴網路的核心中的核心。
目前主流的tensorflow,用tensorflow這樣工具的原因是:它允許我們用計算圖(computational graphs)的方式建立網路。同時又可以非常方便的對網路進行操作。
下面就是對計算圖的直觀講解。
用法說明:
請模擬管道構建來理解計算圖的用法
tensor_name=tf
.placeholder
(type
,shape
,name
)
name_variable = tf.variable(value, name)
#個別變數
init_op=variable.initializer()
#所有變數
init_op=tf.initialize_all_variables()
#注意:init_op的型別是操作(ops),載入之前並不執行
update_op=tf.assign(variable to be updated, new_value)
name_constant=tf.constant(value)
#常規
sess = tf.session()
#互動sess = tf.interactivesession()
#互動方式可用tensor.eval()獲取值,ops.run()執行操作
#關閉sess.close()
sess.run(op)
sess.run([output], feed_dict=)
#單值獲取
sess.run(one op)
#多值獲取
sess.run([a list of ops])
《python深度學習》筆記整理
電影二分類問題 新聞多分類問題 通過分類編碼 也叫one hot 編碼 對標籤進行編碼,然後使用categorical crossentropy 作為損失函式。將標籤編碼為整數,然後使用 sparse categorical crossentropy 損失函式。波士頓房價的回歸問題在將原始資料輸入神...
深度學習資料整理
作為人工智慧領域乙個重要的研究分支,深度學習技術幾乎出現在當下所有熱門的ai應用領域,包括語音識別,語義理解,影象識別,大資料分析等等,甚至有人把當前的人工智慧等同於深度學習。面對如此重要的江湖地位,我們相信一定有為數眾多的 ai 開發者對深度學習技術充滿了好奇心,想要快速著手使用這項強大的技術來解...
深度學習崗位面試問題整理筆記
更新幾個面試被問到或者聯想出來的問題,後面有時間回答 監督學習 遷移學習 半監督學習 弱監督學習 非監督學習?softmax loss推一下 本筆記主要問題來自以下兩個問題,後續會加上我自己面試過程中遇到的問題。深度學習相關的職位面試時一般會問什麼?會問一些傳統的機器學習演算法嗎?如果你是面試官,你...