機(jī)器學(xué)習(xí)可行性與VC dimension

機(jī)器學(xué)習(xí)可行性

在銀行評(píng)估貸款申請(qǐng)人的授信請(qǐng)求前,會(huì)進(jìn)行風(fēng)險(xiǎn)評(píng)估。符合申請(qǐng)則通過(guò),反之駁回。長(zhǎng)時(shí)間的數(shù)據(jù)和申請(qǐng)使得銀行從中找到了一些規(guī)律并開(kāi)始learning,所以風(fēng)險(xiǎn)評(píng)估就是一個(gè)learning的過(guò)程,流程圖如下:


機(jī)器學(xué)習(xí)流程圖

首先target function我們是未知的,需要求解的。D就是我們的訓(xùn)練數(shù)據(jù),hypothesis set就是我們的假設(shè)集合,也就是說(shuō)我們的最佳函數(shù)g就是要從里面選擇,learing algorithm我們稱為演算法,使用這個(gè)演算法來(lái)選擇最好的g,最后達(dá)到g ≈ f的結(jié)果。

先介紹一個(gè)Perceptron Algorithm---感知機(jī)

為每一個(gè)特征向量設(shè)置一個(gè)w,所以的wx相加如果大于某一個(gè)閾值,我們就設(shè)置為正例,approve credit;否則就deny了。


perceptron

但其實(shí)我們一般會(huì)把閾值加進(jìn)來(lái)一起預(yù)測(cè),因?yàn)槿绻珠_(kāi)的話求導(dǎo)計(jì)算或者其實(shí)算法計(jì)算要分兩部分。
如下變換:


公式變換

設(shè)置一個(gè)X0,我們稱為是1。
對(duì)于這個(gè)perceptron,對(duì)于不同的權(quán)值集合,我們就有多少種不同的線段,而這些不同的線段,其實(shí)就是假設(shè)集合,剛剛所說(shuō)的hypothesis set。

perceptron的學(xué)習(xí)

一開(kāi)始我們的權(quán)值肯定是一個(gè)隨機(jī)值,那么學(xué)習(xí)的過(guò)程就是一個(gè)轉(zhuǎn)變方向的過(guò)程了。我們通過(guò)第一個(gè)錯(cuò)誤進(jìn)行逐步的修正:


圖像解釋

當(dāng)發(fā)現(xiàn)了一個(gè)錯(cuò)誤,那么這個(gè)錯(cuò)誤肯定和我們預(yù)知的范圍是相反的,比如一個(gè)mistake,wx < 0 ,意味著是在圖像的下方,而w是法向量,那么就會(huì)出現(xiàn)w和mistake的夾角就是大于90度的了,所以需要小于90度,則只需要加上yx即可,y代表要旋轉(zhuǎn)的方向。
但是每一次的改變有可能使得correct的點(diǎn)變成mistake,但是沒(méi)有關(guān)系,迭代下去總可以找到最好的一個(gè)g。

perceptron的停止條件

對(duì)于一個(gè)集合D,如果是線性可分的,自然就分開(kāi)了,但如果是線性不可分的,你們感知機(jī)就不會(huì)停止,一直迭代下去,因?yàn)橹灰绣e(cuò)誤就一直進(jìn)行迭代而不會(huì)找到最佳的g ≈ f。
當(dāng)然對(duì)于非線性的情況我們不考慮,對(duì)于線性可分的情況,我們可以用公式表明W在變化的過(guò)程中確實(shí)是越來(lái)越接近Wf的。
當(dāng)一個(gè)向量越接近一個(gè)向量的時(shí)候,如果這兩個(gè)向量是單位向量,那么越接近自然越大,所以如果W*Wf變大,就可以證明percetron確實(shí)是可以學(xué)習(xí)的。


證明①

YnWfXn>0。因?yàn)閥就是根據(jù)WX來(lái)分類的,這兩的正負(fù)號(hào)肯定是一樣的。
但是增大的可能性其實(shí)還有可能是這逼長(zhǎng)度變化了,導(dǎo)致增大,所以我們要證明


