CTC學習筆記(二) 訓練和公式推導
整體思路
訓練流程和傳統的神經網路類似,構建loss function,然後根據BP演算法進行訓練,不同之處在於傳統的神經網路的訓練準則是針對每幀資料,即每幀資料的訓練誤差最小,而CTC的訓練準則是基於序列(比如語音識別的一整句話)的,比如最大化
前期準備
- 輸入
x ,長度為T - 輸出集合
A 表示正常的輸出
A′=A⋃{blank} 表示輸出全集
A′T 表示輸入x對應的輸出元素集合 - 輸出序列
π 表示輸出路徑
l 表示輸出label序列
F 表示路徑到label序列的對映關係 - 概率
y 表示時間t輸出k的概率
p(π|x)=∏t=1Tytπt 表示基於輸入x的輸出π 路徑的概率
p(l|x)=∑π∈F−1(l)p(π|x) 表示輸出label序列的概率是多條路徑的概率和。
前後向演算法
考慮到計算
為了引入blank節點,在label首尾以及中間插入blank節點,如果label序列原來的長度為U,那麼現在變為U’=2U+1。
前向
前向變數為
初始化值如下:
遞推關係:
其中
注:如果l表示{c,a,t},那麼l’表示為{b,c,b,a,b,t,b},所以原來在l中的下標u為2,在l’中的下標u變為4。
根據上圖,很容易理解前向的遞推關係。
後向
初始化值:
遞推關係:
其中
取log
概率計算在log計算,避免underflow,其中log加可以通過以下形式轉化:
相關推薦
CTC學習筆記(二) 訓練和公式推導
整體思路 訓練流程和傳統的神經網路類似,構建loss function,然後根據BP演算法進行訓練,不同之處在於傳統的神經網路的訓練準則是針對每幀資料,即每幀資料的訓練誤差最小,而CTC的訓練準則是基於序列(比如語音識別的一整句話)的,比如最大化p(z|x
java學習筆記(二)parseInt和valueOf 以及字串+和StringBuilder的區別
parseInt和valueOf 我們平時應該都用過或者見過parseInt和valueOf這兩個方法。一般我們是想把String型別的字元數字轉成int型別。從這個功能層面來說,這兩個方法都一樣,都可以勝任這個功能。 但是,我們進入原始碼,看下Integer類下這兩個方法 pars
Java NIO 學習筆記(二)----聚集和分散,通道到通道
目錄: Java NIO 學習筆記(一)----概述,Channel/Buffer Java NIO 學習筆記(二)----聚集和分散,通道到通道 Scatter / Gather 通道的聚集和分散操作 NIO 具有內建的 scatter/gather 支援,用於描述讀取和寫入通道的操作。 分散(
C# EMGU 3.4.1學習筆記(二)XML和YAML檔案的寫入
以下是《OpenCV3程式設計入門》中5.6.3的示例程式的C# + EMGU 3.4.1版,和C++程式相比,有如下幾點不同: 1. 使用Matrix<>儲存多維陣列,多維陣列的各維需要使用{}擴起來,之間用逗號分隔; 2. C#中無法使用<<和
機器學習筆記(二)矩陣和線性代數 例:用Python實現SVD分解進行圖片壓縮
線性代數基本只要是理工科,都是必修的一門課。當時學習的時候總是有一個疑惑,這個東西到底是幹嘛用的?為什麼數學家發明出這麼一套方法呢,感覺除了解方程沒發現有什麼大用啊!但隨著學習的深入,慢慢發現矩陣的應
Spring-Cloud學習筆記(二)RestTemplate和Feign的使用方式以及部分註解的使用
通常,我們在搭建springcloud微服務架構時,會把我們的服務註冊到高可用eureka服務註冊發現中心上面,各個服務之間的通訊就是無可避免的,此時我們就需要用到RestTemplate 或者Feign去進行各個服務之間的通訊呼叫。
python學習筆記(二)列表和元組
序列是Python中最基本的資料結構。序列的索引從0開始。python中共有六種內建的序列,包括:列表,元組,字串,Unicode字串,buffer物件和xrange物件。 2.1 通用序列操作 python中的所有序列型別都可以進行某些特定的操作:索引indexing,
數據結構學習筆記(二) 線性表的順序存儲和鏈式存儲
出錯 初始化 node != test span 輸入 des val 線性表:由同類型數據元素構成有序序列的線性結構 --》表中元素的個數稱為線性表的長度 --》沒有元素時,成為空表 --》表起始位置稱表頭,表結束位置稱表尾 順序存儲: 1 package
javascript學習筆記(二):定義函數、調用函數、參數、返回值、局部和全局變量
兩個 cnblogs bsp 結果 value ava ase com 調用 定義函數、調用函數、參數、返回值 關鍵字function定義函數,格式如下: function 函數名(){ 函數體 } 調用函數、參數、返回值的規則和c語言規則類似。 1 <!DOC
設計模式學習筆記(二)--簡單工廠模式和工廠模式
bsp bubuko rac oid nds gen body () pri 老生長談的兩個設計模式了,這裏把這兩個設計模式對比著來總結一下。 什麽是簡單工廠模式? 簡單工廠模式:根據傳入工廠類的參數動態決定要創建哪一個產品類的實例。 UML圖如下(以實現一個計算器為例):
JVM學習筆記(二)--方法調用之靜態分配和動態分配
extends AD 找到 n! sse 運行時 面試 static sys 本篇文章從JVM的角度來理解Java學習中經常提到的重載和重寫。 方法調用:方法調用不等同於方法執行,在Java虛擬機中,方法調用僅僅是為了確定調用哪個版本的方法。方法調用分為解析調用和分派。解析
SOC中的DFT和BIST對比與比較-IC學習筆記(二)
獨立 讀取 c學習 連接 特殊 客戶服務 bsp design 來源 ATE:ATE是Automatic Test Equipment的縮寫,根據客戶的測試要求、圖紙及參考方案,采用MCU、PLC、PC基於VB、VC開發平臺,利用TestStand&LabV
opencv 視覺項目學習筆記(二): 基於 svm 和 knn 車牌識別
its ++ eas -a rect() repr poi obj std 車牌識別的屬於常見的 模式識別 ,其基本流程為下面三個步驟: 1) 分割: 檢測並檢測圖像中感興趣區域; 2)特征提取: 對字符圖像集中的每個部分進行提取; 3)分類: 判斷圖像快是不是車牌或者 每
Scala學習筆記(二):類和物件
object object 是隻有一個例項的類。它的定義與Java中的class類似,如: // 單例物件 object AppEntry { def main(args: Array[String]): Unit = { print("Hello World!") } }
html和css學習筆記(二)
1表格 1.1table tr td 1.2表格屬性 width border align="center" cellspacing 單元格邊框和單元格邊框之間的距離 cellpadding 單元格內容與單元格邊框之間的距離 *三參為0 border cellspaci
《資料結構與演算法 python語言描述》學習筆記(二)————抽象資料型別和Python類
第一部分:學習內容概要 抽象資料型別 Python的類 第二部分:學習筆記 抽象資料型別 1.抽象資料型別(Abstract Data Type,ADT),通過一套介面闡述說明這一程式部分的可用功能,但不不限制功能的實現方法。 2.抽象資料型
opencv 視覺專案學習筆記(二): 基於 svm 和 knn 車牌識別
車牌識別的屬於常見的 模式識別 ,其基本流程為下面三個步驟: 1) 分割: 檢測並檢測影象中感興趣區域; 2)特徵提取: 對字元影象集中的每個部分進行提取; 3)分類: 判斷影象快是不是車牌或者 每個車牌字元的分類。 車牌識別分為兩個步驟, 車牌檢測, 車牌識別, 都屬於模式識別。 基本結構如下: 一、車牌
cs231n斯坦福基於卷積神經網路的CV學習筆記(二)神經網路訓練細節
五,神經網路 注意點part1 例項:邏輯迴歸二層神經網路訓練函式 使用權重w和偏差值biase計算出第一個隱含層h,然後計算損失,評分,進行反向傳播回去 多種常用啟用函式(一般預設max(0,x)),如sigmoid函式具有飽和區梯度0,非零點中心,計算x複
ElasticSearch學習筆記(二)IK分詞器和拼音分詞器的安裝
ElasticSearch是自帶分詞器的,但是自帶的分詞器一般就只能對英文分詞,對英文的分詞只要識別空格就好了,還是很好做的(ES的這個分詞器和Lucene的分詞器很想,是不是直接使用Lucene的就不知道),自帶的分詞器對於中文就只能分成一個字一個字,這個顯然
Scala學習筆記(二):控制結構和函式
2.1 條件表示式 2.1.1 Scala中if/else語法結構和java一樣,不同點在於此if表示式有值: val s=if (x>0) 1 else -1 //s的值要麼是1,要麼是-1,取決於X的範圍