卷積神經(jīng)網(wǎng)絡(luò)基礎(chǔ)知識(shí)復(fù)習(xí)

1.從最簡單的神經(jīng)網(wǎng)絡(luò)基本開始


X=[x1,x2,x3]T,是一個(gè)三維的樣本點(diǎn)

現(xiàn)在我們有一個(gè)4*3的權(quán)重矩陣W1

W1=[w11,w12,w13

? ? ? w21,w22,w23

? ? ? w31,w32,w33

? ? ? w41,w42,w43

? ? ? ? ]

由于y = WX卤材,而W1是4*3的矩陣,X是3*1的矩陣术吗,所以最后得出來的y是4*1的矩陣[y1,y2,y3,y4]T

可以看到對(duì)于權(quán)重矩陣的行數(shù)藐翎,我們可以對(duì)應(yīng)理解為一個(gè)小濾波器

例如W1[0],就是W1中的第一個(gè)濾波器用來提取特征昆庇,這一行中的每一個(gè)權(quán)重都和輸入樣本的每一個(gè)維度整吆,也就是神經(jīng)元結(jié)點(diǎn)相乘表蝙,假設(shè)第一層的濾波器W1有4層府蛇,那么就有4個(gè)濾波器汇跨,一共會(huì)產(chǎn)生4個(gè)輸出

同理我們再看從y到z的過程穷遂,最后輸出一個(gè)神經(jīng)元結(jié)點(diǎn)娱据,因此第二層的濾波器只有1個(gè)濾波器忌穿,W2是一個(gè)一行的濾波器伴网,且權(quán)重個(gè)數(shù)與y的神經(jīng)元個(gè)數(shù)相同W2 = 1*4

z = W2*y? ------> 1*4? ? ^? 4*1澡腾,最后得到1*1的單神經(jīng)元輸出。


我們回頭看邏輯回歸可以發(fā)現(xiàn)毅糟,LR應(yīng)該算一個(gè)沒有隱藏層的最簡單的神經(jīng)網(wǎng)絡(luò)


而根據(jù)我們的知識(shí)知道這里面的一個(gè)一行四列的權(quán)重W是一個(gè)線性分類器,所以我們更正之前的說法坟乾,W應(yīng)該是多個(gè)線性分類器的疊加明吩,如果W有n行則代表有n個(gè)線性分類器疊加在一起構(gòu)成n印荔,而單純的線性疊加很難達(dá)到很好的效果仍律,這也就是為什么后面會(huì)使用激活函數(shù)引入非線性因素(你可以想象成把之前的線性分類器邊界進(jìn)行彎曲)同時(shí)水泉,我之前所說的濾波器更多的時(shí)候使用在CNN之中茶行,即Filter用來提取特征畔师。



2.卷積神經(jīng)網(wǎng)絡(luò)

在理解卷積神經(jīng)網(wǎng)絡(luò)之前看锉,我們需要先遷移性地理解一點(diǎn)伯铣,那就是腔寡,將所在層的通道數(shù)類比于1中的神經(jīng)元結(jié)點(diǎn)的個(gè)數(shù)放前,把卷積核類比于1中的線性分類器個(gè)數(shù)葱她,我們知道有幾個(gè)分類器就會(huì)有多少輸出吨些,所以在進(jìn)行卷積神經(jīng)網(wǎng)絡(luò)的過程中豪墅,輸出結(jié)果與輸入的維度或者說通道數(shù)無關(guān)但校,只與卷積核的個(gè)數(shù)有關(guān)术裸。

假設(shè)我們有一張圖片作為輸入袭艺,我們知道它是三通道的猾编,那么可以將這張圖片表示為W*H*3轰传,實(shí)際上看源碼也知道圖片用ndarray格式保存的時(shí)候也是這種形式获茬,然后假設(shè)我們有5個(gè)Kenel,那么我們實(shí)際的輸出與kenel的個(gè)數(shù)是相等的恕曲,即輸出了5張?zhí)卣鲌D,那么具體是什么工作的呢茸俭?

以R,G,B三通道為例,共有5個(gè)卷積核w1,w2,w3,w4,w5率翅,那么與1中類似冕臭,我們先選取卷積核w1,注意這里有一個(gè)卷積核深度的概念,該層所有的卷積核深度等該層輸入的通道數(shù)托慨,可以理解為上面1中所說的w11,w12,w13.

