《神經(jīng)網(wǎng)絡(luò)與機器學(xué)習(xí)》筆記(七)

第九章 無監(jiān)督學(xué)習(xí)

典型的無監(jiān)督學(xué)習(xí)問題可以分為以下幾類:

  • 無監(jiān)督特征學(xué)習(xí)是從無標簽的訓(xùn)練數(shù)據(jù)中挖掘有效的特征或表示。無監(jiān)督特征學(xué)習(xí)一般用來進行降維逞度、數(shù)據(jù)可視化或監(jiān)督學(xué)習(xí)前期的數(shù)據(jù)預(yù)處理。特征學(xué)習(xí)也包含很多的監(jiān)督學(xué)習(xí)算法旬薯,比如線性判別分析等效诅。
  • 概率密度估計簡稱密度估計布隔,是根據(jù)一組訓(xùn)練樣本來估計樣本空間的概率密度梧乘。密度估計可以分為參數(shù)密度估計和非參數(shù)密度估計澎迎。參數(shù)密度估計是假設(shè)數(shù)據(jù)服從某個已知概率密度函數(shù)形式的分布(比如高斯分布),然后根據(jù)訓(xùn)練樣本去估計概率密度函數(shù)的參數(shù)选调。非參數(shù)密度估計是不假設(shè)數(shù)據(jù)服從某個已知分布夹供,只利用訓(xùn)練樣本對密度進行估計,可以進行任意形狀密度的估計仁堪。非參數(shù)密度估計的方法有直方圖哮洽、核密度估計等。
  • 聚類是將一組樣本根據(jù)一定的準則劃分到不同的組(也稱為集群(Cluster))弦聂。一個比較通用的準則是組內(nèi)樣本的相似性要高于組間樣本的相似性袁铐。常見的聚類算法包括K-Means 算法、譜聚類等横浑。

和監(jiān)督學(xué)習(xí)一樣,無監(jiān)督學(xué)習(xí)方法也包含三個基本要素:模型屉更、學(xué)習(xí)準則和優(yōu)化算法徙融。無監(jiān)督學(xué)習(xí)的準則非常多,比如最大似然估計瑰谜、最小重構(gòu)錯誤等欺冀。在無監(jiān)督特征學(xué)習(xí)中,經(jīng)常使用的準則為最小化重構(gòu)錯誤萨脑,同時也經(jīng)常對特征進行一些約束隐轩,比如獨立性、非負性或稀釋性等渤早。而在密度估計中职车,經(jīng)常采用最大似然估計來進行學(xué)習(xí)。

無監(jiān)督特征學(xué)習(xí)

主成分分析

是一種最常用的數(shù)據(jù)降維方法鹊杖,使得在轉(zhuǎn)換后的空間中數(shù)據(jù)的方差最大悴灵,才能最大化數(shù)據(jù)的差異性,保留更多的原始數(shù)據(jù)信息骂蓖。

主成分分析

假設(shè)有一組d 維的樣本x^{(n)} \in \mathbb{R}^d, 1 ≤ n ≤ N积瞒,我們希望將其投影到一維空間中,投影向量為w\in \mathbb{R}^d登下。不失一般性茫孔,我們限制w的模為1叮喳,即w^Tw = 1。每個樣本點x^{(n)} 投影之后的表示為:z^{(n)}=w^Tx^{(n)}

我們用矩陣X = [x^{(1)}, x^{(2)}, \cdots , x^{(N)}]表示輸入樣本缰贝,\bar{x}=\frac{1}{N}\sum^N_{n=1}x^{(n)}為原始樣本的中心點馍悟,所有樣本投影后的方差為:
\begin{aligned} \sigma(X ; \boldsymbol{w}) &=\frac{1}{N} \sum_{n=1}^{N}\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}^{(n)}-\boldsymbol{w}^{\mathrm{T}} \overline{\boldsymbol{x}}\right)^{2} \\ &=\frac{1}{N}\left(\boldsymbol{w}^{\mathrm{T}} X-\boldsymbol{w}^{\mathrm{T}} \bar{X}\right)\left(\boldsymbol{w}^{\mathrm{T}} X-\boldsymbol{w}^{\mathrm{T}} \bar{X}\right)^{\mathrm{T}} \\ &=\boldsymbol{w}^{\mathrm{T}} S \boldsymbol{w} \end{aligned}
其中\bar{X}=\bar{x}\boldsymbol{1}^T_d為d 列\bar {x}組成的矩陣,S為原樣本的協(xié)方差矩陣揩瞪。