這里寫圖片描述

是不斷增大的。
推導(dǎo)流程如下:


推導(dǎo)流行

所以可以證明W是隨著時(shí)間的增長(zhǎng)不斷的靠近Wf的,perceptron的學(xué)習(xí)就被證明是有效的了。

回到我們要講的機(jī)器學(xué)習(xí)可行性

舉一個(gè)例子,現(xiàn)在有一個(gè)九宮格要我們來(lái)找規(guī)律推測(cè)出第三個(gè)九宮格里面的內(nèi)容:


九宮格的例子

不同的學(xué)習(xí)方法找到的規(guī)律是不一樣的,得到的g(x)也不一樣。給出的這個(gè)例子里面的六個(gè)九宮格其實(shí)就是機(jī)器學(xué)習(xí)里面的數(shù)據(jù)D,我們可以找到并且看見(jiàn)的,而那個(gè)我們需要預(yù)測(cè)的就是我們看不見(jiàn)并且要預(yù)測(cè)的大數(shù)據(jù)。比如剛剛的credit card,我們要預(yù)測(cè)的其實(shí)就是所有人,而不是僅僅的只是數(shù)據(jù)集里面的。

在機(jī)器學(xué)習(xí)基石里面老師用了一個(gè)bin的例子:
在訓(xùn)練集D以外的樣本上,機(jī)器學(xué)習(xí)的模型是很難,似乎做不到正確預(yù)測(cè)或分類的。那是否有一些工具或者方法能夠?qū)ξ粗哪繕?biāo)函數(shù)f做一些推論,讓我們的機(jī)器學(xué)習(xí)模型能夠變得有用呢?
比如裝有一個(gè)很多球的罐子:

這里寫圖片描述

其實(shí)這個(gè)罐子就是hypothesis set里面的一個(gè)h(x) 。罐子里面的球其實(shí)本來(lái)是沒(méi)有顏色的,我們依照h(x) 的分布,把這里面的求都用油漆涂成orange and green。orange代表錯(cuò)誤,而green代表正確。抽樣抽出來(lái)的小球其實(shí)就是我們的數(shù)據(jù)集set,就是已經(jīng)拿到并且是帶了label那種。
我們現(xiàn)在就是要確定能否用抽樣的比例來(lái)確定罐子里面的比例呢?
u是罐子里面orange的比例,而v則是抽樣抽到的orange的比例。那么根據(jù)霍夫丁不等式有:
P[|v?u|>?]≤2exp(?2?2N)
當(dāng)N很大的時(shí)候其實(shí)兩個(gè)都是差不多的。
我們把u ≈ v稱為probably approximately correct(PLA),近似相等。

聯(lián)系到機(jī)器學(xué)習(xí)上面

我們將罐子的內(nèi)容對(duì)應(yīng)到機(jī)器學(xué)習(xí)的概念上來(lái)。機(jī)器學(xué)習(xí)中hypothesis與目標(biāo)函數(shù)相等的可能性,類比于罐子中橙色球的概率問(wèn)題;罐子里的一顆顆彈珠類比于機(jī)器學(xué)習(xí)樣本空間的x;橙色的彈珠類比于h(x)與f不相等;綠色的彈珠類比于h(x)與f相等;從罐子中抽取的N個(gè)球類比于機(jī)器學(xué)習(xí)的訓(xùn)練樣本D,且這兩種抽樣的樣本與總體樣本之間都是獨(dú)立同分布的。所以呢,如果樣本N夠大,且是獨(dú)立同分布的,那么,從樣本中h(x)≠f(x)的概率就能推導(dǎo)在抽樣樣本外的所有樣本中h(x)≠f(x)的概率是多少。


這里寫圖片描述

理解的關(guān)鍵是我們需要通過(guò)抽樣來(lái)知道h(x)的錯(cuò)誤概率是多少,通過(guò)局部推廣到全局。