以三通道來表示

我們的卷積核應(yīng)該定義深度厚棵,個(gè)數(shù),個(gè)數(shù)我們可以隨意設(shè)置彬犯,而深度必須保持與當(dāng)前輸入的通道數(shù)一直

W=[w11,w12,w13

? ? ? w21,w22,w23

? ? ? w31,w32,w33

? ? ? w41,w42,w43

? ? ? ? ]

那么這里有4個(gè)卷積核,例如W1 = [w11,w12,w13]我們分別將這三個(gè)特征圖與每個(gè)通道進(jìn)行卷積然后相加得到最終輸入即

y1 = w11*R+w12*G+w13*B

然后我們有4個(gè)卷積核查吊,因此最終輸出的通道數(shù)為4.


類比:

通道數(shù)----->神經(jīng)元結(jié)點(diǎn)個(gè)數(shù)谐区,? ? ? ? 你可以把這些通道數(shù)想象成從上往下依次展開的

卷積核深度------->每一個(gè)線性分類器的特征W維度 ,? 你可以把每個(gè)通道對(duì)應(yīng)每個(gè)WIJ的過程想象成W*X的過程

卷積核個(gè)數(shù)---------->線性分類器個(gè)數(shù)逻卖,? ? ? ? 你可以想象成到底有幾個(gè)分類器宋列。


有了以上概念來一波立即推

當(dāng)前輸入共有m個(gè)通道,那么我們應(yīng)該用多深的卷積核评也?

立即推m個(gè)通道對(duì)應(yīng)m個(gè)神經(jīng)元結(jié)點(diǎn)虚茶,就應(yīng)該有m個(gè)權(quán)重值诈乒,因此卷積核深度為m;


如果我用了n個(gè)卷積核消约,那么輸出多少個(gè)通道的特征圖?

立即推氯材,n個(gè)卷積核對(duì)應(yīng)了n次卷積相加的過程,因此共有n個(gè)通道的輸出。

因此當(dāng)我們定義模型的時(shí)候裂七,我們只需要關(guān)心卷積核的個(gè)數(shù)是多少即可,因?yàn)榫矸e核的深度由當(dāng)前的通道數(shù)決定芭逝,假設(shè)最后一層卷積層用到了M個(gè)卷積核蒲稳,立即推,最后一層的深度為M,這也是深度學(xué)習(xí)的深度體現(xiàn)啊犬。


感知機(jī)與神經(jīng)網(wǎng)絡(luò)類比

現(xiàn)在讓來看一下卷積神經(jīng)網(wǎng)絡(luò)中一些常用的概念睡腿,和基本組成部件。

假設(shè)我們的輸入為(Width=W,Height=W,Depth=N)代表了N張長寬均為W的特征圖孽锥,我們的卷積層為(Kenel_size=F*F,Depth=N,Num=M),代表了M個(gè)深度為N的尺寸為F*F的卷積核,假定我們進(jìn)行卷積操作的步長Stride = S,Padding為P,那么首先由N張?zhí)卣鲌D與一個(gè)卷積核的N層進(jìn)行卷積操作得到新的邊長為W* =(W-F+2P)/S + 1(請(qǐng)牢記這個(gè)公式)的N張新特征圖,我們把這N張?zhí)卣鲌D按對(duì)應(yīng)位置相加得到一張完整的新特征圖介粘,即完成了一個(gè)卷積核特征提取的操作爵憎,我們有M個(gè)卷積核,所以我們最終得到的輸出為

(Width=(W-F+2P)/S + 1,Height=(W-F+2P)/S + 1,Depth=M)


單個(gè)卷積核工作方式

之后再進(jìn)行池化操作,一般采取最大池化督弓,計(jì)算方式一樣狂塘,假設(shè)步長為1


最大池化

Padding

如果我們想使得輸出的特征圖尺寸與原特征圖尺寸一致,我們就可以使用padding,padding=1代表我們在原圖的周圍加上一圈0。

Tensorflow中有主要有兩種padding方式,“Same”和“Valid”趟径,代表當(dāng)濾波器或池化到邊界的時(shí)候是否自動(dòng)補(bǔ)0惧蛹,Same方式結(jié)果向上取整装畅,例如我們的輸入邊長為5,步長為2,? ?5/2=2.5迅诬,向上取整得到3俏蛮,則最終輸出一張3*3的特征圖。


