結構學習 介紹

2021-08-14 19:00:18 字數 1915 閱讀 9569

所謂的結構學習就是輸入或者輸出是有結構的資料,比如說語句、列表、樹和識別時的邊界框(bounding box)。而在之前的學習之中,輸入和輸出都是向量。在結構學習中,我們需要學習的是乙個函式

f 。如下圖所示,它的輸入是一種形式,而輸出是另一種形式。

主要的應用方向如下

結構學習具有乙個統一的框架,可以表示為下圖中的形式

在訓練的過程中,我們希望找到這樣的乙個函式

f,用它來評價我們的輸入與我們的輸出目前有多匹配。在測試的過程中個,給定了乙個

x 我們窮舉所有的

y找到使得 f(

x,y)

最大的

y 即為測試結果。

目標檢測所要達到的目的是。輸入一張,我們使用乙個邊界框在影象中標註出確定目標的位置。具體的訓練的框架如下所示

在這裡訓練的過程就是在估計邊界框與目標之間的匹配程度。而測試的過程如下圖所示

就是窮舉所有可能的邊界框,從中找出最好的那乙個。

摘要生成的結構學習與上面的目標檢測十分相似,首先訓練乙個函式

f使得摘要和文字的匹配程度最好,之後在測試階段,窮舉所有的摘要,從中選擇得分最高的那乙個。

結構學習的統一框架與概率模型之間有著如下的對應關係

其中學習到的函式

f 因為是在評估 x,y 之間的匹配程度的,所以可以認為是 x,y 同時出現的概率;而給定x 找最匹配的結果實際上可以認為是再找給定 x 的乙個最大後驗概率,所以這個過程實際上課貝葉斯分類的過程是十分相像的。

但是使用概率的方法有有點也有缺點。優點在於概率模型是可解釋的,有意義的;缺點在於並不是多有的東西都可以用概率進行描述,其次對於乙個連續函式對所有的可能的結果進行求和是沒有辦法實現的。

如下圖所示

問題1 :估計輸入間的相似程度應該用什麼方法,也就是說 f(

x,y)

應該長成什麼樣子

問題2:如何解決那個窮舉所有找出最大的問題

問題3:給定了訓練資料,怎麼樣找打合適的 f(

x,y)

這個過程實際上和下面的隱馬爾科夫(hmm)方法要解決的三個問題是相似的

dnn實際上可以看作是結構學習的乙個特例,兩者之間的關係如下圖所示

在上面的神經網路中,我們將 x 輸入神經網路中,將輸出與 y 做交叉熵,那

f 就是兩者交叉熵的相反數,然後在測試的時候,窮舉所有的標籤,帶入

f中找打使他最大的。

FPN PAN結構學習

yolo4的neck結構採用該模式,我們將neck部分用立體圖畫出來,更直觀的看下兩部分之間是如何通過fpn結構融合的。如圖所示,fpn是自頂向下的,將高層特徵通過上取樣和低層特徵做融合得到進行 的特徵圖。neck部分的立體影象,看下兩部分是如何通過fpn pan結構進行融合的。和yolov3的fp...

Innodb 表結構學習

眾所周知,innodb主鍵聚集索引,index organized table 那麼沒有主鍵的時候,找非空唯一索引,或者自動建立6byte大小的指標,但是它自動建立的索引你是沒辦法拿來做主鍵過濾的 非空唯一索引如果有多個,按照 定義 順序選擇第乙個 select rowid from talbe 其...

資料結構學習

什麼是資料結構 對計算機記憶體中的資料的一種安排。資料結構有那些?優缺點?1.陣列 插入快 知道下標 查詢慢,刪除慢,大小固定 2.有序陣列 比無序的查詢塊,刪除和插入慢,大小固定 3.棧 吃多了吐 個人理解 4.佇列 吃多了拉 個人理解 5.鍊錶 插入快,刪除快,查詢慢 6.二叉樹 查詢 插入 刪...