機器學習深度學習——機器翻譯(序列生成策略)

👨?🎓作者簡介:一位即將上大四,正專攻機器學習的保研er
🌌上期文章:機器學習&&深度學習——seq2seq實現機器翻譯(詳細實現與原理推導)
📚訂閱專欄:機器學習&&深度學習
希望文章對你們有所幫助

機器翻譯(序列生成策略)

  • 引入
  • 貪心搜索
  • 窮舉搜索
  • 束搜索
  • 小結

引入

上一節已經實現了機器翻譯的模型訓練和預測,逐個預測輸出序列, 直到預測序列中出現特定的序列結束詞元eos,而對于預測序列的結果我們進行了評估,發現了效果并不好。因為之前的方式是使用了貪心搜索方式,這個搜索方式并不能使得全局上是優秀的,甚至是非常差的。接下來將介紹搜索方式。
我們已經知道,在任意的時間步,解碼器的輸出的概率取決于時間步之前的輸出子序列和對輸入序列的信息進行編碼得到的上下文變量。為了量化計算代價,用γ表示輸出詞表(包含eos),而|γ|顯然就是詞表大小。
除此之外,我們限制一下輸出序列的最大詞元數T

貪心搜索

對于輸出序列的每一個時間步t,我們都將基于貪心搜索從γ中找到具有最高條件概率的詞元,即:
y t ′ = a r g m a x y ∈ γ P ( y ∣ y 1 , . . . , y t ′ ? 1 , c ) y_{t^{'}}=argmax_{y∈γ}P(y|y_1,...,y_{t^{'}-1},c) yt?=argmaxyγ?P(yy1?,...,yt?1?,c)
一旦輸出序列包含了eos或者已經達到了最大長度T,則輸出完成。
在這里插入圖片描述
上圖中的預測輸出序列是ABC和eos,這個輸出序列的條件概率就是0.5×0.4×0.4×0.6=0.048。
而如果我們在第二個時間步換一下,換成C,那么可能AC后面跟著的A、B、C和eos的概率就會全變了,例如:
在這里插入圖片描述
計算得出輸出序列ACB和eos的條件概率為0.054,大于之前的貪心方式得到的結果。搞過動態規劃算法的朋友們都知道貪心就是很可能出現這種情況,所以貪心搜索本身就不是一個很好的搜索策略。

窮舉搜索

