StanFord 機(jī)器學(xué)習(xí)公開課筆記(4):生成學(xué)習(xí)算法

本講視頻及講義鏈接

生成學(xué)習(xí)算法

生成學(xué)習(xí)算法和判別學(xué)習(xí)算法的區(qū)別

判別學(xué)習(xí)算法(Discriminative)

我們之前學(xué)習(xí)過Logistic算法來解決分類問題悴品,回想一下分類過程:我們使用所有訓(xùn)練樣本訓(xùn)練出一個函數(shù), h_\theta(x) 之后若要預(yù)測一個樣本的類別,只需要將這個樣本的特征作為得到的函數(shù) h_\theta(x) 的輸入板熊,看看輸出是啥即可拂盯。類似這樣的分類方法塘慕,稱為判別學(xué)習(xí)算法叮趴,判別學(xué)習(xí)算法一般有以下兩種類型:

  • 直接學(xué)習(xí) P(y|x)煤辨。 給出一個 x 约计,得到 p(y|x) 的值诀拭,接著比較 y=1y = 0P(y|x) 的值的大小,就能夠判定x的類別煤蚌。

  • 或直接學(xué)習(xí)一個算法 h_\theta(x)\in \{0,1\}耕挨,就和之前的logistic分類一樣。

生成學(xué)習(xí)算法(Generative)

以二分類問題為例:假設(shè)我們需要對一組癌癥腫瘤樣本進(jìn)行分類尉桩,得到一個能夠區(qū)分良性腫瘤和惡性腫瘤的算法筒占。在生成學(xué)習(xí)算法的思路中,不是直接用樣本去擬合一個函數(shù) h_\theta(x) 來預(yù)測新的輸入的類別蜘犁,而是分別對訓(xùn)練樣本中的良性樣本和惡性樣本進(jìn)行擬合翰苫,得到兩個模型,接著當(dāng)需要預(yù)測一個新腫瘤樣本的類別的時候这橙,就用新樣本的特征數(shù)據(jù)分別輸入兩個模型中奏窑,哪個模型的擬合程度高,就認(rèn)為新樣本屬于哪個類別屈扎。

形式化地說埃唯,生成學(xué)習(xí)算法對 P(x|y)P(y) 進(jìn)行建模,接著通過貝葉斯公式計(jì)算出 P(y=1|x) = \frac{P(x|y=1)P(y=1)}{P(x)} 鹰晨,式中的 P(x) 可以通過 P(x) = P(y=1|x)P(x) + P(y = 0|x)P(x) 計(jì)算出墨叛。

生成學(xué)習(xí)算法的例子——高斯判別分析

假設(shè) x \in R 且是一個連續(xù)值,高斯判別分析要求 P(x|y) 符合高斯分布模蜡。

多元(高維)高斯分布:是一維高斯分布的推廣漠趁, Z \sim N(\vec{\mu},\Sigma) 其中隨機(jī)變量Z是符合高維高斯分布的一個高維向量 ,\Sigma = E[(x-\mu)(x-\mu)^T] 是協(xié)方差矩陣忍疾,\vec{\mu} 是高斯分布的均值闯传。這樣高維高斯分布的概率密度公式就是 P(z) = \frac{1}{(2\pi)^{\frac{n}{2}}|\Sigma|^{\frac{1}{2}}}exp(-\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu)) 這個公式不需要記,但是需要知道 \Sigma\mu 的含義以及它們對高斯分布圖像的影響卤妒。

補(bǔ)充:協(xié)方差矩陣的知識

\Sigma 是單位矩陣丸边,\mu 是零向量

此時的圖像一般被認(rèn)為是標(biāo)準(zhǔn)圖像:

markdown-img-paste-20180219191046886.png

減小 \Sigma 中對角線的值

實(shí)際上是減小了各個維度上隨機(jī)變量的方差叠必,因此各維數(shù)據(jù)都更加聚集,圖像整體更加“瘦長”:


markdown-img-paste-20180219191206622.png

增大 \Sigma 中對角線的值

實(shí)際上是增大了各個維度上隨機(jī)變量的方差妹窖,因此各維數(shù)據(jù)都更加分散,圖像整體更加“矮胖”:


markdown-img-paste-20180219191217656.png

