導航:首頁 > 源碼編譯 > 對話系統演算法訓練

對話系統演算法訓練

發布時間:2022-07-26 20:29:09

『壹』 英語口語人機對話系統操作應用的技巧

想提高英語口語水平,首先要在語音上下功夫,方法是無法取代刻苦的學習。
要大量的閱讀和聽力做基礎,在讀和聽的過程中,積累詞彙,掌握句型,並熟悉英語表達思想的方式,著重培養語感
1.大聲朗讀對話和文章,還有各種句型和口語中常用的句子,並背誦文章及演講。多與別人練習對話,最好是以英語為母語的人練習。也可以自言自語亦是練習口語。
2.練習口語要大膽說出來,過一段時間後,突然有一天你會自如、清楚地表達自己的思想。有了大膽說的精神,你才能闖過口語的難關。
3.只會學英語,而不能盡快地去用,那就永遠也學不好英語。要始終尋找機會說英語。可以和你周圍的同學或朋友交流,即鞏固了已學的和 從別人那裡學到新的的東西。
4.在國內學英語缺乏環境,看電影學英語口語是彌補環境不足的好方法。

『貳』 使用Transformer來實現一個對話系統,如何判定用戶當前的交流的內容是否離題

隨著大數據技術和深度學習技術的發展,創造一個智能人機對話系統作為我們的個人助理或聊天夥伴,變得越來越現實.根據對話系統應用領域的不同,一般可分為兩類:任務型對話

『叄』 求論文(語音識別)