最大化投影方差并滿足約束赋朦,利用拉格朗日方法轉(zhuǎn)換為無約束優(yōu)化問題得:\underset{w}{max}w^TSw+\lambda(1-w^Tw)。對其求導(dǎo)并令導(dǎo)數(shù)等于0李破,可得:Sw=\lambda w宠哄。

由此可知:\sigma(X ; \boldsymbol{w})=\boldsymbol{w}^TS\boldsymbol{w}=\boldsymbol{w}^T\lambda \boldsymbol{w}=\lambda

λ 也是投影后樣本的方差嗤攻。因此毛嫉,主成分分析可以轉(zhuǎn)換成一個矩陣特征值分解問題,投影向量w為矩陣S 的最大特征值對應(yīng)的特征向量妇菱。

如果要通過投影矩陣W \in R^{d×d′}將樣本投到d′ 維空間承粤, 投影矩陣滿足W^TW = I,只需要將S 的特征值從大到小排列闯团,保留前d′ 個特征向量辛臊,其對應(yīng)的特征向量即是最優(yōu)的投影矩陣。

? S W=W \operatorname{diag}(\Lambda)

? 其中\Lambda = [λ^1,\cdots, λ^{d′} ]為S 的前d′ 個最大的特征值房交。

稀疏編碼

稀疏編碼(Sparse Coding)也是一種受哺乳動物視覺系統(tǒng)中簡單細胞感受野而啟發(fā)的模型彻舰。局部感受野可以被描述為具有空間局部性、方向性和帶通性(即不同尺度下空間結(jié)構(gòu)的敏感性)候味。也就是說刃唤,外界信息經(jīng)過編碼后僅有一小部分神經(jīng)元激活,即外界刺激在視覺神經(jīng)系統(tǒng)的表示具有很高的稀疏性白群。編碼的稀疏性在一定程度上符合生物學(xué)的低功耗特性尚胞。

在數(shù)學(xué)上,(線性)編碼是指給定一組基向量A = [a_1,\cdots , a_p]帜慢,將輸入樣本x \in \mathbb{R}^d 表示為這些基向量的線性組合:\boldsymbol{x}= \sum^p_{i=1}z_i\mathbf{a}_i=Az笼裳,其中基向量的系數(shù)z = [z_1, \cdots, z_p] 稱為輸入樣本x的編碼,基向量A也稱為字典崖堤。

編碼的關(guān)鍵是找到一組“完備”的基向量A侍咱,比如主成分分析等。但是主成分分析得到的編碼通常是稠密向量密幔,沒有稀疏性楔脯。

如果p 個基向量剛好可以支撐p 維的歐氏空間,則這p 個基向量是完備的胯甩。如果p 個基向量可以支撐d 維的歐氏空間昧廷,并且p > d堪嫂,則這p 個基向量是過完備的、冗余的木柬〗源“過完備”基向量是指基向量個數(shù)遠遠大于其支撐空間維度。因此這些基向量一般不具備獨立眉枕、正交等性質(zhì)恶复。

為了得到稀疏的編碼,我們需要找到一組“過完備”的基向量(即p > d)來進行編碼速挑。在過完備基向量之間往往會存在一些冗余性谤牡,因此對于一個輸入樣本,會存在很多有效的編碼姥宝。如果加上稀疏性限制翅萤,就可以減少解空間的大小,得到“唯一”的稀疏編碼腊满。

給定一組N 個輸入向量x^{(1)}, \cdots , x^{(N)}套么,其稀疏編碼的目標函數(shù)定義為:

