1. 程式人生 > >Google深度學習筆記 文字與序列的深度模型

Google深度學習筆記 文字與序列的深度模型

Deep Models for Text and Sequence

Rare Event

與其他機器學習不同,在文字分析裡,陌生的東西(rare event)往往是最重要的,而最常見的東西往往是最不重要的。

語法多義性

  • 一個東西可能有多個名字,對這種related文字能夠做引數共享是最好的
  • 需要識別單詞,還要識別其關係,就需要過量label資料

無監督學習

  • 不用label進行訓練,訓練文字是非常多的,關鍵是要找到訓練的內容
  • 遵循這樣一個思想:相似的詞彙出現在相似的場景中
  • 不需要知道一個詞真實的含義,詞的含義由它所處的歷史環境決定

Embeddings

  • 將單詞對映到一個向量(Word2Vec),越相似的單詞的向量會越接近
  • 新的詞可以由語境得到共享引數

Word2Vec

  • 將每個詞對映到一個Vector列表(就是一個Embeddings)裡,一開始隨機,用這個Embedding進行預測
  • Context即Vector列表裡的鄰居
  • 目標是讓Window裡相近的詞放在相鄰的位置,即預測一個詞的鄰居
  • 用來預測這些相鄰位置單詞的模型只是一個Logistics Regression, just a simple Linear model

Comparing embeddings

  • 比較兩個vector之間的夾角大小來判斷接近程度,用cos值而非L2計算,因為vector的長度和分類是不相關的:

  • 最好將要計算的vector都歸一化

Predict Words

  • 單詞經過embedding變成一個vector
  • 然後輸入一個WX+b,做一個線性模型
  • 輸出的label概率為輸入文字中的詞彙
  • 問題在於WX+b輸出時,label太多了,計算這種softmax很低效
  • 解決方法是,篩掉不可能是目標的label,只計算某個label在某個區域性的概率,sample softmax

t-SNE

  • 檢視某個詞在embedding裡的最近鄰居可以看到單詞間的語義接近關係
  • 將vector構成的空間降維,可以更高效地查詢最近單詞,但降維過程中要保持鄰居關係(原來接近的降維後還要接近)
  • t-SNE就是這樣一種有效的方法

類比

  • 實際上我們能得到的不僅是單詞的鄰接關係,由於將單詞向量化,可以對單詞進行計算
  • 可以通過計算進行語義加減,語法加減

Sequence

文字(Text)是單詞(word)的序列,一個關鍵特點是長度可變,就不能直接變為vector

CNN and RNN

CNN 在空間上共享引數,RNN在時間上(順序上)共享引數

  • 在每輪訓練中,需要判斷至今為之發生了什麼,過去輸入的所有資料都對當下的分類造成影響
  • 一種思路是記憶之前的分類器的狀態,在這個基礎上訓練新的分類器,從而結合歷史影響
  • 這樣需要大量歷史分類器
  • 重用分類器,只用一個分類器總結狀態,其他分類器接受對應時間的訓練,然後傳遞狀態

RNN Derivatives

  • BackPropagation Through time
  • 對同一個weight引數,會有許多求導操作同時更新之
  • 對SGD不友好,因為SGD是用許多不相關的求導更新引數,以保證訓練的穩定性
  • 由於梯度之間的相關性,導致梯度爆炸或者梯度消失

  • 使得訓練時找不到優化方向,訓練失敗

Clip Gradient

計算到梯度爆炸的時候,使用一個比值來代替△W(梯度是迴流計算的,橫座標從右往左看)

  • Hack but cheap and effective

LSTM(Long Short-Term Memory)

梯度消失會導致分類器只對最近的訊息的變化有反應,淡化以前訓練的引數,也不能用比值的方法來解決
- 一個RNN的model包含兩個輸入,一個是過去狀態,一個是新的資料,兩個輸出,一個是預測,一個是將來狀態

  • 中間是一個簡單的神經網路
  • 將中間的部分換成LSTM-cell就能解決梯度消失問題
  • 我們的目的是提高RNN的記憶能力
  • Memory Cell

