面試題合集(2)

1. Self Attention的時候 Q K T QK^T QKT之后要除以 d ? \sqrt{d}? d ??

參考蘇劍林大神:

  1. 淺談Transformer的初始化、參數化與標準化

    • 模型初始化:介紹了常用的采樣分布,包括正態分布、均勻分布和截尾正態分布。并從代數角度理解初始化方法,提出用二階矩來衡量指標是否“消失”或者“爆炸”,推導出Xavier初始化和He初始化的方法。
    • 激活函數:分析了激活函數對模型初始化的影響,介紹了“微調激活函數的定義”的方法,以sigmoid函數為例,說明了如何通過微調激活函數來保持二階矩不變。還介紹了selu激活函數,它是基于同樣思路進行“微調”后的elu函數。
    • 直接標準化:介紹了Batch Normalization、Instance Normalization、Layer Normalization等標準化方法,說明了它們的作用原理和區別。并指出近來的一些工作逐漸嘗試去掉center這一步,甚至有些工作的結果顯示去掉center這一步后性能還略有提升。類比Stylegan2 中使用去掉 center之后的 weight demodulation 來替代 Instance Nomalization;RMS Norm為什么比 Layer Normalize 更快,效果也基本一致
    • NTK參數化:介紹了NTK參數化的方法,它可以將所有參數都用標準方差初始化,但依然保持二階矩不變。并討論了NTK參數化跟直接用Xavier初始化相比的好處,以及Attention中除以 d \sqrt{d} d ?的重要性。在結果上預先使用準方差標準化,使的參數初始化可以直接從符合0~1 分布的高斯分布中隨機采樣。也解釋到了 T5 為什么可以不除以 d \sqrt{d} d ?
    • 殘差連接:討論了殘差 x + F ( x ) x+F(x) x+F(x)的相關設計,指出殘差會進一步放大方差,需要想相應的策略縮小其方差。介紹了Post Norm、Pre Norm、SkipInit、ReZero、Fixup等方法,并分析了它們的優缺點。提出 x + α t ? F ( x ) x+\alpha_t*F(x) x+αt??F(x),可以在訓練過程中逐步增加 α t \alpha_t αt?的大小,直到為 1。
  2. 從熵不變性看Attention的Scale操作

    • 全文總結:本文從熵不變性的角度重新推導了Transformer架構中Scaled Dot-Product Attention的縮放因子,得到了一個新的縮放因子κlog?nd。初步的實驗結果顯示,新的縮放因子不改變已有的訓練性能,并且對長度外推具有更好的結果。
      重要亮點:
    • Transformer注意力機制:當前Transformer架構中使用最多的注意力機制是Scaled Dot-Product Attention,其中“Scaled”是因為在Q,K轉置相乘之后還要除以一個 d \sqrt{d} d ?再做Softmax。
    • 熵不變性:為了使得模型結果能夠更好地泛化到未知長度,Attention機制的設計應該使得ai,j盡量具備熵不變性。
    • 新的縮放因子:根據熵不變性以及一些合理的假設,我們可以得到一個新的縮放因子 κ log ? ? n d \frac{κ\log?n}{d} dκlog?n?,從而得到一種Scaled Dot-Product Attention。
    • 實驗結果:在與訓練長度一致的情況下,新的縮放因子Attention-E和常規的Scaled Dot-Product Attention Attention-O的效果是很接近的,但是外推到更大的測試長度時,則明顯拉開了差距。
    • 相關結果:在閱讀ACL2022的投稿論文時,發現上面有一篇《Overcoming a Theoretical Limitation of Self-Attention》,給出了相近的結果。
  3. 從梯度最大化看Attention的Scale操作

    • Attention Scale因子的一般解釋:如果不除以d,初始的Attention就會很接近one hot分布,造成梯度消失,導致模型訓練不起來。
    • 計算梯度:作者定義了Softmax梯度的優化目標,從最大化該目標的角度探討了Scale因子的最優值。
    • 正態分布:作者通過遍歷一些n,然后數值求解出取最大值時的α?,發現一定范圍內最優點α?與n大致滿足 α ? ≈ 0.84 log ? ? n α^*≈0.84\sqrt{\log?n} α?0.84log?n ?的關系。
    • 余弦分布:作者通過數值求解最大值,然后再擬合,發現 α ? ≈ 3.5 log ? ? n α^*≈3.5\sqrt{\log?n} α?3.5log?n ?擬合得也不錯。
    • 相關思考:對于雙向Attention(Encoder)來說,假設訓練樣本長度相同,那么n就是一個常數,我們可以根據n算得相應的最優α,然后固定在模型中即可;但是對于單向Attention(Decoder)來說,每個token的n實際上都不一樣(位置id加1),所以理論上無法做到對所有token都最大化式(3),不過由于α?關于n的變化較慢,所以取一個差不多的值就行了。
    • 本文從梯度的角度探討了Attention Scale因子的選擇問題,相關結果既可以用來改進Attention的Scale因子,也可以用來解釋cos相似度的對比學習的溫度參數。