池化層

池化層的作用就是減小特征圖的面積,使用最大池化,提取到的是特征圖中每一小塊區(qū)域中取值最大到的那個(gè)數(shù),一定程度上代表了提取出特征圖中的關(guān)鍵信息。例如我們只關(guān)心圖像的輪廓和紋理變化。

降低輸出規(guī)模雕凹,增加可解釋性汽摹;

光滑信息,避免丟失更多信息。


光滑原因解釋

對(duì)于沒有經(jīng)過最大池化的圖片廓鞠,從三維角度來看砌们,取值高高低低影兽,而提取出的都是每塊區(qū)域中最大的值捐名,相當(dāng)于使得數(shù)據(jù)區(qū)域光滑。

而現(xiàn)在1個(gè)點(diǎn)就能代表以前的4個(gè)點(diǎn),一定程度上代表增大了我們的感知野踱葛。

最大池化過程

此外還有平均池化,即取區(qū)域中的平均值,有點(diǎn)像均值濾波。


激活函數(shù)

sigmoid = \frac{1}{1+e^-x  }


sigmoid曲線


Relu = max(0,x)


Relu函數(shù)曲線


Tanh = \frac{e^x-e^-x  }{e^x+e^-x}


雙曲正切激活函數(shù)

softplus = \ln (1+e^-x)

LeakyRelu = 1(x<0)\frac{x}{a} +1(x\geq 0)x


Relu及其變種



FC層(全連接層)

在完成所有卷積層之后决采,將所有輸出特征圖扁平化展開成一個(gè)列向量


例如3張2*2的特征圖可以按順序展開成1個(gè)12個(gè)神經(jīng)元結(jié)點(diǎn)的輸出旺嬉,然后我們用12個(gè)帶有12個(gè)參數(shù)的線性分類器雨效,得到一個(gè)新的12個(gè)神經(jīng)元結(jié)點(diǎn)的FC層据悔,最后根據(jù)我們的需要連接上一個(gè)softmax函數(shù)或者sigmoid函數(shù)即可。


正則化

L1 =?\alpha \sum_{\omega }\vert \omega  \vert

L2 =?\lambda \sum_{\omega }\omega ^2

與傳統(tǒng)機(jī)器學(xué)習(xí)方法一致躯肌,都是為了抑制模型復(fù)雜度校仑。



損失函數(shù)

一般使用交叉熵?fù)p失函數(shù)

對(duì)于sigmoid函數(shù)直接帶入以下交叉熵?fù)p失函數(shù)中

CrossEntropy = -[y\ln \hat{y}  +(1-y)\ln (1-\hat{y} ) ]

y代表標(biāo)簽值羊瘩,y^代表預(yù)測值

對(duì)于softmax睬捶,由于是多分類介劫,假設(shè)有1,2,3,4,5共5個(gè)分類誉碴,我們的輸出為output=[0.1,????0.2,????0.4? ? 0.1? ? 0.2]

由于我們采用的one-hot編碼,所以當(dāng)我們看某一類時(shí)慨默,其它的類別都為0

例如我們要算第3類時(shí)的損失函數(shù)

Loss = -[0*In0.1+0*In0.2+1*In0.4+0*In0.1+0*In0.2]

? ? ? ? ?= -In0.4

Loss = -\frac{1}{n} \sum_{i}^n \ln y_{i}


反向傳播

這里先補(bǔ)充一個(gè)概念就是張量,我們可以把張量理解為數(shù)字容器;

0維張量:一個(gè)數(shù)

1維張量:一個(gè)數(shù)組

2維張量:一個(gè)矩陣

3維張量:以特征圖來說就是三維張量? ? ? 高*寬*通道數(shù)

4維張量:以卷積核來說就是四維張量? ? ? ?高*寬*通道數(shù)*卷積核個(gè)數(shù)

再說反向傳播

先從最簡單的神經(jīng)元結(jié)點(diǎn)之間的反向傳播開始

反向傳播就是遵從我們的鏈?zhǔn)角髮?dǎo)法則