三個門,決定是否寫/讀/遺忘/寫回

  • 在每個門上,不單純做yes/no的判斷,而是使用一個權重,決定對輸入的接收程度
  • 這個權重是一個連續的函式,可以求導,也就可以進行訓練,這是LSTM的核心

  • 用一個邏輯迴歸訓練這些門,在輸出進行歸一化

  • 這樣的模型能讓整個cell更好地記憶與遺忘
  • 由於整個模型都是線性的,所以可以方便地求導和訓練

LSTM Regularization

  • L2, works
  • Dropout on the input or output of data, works

有了上面的模型之後,我們可以根據上文來推測下文,甚至創造下文,預測,篩選最大概率的詞,喂回,繼續預測……

  • 我們可以每次只預測一個字母,but this is greedy,每次都挑最好的那個
  • 也可以每次多預測幾步,然後挑整體概率較高的那個,以減少偶然因素的影響
  • 但這樣需要生成的sequence會指數增長
  • 因此我們在多預測幾步的時候,只為概率比較高的幾個候選項做預測,that’s beam search.

翻譯與識圖

  • RNN將variable length sequence問題變成了fixed length vector問題,同時因為實際上我們能利用vector進行預測,我們也可以將vector變成sequence

  • 我們可以利用這一點,輸入一個序列,到一個RNN裡,將輸出輸入到另一個逆RNN序列,形成另一種序列,比如,語言翻譯

  • 如果我們將CNN的輸出接到一個RNN,就可以做一種識圖系統

覺得我的文章對您有幫助的話,給個star可好?

土豪可以打賞支援,一分也是愛:

圖片名稱

相關推薦

Google深度學習筆記 文字序列深度模型

Deep Models for Text and Sequence Rare Event 與其他機器學習不同,在文字分析裡,陌生的東西(rare event)往往是最重要的,而最常見的東西往往是最不重要的。 語法多義性 一個東西可能有多個名

深度學習用於文字序列

文字可以理解為單詞序列或字元序列      處理序列資料大的兩種深度學習演算法 1 迴圈神經網路  (recurrent neural network)2 一維卷積神經網路 演算法的應用: 神經網路不接受原始文字,和接受處理的數值張量,即文字向量

深度學習筆記——理論推導之概念,成本函式梯度下降演算法初識(一)

前情提要 一、神經網路介紹 概念:Learning ≈ Looking for a Function 框架(Framework): What is Deep Learning? 深度學習其實就是一個定義方法、判斷方法優劣、挑選最佳的方法的過程:

深度學習筆記——理論推導之Structured Learning【Structured SVM】(七)

Separable case 1. 定義: 2. 用來計算weight的Structured Perceptron演演算法: 那麼面對很多個y,是否可以順利在有限次內找到weight呢?答案是可以的,況且只需要(R/δ)^2次,R是同一個x

深度學習筆記——理論推導之Structured Learning【NLP】(十二)

Language Technology Meaning of Word(一個vector表示一個word) Predicting the next word 給一串sequence of words,預測下一個單詞 我們現在要做的就是將wi

深度學習筆記——理論推導之Structured Learning【Learning with Hidden Information】(九)

引言: Different Kinds of Learning: 1. Supervised Learning: Data: 2. Semi-supervised Learning Data: 3. Unsupervis

深度學習筆記——理論推導之Backpropagation(二)

Backpropagation(反向傳播): 背景——Cost Function與Gradient Descent Cost Function: Gradient Descent: backpropagation是一種高效計算網路中gr

深度學習筆記——理論推導之Structured Learning【Markov Random Field】(十)

Graphical Model & Gibbs Sampling(Sturctured Learning) Graphical Model是Structured Learning中的一種。 Structured Learning複習

深度學習筆記——理論推導之Reinforcement Learning(十三)

