1. 程式人生 > >深度學習(BOT方向) 學習筆記(1) Sequence2Sequence 學習

深度學習(BOT方向) 學習筆記(1) Sequence2Sequence 學習

1 前言

這個深度學習,其實是來自每週Paper筆記的整理版,即文章的主要內容其實是我對一篇文章的整理,受限於個人水平,可能很多地方會出現理解偏差、或者理解不到位的地方,所以如果發現什麼不對的地方歡迎交流。之前我一直不想發這個博文,因為覺得我水平實在有限,不過現在看來還是不論好壞,拖出來見見光好了。

所以這個系列的博文的主要內容是我每週Paper閱讀的筆記整理,偶爾穿插著一些實驗內容。文章的具體資訊我會放置於末尾,有需要的同學請根據文章題目去尋找原始論文

2 Seq2Seq是什麼

網上有很多關於Seq2Seq的解釋,但是從我的角度來說,我願意把Seq2Seq看做是:
從一個Sequence做某些工作對映到(to)另外一個Sequence的任務


具體結合實際應用來說,如下的連個任務都可以看做是Seq2Seq的任務“
1、SMT翻譯任務(源語言的語句 -> 目標語言的語句)
2、對話任務(上下文語句->應答語句)
這裡寫圖片描述
諸如上圖,其實也就是一個示例(從ABC 這個Sequence 對映到 WXYZ)

3 RNN Encoder-Decoder 框架

通常來說,在深度學習中,應對這個型別的問題,有一個經典的框架被稱為Encoder-Decoder:
所謂的Encoder,是將輸入的Sequence編碼成為一個固定長度的向量
所謂的Decoder,是根據背景Vector(即Encoder最後輸出的向量)生成一個Token序列,作為輸出的Sequence
這兩部分Sequence的長度可以不一致。

這裡寫圖片描述

最經典的Encoder-Decoder框架,用的就是RNN,即Encoder是一個RNN,而Decoder也是一個RNN。
這裡面才有極大似然去估計,讓輸入的Seq經過Encoder得到中間向量v,再對映到Decoder的概率最大。

這個Encoder-Decoder的框架很經典,裡面用的RNN(LSTM)也是很經典的,本來想詳細講講的,但是我水平不夠,所以大概也只能講到這裡了。

而本篇文章的Sequence2Sequence的模型就是這個RNN Encoder-Decoder了,關於他的公式,其實都是基本的RNN公式,文章裡講的也不多,有需要的可以直接去閱讀原文。

實驗

實驗部分,其採用了WMT14提供的評測任務,任務要求是英語到法語的翻譯任務
1. 訓練的資料集有12M的句子,包含348M法語詞,和304英語詞
2. 作者選擇了最常用的160000個英文詞和80000個法語詞構造詞典,初次以外的詞語,都表示為UNK
3. 訓練目標如下,S是原語言序列,T是目標語言序列,使得如下式子的概率最大化。並且訓練後的翻譯過程也是如第二個式子所示
這裡寫圖片描述

評測的標準是一個叫做BLEU的成績,因為我不太關心翻譯任務,所以我就知道越高越好的道理就好了。
而結論就是,這個模型能夠十分接近WMT14的最高分(36.5 37)

討論

這篇文章提出的Sequence2Sequnce模型很簡單,但是藉助於深度學習的魔力,其效果卻十分的出眾。

然而這個模型也正是因為太過簡單,最開始使用的RNN在長句任務上表現不佳,主要表現在RNN在輸入多次後使得最開始的資訊出現了損失,而作為改進使用LSTM,則能夠很好的解決這個問題。
同時,也有使用Attention機制的,去改善長句下的表現,關於這個機制,我會在隨後的筆記中介紹的。

其實,還有一個比較好玩的是,他們發現這個Seq2Seq模型,如果我們把輸入的Seq按照相反的順序輸入,其效能表現還更好(當然作者也不知道為什麼)

總之,這是一個簡單卻很有魔力的模型,之後的工作也主要是基於這個框架,所以也作為筆記的第一篇出來。

第一次,寫的比較粗糙,因為明天還要例會,估計之後還會回來再修正下,現在就當佔個坑

文章資訊

相關推薦

深度學習BOT方向 學習筆記1 Sequence2Sequence 學習

1 前言 這個深度學習,其實是來自每週Paper筆記的整理版,即文章的主要內容其實是我對一篇文章的整理,受限於個人水平,可能很多地方會出現理解偏差、或者理解不到位的地方,所以如果發現什麼不對的地方歡迎交流。之前我一直不想發這個博文,因為覺得我水平實在有限,

深度學習花書讀書筆記——第五章-機器學習基礎

深度學習是機器學習的一個特定分支。我們要想充分理解深度學習,必須對機器學習的基本原理有深刻的理解。5.1 學習演算法機器學習演算法是一種能夠從資料中學習的演算法。然而,我們所謂的 ‘學習’ 是什麼意思呢?Mitchell (1997) 提供了一個簡潔的定義:‘‘對於某類任務

[深度學習論文閱讀]Facenet論文閱讀筆記包括GoogLenet引數計算方式