這里寫圖片描述

這里要引入兩個(gè)值:Ein值的是抽樣的錯(cuò)誤率,Eout指的是全局的錯(cuò)誤率,這里就是指h的錯(cuò)誤率了。
使用霍夫丁不等式:
P[|Ein(h)?Eout(h)|>?]≤2exp(?2?2N)
inequalty表明:在h確定了,N很打的情況下,Ein ≈ Eout,但這并不代表g≈f,因?yàn)槲覀兒竺孢€要知道Ein ≈ 0才行。

類比到機(jī)器學(xué)習(xí)上面

這里寫圖片描述

hypothesis set里面有多少個(gè)h就有多少個(gè)罐子。
但是在抽樣過(guò)程中還有可能抽到壞的數(shù)據(jù),bad sample。比如你丟一個(gè)硬幣,三次向上一次向下,這并不能說(shuō)明這個(gè)硬幣正反面不均勻。
所以抽樣也有可能抽到壞樣本。
這里寫圖片描述

這么多個(gè)數(shù)據(jù)集,根據(jù)霍夫丁不等式,在大多數(shù)情況下,抽樣得到的數(shù)據(jù)其實(shí)都是好數(shù)據(jù),Ein ≈ Eout的,但是會(huì)有極小的情況下會(huì)出現(xiàn)Ein 和 Eout相差很大的情況。也就是說(shuō),不同的數(shù)據(jù)集Dn,對(duì)于不同的hypothesis,有可能成為Bad Data。只要Dn在某個(gè)hypothesis上是Bad Data,那么Dn就是Bad Data。只有當(dāng)Dn在所有的hypothesis上都是好的數(shù)據(jù),才說(shuō)明Dn不是Bad Data,可以自由選擇演算法A進(jìn)行建模。那么,根據(jù)Hoeffding’s inequality,Bad Data的上界可以表示為連級(jí)(union bound)的形式:
這里寫圖片描述

意味著,如果M是有限的,N很大,那么我們出現(xiàn)bad sample的概率會(huì)很小,Ein ≈ Eout就可以成立,再選取一個(gè)合理的演算法,就可以得到g ≈ f,機(jī)器學(xué)習(xí)就有效了。這樣就有了不錯(cuò)的泛化能力。

要解決的問(wèn)題已經(jīng)M的處理

上面的講解過(guò)后機(jī)器學(xué)習(xí)的流程:

這里寫圖片描述

于是就回歸到了兩個(gè)問(wèn)題:
這里寫圖片描述

①Ein ≈ Eout
②Ein ≈ 0
這里寫圖片描述

M就是代表hypothesis set里面h的數(shù)量,M小,可以達(dá)到bad sample概率小但是選擇就少了,而大的話就有可能變成大概率了。所以M需要不大不小的。
但事實(shí)上很多機(jī)器學(xué)習(xí)的hypothesis set都是M無(wú)限大的,比如SVM,linear regression,logitic regression他們的M都是無(wú)限大的,但他們的學(xué)習(xí)都是有效的,所以,很明顯這里的M是可以被替換掉的。替換成一個(gè)有限的mH。

對(duì)M的處理

hypothesis set是無(wú)限的,但他的種類肯定是有限的,比如2D-perceptron要分類一個(gè)數(shù)據(jù)點(diǎn):

這里寫圖片描述

在這個(gè)分類里面,hypothesis set是無(wú)限多個(gè)的,因?yàn)椴煌膚集合就不同的直線,但他的分類種數(shù)卻只有兩種,要不X要不O,就兩種,所以可見(jiàn),很多的H是有重疊的。
如果有兩個(gè)點(diǎn):
這里寫圖片描述

就四種情況。
到了三個(gè)點(diǎn)的時(shí)候,情況有所不一樣:
這里寫圖片描述

這樣是8種情況。
這里寫圖片描述
這樣就是六種情況。
我們自然是要找最多的了,所以3個(gè)點(diǎn)2分類就是8種情況。
四個(gè)點(diǎn)就是14種情況。
這里寫圖片描述

