⑴ 目標檢測演算法---faster rcnn 知識簡要回顧(測試篇)
Faster RCNN檢測部分主要可以分為四個模塊:
1.特徵抽取:用於抽取圖像特徵,一般可以使用vgg、resnet和mobilenet等backbone;
2.RPN(Region Proposal Network):用於產生候選框,主要做一些粗糙的分類和回歸操作;
3.RoI Pooling:主要是為了解決全連接層需要固定尺寸輸入,而實際輸入大小不一的問題;
4.Classification and Regression:精細化分類和回歸。
faster rcnn演算法大致流程如下:
彩色圖像通過backbone進行特徵提取,輸出最後一層的feature map。接著將這些feature map進一步做基於3x3卷積核的特徵提取,該目的是增強模型的魯棒性。將輸出送入兩個分支,第一個分支跟類別有關,這里主要是用於簡單分類,區分是背景還是物體,這是針對anchor而言的;第二個分支則是用於初步預測候選框的偏移量,這個也是基於anchor而言的;再將前兩個分支的結果送入圖中的proposal中,首先會根據positive類的score篩選前6000個候選框,再將anchor的坐標和得到的偏移進行整合,得到初步候選框坐標,接著在做NMS,除去重疊嚴重的框,再經過了NMS後的框中,根據類別score取前300個框。然後將結果送入roi pooing層,用於生成固定尺寸的特徵區域,以方便後邊的全連接層接受信息;全連接層用於最後提取特徵,得到精細的類別和框的偏移量。
⑵ 第11章 降維
去掉數據集中關聯性不大和冗餘的數據,確保不出現過度適應的前提下降低計算的成本,需要對特徵進行無損規約,數學上叫降維。廣泛用於模式識別、文本檢索以及機器學習領域,主要分為兩類,特徵提取和特徵篩選,前者是高維數據投影到低維空間,後者是特徵子集代替鋒做原始特徵集,包括特徵分級和特徵篩選,分級是找到優化後的特徵子集。
特徵提取可以分成線性抽取和非線性抽取兩種方法,前者是試圖找到一個仿射空間能夠最好的說明數據分布的變化,後者對高維非線性曲線平面分布的數據非常有效。
線性特徵的抽取方法:
首先設定一些標准,然後挑選出滿足標準的特徵。
演算法首先調用一個權重函數得到每個特徵的權重值,權重評價指標是平均精確度下降 importance.type = 1 ,除了上面用的隨機森林,還可以使用 chi.squared, information.gain 。
然後獲取優化的特徵子集,首先5折交叉驗證評估特徵子集的重要性,爬山搜索演算法從原始特徵集中選出優化的特徵子集,也可以選擇其他演算法,比如 forward.search 。還可以使用caret包進行特徵篩選,據說這個包是個寶呀,包羅萬象。
主成分分析是一種應用非常廣泛的線性降維方法,適合數據集包含非常多的特徵,並且特徵間彼此冗餘(相關的情況)。通過將特徵集縮減成一小部分能代表原始特徵集最主要變化的主要特徵分量,實現高維數據到低維數據空間的映射。
特徵選擇過程中會去掉一些彼此關聯但有價值的特徵,需要在特徵製取過程中考慮將這些特徵綜合到單特徵中,PCA採用正交變換將彼此有關行基叢聯的特徵轉化為主成分,以便我們確定方差趨檔櫻勢。
演算法主要包括以下步驟:1)找到平均向量的數據點;2)計算
協方差矩陣;3)計算特徵向量;4)對特徵向量排序並選擇前k個特徵向量;5)構建特徵向量矩陣;最後,將數據樣本轉換成新的子集。
拓展
princomp 是另一個高不成分分析函數,與上面的 prcomp 採用奇異值分解不同,採用相關矩陣或協方差矩陣的特徵值計算方法,一般更習慣用後者。
以上兩個函數均來自stats包,還可以使用psych包中的principal函數進行:
Kaiser方法、scree(碎石測試)和依據挑選規則使用解釋變數比例都可以。碎石測試的主要目的是將主成分結果以碎石圖方式表達,從圖中找到引起曲線斜率變化最快的因素。
主成分為2時,斜率變化最快。也可以使用nfactors以並行分析非圖形方式作Cattell碎石來測試。
biplot繪制數據與原始特徵在前兩個主成分上的投影圖
biplot繪制數據及原始特徵在前兩個主成分上的投影,農業高,教育和檢查低的省份在PC1上得分高;嬰兒死亡率高,農業低的省份在主成分PC2上得分較高。
多維尺度分析通過圖形方式展示多個對象之間的相似或相異程度距離),多維是指映射到一維、二維或多維空間表達CF全家人相對距離,一般使用一或二維空間。
分成計量和非計量兩類,前者是主要考慮如何保證降維後各對象之間的距離盡可能接近它們在原始空間的距離,後者則假設兩個空間中對象的距離排名已知,而且變換後排名不變。
可以通過將投影維度繪制在一個散點圖中比較MDS和PCA的差異,如果MDS採用歐氏距離,投影維度將與PCA完全一致。
奇異值分解是矩陣分解的一種形式,可以將一個矩陣分解為兩個正交矩陣和一個對角矩陣,原始矩陣可由這三個矩陣相乘得到。可以幫助去掉那些從線性代數角度觀察存在線性相關冗餘的矩陣,可以應用在特徵篩選,圖像處理和聚類等。
SVD是一類分解實數或復數矩陣的常見方法,PCA可以被看成SVD的一種特例:
兩個矩陣基本相同。
[圖片上傳失敗...(image-be0ae8-1639570485003)]
圖像壓縮領域應用最為廣泛的標准測試圖像,花花公子當年的模特圖呀!
不知為啥,讀什麼圖片都是負片呢?先繼續:
ISOMAP屬於流形學習方法,支持線性空間到非線性數據結構的轉換,與MDS類似,它也能夠以圖形方式展現對象之間的相似性或相異性(距離),不過,由於數據採用非線性結構表示,以幾何距離代替MDS中有歐氏距離。
ISOMAP是一種等距映射非線性降維方法,如果將計量MDS方法中數據點間成對的歐氏距離替換成鄰接圖間的測地距離,就可以將ISOMAP當做計量MDS方法的擴展。
演算法分為4步:確定鄰近點,構建鄰接圖,計算最短路徑和MDS分析找到數據間的低維嵌入。
擴展
可以將RnavGraph包將圖形作為數據瀏覽的基礎方式來實現高維數據的可視化。
LLE演算法是PCA演算法的擴展,通過嵌入高維空間內的流形映射到低維空間來實現數據壓縮。ISOMAP是全局性非線性降維,LLE主要是局部母性降維演算法,假設每個數據點可以由k個鄰近點的母性組合構成,映射後能保持原來的數據性質。
LLE是一種非線性降維演算法,基於它我們可以得到高維數據在低維空間保持原有數據鄰近嵌入關系的映射。演算法主要分成三步:計算每個點的k個鄰近,然後計算每個鄰近點的權值,使得每個點都能最優地由其鄰近點組合重構,即殘差和最小。
擴展
還可以選擇RDRTollbox包實現非線性降維,支持ISOMAP和LLE演算法。