反向傳播演算法是用來訓練ann的。簡而言之,訓練ann就是通過反向傳播代價,以減少代價為導向,調整引數。
調參的方式是採用梯度下降演算法(gradient descent),沿著梯度方向調整引數大小。
反向傳播演算法的推導可以看部落格:反向傳播演算法具體推導過程
其中在soft target時,用到了raise the temperature策略,來提高soft target對應的cross entropy。熵,說白了就是資訊量。在dark knowledge**中,hinton提到利用soft target來提高交叉熵,就是要增大模型學到的資訊量。(存疑)
神經網路中常見的啟用函式有sigmoid
,tanh
,而在cnn中我們最常使用的是relu
。原因有一下三點:
1. 採用sigmoid等函式,算啟用函式時(指數運算),計算量大,反向傳播求誤差梯度時,求導涉及除法,計算量相對大,而採用relu啟用函式,整個過程的計算量節省很多。
2. 對於深層網路,sigmoid函式反向傳播時,很容易就會出現梯度消失的情況(在sigmoid接近飽和區時,變換太緩慢,導數趨於0,這種情況會造成資訊丟失,無法完成深層網路的訓練。
3. relu會使一部分神經元的輸出為0,這樣就造成了網路的稀疏性,並且減少了引數的相互依存關係,緩解了過擬合問題的發生。
長度函式int strlen(const char s)
:返回字串中的字元個數,不計尾零。sizeof()
計尾零。
複製函式char * strcpy(char to, const char from)
拼接函式char * strcat(char s1, const char s2)
:返回指標指向s1串。
比較函式int strcmp(const char s1, const char s2)
:按從前到後順序逐個比較對應字元的ascii碼值。若s1中的字串大於s2中的則返回值大於零;若兩字串相等,則返回0;否則返回值小於零。
Ext2一些瑣碎的知識點
var store thegrid.getstore var args store.baseparams ext2生成store var newstore new ext.data.store pagesize 50,reader new ext.data.jsonreader autodestro...
一些知識點
字串拼接 1.a join b a為元素之間的分隔符,b為待分割的序列 可用於輸出時的資料處理,元素間有空格,末尾沒有 2 s s s str1,str2,str3 前半部分為字串,後半部分為索引。用於引入,s是物件 3.format str1,str2,str3 與f 括號裡為已有變數 關於for...
一些知識點
1.vector是在堆上還是棧上?在堆上.2.我們發現指標有一些 似是而非 的特徵 1 指標消亡了,並不表示它所指的記憶體會被自動釋放。比如函式中的指標是區域性變數,如果它指向了堆上,而自己出了函式後消亡了,但它所指向的記憶體還是存在的,導致了記憶體洩漏.2 記憶體被釋放了,並不表示指標會消亡或者成...