增加非主對角線上的元素值

實(shí)際上增加了各維隨機(jī)變量的關(guān)聯(lián)性:

  • 0.5


    markdown-img-paste-20180219191228252.png
  • 0.8


    markdown-img-paste-20180219191236964.png

減小非主對角線上的元素值

實(shí)際上增加了各維變量的關(guān)聯(lián)性(另一個方向)


markdown-img-paste-20180219191312455.png

改變 \mu 的值

實(shí)際上改變了圖像的位置


markdown-img-paste-20180219191341901.png

用高斯判別分析來分類兩種腫瘤樣本

俯視圖:


markdown-img-paste-20180220101707480.png

這個分割線和Logistic方法梯度上升得出的分割線的斜率有些不同收叶,接下來介紹高斯判別分布的具體過程骄呼。

  • P(y) 符合伯努利分布

    因此 P(y) = \phi^y(1-\phi)^{(1-y)}

  • P(x|y) 符合高斯分布

    因此 P(x|y = 0) = \frac{1}{(2\pi)^{\frac{n}{2}}|\Sigma|^{\frac{1}{2}}}exp(-\frac{1}{2}(x-\mu_0)^T\Sigma^{-1}(x-\mu_0))

    P(x|y = 1) = \frac{1}{(2\pi)^{\frac{n}{2}}|\Sigma|^{\frac{1}{2}}}exp(-\frac{1}{2}(x-\mu_1)^T\Sigma^{-1}(x-\mu_1))

  • 聯(lián)合似然性(joint likelyhood)

    \begin{align} l(\phi,\mu_0,\mu_1,\Sigma)& = log\Pi^m_{i=1}P(x^{(i)},y^{(i)})\\ &=log\Pi^m_{i=1}P(x^{(i)}|y^{(i)})P(y^{(i)}) \end{align}

    上述公式中,我們的似然性公式中的每一個因子是P(x^{(i)},y^{(i)}) 是聯(lián)合分布判没,因此這個式子稱為"聯(lián)合似然性"公式蜓萄,而在判別學(xué)習(xí)算法(如Logistic)中,我們的似然公式如下:

    l(\theta) = log\Pi^{m}_{i=1}P(x^{(i)}|y^{(i)};\theta)

    這個式子中的每個因子為P(x^{(i)}|y^{(i)};\theta) ,因此這個似然公式稱為“條件似然公式(conditional likelyhood)”

現(xiàn)在澄峰,假設(shè)給定m個樣本嫉沽,我們開始具體的建模和預(yù)測過程:

根據(jù)訓(xùn)練樣本數(shù)據(jù)計(jì)算出極大似然分布參數(shù) \phi,\mu_0,\mu_1,\Sigma

  • \phi = \frac{\Sigma^{m}_{i=1}I\{y^{(i)}=1\}}{m}

  • \mu_0 = \frac{\Sigma^{m}_{i=1}I\{y^{(i)}=0\}x^{(i)}}{\Sigma^{m}_{i=1}I\{y^{(i)}=0\}}

    實(shí)質(zhì)上計(jì)算的是所有非惡性腫瘤樣本 x的特征的均值。

  • \mu_1 = \frac{\Sigma^{m}_{i=1}I\{y^{(i)}=1\}x^{(i)}}{\Sigma^{m}_{i=1}I\{y^{(i)}=1\}}

    實(shí)質(zhì)上計(jì)算的是所有惡性腫瘤樣本 x的特征的均值俏竞。

  • \Sigma = \frac{1}{m}\Sigma^{m}_{i=1}(x^{(i)}-\mu_{y^{(i)}})(x^{(i)}-\mu_{y^{(i)}})^T

    將這些公式及具體的樣本數(shù)據(jù)代入绸硕,就能計(jì)算出 l(\phi,\mu_0,\mu_1,\Sigma)

根據(jù) \phi,\mu_0,\mu_1,\Sigma 進(jìn)行預(yù)測

\begin{align} arg\; max_yP(y|x) & = arg\;max_y\frac{P(x|y)P(y)}{P(x)}\\ & = arg \;max_yP(x|y)P(y) \end{align}

