Dropout
Dropout
這個概念是在2014年被提出的,它的概念其實很簡單,在訓練的時候,隨機將一些神經元關閉,這樣避免神經元之間過度依賴(prevents units from co-adapting too much),並在Inference時將所有神經元開啟,這樣可以輕鬆估計各個不同小的神經網路的平均值,使用dropout
可以大幅降低overfitting的可能
Cycle Detection Algorithm
在寫LeetCode 287時遇到了這個問題,看了解答後,發覺到有一個叫做龜兔賽跑
的解法,看起來非常神奇,但其實背後的想法蠻簡單的,這篇文章稍微整理一下
搞懂Back Propagation的微分推導過程
Back Propagation
假設一個簡單兩顆神經元$x_{1}, x_{2}$的神經網路,對於每顆神經元的更新$\frac{ \partial C}{ \partial w_{i}}$,可以分為Forward Pass
及Backward Pass
兩個步驟,Forward Pass
非常容易計算,而Backward
則是須從最後一層推回來,故得其名
交叉熵(cross entropy)
In information theory, the cross entropy between two probability distributions $p$ and $q$ over the same underlying set of events measures the average number of bits needed to identify an event drawn from the set if a coding scheme used for the set is optimized for an estimated probability distribution $q$ , rather than the true distribution $p$ .
詞向量(Word Vector)
Stanford CS 224N
課程第一週內容
在2014年,Mikolov Tomàs等人提出的這篇 Distributed Representations of Words and Phrases and their Compositionality
為接下來許多以詞向量為基礎的模型定下根基,以往使用神經網路(Neural Network)訓練詞向量耗時長,這篇論文提出了一些方法進行改善,不僅提升效能也大幅降低訓練成本。
使用詞向量(word vector)讓我們能夠將詞彙轉換成能夠被機器理解的向量,並且這個向量能夠有效反應出詞義,近義詞之間有著相近的詞向量,例如:紅茶、奶茶、綠茶它們都是飲料類,所以會具備類似的詞向量,且在訓練的過程中我們只需提供足夠大的語料,不需要透過人工標記就能夠訓練這樣的模型(Skip-Gram, CBOW, …),甚至也能直接使用網路上其他人預訓練的模型(Google, Facbook, …)
You shall know a word by the company it keeps - J. R. Firth 1957
一個字的意思是由周遭的字決定,這樣的想法基本上就是skip-gram
所做的事情,我們藉由一個訓練目標函式,讓一個中間字(center word)
能夠對預測周遭的字給出較高的機率,經過這樣的訓練過程,擁有相近的前後文的詞,就會得到更相近的詞向量
隱藏式馬可夫模型 - HMM(Hidden Markov Model)
HMM
是利用觀測值來推斷狀態的一個算法,而狀態被稱為隱藏狀態(hidden state)
是因為我們看不到狀態,只能看到觀測值,所以實際上我們對狀態是不了解的,例如:我們可以觀察到身體狀態是正常、咳嗽、暈眩,從而透過HMM推斷背後的狀態為健康還是生病。
HMM可以被用在許多應用上,例如語音識別,我們觀察得到聲波,但該聲波對應到的文字我們是不知道的,可以透過HMM從聲波推回狀態來得到可能的文字,除此之外,在許多序列型任務都有HMM的應用
我們雖然對隱藏狀態(hidden state)不了解,但我們知道狀態之間的轉移機率(transition probability)
還有狀態對應到觀測值的發射機率(emission probability)
,從這兩者搭配觀測序列