一些基本概念
符號圖能提供關鍵的自動優化和求導等功能。
張量可以看做是矩陣和向量的自然推廣,可以用張量來表示廣泛的數據類型
0階張量,即標量,是一個數,一階張量是向量,2階張量是矩陣,3階張量是立體,四階張量是
python中張量從0開始計數
矩陣[[1,2],[3,4]],第一維[1,3],第二維[2,4]
隨機梯度下降本質上還是針對單個樣本的優化提出來的,但是現在針對mini_bantch的優化也用SGD的概念
keras以python語言編寫,需要學好python 語言,python 教程推薦廖雪峯的python教程
快速開始序貫(sequential)模型
序貫模型
keras的模塊很清晰,在model.layers中找層,keras.optimizer 中加載對應的優化函數
網絡的主要搭建過程
1.創建數據,包括訓練和測試數據
實現隨機數的one-shot 操作
這個是一個整體
是的參數。
2.model.add():搭建網絡
Dense 第一個是神經元的節點,input _dim是輸入數據的維度,彩色圖像的維度爲3
sigmoid作爲輸出節點只有一個
softmax是有幾個分類就有幾個輸出節點
注意"accurary"的拼寫
(注:程序還是要自己親自上手編寫的,對於關鍵字參數有沒有下劃線,單數還是複數的印象纔會更深刻一些)
3.model.compile():創建各種指標的過程
sgd是函數返回的對象,所以不需要加引號。
超分辨是迴歸問題,需要用到一些迴歸問題方面的mse等評價指標,而多分類問題用到的是準確率這個指標
4.model.fit() :填充數據完成訓練的過程
5.model.evaluate():對結果進行評價
原始程序有誤,測試的時候是不需要batch_size關鍵字參數的softmax計算多分類,是logistic二分類的推廣
第一步:與sigmoid函數相同的是,
第二步:
這與sigmoid中不同,sigmoid中激活函數a=可以看出:
即Softmax的輸出的每個值都是>=0,並且其總和爲1,所以可以認爲其爲概率分佈,而sigmoid所有分類的輸出總和不爲1,不能認爲是概率分佈。
運行程序保存在本機sequential1.py和sequential.py中
LSTM (Long Short )長短時記憶網絡
時間遞歸神經網絡,適合於處理和預測時間序列中時間間隔和延遲相對較長的重要事件
常用人機交互中的語音識別,微軟還將其用於編寫程序代碼等,谷歌將其應用於生成圖像字幕。
LSTM VS RNN
LSTM區別於RNN的地方,主要就在於它在算法中加入了一個判斷信息有用與否的“處理器”,這個處理器作用的結構被稱爲cell。
Convolution 1D VS Convolution 2D
1.Convolution1D主要用於nlp,Convolution2D主要用於cv。實際上,Convolution1D也可以用於cv,Convolution2D也可以用於nlp,只是那個時候不是標準的卷積方式,而是經過一定變形的卷積。參考文獻
https://blog.csdn.net/bixiwen_liu/article/details/52946867
https://baike.baidu.com/item/LSTM/17541102?fr=aladdin LSTM資料
https://www.cnblogs.com/ymjyqsx/p/6485924.html Conv1D VS Conv2D