最近在看yang大牛稀疏表示**的**,發現裡面很多的操作的用到了矩陣的列歸一化,這裡談一談列歸一化的實現,以及其帶來的好處。
矩陣的列歸一化,就是將矩陣每一列的值,除以每一列所有元素平方和的絕對值,這樣做的結果就是,矩陣每一列元素的平方和為1了。
舉個例子,矩陣[1,2,3]',將其歸一化的結果就是[0.2673,0.5345,0.8018]。其平方和就為1了。
yang在**中,將那些平方和為0,以及平方和很小的列向量的剔除了,不用做訓練,所以最後訓練樣本矩陣中的每一列就是乙個訓練影象塊,行數代表了影象塊的大小。
之前一直不清楚,為什麼要做這麼多的歸一化,直到想到了對稱矩陣(請原諒數學不好的我,在理解的路上磕磕絆絆)。
假設通過上述歸一化處理的樣本集合為x,x的沒一列的平方和都是1,假設x是25*1000的乙個矩陣好了,那麼x『為乙個1000*25的矩陣,yang等人的方法裡用到了
a=x』*x。那麼通過上面的那些變化,x的每列元素的平方和都是1,那麼a的對角線元素都是1,且a是關於對角線對稱的。那麼a就是乙個對角線元素全為1的對稱矩陣,而實對稱矩陣具有如下的性質:
這就為之後的處理奠定了基礎。
特徵歸一化的好處
神經網路學習過程本質就是為了學習資料分布,一旦訓練資料與測試資料的分布不同,那麼網路的泛化能力也大大降低 另外一方面,一旦每批訓練資料的分布各不相同 batch 梯度下降 那麼網路就要在每次迭代都去學習適應不同的分布,這樣將會大大降低網路的訓練速度,這也正是為什麼我們需要對資料都要做乙個歸一化預處理...
矩陣歸一化
歸一化化定義 我是這樣認為的,歸一化化就是要把你需要處理的資料經過處理後 通過某種演算法 限制在你需要的一定範圍內。首先歸一化是為了後面資料處理的方便,其次是保正程式執行時收斂加快。在matlab裡面,用於歸一化的方法共有三中,1 premnmx postmnmx tramnmx 2 prestd ...
關於矩陣的歸一化
最近在看yang大牛稀疏表示 的 發現裡面很多的操作的用到了矩陣的列歸一化,這裡談一談列歸一化的實現,以及其帶來的好處。矩陣的列歸一化,就是將矩陣每一列的值,除以每一列所有元素平方和的絕對值,這樣做的結果就是,矩陣每一列元素的平方和為1了。舉個例子,矩陣 1,2,3 將其歸一化的結果就是 0.267...