? \mathcal{L}(A,Z)={\sum}^N_{n=1}\Big(||x^{(n)-Az^{(n)}}||^2+\eta \rho(z^{(n)})\Big)

其中Z = [z^{(1)}, \cdots , z^{(N)}],ρ(·) 是一個稀疏性衡量函數(shù)碳蛋,η 是一個超參數(shù)胚泌,用來控制稀疏性的強度。

對于一個向量z\in \mathbb{R}^p肃弟,其稀疏性定義為非零元素(或遠大于零的元素)的比例诸迟。如果一個向量只有很少的幾個非零元素,就說這個向量是稀疏的愕乎。稀疏性衡量函數(shù)ρ(z) 是給向量z一個標量分數(shù)。z 越稀疏壁公,ρ(z) 越小感论。

稀疏性衡量函數(shù)有多種選擇,最直接的衡量向量z 稀疏性的函數(shù)是?0 范數(shù):\rho(z)=\sum^p_{i=1}\mathbf{I}(|z_i|>0紊册。

但?0 范數(shù)不滿足連續(xù)可導(dǎo)比肄,因此很難進行優(yōu)化。在實際中囊陡,稀通常使用?1 范數(shù):\rho(z)=\sum^p_{i=1}|z_i|或?qū)?shù)函數(shù)\rho(z)=\sum^p_{i=1}log(1+z^2_i)或指數(shù)函數(shù):\rho(z)=\sum^p_{i=1}-exp(-z^2_i)芳绩。

訓(xùn)練方法

給定一組N 個輸入向量x^{(1)}, \cdots , x^{(N)},需要同時學(xué)習(xí)基向量A以及每個輸入樣本對應(yīng)的稀疏編碼z^{(1)}, \cdots , z^{(N)}撞反。稀疏編碼的訓(xùn)練過程一般用交替優(yōu)化的方法進行妥色。

  1. 固定基向量A,對每個輸入x(n)遏片,計算其對應(yīng)的最優(yōu)編碼:\underset{z^{(n)}}{min}||x^{(n)}-Az^{(n)}||^2+\eta\rho(z^{(n)}),\forall n\in [1,N].
  2. 固定上一步得到的編碼z^{(1)}, \cdots , z^{(N)}嘹害,計算其最優(yōu)的基向量:\underset{A}{min}\sum^N_{n=1}\Big(||x^{(n)}-Az^{(n)}||^2\Big)+\lambda\frac{1}{2}||A||^2撮竿,其中第二項為正則化項,λ 為正則化項系數(shù)笔呀。
稀疏編碼的優(yōu)點

稀疏編碼的每一維都可以看作是一種特征幢踏。和基于稠密向量的分布式表示相比,稀疏編碼具有更小的計算量和更好的可解釋性等優(yōu)點许师。

計算量 稀疏性帶來的最大好處就是可以極大地降低計算量房蝉。

可解釋性 因為稀疏編碼只有少數(shù)的非零元素,相當于將一個輸入樣本表示為少數(shù)幾個相關(guān)的特征微渠。這樣我們可以更好地描述其特征搭幻,并易于理解。

特征選擇 稀疏性帶來的另外一個好處是可以實現(xiàn)特征的自動選擇敛助,只選擇和輸入樣本最相關(guān)的少數(shù)特征粗卜,從而更高效地表示輸入樣本,降低噪聲并減輕過擬合纳击。

自編碼器

自編碼器(Auto-Encoder续扔,AE)是通過無監(jiān)督的方式來學(xué)習(xí)一組數(shù)據(jù)的有效編碼(或表示)。

通過自編碼器將一組d維樣本x^{(n)} \in \mathbb{R}^d,1 \le n\le N映射到特征空間中焕数,得到每個樣本的編碼z^{(p)}\in \mathbb{R}^p,1 \le n\le N纱昧,并可以由編碼重構(gòu)出樣本。