上式中的 arg\;max_yP(y|x) 的含義是:使得 p(y|x) 的值最大的 y 魂毁。由于 p(x) 的值與 y 無關(guān)玻佩,所以上式化簡了分母 P(x)

如果y是均勻分布的,也就是取得每種類別的概率都相同席楚,那么上式可以繼續(xù)化簡:

arg\; max_yP(y|x) = arg \;max_yP(x|y)

這種情況并不常見咬崔,因此多數(shù)使用的還是式子:arg\; max_yP(y|x) = arg \;max_yP(x|y)P(y)

P(x|y)P(y) 已經(jīng)由訓(xùn)練樣本數(shù)據(jù)擬合出來,因此只需要代入要預(yù)測的樣本特征 x,求出 arg \;max_yP(x|y)P(y) 即可烦秩。

具體求解方法視頻和講義中都沒講垮斯,我認(rèn)為應(yīng)該是將要預(yù)測的 x 代入之前推得的 P(x|y = 1)P(x|y=0) 的表達(dá)式中(此時表達(dá)式的參數(shù)已經(jīng)由極大似然估計(jì)求得),之后比較大小即可只祠。

高斯判別分析和Logistic的關(guān)系

一個有趣的事情是兜蠕,如果你將 P(y=1|x;\phi,\mu_0,\mu_1,\Sigma) 看做是 x 的函數(shù),那么這個函數(shù)將能夠用 P(y=1|x;\phi,\mu_0,\mu_1,\Sigma) = \frac{1}{1+exp(-\theta^Tx)} 表示铆农,這和sigmod函數(shù)的表達(dá)式是一致的牺氨。但是高斯判別分析(GDA)和Logstic方法得到的兩個函數(shù)的圖像是不一樣的(雖然它們的形式是一樣的)。

注:根據(jù)貝葉斯公式墩剖,

\begin{align} P(y=1|x;\phi,\mu_0,\mu_1,\Sigma)&=\frac{P(x|y=1;\phi,\mu_0,\mu_1,\Sigma)P(y=1)}{P(x)}\\ &= \frac{P(x|y=1;\phi,\mu_0,\mu_1,\Sigma)P(y=1)}{P(x|y=1)P(y=1)+P(x|y=0)P(y=0)} \end{align}

而右式中的所有式子的參數(shù)都已經(jīng)用訓(xùn)練樣本擬合出來猴凹,因此可以計(jì)算出左式的數(shù)學(xué)表達(dá)式,發(fā)現(xiàn)計(jì)算結(jié)果是一個sigmod具有相同形式的函數(shù)岭皂。

生成學(xué)習(xí)算法和判別學(xué)習(xí)方法的權(quán)衡

正如上一節(jié)提及的郊霎,在高斯判別分析中,我們假設(shè) x|y 符合高斯分布爷绘,從而得出一個結(jié)論(沒有提供證明): P(y=1|x) 的分布函數(shù)符合logistic后驗(yàn)分布函數(shù) \frac{1}{1+exp(-\theta^Tx)}书劝。

其實(shí)进倍,不僅是高斯分布,如果 x|y=0x|y=1 都符合泊松分布购对,上述結(jié)論仍然成立猾昆,即 P(y=1|x) = \frac{1}{1+exp(-\theta^Tx)}

實(shí)際上有更一般的結(jié)論:如果 x|y=0 \sim ExpFamily(\eta_0)x|y=1 \sim ExpFamily(\eta_1),則 P(y=1|x) 是logistic函數(shù)骡苞。這其實(shí)反過來印證了logistic函數(shù)的魯棒性垂蜗,因?yàn)樗軌蜉^好地擬合指數(shù)分布族能夠表示的分布的數(shù)據(jù)。