Reinforcement Learning(強化學習) Reinforcement Learning 機器學習的分支: 有監督學習是機器學習任務的一種,它從有標記的訓練資料中推匯出預測函式。有標記的訓練資料是指每個訓練例項都包括輸入和期望的輸出。即

深度學習筆記——理論推導之DNN(三)

DNN 目錄 激勵函式(ReLU以及ReLU的變形,梯度消失問題) 成本函式 資料處理 優化 一般化 激勵函式: Rectified Linear Unit(ReLU) 選擇Relu的原因: 計算速度快 生物原因 類似於具有不同偏

深度學習筆記——理論推導之Structured Learning【Sequence Labeling Problem】(八)

Sequence Labeling(序列標註問題),可以用RNN解決,也可以用Structured Learning(two steps,three problems)解決 常見問題: - POS tagging(標記句子中每個詞的詞性):

SSD: Single Shot MultiBox Detector 深度學習筆記之SSD物體檢測模型

演算法概述 本文提出的SSD演算法是一種直接預測目標類別和bounding box的多目標檢測演算法。 與faster rcnn相比,該演算法沒有生成 proposal 的過程,這就極大提高了檢

深度學習筆記(六):Encoder-Decoder模型和Attention模型

這兩天在看attention模型,看了下知乎上的幾個回答,很多人都推薦了一篇文章Neural Machine Translation by Jointly Learning to Align and Translate 我看了下,感覺非常的不錯,裡面還大

深度學習筆記——Attention Model(注意力模型學習總結

深度學習裡的Attention model其實模擬的是人腦的注意力模型,舉個例子來說,當我們觀賞一幅畫時,雖然我們可以看到整幅畫的全貌,但是在我們深入仔細地觀察時,其實眼睛聚焦的就只有很小的一塊,這個時候人的大腦主要關注在這一小塊圖案上,也就是說這個時候人腦對整幅圖的關注並

深度學習---深度學習筆記(七):Encoder-Decoder模型和Attention模型

這兩天在看attention模型,看了下知乎上的幾個回答,很多人都推薦了一篇文章Neural Machine Translation by Jointly Learning to Align and Translate 我看了下,感覺非常的不錯,裡面還大概闡述了encoder

Google深度學習筆記 TensorFlow實現優化深度神經網路

全連線神經網路 Linear Model 載入lesson 1中的資料集 將Data降維成一維,將label對映為one-hot encoding def reformat(dataset, labels): datas

深度學習,周志華,機器學習,西瓜書,TensorFlow,Google,吳軍,數學之美,李航,統計學習方法,吳恩達,深度學習筆記,pdf下載

1. 機器學習入門經典,李航《統計學習方法》 2. 周志華的《機器學習》pdf 3.《數學之美》吳軍博士著pdf 4. Tensorflow 實戰Google深度學習框架.pdf 5.《TensorFlow實戰》黃文堅 高清完整PDF  6. 復旦大

吳恩達深度學習筆記(27)-深度學習大腦的區別

深度學習和大腦有什麼關聯性嗎? 回答是:關聯不大。 那麼人們為什麼會說深度學習和大腦相關呢? 當你在實現一個神經網路的時候,那些公式是你在做的東西,你會做前向傳播、反向傳播、梯度下降法,其實很難表述這些公式具體做了什麼,深度學習像大腦這樣的類比其實是過度簡化了我們的大腦具體在做什麼,

[深度學習]場景文字檢測識別

目錄 背景 文字為什麼重要? 問題定義 那麼會有那些挑戰呢? 近期前沿和有代表性演算法 Holistic, Multi-Channel Prediction TextBoxes Rotation Proposals Corner Localization and

Tensorflow深度學習筆記

根據學習《TensorFlow實戰Goolgle深度學習框架》摘抄的三四章重點 一、計算圖——Tensorflow的計算模型 1.1 計算圖的概念 TensorFlow中的每一個計算都是計算圖上的一個節點,而節點之間的邊描述了計算之間的依賴關係 兩個向量相加樣例的