匯總一下:如果假設均值為 0,方差為 1 的 Attention Score 會帶來更好的效果,除以 d \sqrt{d} d ?會使的 q k T qk^T qkT之后的Attention Score方差為1。從熵不變性來考慮,給有助于提高模型在長度外推方面的表現,增強泛化能力。從Softmax梯度的優化目標梯度最大化來看的話,這個 scale 應該為 α d \frac{\alpha}{\sqrt{d}} d ?α?相當于在討論給 softmax 激活函數怎么加上一個合適的溫度系數!

Todo

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

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

相關文章

module_param的用法

在Linux內核模塊編程中,`module_param`宏允許你聲明一個模塊參數。模塊參數是指可以在加載模塊時從命令行設置的參數,也可以通過/sys文件系統(如果內核配置了CONFIG_SYSFS)在模塊加載后進行修改。這些參數對于調整模塊的行為而不需要重新編譯模塊代碼非常有用。 使用方法 …

KT6368A雙模藍牙芯片上電到正常發送AT指令或指令復位需要多久

一、簡介 KT6368A芯片上電到正常發送AT指令,或者開啟藍牙廣播被搜索到,或者指令復位需要多久等等系列問題總結 詳細描述 其實這些問題歸結到一起,就還是一個問題,芯片上電需要多久的時間 在另外一份文檔里面,是有描…

跟我學C++中級篇——if constexpr的應用

一、場景應用 在一個開發場景下,需要動態處理不同類型的數據寫入。本來這個非常簡單,只要定義一個模板即可搞定,但這里偏偏有一個細節,是調用別人的庫來實現寫入。而這個庫對不同的數據類型的寫入,提供了N種不同的函數…

Python實戰開發及案例分析(28)—— 預編碼算法

預編碼算法(Precoding Algorithm)通常用于無線通信系統中,尤其是多輸入多輸出(MIMO)系統中,以提高數據傳輸的可靠性和效率。預編碼是為了在發送端對信號進行處理,以優化傳輸性能。 在MIMO系統中…

Java設計模式 _行為型模式_訪問者模式

一、訪問者模式 1、訪問者模式 訪問者模式(Visitor Pattern)是一種行為型模式。它允許在不修改已有類結構的情況下,向類中添加新的操作。訪問者模式通過將操作封裝在一個訪問者對象中,使得可以在不改變各個元素類的前提下&#x…

RedisTemplate實戰應用--隊列等

一、RedisTemplate隊列插入 1、從集合左邊插入值 https://blog.csdn.net/weixin_43658899/article/details/121040307 leftPush(K key, V value) redisTemplate.opsForList().leftPush("leftdatakey","bbbb");2、從集合左邊開始在v1值后邊插入新值v2 le…

使用 Django 連接 MySQL 數據庫

文章目錄 步驟一:安裝必要的庫和驅動步驟二:配置數據庫連接步驟三:執行數據庫遷移步驟四:開始使用 MySQL 數據庫創建一個模型遷移模型到數據庫使用模型進行數據操作創建新記錄:查詢記錄:更新記錄&#xff1…

Mac安裝第三方軟件的命令安裝方式

場景: 打開終端命令行,sudo xattr -rd com.apple.quarantine,注意最后quarantine 后面加一個空格!然后打開Finder(訪達),點擊左側的 應用程序,找到相關應用,拖進終端qua…

(超實用)京東訂單數據分析案例-維度下鉆

1,數據介紹,字段了解 盡可能熟悉業務,多知道字段的含義,字段字段間的邏輯關系,后期數據分析思路才能更清晰,結果才能更準確 2,訂單數據分析基本思路 維度下鉆 3,代碼實現全流程思路…