1 統述 功能:face verification (is this the same person) recognition (who is this person) clustering (find common people among

《TensorFlow:實戰Google深度學習框架第二版筆記1-6章】

第一章:深度學習簡介 在大部分情況下,在訓練資料達到一定數量之前,越多的訓練資料可以使邏輯迴歸演算法對未知郵件做出的判斷越精準。之所以說在大部分情況下,是因為邏輯迴歸演算法的效果除了依賴於訓練資料,也依賴於從資料中提取的特徵。假設從郵件中抽取的特徵只有郵件傳送

終極演算法:機器學習和人工智慧如何重塑世界筆記

終極演算法:機器學習和人工智慧如何重塑世界筆記 2017年08月17日 11:00:38 Notzuonotdied 閱讀數:4492 版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/Notzuonotdied/artic

李巨集毅機器學習 P12 HW2 Winner or Loser 筆記不使用框架實現使用MBGD優化方法和z_score標準化的logistic regression模型

建立logistic迴歸模型: 根據ADULT資料集中一個人的age,workclass,fnlwgt,education,education_num,marital_status,occupation等資訊預測其income大於50K或者相反(收入)。 資料集: ADULT資料集。

快速學習html、css的經典筆記不看後悔偶

Ø 行距:line-height  數字行距:p{font-size:12pt;line-height:2;}//12pt*2  單位行距:p{line-height:9pt;}  比例行距:p{font-size:10pt;line-height:140%;}//10pt*140% Ø 文字對齊

非監督學習演算法聚類、降維、關聯規則挖掘--機器學習--思維導圖手寫筆記32

一、思維導圖(點選圖方法) 二、補充筆記 三、K-means演算法的收斂性 說明: 當聚類中心μ確定時,求得的各個資料的cluster滿足聚類目標函式最小。 當資料cluster確

學習部落格園開原始碼筆記

index.android.js或者index.ios.js是專案的開始介面, 很簡單的一個介面,註冊了一個控制元件,需要注意的是圖中紅框的部分from後面到資料夾,而不是具體的檔案,這種情況下預設是source/index.js 檔案。 接下來我們

深度探索C++對象模型讀書筆記

復雜 理解 image play 基礎上 isp 靜態 布局 bject 《深度探索C++對象模型》這本書也算是學習C++面向對象編程的必備書了,打算花上幾天先簡單的看一遍,這種書看上好幾遍也不一定能理解太多,慢慢積累一點一滴吃透就好。下面把我看書過程中覺得比較有意義的摘錄

深度探索C++物件模型》讀書筆記

Lippman早期在貝爾實驗室,和C++發明者Bjarne Stroustrup設計了全世界第一套C++編譯器cfront,還著有經典的C++入門書Ensential C++和C++ Primer。 全書基本以cfront的設計方法為基礎,討論編譯器如何處理C

數據結構與算法刺猬書讀書筆記1----數組

split() ring 此外 結果 shift 即使 cnblogs 操作符 main 在JavaScript中,數組其實是一種特殊的對象,用來表示偏移量的索引是該對象的屬性,所以JavaScript的數組本質上是對象。同時這些數字索引在內部會被轉換成為字符串類型,因為J

JavaEE互聯網輕量級框架整合開發書籍閱讀筆記1:Mybatis和Hibernate概念理解

bat 特定 定義 理解 緩存 面向 ont span 等待 一、關鍵字說明: oop:面向對象 aop:面向切面 ioc:控制反轉 orm:對象關系映射 pojo:數據庫表映射的java實體類 二、常識說明:1.hibernate和mybatis都屬於持久層、orm

JavaEE互聯網輕量級框架整合開發書籍閱讀筆記2:SSM+Redis概念理解

重復 技術 理解 size 從數據 一個 ron bat 互聯網 一、SSM+Redis的結構圖 在Java互聯網中,以Spring+SpringMVC+MyBatis(SSM)作為主流框架,SSM+Redis的結構圖如下: 二、下面介紹它們各自承擔的功能: 1.S

Linux核心0.11完全註釋修正版 --讀書筆記1

RTFSC 閱讀0.11核心版本的原因: 適合作業系統初學者的入門學習起點 閱讀早期核心的好處: 簡化的核心程式碼,避免現有核心的複雜性,能夠透徹的說明問題 -- Leland

你不知道的JavaScript讀書筆記

第一章 1、內建型別 JavaScript有七種內建型別【除了物件以外,其他統稱為“基本型別”】: 空值(null) 未定義(undefined) 布林值(boolean) 數字(number) 字元竄(string) 物件(object) 符號(symbol,ES6新增的

利用hog+svm梯度方向直方圖和支援向量機實現物體檢測

最近利用hog+svm做了一個物體檢測的小程式,可以先給大家看看實驗的結果。從照片中,檢測出以任意姿態擺放在任意位置的公仔。(其實打算檢測是紅色的大公仔,但是小的公仔也被檢測了出來,至於為什麼會這樣以及這個問題的解決方法,咱們下面可以接著討論) 其實吧,網上關於hog和s

經典演算法Semi-Global MatchingSGM文獻筆記

SGM的代價聚合,其實仔細看看,這並不是嚴格意義上的代價聚合,因為SGM是為了優化一個能量函式,這和一般的全域性演算法一樣,如何利用優化演算法求解複雜的能量函式才是重中之重,其能量函式如下所示:其中,C(p, Dp)代表的就是基於互資訊的代價計算項,後面兩項指的是當前畫素p和其鄰域內所有畫素q之間的約束,如果

Java多執行緒程式設計實戰指南核心篇讀書筆記

博主準備惡補一番Java高併發程式設計相關知識,接下來將閱讀該書,並且進行比較詳細的總結,好記性不如爛筆頭,加油。Java多執行緒程式設計實戰指南(核心篇)讀書筆記(四),主要記錄該書第七章和第八章的基

Xcode出現 linker command failed with exit code 1錯誤總結

name 找不到文件 解決方法 錯誤 依賴 刪掉 導入 base replace 這種問題,通常出現在添加第三方庫文件或者多人開發時。一般是找不到文件而導致的鏈接錯誤。 我們可以從如下幾個方面著手排查。 提一點,我覺得一下方法中90%以上能解決你遇到的這個錯誤