假設(shè)我們要求最后的損失值相對(duì)于圖中W的偏導(dǎo)數(shù)\vartheta 顶别,也就是W的變化會(huì)給損失值帶來怎樣的變化谋旦,假設(shè)這個(gè)偏導(dǎo)數(shù)為負(fù)數(shù)指蚜,則代表W增大時(shí)損失函數(shù)減小是辕,而W減小時(shí)損失函數(shù)增大棺聊,我們更新W的時(shí)候就用這個(gè)梯度去更新 W = W -?\alpha *\vartheta 祟同,讓我們來驗(yàn)證一下這個(gè)公式广辰,偏導(dǎo)數(shù)為正的時(shí)候,W增大會(huì)使得損失函數(shù)增大所森,因此我們要減小W,對(duì)應(yīng)于公式正好W是減小的,同理如果偏導(dǎo)數(shù)為負(fù)谴咸,則W增大會(huì)使得損失函數(shù)減小,因此我們就增大這個(gè)值。

具體來求一求L對(duì)W的偏導(dǎo)帆焕,由以下鏈?zhǔn)角髮?dǎo)法則

\frac{\vartheta L}{\vartheta W}  = \frac{\vartheta L}{\vartheta a^L }  *\frac{\vartheta a^L}{\vartheta z} *\frac{\vartheta z}{\vartheta W}

然后我們一層一層來算

第一層假設(shè)我們最后用的是二分之一平方損失函數(shù)钥星,那么第一層求導(dǎo)數(shù)值為(a^L -  y),其中y為標(biāo)簽值魂莫。

第二層讼溺,是一個(gè)激活函數(shù)的求導(dǎo),假設(shè)我們使用的是Relu激活函數(shù),如果Z的值大于0,那么導(dǎo)數(shù)就為1扩灯,否則就為0,假設(shè)我們現(xiàn)在Z值大于0,那么這一層的導(dǎo)數(shù)值就為1

第三層坑鱼,由于Z = W*a(L-1) + b,因此Z對(duì)W求導(dǎo)就是a(L-1)

最后我們把他們乘起來得到L對(duì)W的偏導(dǎo)值為(aL-y)*a(L-1)

然后計(jì)算W = W -?\alpha *(aL-y)*a(L-1)即可

注意當(dāng)我們用的批量的時(shí)候(aL-y)應(yīng)該改為\frac{1}{m} \sum_{i=1}^m(a_{i}^L-x_{i} )

然后很重要一點(diǎn),假設(shè)我們再要求L-2層的權(quán)重的時(shí)候狭园,

我們要先求最后的結(jié)果對(duì)a(l-1)層的偏導(dǎo)結(jié)果抑胎,我們把上面的第三步改一下就是

\frac{\vartheta L}{\vartheta a^(l-1) } =  (a^L-y)*W^(l-1)

而a(L-1)又是由W(l-2)*a(l-2)+b(l-2)和一層激活層得到

因此\frac{\vartheta L}{\vartheta W^(L-2) } =(a^L-y)*W^(l-1) *a^(l-2)

可以看出來對(duì)于每個(gè)數(shù)值上的點(diǎn)都有對(duì)應(yīng)的偏導(dǎo)數(shù)破托,且對(duì)權(quán)值調(diào)整起著非常重要的作用

例如我記錄\frac{\vartheta L}{\vartheta a^(l-1) }序臂,那么我再用a(l-1)對(duì)W(l-2)進(jìn)行求偏導(dǎo)侮叮,然后根據(jù)鏈?zhǔn)椒▌t相乘即可

所以對(duì)于每個(gè)數(shù)值點(diǎn)孔庭,我們有:損失函數(shù)對(duì)該數(shù)值點(diǎn)處的偏導(dǎo)數(shù),再求改點(diǎn)對(duì)前面的權(quán)重或偏置的導(dǎo)數(shù),相乘即可哪怔。

理解了這一點(diǎn)茉盏,就很好理解卷積神經(jīng)網(wǎng)絡(luò)中反向傳播中的一些操作。

池化層的反向傳播

從池化層開始罚斗,假設(shè)我們是最大池化

以圖為例饲趋,我們計(jì)算并記錄下了6這個(gè)點(diǎn)的導(dǎo)數(shù)讨衣,由于是最大池化燎孟,那么傳播到它的之前的激活層的時(shí)候1處的導(dǎo)數(shù)為0,1處的導(dǎo)數(shù)為0,5處的導(dǎo)數(shù)為0,6處的導(dǎo)數(shù)為1,你可以這樣理解,由于我們采取到了池化這個(gè)降采樣操作,所以1,1,5這些點(diǎn)都廢了,沒啥用,甭調(diào)節(jié)它了橄浓;