與機器進行語音交流,讓機器明白你說什麼,這是人們長期以來夢寐以求的事情。語音識別技術就是讓機器通過識別和理解過程把語音信號轉變為相應的文本或命令的高技術。語音識別是一門交叉學科。近二十年來,語音識別技術取得顯著進步,開始從實驗室走向市場。人們預計,未來10年內,語音識別技術將進入工業、家電、通信、汽車電子、醫療、家庭服務、消費電子產品等各個領域。
語音識別聽寫機在一些領域的應用被美國新聞界評為1997年計算機發展十件大事之一。很多專家都認為語音識別技術是2000年至2010年間信息技術領域十大重要的科技發展技術之一。
語音識別技術所涉及的領域包括:信號處理、模式識別、概率論和資訊理論、發聲機理和聽覺機理、人工智慧等等。 任務分類和應用 根據識別的對象不同,語音識別任務大體可分為3類,即孤立詞識別(isolated word recognition),關鍵詞識別(或稱關鍵詞檢出,keyword spotting)和連續語音識別。其中,孤立詞識別 的任務是識別事先已知的孤立的詞,如「開機」、「關機」等;連續語音識別的任務則是識別任意的連續語音,如一個句子或一段話;連續語音流中的關鍵詞檢測針對的是連續語音,但它並不識別全部文字,而只是檢測已知的若干關鍵詞在何處出現,如在一段話中檢測「計算機」、「世界」這兩個詞。
根據針對的發音人,可以把語音識別技術分為特定人語音識別和非特定人語音識別,前者只能識別一個或幾個人的語音,而後者則可以被任何人使用。顯然,非特定人語音識別系統更符合實際需要,但它要比針對特定人的識別困難得多。
另外,根據語音設備和通道,可以分為桌面(PC)語音識別、電話語音識別和嵌入式設備(手機、PDA等)語音識別。不同的採集通道會使人的發音的聲學特性發生變形,因此需要構造各自的識別系統。
語音識別的應用領域非常廣泛,常見的應用系統有:語音輸入系統,相對於鍵盤輸入方法,它更符合人的日常習慣,也更自然、更高效;語音控制系統,即用語音來控制設備的運行,相對於手動控制來說更加快捷、方便,可以用在諸如工業控制、語音撥號系統、智能家電、聲控智能玩具等許多領域;智能對話查詢系統,根據客戶的語音進行操作,為用戶提供自然、友好的資料庫檢索服務,例如家庭服務、賓館服務、旅行社服務系統、訂票系統、醫療服務、銀行服務、股票查詢服務等等。 前端前端處理是指在特徵提取之前,先對原始語音進行處理,部分消除雜訊和不同說話人帶來的影響,使處理後的信號更能反映語音的本質特徵。最常用的前端處理有端點檢測和語音增強。端點檢測是指在語音信號中將語音和非語音信號時段區分開來,准確地確定出語音信號的起始點。經過端點檢測後,後續處理就可以只對語音信號進行,這對提高模型的精確度和識別正確率有重要作用。語音增強的主要任務就是消除環境雜訊對語音的影響。目前通用的方法是採用維納濾波,該方法在雜訊較大的情況下效果好於其它濾波器。處理聲學特徵 聲學特徵的提取與選擇是語音識別的一個重要環節。聲學特徵的提取既是一個信息大幅度壓縮的過程,也是一個信號解卷過程,目的是使模式劃分器能更好地劃分。由於語音信號的時變特性,特徵提取必須在一小段語音信號上進行,也即進行短時分析。這一段被認為是平穩的分析區間稱之為幀,幀與幀之間的偏移通常取幀長的1/2或1/3。通常要對信號進行預加重以提升高頻,對信號加窗以避免短時語音段邊緣的影響。常用的一些聲學特徵* 線性預測系數LPC:線性預測分析從人的發聲機理入手,通過對聲道的短管級聯模型的研究,認為系統的傳遞函數符合全極點數字濾波器的形式,從而n 時刻的信號可以用前若干時刻的信號的線性組合來估計。通過使實際語音的采樣值和線性預測采樣值之間達到均方差最小LMS,即可得到線性預測系數LPC。對 LPC的計算方法有自相關法(德賓Durbin法)、協方差法、格型法等等。計算上的快速有效保證了這一聲學特徵的廣泛使用。與LPC這種預測參數模型類似的聲學特徵還有線譜對LSP、反射系數等等。
* 倒譜系數CEP:利用同態處理方法,對語音信號求離散傅立葉變換DFT後取對數,再求反變換iDFT就可得到倒譜系數。對LPC倒譜(LPCCEP),在獲得濾波器的線性預測系數後,可以用一個遞推公式計算得出。實驗表明,使用倒譜可以提高特徵參數的穩定性。
* Mel倒譜系數MFCC和感知線性預測PLP:不同於LPC等通過對人的發聲機理的研究而得到的聲學特徵,Mel倒譜系數MFCC和感知線性預測 PLP是受人的聽覺系統研究成果推動而導出的聲學特徵。對人的聽覺機理的研究發現,當兩個頻率相近的音調同時發出時,人只能聽到一個音調。臨界帶寬指的就是這樣一種令人的主觀感覺發生突變的帶寬邊界,當兩個音調的頻率差小於臨界帶寬時,人就會把兩個音調聽成一個,這稱之為屏蔽效應。Mel刻度是對這一臨界帶寬的度量方法之一。
MFCC的計算首先用FFT將時域信號轉化成頻域,之後對其對數能量譜用依照Mel刻度分布的三角濾波器組進行卷積,最後對各個濾波器的輸出構成的向量進行離散餘弦變換DCT,取前N個系數。PLP仍用德賓法去計算LPC參數,但在計算自相關參數時用的也是對聽覺激勵的對數能量譜進行DCT的方法。聲學模型語音識別系統的模型通常由聲學模型和語言模型兩部分組成,分別對應於語音到音節概率的計算和音節到字概率的計算。本節和下一節分別介紹聲學模型和語言模型方面的技術。
HMM聲學建模:馬爾可夫模型的概念是一個離散時域有限狀態自動機,隱馬爾可夫模型HMM是指這一馬爾可夫模型的內部狀態外界不可見,外界只能看到各個時刻的輸出值。對語音識別系統,輸出值通常就是從各個幀計算而得的聲學特徵。用HMM刻畫語音信號需作出兩個假設,一是內部狀態的轉移只與上一狀態有關,另一是輸出值只與當前狀態(或當前的狀態轉移)有關,這兩個假設大大降低了模型的復雜度。HMM的打分、解碼和訓練相應的演算法是前向演算法、Viterbi演算法和前向後向演算法。
語音識別中使用HMM通常是用從左向右單向、帶自環、帶跨越的拓撲結構來對識別基元建模,一個音素就是一個三至五狀態的HMM,一個詞就是構成詞的多個音素的HMM串列起來構成的HMM,而連續語音識別的整個模型就是詞和靜音組合起來的HMM。上下文相關建模:協同發音,指的是一個音受前後相鄰音的影響而發生變化,從發聲機理上看就是人的發聲器官在一個音轉向另一個音時其特性只能漸變,從而使得後一個音的頻譜與其他條件下的頻譜產生差異。上下文相關建模方法在建模時考慮了這一影響,從而使模型能更准確地描述語音,只考慮前一音的影響的稱為Bi- Phone,考慮前一音和後一音的影響的稱為Tri-Phone。
英語的上下文相關建模通常以音素為基元,由於有些音素對其後音素的影響是相似的,因而可以通過音素解碼狀態的聚類進行模型參數的共享。聚類的結果稱為senone。決策樹用來實現高效的triphone對senone的對應,通過回答一系列前後音所屬類別(元/輔音、清/濁音等等)的問題,最終確定其HMM狀態應使用哪個senone。分類回歸樹CART模型用以進行詞到音素的發音標注。 語言模型語言模型主要分為規則模型和統計模型兩種。統計語言模型是用概率統計的方法來揭示語言單位內在的統計規律,其中N-Gram簡單有效,被廣泛使用。
N-Gram:該模型基於這樣一種假設,第n個詞的出現只與前面N-1個詞相關,而與其它任何詞都不相關,整句的概率就是各個詞出現概率的乘積。這些概率可以通過直接從語料中統計N個詞同時出現的次數得到。常用的是二元的Bi-Gram和三元的Tri-Gram。
語言模型的性能通常用交叉熵和復雜度(Perplexity)來衡量。交叉熵的意義是用該模型對文本識別的難度,或者從壓縮的角度來看,每個詞平均要用幾個位來編碼。復雜度的意義是用該模型表示這一文本平均的分支數,其倒數可視為每個詞的平均概率。平滑是指對沒觀察到的N元組合賦予一個概率值,以保證詞序列總能通過語言模型得到一個概率值。通常使用的平滑技術有圖靈估計、刪除插值平滑、Katz平滑和Kneser-Ney平滑。 搜索連續語音識別中的搜索,就是尋找一個詞模型序列以描述輸入語音信號,從而得到詞解碼序列。搜索所依據的是對公式中的聲學模型打分和語言模型打分。在實際使用中,往往要依據經驗給語言模型加上一個高權重,並設置一個長詞懲罰分數。
Viterbi:基於動態規劃的Viterbi演算法在每個時間點上的各個狀態,計算解碼狀態序列對觀察序列的後驗概率,保留概率最大的路徑,並在每個節點記錄下相應的狀態信息以便最後反向獲取詞解碼序列。Viterbi演算法在不喪失最優解的條件下,同時解決了連續語音識別中HMM模型狀態序列與聲學觀察序列的非線性時間對准、詞邊界檢測和詞的識別,從而使這一演算法成為語音識別搜索的基本策略。
由於語音識別對當前時間點之後的情況無法預測,基於目標函數的啟發式剪枝難以應用。由於Viterbi演算法的時齊特性,同一時刻的各條路徑對應於同樣的觀察序列,因而具有可比性,束Beam搜索在每一時刻只保留概率最大的前若干條路徑,大幅度的剪枝提高了搜索的效率。這一時齊Viterbi- Beam演算法是當前語音識別搜索中最有效的演算法。 N-best搜索和多遍搜索:為在搜索中利用各種知識源,通常要進行多遍搜索,第一遍使用代價低的知識源,產生一個候選列表或詞候選網格,在此基礎上進行使用代價高的知識源的第二遍搜索得到最佳路徑。此前介紹的知識源有聲學模型、語言模型和音標詞典,這些可以用於第一遍搜索。為實現更高級的語音識別或口語理解,往往要利用一些代價更高的知識源,如4階或5階的N-Gram、4階或更高的上下文相關模型、詞間相關模型、分段模型或語法分析,進行重新打分。最新的實時大詞表連續語音識別系統許多都使用這種多遍搜索策略。
N-best搜索產生一個候選列表,在每個節點要保留N條最好的路徑,會使計算復雜度增加到N倍。簡化的做法是只保留每個節點的若干詞候選,但可能丟失次優候選。一個折衷辦法是只考慮兩個詞長的路徑,保留k條。詞候選網格以一種更緊湊的方式給出多候選,對N-best搜索演算法作相應改動後可以得到生成候選網格的演算法。
前向後向搜索演算法是一個應用多遍搜索的例子。當應用簡單知識源進行了前向的Viterbi搜索後,搜索過程中得到的前向概率恰恰可以用在後向搜索的目標函數的計算中,因而可以使用啟發式的A演算法進行後向搜索,經濟地搜索出N條候選。 系統實現 語音識別系統選擇識別基元的要求是,有準確的定義,能得到足夠數據進行訓練,具有一般性。英語通常採用上下文相關的音素建模,漢語的協同發音不如英語嚴重,可以採用音節建模。系統所需的訓練數據大小與模型復雜度有關。模型設計得過於復雜以至於超出了所提供的訓練數據的能力,會使得性能急劇下降。
聽寫機:大詞彙量、非特定人、連續語音識別系統通常稱為聽寫機。其架構就是建立在前述聲學模型和語言模型基礎上的HMM拓撲結構。訓練時對每個基元用前向後向演算法獲得模型參數,識別時,將基元串接成詞,詞間加上靜音模型並引入語言模型作為詞間轉移概率,形成循環結構,用Viterbi演算法進行解碼。針對漢語易於分割的特點,先進行分割再對每一段進行解碼,是用以提高效率的一個簡化方法。
對話系統:用於實現人機口語對話的系統稱為對話系統。受目前技術所限,對話系統往往是面向一個狹窄領域、詞彙量有限的系統,其題材有旅遊查詢、訂票、資料庫檢索等等。其前端是一個語音識別器,識別產生的N-best候選或詞候選網格,由語法分析器進行分析獲取語義信息,再由對話管理器確定應答信息,由語音合成器輸出。由於目前的系統往往詞彙量有限,也可以用提取關鍵詞的方法來獲取語義信息。 自適應與強健性 語音識別系統的性能受許多因素的影響,包括不同的說話人、說話方式、環境噪音、傳輸信道等等。提高系統魯棒性,是要提高系統克服這些因素影響的能力,使系統在不同的應用環境、條件下性能穩定;自適應的目的,是根據不同的影響來源,自動地、有針對性地對系統進行調整,在使用中逐步提高性能。以下對影響系統性能的不同因素分別介紹解決辦法。
解決辦法按針對語音特徵的方法(以下稱特徵方法)和模型調整的方法(以下稱模型方法)分為兩類。前者需要尋找更好的、高魯棒性的特徵參數,或是在現有的特徵參數基礎上,加入一些特定的處理方法。後者是利用少量的自適應語料來修正或變換原有的說話人無關(SI)模型,從而使其成為說話人自適應(SA)模型。
說話人自適應的特徵方法有說話人規一化和說話人子空間法,模型方法有貝葉斯方法、變換法和模型合並法。
語音系統中的雜訊,包括環境雜訊和錄音過程加入的電子雜訊。提高系統魯棒性的特徵方法包括語音增強和尋找對雜訊干擾不敏感的特徵,模型方法有並行模型組合PMC方法和在訓練中人為加入雜訊。信道畸變包括錄音時話筒的距離、使用不同靈敏度的話筒、不同增益的前置放大和不同的濾波器設計等等。特徵方法有從倒譜矢量中減去其長時平均值和RASTA濾波,模型方法有倒譜平移。 微軟語音識別引擎 微軟在office和vista中都應用了自己開發的語音識別引擎,微軟語音識別引擎的使用是完全免費的,所以產生了許多基於微軟語音識別引擎開發的語音識別應用軟體,例如《語音游戲大師》《語音控制專家》《芝麻開門》等等軟體。 語音識別系統的性能指標 語音識別系統的性能指標主要有四項。①詞彙表范圍:這是指機器能識別的單詞或片語的范圍,如不作任何限制,則可認為詞彙表范圍是無限的。②說話人限制:是僅能識別指定發話者的語音,還是對任何發話人的語音都能識別。③訓練要求:使用前要不要訓練,即是否讓機器先「聽」一下給定的語音,以及訓練次數的多少。④正確識別率:平均正確識別的百分數,它與前面三個指標有關。
小結
以上介紹了實現語音識別系統的各個方面的技術。這些技術在實際使用中達到了較好的效果,但如何克服影響語音的各種因素還需要更深入地分析。目前聽寫機系統還不能完全實用化以取代鍵盤的輸入,但識別技術的成熟同時推動了更高層次的語音理解技術的研究。由於英語與漢語有著不同的特點,針對英語提出的技術在漢語中如何使用也是一個重要的研究課題,而四聲等漢語本身特有的問題也有待解決。

