第二次看了,理解深了一些
2017.7.24
傳統方法 通過統計乙個單詞周圍的單詞的頻率,獲得每個單詞的wordvec,然後通過svd降維,去除較大奇異值的矩陣,把vec長度在25-1000內。
缺點是1.單詞很多的時候svd複雜度很高
2.要新增新單詞時很困難,擴充套件性差
深度學習可以部分解決。
wordvector和具體任務一起訓練有可能有更好的訓練效果,但是可能會把wordvector變得主要是為了訓練任務了,如果訓練量很少,可能有些單詞變化了,有些還沒有變化,不太好。
訓練量大的時候帶著wordvector一起訓練比較好
2017.7.25
監督學習:
希望得到乙個輸入到輸出的函式
函式的形式已經給定,若干引數未知,
需要定義loss function,用梯度不斷改進引數,逼近想要得到的引數值。
loss function 加上乙個引數平方和的均值防止過擬合(防止乙個引數太大)
盡量少用for迴圈,多用矩陣乘法
普通的softmax(logistics regression)只能提供線性的邊界(因為乘以乙個矩陣之後看大於0還是小於0,就等於是一條線(或者乙個平面)的方程,只有線性邊界)
神經網路隱層有多個節點,每個節點的觸發函式都是非線性的,結合起來可以提供非線性的邊界。
不同任務一起訓練底層網路和wordvector,只有上層的softmax層分開訓練
bp演算法的過程是先自下而上再自上而下,自上而下的時候,softmax層分開訓練,其它層的loss用兩個加在一起。
因為在bp的時候乙個神經元連線到的weights都會有同樣的loss,然後再乘以連線的下層神經元,構成乙個weight的loss,所以可以疊加
特別是訓練wordvector的時候,需要很多的資料,所以可以不同任務同時訓練。
花式調參:
1.學習率:在平穩之後減少學習率
2.初始化:不能梯度消失
2017.7.27
昨天學的一課tensorflow,還行
然後看了一課gru和lstm,gru的用處,乙個是像動量一樣,當前狀態要繼承部分上一狀態;第二個是計算當前狀態的新值的時候,利用上一狀態的多少也要學習。
lstm類似,但是cell儲存的state和為下乙個狀態提供的h不是乙個值,利用h來產生輸出,利用c來傳遞前面的資訊,每次依然要考慮取多少前面的資訊。
recursive nn,用來分詞,遞迴地每次合併兩個單詞/句子/片語,問題在於每次要選擇兩個得分最高的。
cs224d 詞向量表示
1.1 word meaning的兩種定義 definition meaning 單詞的含義指代了客觀存在的具體事物,如眼鏡。distributional similarity meaning 上下文代表了單詞的含義,如下 distributional similarity meaning也是wor...
NLP深度學習 CS224學習筆記12
1.2 語法鬆綁su rnn 不同類別輸入的最優w不同。對學習w的工作量加大,但效能提公升。現在模型受輸入的語法類別條件約束。我們決定類別的方法是通過乙個簡單的probabilistic context free grammar pcfg,通過計算penn tree bank的統計摘要習得。例如th...
CS224n學習筆記 Lecture1 2
開始的這部分主要是對dl4nlp的乙個簡介。個人理解,dl4nlp中,所有層級都是以向量的形式進行處理,用向量表示單詞 用向量表示句子等。向量是最靈活的形式,維度自由,可組成矩陣,可組成高維的tensor等。進行nlp等後續任務,首先需要輸入。輸入 主要有兩個,乙個是來自語音speech,乙個是來自...