對(duì)于平均池化來說重抖,第一塊兒的值為(1+1+5+6)/4恨统,所以每一塊兒的權(quán)重都是0.25掩宜,所以每一塊兒的權(quán)重都是6這個(gè)位置計(jì)算所得的權(quán)重乘以0.25.

卷積層的反向傳播

數(shù)值部分的傳播

這里引用知乎大神南柯一夢寧沉淪的圖(上面的部分圖也取自他的圖)


我們在理解前向反向傳播過程中始終抓住一個(gè)核心點(diǎn),就是前向傳播的時(shí)候桦沉,哪些點(diǎn)對(duì)哪些點(diǎn)造成了什么影響渴语,然后我們反向把這些影響給傳播回去腹暖,傳播就是求導(dǎo),導(dǎo)數(shù)相乘的過程翰萨。例如上圖脏答,我們求得了C出的導(dǎo)數(shù),然后我們相求A出的導(dǎo)數(shù)亩鬼,怎么求殖告?看C是怎么通過A得到的嘛,顯然是C = A*B +C*D + E*F + G*H雳锋,顯然我們這里只關(guān)心A黄绩,通過C對(duì)A求導(dǎo),得到B玷过,因此A處的導(dǎo)數(shù)值等于C處的導(dǎo)數(shù)值乘以B爽丹。


現(xiàn)在我們把A移動(dòng)到如圖所示的位置,還是抓住核心問題辛蚊,這個(gè)點(diǎn)對(duì)后面哪些點(diǎn)產(chǎn)生了哪些影響粤蝎,我們不斷滑動(dòng)卷積核,發(fā)現(xiàn)A參與了A*C得到D袋马,然后還參與了A*B得到E初澎,那么A處的導(dǎo)數(shù)值就應(yīng)該等于D處的導(dǎo)數(shù)值乘以C加上E處的導(dǎo)數(shù)值乘以B。

卷積核的反向傳播

與上面類似虑凛,我們始終關(guān)注一個(gè)核心點(diǎn)碑宴,我們要求的位置通過何種方式對(duì)哪些位置產(chǎn)生了影響软啼,以下圖來表示


在結(jié)果特征圖里,我簡單粗暴用de1--de4來代表4個(gè)位置的反向傳播誤差延柠,然后我們想對(duì)卷積核中的1,2,3,4幾個(gè)參數(shù)進(jìn)行反向傳播祸挪,我們就看1,1參與了與A相乘然后輸出de1位置贞间,1與B相乘然后輸出de2位置贿条,所以1處的誤差為de1*A+de2*B,1處的權(quán)重應(yīng)該更新為W-\alpha *(de1*A+de2*B)

但是注意一點(diǎn)的是,我們現(xiàn)在計(jì)算的是某一個(gè)通道乘以其中一個(gè)卷積核的某一個(gè)通道榜跌,而有幾個(gè)卷積核闪唆,就能得到幾張?zhí)卣鲌D,如下表示


假設(shè)我們輸入了兩張?zhí)卣鲌D钓葫,然后用兩個(gè)深度為2的卷積核會(huì)得到兩個(gè)特征圖輸出悄蕾,那么我們在計(jì)算A點(diǎn)的誤差時(shí),應(yīng)該等于deC*B+deD*E,即疊加础浮!


綜上帆调!所有的反向傳播,統(tǒng)統(tǒng)從一個(gè)角度考慮豆同,就不需要記憶了番刊,很簡單,要求的位置對(duì)哪些點(diǎn)產(chǎn)生了哪些影響影锈,然后通過求導(dǎo)和鏈?zhǔn)椒▌t芹务,然后相加就能得到這一點(diǎn)的導(dǎo)數(shù)。


dropout