『肆』 如何利用深度學習技術訓練聊天機器人語言模型

數據預處理

模型能聊的內容也取決於選取的語料。如果已經具備了原始聊天數據,可以用SQL通過關鍵字查詢一些對話,也就是從大庫里選取出一個小庫來訓練。從一些論文上,很多演算法都是在數據預處理層面的,比如Mechanism-Aware Neural Machine for Dialogue Response Generation就介紹了,從大庫中抽取小庫,然後再進行融合,訓練出有特色的對話來。

對於英語,需要了解NLTK,NLTK提供了載入語料,語料標准化,語料分類,PoS詞性標注,語意抽取等功能。

另一個功能強大的工具庫是CoreNLP,作為 Stanford開源出來的工具,特色是實體標注,語意抽取,支持多種語言。

下面主要介紹兩個內容:

中文分詞

現在有很多中文分詞的SDK,分詞的演算法也比較多,也有很多文章對不同SDK的性能做比較。做中文分詞的示例代碼如下。

# coding:utf8
'''
Segmenter with Chinese
'''

import jieba
import langid


def segment_chinese_sentence(sentence):
'''
Return segmented sentence.
'''
seg_list = jieba.cut(sentence, cut_all=False)
seg_sentence = u" ".join(seg_list)
return seg_sentence.strip().encode('utf8')