生成學(xué)習(xí)算法的優(yōu)勢

  1. 在已知 x|y 符合哪種分布的情況下解幽,使用生成學(xué)習(xí)算法的效果往往比使用判別學(xué)習(xí)算法的效果好贴见。以高斯判別分析為例,它假設(shè) x|y 符合高斯分布躲株,且之前的結(jié)論告訴我們在這個假設(shè)下推導(dǎo)出的 P(y=1|x) 是符合logistic函數(shù)形式的片部;因此可以認(rèn)為生成學(xué)習(xí)算法使用了比判別學(xué)習(xí)算法更強(qiáng)的假設(shè),因此更加具有針對性霜定,如果使用了正確的分布模型(比如對一個組 x|y 符合或近似符合高斯分布的樣本使用高斯判別分布)档悠,那么將會得到比判別分析更好的效果。反之然爆,如果不知道 x|y 符合哪種分布站粟,那么具有更加弱的假設(shè)的判別學(xué)習(xí)算法將很有可能得到更好的效果。

  2. 生成學(xué)習(xí)算法需要更少的數(shù)據(jù)來擬合模型曾雕。這仍然是因?yàn)榕袆e學(xué)習(xí)算法做了更弱的假設(shè)奴烙,因此如果要擬合出和生成學(xué)習(xí)算法同等效果的模型(假設(shè)生成學(xué)習(xí)算法選用了正確的分布),判別學(xué)習(xí)算法需要更多的數(shù)據(jù)來保證模型的魯棒性剖张。

另一個生成學(xué)習(xí)算法——樸素貝葉斯(Naive Bayes)

使用樸素貝葉斯算法來區(qū)分垃圾郵件

特征選擇

我們使用一個代表單詞列表的位向量來描述郵件切诀,如

markdown-img-paste-20180221101839571.png

向量中的每一個元素代表了一封郵件中是否出現(xiàn)對應(yīng)的單詞。這個列表可以通過讀取大量近期郵件(如近兩個月的郵件)的內(nèi)容來獲得搔弄。

判別學(xué)習(xí)算法不可取

現(xiàn)在我們說明擬合出一個函數(shù) h_\theta(x) 來作為判定函數(shù)是不可取的:

特征選擇的方式?jīng)Q定了特征向量 x 的維數(shù)是很大的(一般是50000這個數(shù)量級)幅虑,因此 x 共有 2^{50000} 種可能的取值。 如果使用多項(xiàng)式分布(這是比較適合這個問題的概率分布)來擬合顾犹,則需要擬合 2^{50000} - 1 個參數(shù)倒庵,這是很難的,因此需要令求捷徑來解決這個問題炫刷。

注:和由伯努利分布推導(dǎo)出sigmod函數(shù)的推導(dǎo)過程一樣擎宝,多項(xiàng)式分布的函數(shù)也可以通過指數(shù)分布族自然推出(具體過程在上一講的講義中)

生成學(xué)習(xí)算法——樸素貝葉斯假設(shè)

為了解決這個問題,我們需要做出一個很強(qiáng)的假設(shè):

樸素貝葉斯假設(shè):對給定的 y ,x 是條件獨(dú)立的浑玛。

根據(jù)概率論的鏈?zhǔn)椒▌t(注意這個式子沒有用到任何假設(shè)):

P(x_1,x_2...,x_n|y) = P(x_1|y)P(x_2|y,x_1)P(x_3|y,x_1,x_2)...

使用貝葉斯假設(shè)之后:

\begin{align} P(x_1,x_2...,x_{50000}|y) &= P(x_1|y)P(x_2|y)P(x_3|y)...\\ &=\Pi^{50000}_{i=1}P(x_i|y) \end{align}

貝葉斯假設(shè)通俗來講就是:不論一封郵件是不是垃圾郵件绍申,那單詞之間出現(xiàn)的概率都不會相互影響,比如單詞"a"的出現(xiàn)將不會影響單詞"buy"出現(xiàn)的概率。也就是在你了解了一封郵件是不是垃圾郵件的前提下极阅,知道其中的一部分詞匯并不會幫助你預(yù)測其中可能出現(xiàn)的其他詞匯胃碾。

這個假設(shè)是不可能成立的,因?yàn)橐环饫]件中出現(xiàn)"csapp"的概率顯然比出現(xiàn)"buy"的概率要小得多筋搏;如果一封郵件中出現(xiàn)了"cs299",那么郵件中很有可能會出現(xiàn)這個課程的老師或助教的名字仆百。

雖然這個假設(shè)字面上是錯誤的,但是它在文本奔脐、郵件儒旬、網(wǎng)頁內(nèi)容的分類上的效果是非常好的(這就很神奇:O)

開始建模

這個模型的參數(shù)如下:

\phi_{i|y=1} = P(x_i=1|y=1)

\phi_{i|y=0} = P(x_i=1|y=0)

\phi_y = P(y=1)

接著寫出聯(lián)合似然分布的表達(dá)式:

L(\phi_y,\phi_{i|y=1},\phi_{i|y=0}) = \Pi^m_{i=1}P(x^{(i)},y^{(i)})

用訓(xùn)練樣本數(shù)據(jù)擬合出使得上式取最大值的參數(shù):

\phi_y = \frac{\Sigma^{m}_{i=1} I\{y^{(i)}=1\}}{m}

\phi_{j|y=0} = \frac{\Sigma^{m}_{i=1}I\{y^{(i)} = 0,x_j^{(i)} = 1\}}{\Sigma^{m}_{i=1}I\{y^{(i)} = 0\}}

\phi_{j|y=1} = \frac{\Sigma^{m}_{i=1}I\{y^{(i)} = 1,x_j^{(i)} = 1\}}{\Sigma^{m}_{i=1}I\{y^{(i)} = 1\}}

上面第三個式子的含義是:遍歷每個垃圾郵件,統(tǒng)計(jì)其中出現(xiàn)單詞列表中第j個單詞的郵件的頻率帖族; \phi_{j|y=1} 的含義就是垃圾郵件中包含單詞列表中第j個單詞的郵件的概率。

進(jìn)行預(yù)測

接下來根據(jù)得到的參數(shù)來預(yù)測新樣本的類別:

首先在貝葉斯假設(shè)的前提下計(jì)算:
\begin{align} P(x_1,x_2...,x_{50000}|y=0) &= \Pi^{50000}_{i=1}P(x_i|y=0)\\ &= \Pi^{50000}_{i=1}\phi_{i|y=0}^{x_i}(1-\phi_{i|y=0})^{(1-x_i)} \end{align}

然后計(jì)算:

\begin{align} P(x_1,x_2...,x_{50000}|y=1) &= \Pi^{50000}_{i=1}P(x_i|y=1)\\ &= \Pi^{50000}_{i=1}\phi_{i|y=1}^{x_i}(1-\phi_{i|y=1})^{(1-x_i)} \end{align}

比較上述兩式的結(jié)果挡爵,哪個大竖般,新樣本就屬于哪一類。

拉普拉斯平滑(Laplace Smoothing)

上面介紹的貝葉斯分類器存在一個問題:

在判定一個新樣本的類別時茶鹃,如果這個新樣本中出現(xiàn)了一個訓(xùn)練樣本中從未出現(xiàn)過的詞涣雕,比如"NIPS",那么根據(jù)鏈?zhǔn)椒▌t和貝葉斯假設(shè):

\begin{align} P(y=0|x) &= \frac{P(x|y=0)P(y=0)}{P(x)}\\ &=\frac{\Pi^{50000}_{i=1}P(x_i|y=0)P(y=0)}{P(x|y=0)P(y=0)+P(x|y=1)P(y=1)} \end{align}
\begin{align} P(y=1|x) &= \frac{P(x|y=1)P(y=1)}{P(x)}\\ &=\frac{\Pi^{50000}_{i=1}P(x_i|y=1)P(y=1)}{P(x|y=0)P(y=0)+P(x|y=1)P(y=1)} \end{align}

假設(shè)“NIPS”是詞典中的第30000個詞,那么根據(jù)極大似然估計(jì)得到的參數(shù):

\phi_{30000|y=0} = 0

\phi_{30000|y=1} = 0

因此P(y=0|x) = P(y=1|x) = \frac{0}{0+0}

這是個未定義的值闭翩。也就是說挣郭,如果新的樣本中出現(xiàn)了一個之前沒有出現(xiàn)過的詞,那么這個詞不論在垃圾郵件還是非垃圾郵件中出現(xiàn)的概率都是0疗韵,這時貝葉斯分類器將會無法正確判定這個樣本屬于哪個類別兑障。

這是因?yàn)橛糜?xùn)練樣本擬合參數(shù)時,我們僅僅因?yàn)橛?xùn)練樣本數(shù)據(jù)中沒有出現(xiàn)過某個詞蕉汪,就認(rèn)為未來出現(xiàn)這個詞的概率為0流译,這顯然是不合理的。