所以我們的M其實(shí)可以被有限個(gè)替代的。如果可以保證是小于2^n次方,也就算是無(wú)限大的,他的種類也是有限的。
成長(zhǎng)函數(shù)
成長(zhǎng)函數(shù)的定義是:對(duì)于由N個(gè)點(diǎn)組成的不同集合中,某集合對(duì)應(yīng)的dichotomy最大,那么這個(gè)dichotomy值就是mH(H),它的上界是2N:
這里寫圖片描述

而我們剛剛的例子:
這里寫圖片描述

我們現(xiàn)在要做的就是要討論如何限制成長(zhǎng)函數(shù),得到表達(dá)式或者是找到上界。

成長(zhǎng)函數(shù)的討論

對(duì)于一維的positive rays(正射線):


這里寫圖片描述

當(dāng)N = 1
mH(1) = 2
當(dāng)N = 2
mH(2) = 3
所以他的mH(N) = N + 1

對(duì)于一維的positive intervals:


這里寫圖片描述

下面推導(dǎo)可以得到:


這里寫圖片描述

而對(duì)于一個(gè)凸集合:
他的成長(zhǎng)函數(shù)就是2^n次方了。

這里寫圖片描述

所以可以看到在某些情況下,成長(zhǎng)函數(shù)增長(zhǎng)到一定情況下,會(huì)被限制,也就是在那個(gè)地方會(huì)小于2^n。
而這個(gè)點(diǎn),我們就稱為break point。在這個(gè)點(diǎn)和這個(gè)點(diǎn)以后,任何兩點(diǎn)都不能被shatter。
shatter的意思:比如你有一把散彈槍,要求你每一關(guān)都要一槍打死所有人,第一關(guān)的時(shí)候,你一槍可以打死所有人,第二關(guān)也可以,第三關(guān)不行了,那么3就是break point了。
positive rays:N = 1的時(shí)候,shatter的情況就是 這個(gè)點(diǎn)等于x,o,而很明顯可以達(dá)到。N = 2的時(shí)候,shatter的情況就是xx ,oo,xo ,ox,而ox是達(dá)不到的,所以2就是break point了,而N = 3的時(shí)候,就更加不能被shatter了。如果是三分類,那就要求任何三個(gè)點(diǎn)都不能被shatter。
其他的情況也是一樣:
這里寫圖片描述

能不能shatter,就是看他能不能有2n種分類,三分類就是3n種了。

mH(N)的限制

現(xiàn)在我們確定了,break point絕逼是mH(N)的一個(gè)限制,因?yàn)樵谀莻€(gè)點(diǎn)開(kāi)始就不再是2^n的規(guī)律了。

這里寫圖片描述

我們現(xiàn)在要證明的就是,上界是plot(N)。
對(duì)于mH(N),因?yàn)椴煌哪P蛯?duì)應(yīng)的mH(N)不一樣的,所以直接討論mH(N)是很困難的,我們可以找一個(gè)上界,要討論mH(N)就直接討論上界就好了。上界我們?cè)O(shè)為B(N , K)。
這里寫圖片描述

第一列肯定是1了。
當(dāng)N < K的時(shí)候,肯定是2^n次方
當(dāng)N = k的時(shí)候,這個(gè)時(shí)候是第一次不能被shatter的情況,小于2n,那就設(shè)為2n-1吧。其實(shí)就是算在N個(gè)點(diǎn)K個(gè)點(diǎn)不能被shatter的情況下,有多少種mH(N)。

填上三角其實(shí)很簡(jiǎn)單,現(xiàn)在填下三角了。
先寫出B(4,3)的所以情況:


這里寫圖片描述

把他劃分下:


這里寫圖片描述

上面橙色的作為a,下面紫色的作為b,有:
這里寫圖片描述

所以我們可以得到:
這里寫圖片描述

進(jìn)一步推廣:


這里寫圖片描述

所以整個(gè)就是:
這里寫圖片描述

最后根據(jù)遞推公式,可以得到:

這里寫圖片描述

所以B(N ,K)的上界滿足多項(xiàng)式。
這里寫圖片描述

最后我們就得到M的上界是一個(gè)多項(xiàng)式。
正常的想法是帶回原式:
這里寫圖片描述

但這樣是不行的,因?yàn)橐粋€(gè)M就對(duì)應(yīng)這一個(gè)Ein,但是Eout是無(wú)限個(gè)的,而替換了M成mH(N)之后,這個(gè)Ein就是有限的了,兩個(gè)級(jí)數(shù)不同是不可以進(jìn)行計(jì)算的。所以正確的公式:
這里寫圖片描述

怎么證明就不說(shuō)了。最后的結(jié)果我們叫做VC bound
這里寫圖片描述

總結(jié)一下流程:首先,我們的M是無(wú)限的,現(xiàn)在想要替換成有限個(gè),于是我們找上界,找到了break point,發(fā)現(xiàn)這個(gè)點(diǎn)可以打破指數(shù)增長(zhǎng)的規(guī)律;而對(duì)于不同的維度模型mH(N)是不同的,于是,準(zhǔn)備一個(gè)上界函數(shù)B(N , K),這樣就不用再考慮維度問(wèn)題了,直接找上界函數(shù)即可;之后又找到B(N , K)的上界函數(shù)是一個(gè)多項(xiàng)式。于是就保證了這個(gè)M是可控制的。

VC dimension

這里寫圖片描述

順便說(shuō)一下邊界。
這樣,不等式就只和K,N有關(guān)系了。根據(jù)VCbound理論:如果空間H有break point k,且N足夠大,則根據(jù)VC bound理論,算法有良好的泛化能力;如果在H空間中有一個(gè)g可以使得Ein ≈ 0,則全集數(shù)據(jù)集的錯(cuò)誤率會(huì)偏低。

下面介紹一個(gè)新名詞:VC dimension
VC Dimension就是某假設(shè)集H能夠shatter的最多inputs的個(gè)數(shù),即最大完全正確的分類能力。其實(shí)就break point - 1。因?yàn)閎reak point是最小任何兩個(gè)點(diǎn)都不可被shatter的點(diǎn)。
來(lái)看一下之前的幾個(gè)例子,他們的VC dimension是多少:

這里寫圖片描述
其實(shí)減1就行了。
現(xiàn)在我們用VC dimension來(lái)代替K,那么VC bound的問(wèn)題就轉(zhuǎn)換成了VC dimension和N的問(wèn)題,自然就解決了第一個(gè)問(wèn)題——Eout ≈ Ein。

VC dimension of perceptron

已知Perceptrons的k=4,即dvc=3。根據(jù)VC Bound理論,當(dāng)N足夠大的時(shí)候,Eout(g) ≈ Ein(g)。如果找到一個(gè)g,使Ein(g)≈0,那么就能證明PLA是可以學(xué)習(xí)的。


學(xué)習(xí)流程

這是在2D的情況的情況下,如果是多維的呢?
1D perceptron , dvc = 2;2D perceptron , dvc = 3,我們假設(shè),和維度有關(guān),d維,那就是d+1。
要證明只要分兩步:
dvc >= d+1
dvc <= d+1

證明dvc >= d+1
在d維里面,我們只要找到某一類的d+1個(gè)輸入可以被shatter就可以了。因?yàn)檎业揭粋€(gè)符合的,其他就可以得到dvc >= d+1。
我們構(gòu)造一個(gè)可逆的X矩陣:

這里寫圖片描述

shatter的本質(zhì)是假設(shè)空間H對(duì)X的所有情況的判斷都是對(duì)的,意味著可以找到權(quán)值W滿足W*X = Y,而W = X^-1 * Y,所以可以得到對(duì)于d+1個(gè)輸入是可以被shatter的。