自編碼器的結(jié)構(gòu)可分為編碼器(f:\mathbb{R}^d\rightarrow\mathbb{R}^p)和解碼器(g:\mathbb{R}^p\rightarrow\mathbb{R}^d)兩部分堡赔。

自編碼器的學(xué)習(xí)目標是最小化重構(gòu)錯誤:

? \mathcal{L}={\sum}^N_{n=1}||x^{(n)}-g(f(x^{(n)}))||^2=\sum_{n=1}^{N}\left\|x^{(n)}-f \circ g\left(x^{(n)}\right)\right\|^{2}

如果特征空間的維度p 小于原始空間的維度d识脆,自編碼器相當于是一種降維或特征抽取方法。如果p ≥ d善已,一定可以找到一組或多組解使得f ? g 為單位函數(shù)(Identity Function)灼捂,并使得重構(gòu)錯誤為0。然而换团,這樣的解并沒有太多的意義悉稠。但是,如果再加上一些附加的約束艘包,就可以得到一些有意義的解的猛,比如編碼的稀疏性、取值范圍想虎,f 和g 的具體形式等卦尊。如果我們讓編碼只能取k 個不同的值(k < N),那么自編碼器就可以轉(zhuǎn)換為一個k 類的聚類(Clustering)問題舌厨。

兩層網(wǎng)絡(luò)結(jié)構(gòu)的自編碼器

對于樣本x岂却,自編碼器的中間隱藏層的活性值為x的編碼,即:z=s(W^{(1)}x+b^{(1)}),自編碼器的輸出為重構(gòu)的數(shù)據(jù):x'=s(W^{(2)}z+b^{(2)})淌友。煌恢。如果令W(2) 等于W(1) 的轉(zhuǎn)置,即W^{(2)}=W^{(1)^T}震庭,稱為捆綁權(quán)重瑰抵。捆綁權(quán)重自編碼器的參數(shù)更少,因此更容易學(xué)習(xí)器联。此外二汛,捆綁權(quán)重還在一定程度上起到正則化的作用。

給定一組樣本x^{(n)} \in [0,1]^d,1 \le n\le N拨拓,其重構(gòu)錯誤為:\mathcal{L}={\sum}^N_{n=1}||x^{(n)}-x'^{(n)}||^2+\lambda ||W||^2_F肴颊。

我們使用自編碼器是為了得到有效的數(shù)據(jù)表示,因此在訓(xùn)練結(jié)束后渣磷,我們一般會去掉解碼器婿着,只保留編碼器。編碼器的輸出可以直接作為后續(xù)機器學(xué)習(xí)模型的輸入醋界。

稀疏自編碼器

自編碼器除了可以學(xué)習(xí)低維編碼之外竟宋,也能夠?qū)W習(xí)高維的稀疏編碼。假設(shè)中間隱藏層z 的維度p 大于輸入樣本x的維度d形纺,并讓z 盡量稀疏丘侠,這就是稀疏自編碼器。和稀疏編碼一樣逐样,稀疏自編碼器的優(yōu)點是有很高的可解釋性蜗字,并同時進行了隱式的特征選擇。

通過給自編碼器中隱藏層單元z 加上稀疏性限制脂新,自編碼器可以學(xué)習(xí)到數(shù)據(jù)中一些有用的結(jié)構(gòu)挪捕。給定N 個訓(xùn)練樣本\{x^{(n)}\}^N_{n=1},稀疏自編碼器的目標函數(shù)為:\mathcal{L}={\sum}^N_{n=1}||x^{(n)}-x'^{(n)}||^2+\eta \rho(Z)+\lambda ||W||^2争便。

給定N 個訓(xùn)練樣本担神,隱藏層第j 個神經(jīng)元平均活性值為:\hat{\rho}_j=\frac{1}{N}\sum^N_{n=1}z^{(n)}_j\hat{\rho}_j可以近似的看作是第 j 個神經(jīng)元激活的概率始花。可以事先給定一個值孩锡,如:\rho ^*=0.05酷宵,然后用KL距離來衡量兩者的差異:

? \mathrm{KL}\left(\rho^{*} \| \hat{\rho}_{j}\right)=\rho^{*} \log \frac{\rho^{*}}{\hat{\rho}_{j}}+\left(1-\rho^{*}\right) \log \frac{1-\rho^{*}}{1-\hat{\rho}_{j}},如果\hat{\rho}_{j}=\rho^{*}躬窜,則\mathrm{KL}\left(\rho^{*} \| \hat{\rho}_{j}\right)=0浇垦。

稀疏性度量函數(shù)定義為:\rho(Z)=\sum^p_{j=1}\mathrm{KL}\left(\rho^{*} \| \hat{\rho}_{j}\right)

堆疊自編碼器

使用逐層堆疊的方式來訓(xùn)練一個深層的自編碼器,稱為堆疊自編碼器荣挨。一般可以采用逐層訓(xùn)練來學(xué)習(xí)網(wǎng)絡(luò)參數(shù)男韧。

降噪自編碼器

是一種通過引入噪聲來增加編碼魯棒性和模型泛化能力的自編碼器朴摊。

對于一個向量x,我們首先根據(jù)一個比例μ 隨機將x 的一些維度的值設(shè)置為0此虑,得到一個被損壞的向量\tilde{x}甚纲。然后將被損壞的向量\tilde{x}輸入給自編碼器得到編碼z,并重構(gòu)出原始的無損輸入x朦前。

自編碼器和降噪自編碼器

概率密度估計

參數(shù)密度估計

是根據(jù)先驗知識假設(shè)隨機變量服從某種分布介杆,然后通過訓(xùn)練樣本來估計分布的參數(shù)。

\mathcal{D}=\{x^{(n)}\}^N_{n=1}為從某個未知分布中獨立抽取的N 個訓(xùn)練樣本韭寸,假設(shè)這些樣本服從一個概率分布函數(shù)p(x; \theta)春哨,其對數(shù)似然函數(shù)為:\log p(\mathcal{D},\theta)=\sum^N_{n=1}\log p(x^{(n)};\theta)

我們要估計一個參數(shù)\theta^{ML}來使得:\theta^{ML}=\underset{\theta}{\arg max}\sum^N_{n=1}\log p(x^{(n)};\theta)恩伺,這樣參數(shù)估計問題就轉(zhuǎn)化為最優(yōu)化問題赴背。

正態(tài)分布
多項分布
非參數(shù)密度估計

不假設(shè)數(shù)據(jù)服從某種分布,通過將樣本空間劃分為不同的區(qū)域并估計每個區(qū)域的概率來近似數(shù)據(jù)的概率密度函數(shù)晶渠。

對于高維空間中的一個隨機向量x凰荚,假設(shè)其服從一個未知分布p(x),則x落入空間中的小區(qū)域\mathcal{R}的概率為:P=\int_{\mathcal{R}}p(x)dx乱陡。給定N 個訓(xùn)練樣本\mathcal{D}=\{x^{(n)}\}^N_{n=1}浇揩,落入?yún)^(qū)域\mathcal{R}的樣本數(shù)量K 服從二項分布:P_{K}=\left(\begin{array}{c}{N} \\ {K}\end{array}\right) P^{K}(1-P)^{1-K},其中K/N 的期望為\mathbb{E}[K/N] = P,方差為var(K/N) = P(1 ? P)/N憨颠。當N 非常大時胳徽,我們可以近似認為:P\approx\frac{K}{N}。假設(shè)區(qū)域\mathcal{R}足夠小爽彤,其內(nèi)部的概率密度是相同的养盗,則有P\approx p(x)V,其中V 為區(qū)域\mathcal{R}的體積适篙。結(jié)合上述兩個公式往核,得到:p(x)\approx \frac{K}{NV}