def process_sentence(sentence):
'''
Only process Chinese Sentence.
'''
if langid.classify(sentence)[0] == 'zh':
return segment_chinese_sentence(sentence)
return sentence

if __name__ == "__main__":
print(process_sentence('飛雪連天射白鹿'))
print(process_sentence('I have a pen.'))

以上使用了langid先判斷語句是否是中文,然後使用jieba進行分詞。

在功能上,jieba分詞支持全切分模式,精確模式和搜索引擎模式。

全切分:輸出所有分詞。

精確:概率上的最佳分詞。

所有引擎模式:對精確切分後的長句再進行分詞。

jieba分詞的實現

主要是分成下面三步:

1、載入字典,在內存中建立字典空間。

字典的構造是每行一個詞,空格,詞頻,空格,詞性。

上訴書 3 n
上訴人 3 n
上訴期 3 b
上訴狀 4 n
上課 650 v

建立字典空間的是使用python的dict,採用前綴數組的方式。

使用前綴數組的原因是樹結構只有一層 -word:freq,效率高,節省空間。比如單詞"dog", 字典中將這樣存儲:

{
"d": 0,
"do": 0,
"dog": 1 # value為詞頻
}

字典空間的主要用途是對輸入句子建立有向無環圖,然後根據演算法進行切分。演算法的取捨主要是根據模式- 全切,精確還是搜索。

2、對輸入的語句分詞,首先是建立一個有向無環圖。
有向無環圖,Directed acyclic graph(音 /ˈdæɡ/)。

【圖 3-2】 DAG

DAG對於後面計算最大概率路徑和使用HNN模型識別新詞有直接關系。

3、按照模式,對有向無環圖進行遍歷,比如,在精確模式下,便利就是求最大權重和的路徑,權重來自於在字典中定義的詞頻。對於沒有出現在詞典中的詞,連續的單個字元也許會構成新詞。然後用HMM模型和Viterbi演算法識別新詞。

精確模型切詞:使用動態規劃對最大概率路徑進行求解。

最大概率路徑:求route = (w1, w2, w3 ,.., wn),使得Σweight(wi)最大。Wi為該詞的詞頻。

更多的細節還需要讀一下jieba的源碼

自定義字典

jieba分詞默認的字典是:1998人民日報的切分語料還有一個msr的切分語料和一些txt小說。開發者可以自行添加字典,只要符合字典構建的格式就行。

jieba分詞同時提供介面添加詞彙。

Word embedding

使用機器學習訓練的語言模型,網路演算法是使用數字進行計算,在輸入進行編碼,在輸出進行解碼。word embedding就是編解碼的手段。

【圖 3-3】 word embedding, Ref. #7

word embedding是文本的數值化表示方法。表示法包括one-hot,bag of words,N-gram,分布式表示,共現矩陣等。

Word2vec

近年來,word2vec被廣泛採用。Word2vec輸入文章或者其他語料,輸出語料中詞彙建設的詞向量空間。詳細可參考word2vec數學原理解析。

使用word2vec

安裝完成後,得到word2vec命令行工具。

word2vec -train "data/review.txt"
-output "data/review.model"
-cbow 1
-size 100
-window 8
-negative 25
-hs 0
-sample 1e-4
-threads 20
-binary 1
-iter 15

-train "data/review.txt" 表示在指定的語料庫上訓練模型

-cbow 1 表示用cbow模型,設成0表示用skip-gram模型

-size 100 詞向量的維度為100

-window 8 訓練窗口的大小為8 即考慮一個單詞的前八個和後八個單詞

-negative 25 -hs 0 是使用negative sample還是HS演算法

-sample 1e-4 採用閾值

-threads 20 線程數

-binary 1 輸出model保存成2進制