這個好理解,就是所有結果全部遍歷過去,這樣的話,我們絕對可以找到條件概率最高的一個。然而這樣的復雜度將會非常的大,計算量會達到:
O ( ∣ γ ∣ T ′ ) O(|γ|^{T^{'}}) O(γT)
因此在詞元數過多,或者預測序列的最大詞元數太大的話,這個方法簡直是非常的慢。

束搜索

顯然,上面的可以得出一個簡單的選擇策略:如果精度最重要,則顯然是窮舉搜索;如果計算成本最重要,則顯然是貪心搜索。而束搜索則是介于兩者之間的(算是貪心的一個改進版本)。
它有一個超參數,名為束寬,記為k。在每個時間步,我們都選擇具有最高條件概率的k個詞元,過程如下所示(束寬為2,最大長度為3):
在這里插入圖片描述
我們從這里面選出六個候選輸出序列:
(1)A;(2)C;(3)AB;(4)CE;(5)ABD;(6)CED
最后基于這六個序列, 我們獲得最終候選輸出序列集合。然后我們選擇其中條件概率乘積最高的序列作為輸出序列:
1 L α l o g P ( y 1 , . . . , y L ∣ c ) = 1 L α ∑ t ′ = 1 L l o g P ( y t ′ ∣ y 1 , . . . , y t ′ ? 1 , c ) \frac{1}{L^α}logP(y_1,...,y_L|c)=\frac{1}{L^α}\sum_{t^{'}=1}^LlogP(y_{t^{'}}|y_1,...,y_{t^{'}-1},c) Lα1?logP(y1?,...,yL?c)=Lα1?t=1L?logP(yt?y1?,...,yt?1?,c)
其中,L是最終候選序列的長度,α通常設為0.75。這樣做是因為,一個較長的序列在求和中會有更多的對數項,因此分母用來懲罰長序列。
實際上,貪心搜索就可以看作是一種束寬為1的特殊類型的束搜索。束搜索可以在正確率和計算代價之間進行權衡。

小結

1、序列搜索策略包括貪心搜索、窮舉搜索和束搜索。
2、貪心搜索所選取序列的計算量最小,但精度相對較低。
3、窮舉搜索所選取序列的精度最高,但計算量最大。
4、束搜索通過靈活選擇束寬,在正確率和計算代價之間進行權衡。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/38773.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/38773.shtml
英文地址,請注明出處:http://en.pswp.cn/news/38773.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ClickHouse常見的DDL語句

1.創建庫 CREATE DATABASE IF NOT EXISTS mytestdb; 2.創建表 CREATE TABLE user_info ( user_id UInt32 comment 用戶標識, name String comment 用戶名, create_date DateTime DEFAULT now() comment 創建時間, sex Enum8(男 1, 女 2) comment 性別, …

最新AI系統ChatGPT網站程序源碼+搭建教程/公眾號/H5端/安裝配置教程/完整知識庫

1、前言 SparkAi系統是基于國外很火的ChatGPT進行開發的Ai智能問答系統。本期針對源碼系統整體測試下來非常完美,可以說SparkAi是目前國內一款的ChatGPT對接OpenAI軟件系統。 那么如何搭建部署AI創作ChatGPT?小編這里寫一個詳細圖文教程吧!…

基于IDE Eval Resetter延長IntelliJ IDEA等軟件試用期的方法(包含新版本軟件的操作方法)

本文介紹基于IDE Eval Resetter插件,對集成開發環境IntelliJ IDEA等JetBrains公司下屬的多個開發軟件,加以試用期延長的方法。 我們這里就以IntelliJ IDEA為例,來介紹這一插件發揮作用的具體方式。不過,需要說明使用IDE Eval Rese…

docker常用指令

一、Docker指令 1、啟動Docker :systemctl start docker 2、查看Docker狀態:systemctl status docker 狀態為active表示正在運行中 3、停止運行Docker:systemctl stop docker 4、重啟Docker:systemctl restart docker 5、開機啟動Docker:systemctl enable docker 二…

Apache Hudi Timeline Server介紹

文章目錄 Apache Hudi Timeline Server介紹1. 概述2 提供的服務3. 結論 Apache Hudi Timeline Server介紹 1. 概述 Hudi 有一個中央時間線服務器,在驅動程序節點中運行并作為 Rest 服務。它有多種好處,第一個用例是提供 FileSystemView api。Hudi 的核…

Hlang社區-社區主頁實現

文章目錄 前言首頁結構固定導航欄左側導航itemitem標志頭部推薦文章展示ITEM實現ToolTip完整實現首頁完整實現前言 廢話不多說,直接看到效果,這里的話是我們社區主頁,不是產品宣傳主頁哈: 是的也許你已經發現了這個頁面和某個網站長得賊像。沒錯是這樣的,這個布局我確實…

vue3+vite+pinia

目錄 一、項目準備 1.1、Vite搭建項目 1.2、vue_cli創建項目 二、組合式API(基于setup) 2.1、ref 2.2、reactive 2.3、toRefs 2.4、watch和watchEffect 2.5、computed 2.6、生命周期鉤子函數 2.7、setup(子組件)的第一個參數-props 2.8、setup(子組件)的第二個參數…

STM32 CubeMX (Freertos任務:創建、刪除、掛起、恢復)

STM32 CubeMX Freertos STM32 CubeMX (Freertos任務:創建、刪除、掛起、恢復) STM32 CubeMX Freertos前言一、STM32 CubeMX 配置時鐘樹配置使能串口,用于用于檢查實驗現象使用STM32 CubeMX 庫,配置Freertos創建任務 二…

云計算:新一代的技術革命

云計算,作為21世紀的一項重要技術革命,已在全球范圍內引發了深遠的影響。它改變了我們存儲和處理數據的方式,使得企業無需再建設和維護昂貴的本地服務器和數據中心。本文將深入探討云計算的基本概念,類型,主要優點&…

開發利器:接口代理和接口模擬工具

前端開發過程往往需要和后端對接接口,而且一般開發都是前后端同步開發,這就難免出現接口提供滯后的問題,從而導致我們前端開發 UI 開發完成而無法調試的問題。面對這種問題,一般我們會有很多種方式處理,比如在代碼中寫一些模擬數據,或者打斷點調試,或者用代理工具 Fidde…

概念解析 | 長尾分布:從無處不在的‘少數派’中挖掘價值

注1:本文系“概念解析”系列之一,致力于簡潔清晰地解釋、辨析復雜而專業的概念。本次辨析的概念是:長尾分布(Long-Tail Distribution)。 揭秘長尾分布:從無處不在的‘少數派’中挖掘價值 What is a Long Tail Distribution? (Definition & Example) - Statology 一、背…

神經網絡基礎-神經網絡補充概念-02-邏輯回歸

概念 邏輯回歸是一種用于二分分類問題的統計學習方法,盡管名字中帶有"回歸"一詞,但實際上它用于分類任務。邏輯回歸的目標是根據輸入特征來預測數據點屬于某個類別的概率,然后將概率映射到一個離散的類別標簽。 邏輯回歸模型的核…

什么叫做云計算?

相信大多數人對云計算或者是云服務的認識還停留在僅僅聽過這個名詞,但是對其真正的定義或者意義還不甚了解的層面。甚至有些技術人員,如果日常的業務不涉及到云服務,可能對其也只是一知半解的程度。首先云計算準確的講只是云服務中的一部分&a…

多主題自適應知識變現博客論壇,支持docker一鍵部署

iblog 給大家推薦一個多主題自適應,支持付費收款的博客論壇系統,支持docker一鍵部署,支持企業微信通知。 前端 多主題 自適應 個人頁 后端 H2 console 運行命令 docker run -d --name iblog --restartalways -p 8080:8080 -e consoletrue …

RabbitMQ簡單使用

RabbitMq是一個消息中間件:它接收消息、轉發消息。你可以把它理解為一個郵局:當你向郵箱里寄出一封信后,郵遞員們就能最終將信送到收信人手中。 RabbitMq、消息相關術語如下: 生產者:生產者只發送消息,發…

Postman接口自動化測試實例

一.實例背景 在實際業務中,經常會出現讓用戶輸入用戶密碼進行驗證的場景。而為了安全,一般都會先請求后臺服務器獲取一個隨機數做為鹽值,然后將鹽值和用戶輸入的密碼通過前端的加密算法生成加密后串傳給后臺服務器,后臺服務器接到…

【ARM 嵌入式 編譯系列 11 -- GCC __attribute__((packed))詳細介紹】

文章目錄 __attribute__((packed)) 介紹 上篇文章:ARM 嵌入式 編譯系列 10.3 – GNU elfutils 工具小結 下篇文章:ARM 嵌入式 編譯系列 11.1 – GCC attribute((aligned(x)))詳細介紹 attribute((packed)) …

針對Android項目藍牙如何學習

一、概述(Overview) 藍牙是一種專有的開放式無線技術標準,用于在固定和移動設備之間進行短距離數據交換(使用2400–2480 MHz ISM波段的短波長無線電傳輸),從而創建具有高度安全性的個人局域網(PANs)。由電信供應商愛立信(telecoms vendor Ericsson)于1994年創建,[1…

系統架構設計師---計算機網絡基礎知識

根據考試大綱,本章知識點會涉及單項選擇題,約占2~6分。本章內容屬于基礎知識范疇,根據以往全國計算機技術與軟件專業技術資格(水平)考試的出題規律而言,會在單項選擇題中出現,也會在案例分析題中出現。 想成為一名合格的高級架構師,需要在計算機領域中“上知天文,下知地…

【ES】筆記-ES6的函數rest參數用法

es6中引入了rest參數,樣式形如…xxx,用于獲取函數的多余參數,這樣就不需要使用arguments對象了。rest參數搭配的一個變量是一個數組,該變量將多余的參數放入數組中。例如: function add(...value){console.log(value);…