根據(jù)上述公式嚷节,要準確地估計p(x)聂儒,需要盡量使得樣本數(shù)量N 足夠大,區(qū)域體積V 盡可能地小硫痰。但在具體應(yīng)用中衩婚,樣本數(shù)量一般是有限的,過小的區(qū)域會導(dǎo)致落入該區(qū)域的樣本比較少效斑,這樣估計的概率密度就不太準確非春。因此,實踐中非參數(shù)密度估計通常使用兩種方式:(1)固定區(qū)域大小V ,統(tǒng)計落入不同區(qū)域的數(shù)量奇昙,這種方式包括直方圖方法和核方法兩種护侮;(2)改變區(qū)域大小以使得落入每個區(qū)域的樣本數(shù)量為K,這種方式稱為K近鄰方法储耐。

直方圖方法
直方圖密度估計

直方圖通常用來處理低維變量羊初,可以非常快速地對數(shù)據(jù)的分布進行可視化弧岳,但其缺點是很難擴展到高維變量凳忙。假設(shè)一個d 維的隨機向量,如果每一維都劃分為M 個區(qū)間禽炬,那么整個空間的區(qū)間數(shù)量為Md 個涧卵。直方圖方法需要的樣本數(shù)量會隨著維度d 的增加而指數(shù)增長,從而導(dǎo)致維度災(zāi)難(Curse of Dimensionality)問題腹尖。

核方法

核密度估計(Kernel Density Estimation)柳恐,也叫Parzen 窗方法,是一種直方圖方法的改進热幔。

假設(shè)\mathcal{R}為d維空間中的一個以點x為中心的“超立方體”乐设,并定義核函數(shù):

? \phi\Big(\frac{z-x}{h}\Big)=\left\{\begin{array}{ll}{1} & {\text { if }\left|z_{i}-x_{i}\right|<\frac{h}{2}, 1 \leq i \leq d} \\ {0} & {\text { else }}\end{array}\right.

來表示一個樣本z 是否落入該超立方體中,其中h 為超立方體的邊長绎巨,也稱為核函數(shù)的寬度近尚。

給定N 個訓(xùn)練樣本\mathcal{D}=\{x^{(n)}\}^N_{n=1},落入?yún)^(qū)域\mathcal {R}的樣本數(shù)量K 為:K=\sum^N_{n=1}\phi(\frac{x^{(n)}-x}{h})场勤,則點x的密度估計為:p(x)=\frac{K}{Nh^d}=\frac{1}{Nh^d}\sum^N_{n=1}\phi(\frac{x^{(n)}-x}{h})戈锻,其中h^d 表示區(qū)域\mathcal {R}的體積。

K近鄰方法

核密度估計方法中的核寬度是固定的,所以不夠靈活和媳,一種更靈活的方式是設(shè)置一種可變寬度的區(qū)
域格遭,并使得落入每個區(qū)域中樣本數(shù)量為固定的K。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末留瞳,一起剝皮案震驚了整個濱河市拒迅,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌她倘,老刑警劉巖璧微,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異硬梁,居然都是意外死亡前硫,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門靶溜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事罩息∴拖辏” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵瓷炮,是天一觀的道長葱色。 經(jīng)常有香客問我,道長娘香,這世上最難降的妖魔是什么苍狰? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮烘绽,結(jié)果婚禮上淋昭,老公的妹妹穿的比我還像新娘。我一直安慰自己安接,他們只是感情好翔忽,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著盏檐,像睡著了一般歇式。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上胡野,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天材失,我揣著相機與錄音,去河邊找鬼硫豆。 笑死龙巨,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的够庙。 我是一名探鬼主播恭应,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼耘眨!你這毒婦竟也來了昼榛?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤剔难,失蹤者是張志新(化名)和其女友劉穎胆屿,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體偶宫,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡非迹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了纯趋。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片憎兽。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡冷离,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出纯命,到底是詐尸還是另有隱情西剥,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布亿汞,位于F島的核電站瞭空,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏疗我。R本人自食惡果不足惜咆畏,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望吴裤。 院中可真熱鬧旧找,春花似錦、人聲如沸嚼摩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽枕面。三九已至愿卒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間潮秘,已是汗流浹背琼开。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留枕荞,地道東北人柜候。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像躏精,于是被迫代替她去往敵國和親渣刷。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355

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