證明dvc <= d+1
在d維里,如果對(duì)于任何的d+2個(gè)inputs,一定不能被shatter,則不等式成立。
我們構(gòu)造一個(gè)任意的矩陣X,其包含d+2個(gè)inputs,該矩陣有d+1列,d+2行。這d+2個(gè)向量的某一列一定可以被另外d+1個(gè)向量線性表示,例如對(duì)于向量Xd+2,可表示為: Xd+2=a1?X1+a2?X2+?+ad+1?Xd+1。所以他的自由度只有d+1,因?yàn)榇_定了d+1個(gè),d+2個(gè)就知道了。
所以綜上所述dvc = d+1

VC dimension的理解

在perceptron中的W,被稱為是features。W就像按鈕一樣可以隨意調(diào)節(jié),所以也叫自由度。VC Dimension代表了假設(shè)空間的分類能力,即反映了H的自由度,產(chǎn)生dichotomy的數(shù)量,也就等于features的個(gè)數(shù)

這里寫圖片描述

比如,2D的perceptron,VC dimension是3,而W就是{W0,W1,W2}。

回到VC bound

上面的VC維告一段落了,回到VC bound。

這里寫圖片描述

這是我們之前推導(dǎo)得到的VC bound。
根據(jù)之前的霍夫丁不等式,如果|Ein?Eout|>?,那么他發(fā)生的概率就不會(huì)超過(guò)δ;反過(guò)來(lái),發(fā)生好的概率就是1-δ。
我們重新推導(dǎo)一下:
這里寫圖片描述

于是我們可以得到:
這里寫圖片描述

事實(shí)上前面的那個(gè)我們并不會(huì)太關(guān)注他,所以有:
這里寫圖片描述

Ω我們稱為是模型的復(fù)雜度,其模型復(fù)雜度與樣本數(shù)量N、假設(shè)空間H(dvc)、?有關(guān)。下面是他們的圖像:
這里寫圖片描述

該圖可以得到如下結(jié)論:
dvc越大,Ein越小,Ω越大(復(fù)雜)。
dvc越小,Ein越大,Ω越小(簡(jiǎn)單)。
隨著dvc增大,Eout會(huì)先減小再增大。
所以并不是越復(fù)雜的模型越好,這其實(shí)就是過(guò)擬合的理論基礎(chǔ),在訓(xùn)練集上表現(xiàn)的很好,但是在測(cè)試集上就很糟糕。看到這我就知道差不多理解了,舒服!

理解實(shí)際問(wèn)題linear regression to linear lassification

線性回歸是用來(lái)做回歸擬合的,能不能做分類呢?學(xué)習(xí)過(guò)程也就是找到g ≈ f的過(guò)程可以不用擔(dān)心,因?yàn)閞egression已經(jīng)證明是可行的了,現(xiàn)在要解決的就是第一個(gè)問(wèn)題---Eout ≈ Ein。
回歸模型的錯(cuò)誤是err = (y - y)2,而分類模型的錯(cuò)誤無(wú)非就是0和1。

這里寫圖片描述

當(dāng)y = 1:
這里寫圖片描述

當(dāng)y = -1
這里寫圖片描述

很明顯,回歸錯(cuò)誤大于分類錯(cuò)誤。
原來(lái)的有:
這里寫圖片描述

自然根據(jù)VC bound原理了。
當(dāng)然上界更加寬松一點(diǎn)了,效果可以沒(méi)有之前的好,但是保證了Eout ≈ Ein的概率。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,797評(píng)論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,179評(píng)論 3 414
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 175,628評(píng)論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 62,642評(píng)論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,444評(píng)論 6 405
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 54,948評(píng)論 1 321
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,040評(píng)論 3 440
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 42,185評(píng)論 0 287
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,717評(píng)論 1 333
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,602評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,794評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,316評(píng)論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,045評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 34,418評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 35,671評(píng)論 1 281
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,414評(píng)論 3 390
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,750評(píng)論 2 370

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