就是讓某些結(jié)點(diǎn)工作鸭廷,某些結(jié)點(diǎn)不工作枣抱,可以類比于隨機(jī)森林,每次都選擇若干個(gè)特征進(jìn)行構(gòu)造決策樹辆床,每一層的dropout都可以設(shè)置一定的比例佳晶,例如dropout = 0.6,則代表有百分之六十的神經(jīng)元工作讼载,每一次的前向傳播和誤差反饋調(diào)節(jié)都可以看成是一棵決策樹轿秧,每次dropout選擇不工作的神經(jīng)元都是隨機(jī)選擇的,那么每一次權(quán)重更新過程都可以類比為構(gòu)造一棵決策樹咨堤。


dropout演示

以該圖為例菇篡,如果沒有dropout,那么調(diào)節(jié)的權(quán)重個(gè)數(shù)為5*5+5*5+5*1 = 55個(gè)吱型;

用圖中dropout方式連接逸贾,則只有激活的神經(jīng)元對(duì)應(yīng)的權(quán)重參與調(diào)節(jié),共3*2+2*3+3*1=15個(gè)津滞;

如此看來使用dropout可以大大減輕我們的計(jì)算量铝侵,而且更重要的原因是dropout的方式很像隨機(jī)森林的投票模式,這樣能夠大大增強(qiáng)網(wǎng)絡(luò)的泛化能力触徐,對(duì)抗過擬合情況的出現(xiàn)咪鲜。



Batch Normalization(BN)

如果數(shù)據(jù)集體不呈正態(tài)分布,那么使用一些激活函數(shù)撞鹉,例如sigmoid的時(shí)候疟丙,大量的數(shù)據(jù)可能集中在很小的調(diào)節(jié)范圍內(nèi),極其容易產(chǎn)生梯度消失鸟雏。


較大輸入進(jìn)入激活函數(shù)時(shí)的輸出

可以看到享郊,如果數(shù)據(jù)都集中落在較大(或者較小)的區(qū)域孝鹊,那么梯度就會(huì)很小很小趨近于0炊琉,到之后后面的網(wǎng)絡(luò)基本上無法調(diào)節(jié),最后定格在這里了又活,我們的模型很可能不會(huì)收斂苔咪。


BN層連接在激活層之前。


CNN整體架構(gòu)


整體架構(gòu)

梯度彌散與梯度爆炸

梯度彌散就是在梯度反向傳播中遵從鏈?zhǔn)椒▌t柳骄,所有梯度相乘后可能出現(xiàn)一個(gè)很小的值团赏,而梯度又代表了權(quán)重的更新快慢和方向,所以如果梯度消失耐薯,很有可能收斂地非常慢甚至不收斂舔清;

對(duì)應(yīng)梯度彌散的就是梯度爆炸,如果梯度值大于1曲初,則經(jīng)過若干層鏈?zhǔn)絺鞑ブ筇遐耍苡锌赡芴荻瘸芍笖?shù)級(jí)增長,這樣造成的效果也很有可能不能收斂复斥。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末营密,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子目锭,更是在濱河造成了極大的恐慌评汰,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件痢虹,死亡現(xiàn)場離奇詭異被去,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)奖唯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門惨缆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事坯墨〖呕悖” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵捣染,是天一觀的道長骄瓣。 經(jīng)常有香客問我,道長耍攘,這世上最難降的妖魔是什么榕栏? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮蕾各,結(jié)果婚禮上扒磁,老公的妹妹穿的比我還像新娘。我一直安慰自己式曲,他們只是感情好妨托,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著检访,像睡著了一般始鱼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上脆贵,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天医清,我揣著相機(jī)與錄音,去河邊找鬼卖氨。 笑死会烙,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的筒捺。 我是一名探鬼主播柏腻,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼系吭!你這毒婦竟也來了五嫂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤肯尺,失蹤者是張志新(化名)和其女友劉穎沃缘,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體则吟,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡槐臀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了氓仲。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片水慨。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡得糜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出晰洒,到底是詐尸還是另有隱情朝抖,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布欢顷,位于F島的核電站槽棍,受9級(jí)特大地震影響捉蚤,放射性物質(zhì)發(fā)生泄漏抬驴。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一缆巧、第九天 我趴在偏房一處隱蔽的房頂上張望布持。 院中可真熱鬧,春花似錦陕悬、人聲如沸题暖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽胧卤。三九已至,卻和暖如春拼岳,著一層夾襖步出監(jiān)牢的瞬間枝誊,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來泰國打工惜纸, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留叶撒,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓耐版,卻偏偏與公主長得像祠够,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子粪牲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

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