華為telnet的兩種認證方式

華為telnet的兩種認證方式 實驗拓撲: 實驗要求: 1.采用普通密碼認證實現telnet 遠程登錄機房設備R3 2.采用AAA認證服務方式實現telnet 遠程登錄機房設備R3 實驗步驟: 1.完成基本配置(設備接口配置IP,此步驟略過&#…

Facebook的隱私保護挑戰:用戶數據安全的新時代

在全球范圍內,Facebook已經成為了不可忽視的社交媒體巨頭,它連接著超過20億的活躍用戶。然而,隨著其影響力的不斷擴大,關于用戶隱私和數據安全的問題也愈加引人關注。本文將深入探討Facebook面臨的隱私保護挑戰,以及它…

一個程序員的牢獄生涯(47)學法

星期一 學法 二鋪不知道什么時候走到了我的身邊,向我說道,這是二鋪在我進來號子后主動過來和我說話。 我聽到二鋪這聲突兀的說話后,抬起頭。這時我才看到,除了二鋪,還有六子、棍子都圍在我的身邊,看著我。雖然六子和棍子依舊一副‘吊兒郎當’的樣子,但我從他們幾個的眼神…

解析前端開發中同源策略與配置代理

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 前言一、pandas是什么?二、使用步驟 1.引入庫2.讀入數據總結 前言 在前端開發中,跨域請求是一個常見的問題。同源策略限制了瀏覽器中一個頁面…

C++高手進階:Windows 模塊加載的藝術與策略

前文我們講到了怎么不依賴第三庫,搭建自己的測試框架 沒有看的讀者可以通過這個鏈接自行閱讀: 👉👉👉 自力更生:0依賴三方庫,手把手教你打造專屬C測試框架 作為項目開發來說,我們通常…

Leetcode:最長回文子串

題目鏈接:5. 最長回文子串 - 力扣(LeetCode) 普通版本(暴力枚舉) 解題關鍵: 1、記錄最長回文字串的長度和起始字符的下標 2、判斷回文字串的邏輯與整體邏輯分離 3、先確定尋找回文字串的邊界范圍后從兩邊向…

解析Java中1000個常用類:CharSequence類,你學會了嗎?

在 Java 編程中,字符串操作是最常見的任務之一。為了提供一種靈活且統一的方式來處理不同類型的字符序列,Java 引入了 CharSequence 接口。 通過實現 CharSequence 接口,各種字符序列類可以提供一致的 API,增強了代碼的靈活性和可擴展性。 本文將深入探討 CharSequence 接…

NBM 算法【python,算法,機器學習】

樸素貝葉斯法(Naive Bayes model)是基于貝葉斯定理與特征條件獨立假設的分類方法。 貝葉斯定理 P ( A ∣ B ) P ( B ∣ A ) ? P ( A ) P ( B ) P(A|B)\frac{P(B|A) * P(A)}{P(B)} P(A∣B)P(B)P(B∣A)?P(A)? 其中A表示分類,B表示屬性&…

Unity中的MVC框架

基本概念 MVC全名是Model View Controller 是模型(model)-視圖(view)-控制器(controller)的縮寫 是一種軟件設計規范,用一種業務邏輯、數據、界面顯示 分離的方法組織代碼 將業務邏輯聚集到一個部件里面,在改進和個性化定制界面及用戶交互的同時&#x…

【嵌入式硬件】DRV8874電機驅動

目錄 1 芯片介紹 1.1 特性簡介 1.2 引腳配置 1.3 最佳運行條件 2 詳細說明 2.1 PMODE配置控制模式 2.1.1 PH/EN 控制模式 2.1.2 PWM 控制模式 2.1.3 獨立半橋控制模式 2.2 電流感測和調節 2.2.1 IPROPI電流感測 2.2.2 IMODE電流調節 3.應用 3.1設計要求 3.2 設計…

AI換臉FaceFusion一鍵云部署指南

大家好,從我開始分享到現在,收到很多朋友的反饋說配置很低玩不了AI。本篇是一個云端部署AI項目的指南,幫助大家在云端進行AI項目的部署。我會從云平臺的選擇、代碼部署、保存鏡像幾個方面進行詳細的介紹。沒有代碼基礎的小白也不用擔心&#…