因此需要一種方式來修正參數(shù)者疤,那就是Laplace平滑:

之前我們使用公式

\phi_y = \frac{\Sigma^{m}_{i=1} I\{y^{(i)}=1\}}{\Sigma^{m}_{i=1} I\{y^{(i)}=1\} + \Sigma^{m}_{i=1} I\{y^{(i)}=0\}}

來預(yù)測 \phi_y 福澡,如果 \Sigma^{m}_{i=1} I\{y^{(i)}=1\} = 0,\Sigma^{m}_{i=1} I\{y^{(i)}=0\} = 5 那么 \phi_y = \frac{0}{0+5} = 0

也就是說如果訓(xùn)練樣本中沒有垃圾郵件,那么貝葉斯分類器將會認(rèn)為未來出現(xiàn)垃圾郵件的概率也是0驹马。

在Laplace平滑中革砸,改用下面的方法計(jì)算:

\phi_y = \frac{1+\Sigma^{m}_{i=1} I\{y^{(i)}=1\}}{1+\Sigma^{m}_{i=1} I\{y^{(i)}=1\} + 1+\Sigma^{m}_{i=1} I\{y^{(i)}=0\}} = \frac{1+\Sigma^{m}_{i=1}I\{y^{(i)}=1\}}{m+2}

這樣,在上述同等情況下糯累,\phi_y 的值就變?yōu)椋?/p>

\phi_y = \frac{0+1}{0+1+5+1} = \frac{1}{7}

這顯然是一個更合理的參數(shù)算利,因?yàn)橛?xùn)練樣本中未出現(xiàn)垃圾郵件,所以我們預(yù)測接下來出現(xiàn)垃圾郵件的概率較锌芪谩(而不是0).

同理笔时,對其它參數(shù)也應(yīng)用Laplace平滑:

\phi_{j|y=0} = \frac{1+\Sigma^{m}_{i=1}I\{y^{(i)} = 0,x_j^{(i)} = 1\}}{2+\Sigma^{m}_{i=1}I\{y^{(i)} = 0\}}

\phi_{j|y=1} = \frac{\Sigma^{m}_{i=1}I\{y^{(i)} = 1,x_j^{(i)} = 1\}+1}{2+\Sigma^{m}_{i=1}I\{y^{(i)} = 1\}}

貝葉斯分類中的Laplace平滑的過程總結(jié)來說就是分子的每一項(xiàng)加上1,分母加上總的類別數(shù)仗岸。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末允耿,一起剝皮案震驚了整個濱河市借笙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌较锡,老刑警劉巖业稼,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蚂蕴,居然都是意外死亡低散,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進(jìn)店門骡楼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來熔号,“玉大人,你說我怎么就攤上這事鸟整∫鳎” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵篮条,是天一觀的道長弟头。 經(jīng)常有香客問我,道長涉茧,這世上最難降的妖魔是什么赴恨? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮伴栓,結(jié)果婚禮上伦连,老公的妹妹穿的比我還像新娘。我一直安慰自己挣饥,他們只是感情好除师,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著扔枫,像睡著了一般汛聚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上短荐,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天倚舀,我揣著相機(jī)與錄音,去河邊找鬼忍宋。 笑死痕貌,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的糠排。 我是一名探鬼主播舵稠,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了哺徊?” 一聲冷哼從身側(cè)響起室琢,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎落追,沒想到半個月后盈滴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡轿钠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年巢钓,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片疗垛。...
    茶點(diǎn)故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡症汹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出贷腕,到底是詐尸還是另有隱情烈菌,我是刑警寧澤,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布花履,位于F島的核電站,受9級特大地震影響挚赊,放射性物質(zhì)發(fā)生泄漏诡壁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一荠割、第九天 我趴在偏房一處隱蔽的房頂上張望妹卿。 院中可真熱鬧,春花似錦蔑鹦、人聲如沸夺克。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽铺纽。三九已至,卻和暖如春哟忍,著一層夾襖步出監(jiān)牢的瞬間狡门,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工锅很, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留其馏,地道東北人。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓爆安,卻偏偏與公主長得像叛复,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評論 2 355

推薦閱讀更多精彩內(nèi)容