-iter 15 迭代次數

在訓練完成後,就得到一個model,用該model可以查詢每個詞的詞向量,在詞和詞之間求距離,將不同詞放在數學公式中計算輸出相關性的詞。比如:

vector("法國") - vector("巴黎) + vector("英國") = vector("倫敦")"

對於訓練不同的語料庫,可以單獨的訓練詞向量模型,可以利用已經訓練好的模型。

其它訓練詞向量空間工具推薦:Glove。

Seq2Seq

2014年,Sequence to Sequence Learning with Neural Networks提出了使用深度學習技術,基於RNN和LSTM網路訓練翻譯系統,取得了突破,這一方法便應用在更廣泛的領域,比如問答系統,圖像字幕,語音識別,撰寫詩詞等。Seq2Seq完成了【encoder + decoder -> target】的映射,在上面的論文中,清晰的介紹了實現方式。

【圖 3-4】 Seq2Seq, Ref. #1

也有很多文章解讀它的原理。在使用Seq2Seq的過程中,雖然也研究了它的結構,但我還不認為能理解和解釋它。下面談兩點感受:

a. RNN保存了語言順序的特點,這和CNN在處理帶有形狀的模型時如出一轍,就是數學模型的設計符合物理模型。

【圖 3-5】 RNN, Ref. #6

b. LSTM Cell的復雜度對應了自然語言處理的復雜度。

【圖 3-6】 LSTM, Ref. #6

理由是,有人將LSTM Cell嘗試了多種其它方案傳遞狀態,結果也很好。

【圖 3-7】 GRU, Ref. #6

LSTM的一個替代方案:GRU。只要RNN的Cell足夠復雜,它就能工作的很好。

使用DeepQA2訓練語言模型

准備工作,下載項目:

git clone https://github.com/Samurais/DeepQA2.git
cd DeepQA2
open README.md # 根據README.md安裝依賴包

DeepQA2將工作分成三個過程:

數據預處理:從語料庫到數據字典。

訓練模型:從數據字典到語言模型。

提供服務:從語言模型到RESt API。

預處理

DeepQA2使用Cornell Movie Dialogs Corpus作為demo語料庫。

原始數據就是movie_lines.txt和movie_conversations.txt。這兩個文件的組織形式參考README.txt

deepqa2/dataset/preprocesser.py是將這兩個文件處理成數據字典的模塊。

train_max_length_enco就是問題的長度,train_max_length_deco就是答案的長度。在語料庫中,大於該長度的部分會被截斷。

程序運行後,會生成dataset-cornell-20.pkl文件,它載入到python中是一個字典:

word2id存儲了{word: id},其中word是一個單詞,id是int數字,代表這個單詞的id。

id2word存儲了{id: word}。

trainingSamples存儲了問答的對話對。

比如 [[[1,2,3],[4,5,6]], [[7,8,9], [10, 11, 12]]]

1,2,3 ... 12 都是word id。

[1,2,3] 和 [4,5,6] 構成一個問答。 [7,8,9] 和 [10, 11, 12] 構成一個問答。

開始訓練

cp config.sample.ini config.ini # modify keys
python deepqa2/train.py

config.ini是配置文件, 根據config.sample.ini進行修改。訓練的時間由epoch,learning rate, maxlength和對話對的數量而定。

deepqa2/train.py大約100行,完成數據字典載入、初始化tensorflow的session,saver,writer、初始化神經元模型、根據epoch進行迭代,保存模型到磁碟。

session是網路圖,由placeholder, variable, cell, layer, output 組成。

saver是保存model的,也可以用來恢復model。model就是實例化variable的session。

writer是查看loss fn或者其他開發者感興趣的數據的收集器。writer的結果會被saver保存,然後使用tensorboard查看。

Model

Model的構建要考慮輸入,狀態,softmax,輸出。

定義損耗函數,使用AdamOptimizer進行迭代。

最後,參考一下訓練的loop部分。

每次訓練,model會被存儲在save路徑下,文件夾的命名根據機器的hostname,時間戳生成。

提供服務

在TensorFlow中,提供了標準的serving模塊 - tensorflow serving。但研究了很久,還專門看了一遍 《C++ Essentials》,還沒有將它搞定,社區也普遍抱怨tensorflow serving不好學,不好用。訓練結束後,使用下面的腳本啟動服務,DeepQA2的serve部分還是調用TensorFlow的python api。

cd DeepQA2/save/deeplearning.cobra.vulcan.20170127.175256/deepqa2/serve
cp db.sample.sqlite3 db.sqlite3
python manage.py runserver 0.0.0.0:8000

測試

POST /api/v1/question HTTP/1.1
Host: 127.0.0.1:8000
Content-Type: application/json
Authorization: Basic YWRtaW46cGFzc3dvcmQxMjM=
Cache-Control: no-cache

{"message": "good to know"}

response
{
"rc": 0,
"msg": "hello"
}

serve的核心代碼在serve/api/chatbotmanager.py中。

使用腳本

scripts/start_training.sh啟動訓練

scripts/start_tensorboard.sh啟動Tensorboard

scripts/start_serving.sh啟動服務

對模型的評價

目前代碼具有很高的維護性,這也是從DeepQA項目進行重構的原因,更清晰的數據預處理、訓練和服務。有新的變更可以添加到deepqa2/models中,然後在train.py和chatbotmanager.py變更一下。

有待改進的地方

a. 新建models/rnn2.py, 使用dropout。目前DeepQA中已經使用了Drop.

b. tensorflow rc0.12.x中已經提供了seq2seq network,可以更新成tf版本.

c. 融合訓練,目前model只有一個庫,應該是設計一個新的模型,支持一個大庫和小庫,不同權重進行,就如Mechanism-Aware Neural Machinefor Dialogue Response Generation的介紹。

d. 代碼支持多機多GPU運行。

e. 目前訓練的結果都是QA對,對於一個問題,可以有多個答案。

f. 目前沒有一個方法進行accuracy測試,一個思路是在訓練中就提供干擾項,因為當前只有正確的答案,如果提供錯誤的答案(而且越多越好),就可以使用recall_at_k方法進行測試。

機器人家上了解到的,希望對你有用

『伍』 深度學習的職業發展方向有哪些

當前,人工智慧發展藉助深度學習技術突破得到了全面關注和助力推動,各國政府高度重視、資本熱潮仍在加碼,各界對其成為發展熱點也達成了共識。本文旨在分析深度學習技術現狀,研判深度學習發展趨勢,並針對我國的技術水平提出發展建議。
一、深度學習技術現狀
深度學習是本輪人工智慧爆發的關鍵技術。人工智慧技術在計算機視覺和自然語言處理等領域取得的突破性進展,使得人工智慧迎來新一輪爆發式發展。而深度學習是實現這些突破性進展的關鍵技術。其中,基於深度卷積網路的圖像分類技術已超過人眼的准確率,基於深度神經網路的語音識別技術已達到95%的准確率,基於深度神經網路的機器翻譯技術已接近人類的平均翻譯水平。准確率的大幅提升使得計算機視覺和自然語言處理進入產業化階段,帶來新產業的興起。
深度學習是大數據時代的演算法利器,成為近幾年的研究熱點。和傳統的機器學習演算法相比,深度學習技術有著兩方面的優勢。一是深度學習技術可隨著數據規模的增加不斷提升其性能,而傳統機器學習演算法難以利用海量數據持續提升其性能。二是深度學習技術可以從數據中直接提取特徵,削減了對每一個問題設計特徵提取器的工作,而傳統機器學習演算法需要人工提取特徵。因此,深度學習成為大數據時代的熱點技術,學術界和產業界都對深度學習展開了大量的研究和實踐工作。
深度學習各類模型全面賦能基礎應用。卷積神經網路和循環神經網路是兩類獲得廣泛應用的深度神經網路模型。計算機視覺和自然語言處理是人工智慧兩大基礎應用。卷積神經網路廣泛應用於計算機視覺領域,在圖像分類、目標檢測、語義分割等任務上的表現大大超越傳統方法。循環神經網路適合解決序列信息相關問題,已廣泛應用於自然語言處理領域,如語音識別、機器翻譯、對話系統等。
深度學習技術仍不完美,有待於進一步提升。一是深度神經網路的模型復雜度高,巨量的參數導致模型尺寸大,難以部署到移動終端設備。二是模型訓練所需的數據量大,而訓練數據樣本獲取、標注成本高,有些場景樣本難以獲取。三是應用門檻高,演算法建模及調參過程復雜繁瑣、演算法設計周期長、系統實施維護困難。四是缺乏因果推理能力,圖靈獎得主、貝葉斯網路之父Judea Pearl指出當前的深度學習不過只是「曲線擬合」。五是存在可解釋性問題,由於內部的參數共享和復雜的特徵抽取與組合,很難解釋模型到底學習到了什麼,但出於安全性考慮以及倫理和法律的需要,演算法的可解釋性又是十分必要的。因此,深度學習仍需解決以上問題。
二、深度學習發展趨勢
深度神經網路呈現層數越來越深,結構越來越復雜的發展趨勢。為了不斷提升深度神經網路的性能,業界從網路深度和網路結構兩方面持續進行探索。神經網路的層數已擴展到上百層甚至上千層,隨著網路層數的不斷加深,其學習效果也越來越好,2015年微軟提出的ResNet以152層的網路深度在圖像分類任務上准確率首次超過人眼。新的網路設計結構不斷被提出,使得神經網路的結構越來越復雜。如:2014年穀歌提出了Inception網路結構、2015年微軟提出了殘差網路結構、2016年黃高等人提出了密集連接網路結構,這些網路結構設計不斷提升了深度神經網路的性能。
深度神經網路節點功能不斷豐富。為了克服目前神經網路存在的局限性,業界探索並提出了新型神經網路節點,使得神經網路的功能越來越豐富。2017年,傑弗里辛頓提出了膠囊網路的概念,採用膠囊作為網路節點,理論上更接近人腦的行為,旨在克服卷積神經網路沒有空間分層和推理能力等局限性。2018年,DeepMind、谷歌大腦、MIT的學者聯合提出了圖網路的概念,定義了一類新的模塊,具有關系歸納偏置功能,旨在賦予深度學習因果推理的能力。
深度神經網路工程化應用技術不斷深化。深度神經網路模型大都具有上億的參數量和數百兆的佔用空間,運算量大,難以部署到智能手機、攝像頭和可穿戴設備等性能和資源受限的終端類設備。為了解決這個問題,業界採用模型壓縮技術降低模型參數量和尺寸,減少運算量。目前採用的模型壓縮方法包括對已訓練好的模型做修剪(如剪枝、權值共享和量化等)和設計更精細的模型(如MobileNet等)兩類。深度學習演算法建模及調參過程繁瑣,應用門檻高。為了降低深度學習的應用門檻,業界提出了自動化機器學習(AutoML)技術,可實現深度神經網路的自動化設計,簡化使用流程。
深度學習與多種機器學習技術不斷融合發展。深度學習與強化學習融合發展誕生的深度強化學習技術,結合了深度學習的感知能力和強化學習的決策能力,克服了強化學習只適用於狀態為離散且低維的缺陷,可直接從高維原始數據學習控制策略。為了降低深度神經網路模型訓練所需的數據量,業界引入了遷移學習的思想,從而誕生了深度遷移學習技術。遷移學習是指利用數據、任務或模型之間的相似性,將在舊領域學習過的模型,應用於新領域的一種學習過程。通過將訓練好的模型遷移到類似場景,實現只需少量的訓練數據就可以達到較好的效果。
三、未來發展建議
加強圖網路、深度強化學習以及生成式對抗網路等前沿技術研究。由於我國在深度學習領域缺乏重大原創性研究成果,基礎理論研究貢獻不足,如膠囊網路、圖網路等創新性、原創性概念是由美國專家提出,我國研究貢獻不足。在深度強化學習方面,目前最新的研究成果大都是由DeepMind和OpenAI等國外公司的研究人員提出,我國尚沒有突破性研究成果。近幾年的研究熱點生成式對抗網路(GAN)是由美國的研究人員Goodfellow提出,並且谷歌、facebook、twitter和蘋果等公司紛紛提出了各種改進和應用模型,有力推動了GAN技術的發展,而我國在這方面取得的研究成果較少。因此,應鼓勵科研院所及企業加強深度神經網路與因果推理模型結合、生成式對抗網路以及深度強化學習等前沿技術的研究,提出更多原創性研究成果,增強全球學術研究影響力。
加快自動化機器學習、模型壓縮等深度學習應用技術研究。依託國內的市場優勢和企業的成長優勢,針對具有我國特色的個性化應用需求,加快對深度學習應用技術的研究。加強對自動化機器學習、模型壓縮等技術的研究,加快深度學習的工程化落地應用。加強深度學習在計算機視覺領域應用研究,進一步提升目標識別等視覺任務的准確率,以及在實際應用場景中的性能。加強深度學習在自然語言處理領域的應用研究,提出性能更優的演算法模型,提升機器翻譯、對話系統等應用的性能。
來源:產業智能官
END
更多精彩內容請登錄http://www.innov100.com官方網站
往期精選▼
1. 飲鹿網2018-2019年中國人工智慧產業創新百強榜單發布!
2. 飲鹿網2018-2019年中國人工智慧產業Top20投資機構榜單發布!
3. 飲鹿網2018-2019年中國大數據產業創新百強榜單發布!
4. 飲鹿網2018-2019年中國大數據產業Top20投資機構榜單發布!
5. 飲鹿網2018-2019年中國物聯網產業創新百強榜單發布!
6. 飲鹿網2018-2019年中國5G與物聯網產業TOP20投資機構榜單發布!
7. 飲鹿網2018-2019年中國集成電路產業創新百強榜單發布!
8. 飲鹿網2018-2019年中國集成電路產業Top20投資機構榜單發布!
9. 飲鹿網2018-2019年中國企業服務產業創新百強榜單發布!
10. 飲鹿網2018-2019年中國企業服務產業TOP20投資機構榜單發布!

『陸』 護士資格人機對話系統使用注意事項有哪些

護士資格考試人機對話系統怎麼使用?答題的過程中需要注意哪些問題?2018年護士資格考試全面實行人機對話模式,相信很多考生想要了解,環球醫學教育網小編為大家解答如下:
點擊領取:護士考前60天沖刺計劃
1、考試進程的單向性: 在進行 專業知識 科目考試時,在某一題型(如 單選題 )的測試過程中,考生是可以隨時查看、修改此題型內任何一題的選擇答案的,而一旦確認完成作答、 進入新的題型時(如結束 單選題 ,進入 不定項選擇題 ),考生將不能退回到前一測試題型( 單選題 )進行查看和修改答案。在進行 專業實踐能力 科 目考試時,針對每道案例分析題,只有完成前一個問題才能看到下一問題,並且在確定進入下一問題後是無法對前面問題的作答進行查看和修改的(如當確認完成 第l問 ,進入 第2問 後,考生無法查看或修改其 第l問 的選擇)。因此考生須謹慎、認真作答。
考試進程為 只可前進,不可後退 單向操作的原則, 主要出於三方面的考慮:一是模擬臨床、貼近臨床。如醫生下了醫囑,護士已執行,就無法更改了;二是因考試進程的單向性,使命題的思路大為拓寬,題間互為關 聯,一環扣一環,令考生感覺如在現實工作中對患者進行檢查、診斷、治療;三是由於試題提問序貫性的特點,試題後面的提問往往已經明示或暗示出前面提問的答 案,因此不允許考生再返回去進行修改。經多年實踐證明,考試進程單向性是完全符合衛生專業技能考試特點的。
2、中斷考試:考生考試過程中因特殊原因,徵得監考老師同意,可以由監考老師按相關鍵中斷考試。如非機器故障,下一次考試必須使用同一台機器,並只能選擇斷點續考。
以上就是環球醫學教育網小編為大家整理的 護士資格人機對話系統使用注意事項有哪些? 一文,希望對大家有幫助!
相關推薦:
2018護士資格考試全新輔導課程火爆招生中~
中國衛生人才網2018年護士執業資格考試特別提示 | 機考注意事項

『柒』 採用人機對話系統進行英語口語練習應用的技術是什麼技術

採用人機對話系統進行英語口語練習應用的技術是人工智慧。

在對話過程中,計算機可能要求回答一些問題,給定某些參數或確定選擇項。通過對話,人對計算機的工作給以引導或限定,監督任務的執行。該技術屬於人工智慧領域,有利於將人的意圖、判斷和經驗,納入計算機工作過程,增強計算機應用的靈活性,也便於軟體編寫。

以下是人機對話發展階段的相關介紹:

第一代人機對話時代,人機交流使用的語言全部是經過定義並有數量限制由字元集組成的被雙方牢記的密碼式語言,在此體系外的人基本不了解語言含義。

第二代人機對話時代,則採用的是接近人類自然思維的「所見即所得」的圖形式交流方式,可以說在交流的內容上已經非常接近人類的自然交流習慣(以類似人類書寫形式的視覺交流為主),但其交流方式仍主要是通過按鍵(鍵盤、滑鼠等)實現,而不是按照人類本來的交流方式進行。

第三代人機對話則完全與第一第二代人機對話方式不同,人機交流的內容主要是人習慣的自然交流語言,交流方式也是人習慣的自然語言交流方式(包括智能語伴、語音和手寫等,甚至包括人的表情、手勢、步態等)。

以上資料參考網路——人機對話

『捌』 未來24個月,機器學習領域將可能有哪些重大突破

近日,卡內基梅隆大學(CMU)計算機學院院長Andrew W. Moore和副院長Philip L. Lehman來到微軟亞洲研究院,與研究員們分享了過去兩年中人工智慧領域的一些技術突破,並從業界和學界兩個角度,探討了他們對於人工智慧接下來發展方向的看法。

今天,我們就在這里與大家分享此次演講~以下為Andrew W. Moore演講的精簡版文字整理。

2005到2015年間,我們見證了數據科學在學術界和商業界的發展,學會了如何正確地使用分布式計算、GPU,如何很快的建立抽象模型等等。彷彿AI完全轉化成了機器學習,每個人都在處理數據、基於數據為復雜的世界建模……

大約2014年,許多人開始意識到這些工作還遠遠不夠,它們僅能實現改變世界藍圖的一半,而另一半則是被我們視為數據科學最頂層的決策系統。上世紀90年代,我們對所建立的系統都十分樂觀。但漸漸地,我們發現,這些系統在應用到實際生活中時並沒有效果,比如在優化城市交通數據時,一個完美的優化演算法並沒有幫助,因為那時我們沒有任何關於城市交通的數據。所以現在,我們嚴肅認真地考慮重新回到基於數據科學的大規模優化和決策上。

而在大學里,我們會思考更多的可能性。有些教授認為自主性(autonomy)是最重要的,是AI的真正目標,對此觀點我們十分尊重。它在很多方面,比如深空探索或需要快速決策的情況下,都將有重要的應用。當然,自主性不是AI最終唯一的目標。它還包括其他方面,例如增強人類(augmented humans)等等,在我看來這和微軟的核心任務,如何更好地幫助人類工作、生活,有著很大的重合度。我們需要幫助人類更好地工作、生活,同時也需要自主性。

在數據科學方面,我們需要關注三個部分。首先是人工智慧的基礎建設,包括大型優化策略,它需要我們擅長大規模線性規劃問題和隨機梯度下降等問題。其次,是自主性(autonomy),最後是增強人類(augmented humans)。

Andrew W. Moore是卡內基梅隆大學(CMU)計算機學院的第十五位院長。他的研究領域主要有統計機器學習、人工智慧、機器人技術以及大數據統計計算。他曾在機器人控制、製造、強化學習、天體物理演算法、電子商務領域都有所建樹。他的數據挖掘教程下載量已達100多萬。他建立了Auton Lab研究組,該研究組設計了有效的關於大型統計操作的新方法,並在多種情況下都實現了幾個數量級的加速效果。Auton研究組的成員與許多科學家、政府機構、技術公司都有著密切的合作,旨在不斷尋求在計算、統計數據挖掘、機器學習和人工智慧領域中最函待解決的問題。2006年,Andrew加入谷歌,參與Google Pittsburgh的建立。同時,他也參與了包括Google Sky和Android SkyMap的相關事宜。2014年8月,Andrew重返卡內基梅隆大學(CMU),繼續擔任計算機學院院長。

『玖』 純正英語學生人機對話和自然英語學生人機對話訓練系統有什麼區別

雖然我沒有用過這樣的軟體,但從你提供的問題來看,應該是不同公司產品,菜單界面肯定不一樣了。但你只是想學習而已,我認為這點不同應該不會影響你學習的,只是習慣可能稍微有點不同,多用幾下應該會兩套軟體都掌握的,這種軟體一般是用VB或者VC寫的。

閱讀全文

與對話系統演算法訓練相關的資料

熱點內容
類似7z002的壓縮文件如何解壓 瀏覽:559
移動dsn伺服器地址 瀏覽:689
90後女性嫁給程序員 瀏覽:302
fcm演算法原理 瀏覽:803
上海興力壓縮機 瀏覽:699
什麼app可以推送小區 瀏覽:592
韓國解壓視頻網站 瀏覽:619
做庫管用什麼app 瀏覽:35
pdf轉dwg怎麼轉 瀏覽:55
單片機微小電阻測量 瀏覽:138
表格25兆怎麼壓縮 瀏覽:69
java開發公司的 瀏覽:131
東風天錦壓縮車工作指示燈不亮 瀏覽:985
劍俠情緣1源碼 瀏覽:532
cad2011怎麼轉換成pdf格式 瀏覽:966
傳祺gs5安卓車機如何還原車機 瀏覽:900
單片機和編程器互相傳輸數據 瀏覽:92
app訂單怎麼取消 瀏覽:469
程序員用雙顯示器有什麼作用 瀏覽:613
網約車演算法殺熟 瀏覽:8