現在僅僅停留在看懂**以及卷積神經網路的學習過程,這是新手菜鳥學習筆記,主要參考的是,matlab**過程(一次寫不完 慢慢更新)
識別的手寫字符集為mnist字符集,我們首先需要將所有的手寫字符集提取。提取過程中需要注意的是,手寫字符集的前16位元組為其控制資訊,分別為4位元組的幻數,4位元組的影象數,4位元組的行數以及4個位元組的列數。讀取手寫字符集時,先讀取其不同的控制號
magic = fread(fp, 1, 'int32', 0, 'ieee-be'); %讀幻數
numimages = fread(fp, 1, 'int32', 0, 'ieee-be'); %讀影象數
numrows = fread(fp, 1, 'int32', 0, 'ieee-be'); %讀行號
numcols = fread(fp, 1, 'int32', 0, 'ieee-be'); %讀列號
讀取完控制號可以進行後續的影象向量的讀取(列向量形式)並將讀取結果首先儲存為三維向量的形式(影象數x行x列,10000x28x28),而後通過壓縮將其壓縮成為二維向量影象數x行列,100000x784),儲存後其行號代表影象號,列號即為影象資料,可通過reshape函式還原成為2828的形式。
同理,對於手寫字符集的標籤的讀取與上述相同,標籤只包含4個控制位元組,並且可以直接儲存為乙個單獨向量,與影象讀入的格式相同
在影象處理中,gabor函式是乙個用於邊緣提取的線性濾波器。gabor濾波器的頻率和方向表達同人類視覺系統類似。在空間域中,乙個二維gabor濾波器是乙個由正弦平面波調製的高斯核函式。對於影象gabor濾波,首先設定濾波器的數量,在影象處理中濾波器的數量需要根據影象的特徵得到。為了得到影象不同的濾波特點,需要對gabor濾波器設定不同的方向並且設定不同的濾波尺度。濾波方向就是gabor濾波公式中的θ角度設定(**中採用了16個濾波角度),濾波尺度就是用來當作卷積核的濾波器的尺寸大小(**中採用了11個濾波尺寸,分別為7,9,11,13,15…27,小於影象尺寸的28),並且確定在gabor濾波中所需要的波長,頻寬,相位偏移(**中動態改變,增加濾波器多樣性)。濾波器尺度就是當前矩陣大小,對於其尺度中的每乙個元素,均以下標帶入公式計算:
y= exp( -( (x*cos(theta)+y*sin(theta))^2 + gamma^2*(-x*sin(theta)+y*cos(theta))^2 ) / (2*sigma^2) )...
*cos( (2*pi/lambda) * (x*cos(theta)+y*sin(theta)) );
對於每乙個濾波器完成計算後,按照矩陣的形式儲存在cell資料結構中,行號表示該濾波器尺寸,列號表示該濾波器對應的角度
將構造的濾波器作為卷積核與每一張影象進行卷積,由於影象按照一維向量壓縮儲存,用reshape函式將影象還原成矩陣形式,使用conv2函式對影象按照不同的卷積核進行卷積,conv2函式卷積過程如下
將卷積核旋轉180°,用旋轉後的卷積核函式中心對準每乙個影象數字,進行卷積操作(缺失資料的進行補0),並根據輸入第三引數判斷返回矩陣的規格。
上述卷積操作在卷積層中發生(l1層),並在卷積完成後返回乙個四維特徵向量l1[特徵行號,特徵列號,濾波器尺寸,濾波器方向],即為卷積後的平面影象特徵。
池化層減少卷積層的特徵引數的維度和數量,採用最大池化,即縮小卷積層的特徵數量(**中以8為步長進行縮減),而後將每個影象的四維特徵矩陣壓縮成一維向量按序儲存
更新中~
神經網路優化 學習率
本文將介紹通過指數衰減的方法設定梯度下降演算法中的學習率,通過指數衰減學習率既可以讓模型的前期快速接近較優解,又可以保證模型在訓練後期不會有太大的波動,從而更加接近區域性最優。在神經網路中需要設定學習率來控制引數更新的速度,如果幅度過大,那麼有可能導致引數在極優值的兩側來回移動,如果學習率過小,雖然...
神經網路優化 學習率
學習率 learning rate 表示了每次引數更新的幅度大小。學習率過大,會導致待優化的引數在最小值附近波動,不收斂 學習率過小,會導致待優化的引數收斂緩慢。在訓練過程中,引數的更新向著損失函式梯度下降的方向。引數的更新公式為 假設損失函式為 梯度是損失函式loss的導數為2w 2。如引數初值為...
強化學習 強化學習基礎
為了應對車載網路中通訊環境快速變化的難題,可以使用強化學習進行解決,這裡對強化學習的基礎進行整理。主要的應用場景為車載網路中資源分配問題。本文源自莫煩python 強化學習章節,有需要請查閱原文 20200413補充了一些內容,來自這篇部落格,是李巨集毅的深度強化學習的筆記。強化學習的主要構成有 a...