深度學(xué)習(xí)入門

深度學(xué)習(xí)

主要內(nèi)容:

  1. 什么是深度學(xué)習(xí)

  2. 卷積神經(jīng)網(wǎng)絡(luò)的基本流程

    a. 卷積
    b. ReLU
    c. 池化
    d. 全連接

  3. 實(shí)驗(yàn):利用CNN進(jìn)行圖像識(shí)別

  4. 實(shí)驗(yàn):利用CNN進(jìn)行目標(biāo)檢測(cè)

    a. 滑動(dòng)窗口
    b. 候選生成和分類
    c. 全卷積網(wǎng)絡(luò)(FCN)
    d. DetectNet

一 什么是深度學(xué)習(xí)

深度學(xué)習(xí)可用來干什么?

深度學(xué)習(xí)可以用在圖像識(shí)別,自然語言處理等火脉。

深度學(xué)習(xí)的發(fā)展過程

深度學(xué)習(xí)的整個(gè)發(fā)展過程罚勾,可以盜用網(wǎng)上的一張圖來表示:


發(fā)展過程

大概的描述下發(fā)展過程:

  1. 神經(jīng)網(wǎng)絡(luò)最早的起源是感知機(jī):感知機(jī)擁有一個(gè)輸入層泼疑,輸出層和一個(gè)隱含層。輸入的特征向量通過隱含層傳遞到輸出層得到分類結(jié)果。但是感知機(jī)有個(gè)最大的問題是對(duì)復(fù)雜的函數(shù)不能擬合,只能處理線性分類的問題戒职。

  2. 感知機(jī)之后,發(fā)展出多層感知器透乾。通過多個(gè)隱含層和使用sigmoid等連續(xù)函數(shù)模擬響應(yīng)洪燥,解決了“感知機(jī)只能模擬線性分類”的問題。但是隨著層數(shù)增多乳乌,sigmoid帶來的“梯度消失”現(xiàn)象越來越明顯蚓曼。

  3. 之后發(fā)展出ReLU等傳輸函數(shù)代替sigmoid,形成DNN(深度神經(jīng)網(wǎng)絡(luò))的基本形式钦扭。但是全連接DNN的結(jié)構(gòu)帶來參數(shù)數(shù)量膨脹的問題。

  4. 再之后發(fā)展出卷積神經(jīng)網(wǎng)絡(luò)(CNN)床绪,通過卷積池化等操作來解決了參賽膨脹的問題客情。

PS : 以上內(nèi)容均為本人的根據(jù)網(wǎng)上內(nèi)容的理解所寫,不一定準(zhǔn)確癞己。具體的發(fā)展過程膀斋,推薦看看知乎上這篇總結(jié)和CSDN上的這篇文章,講的很清楚痹雅。

二 卷積神經(jīng)網(wǎng)絡(luò)(CNN)

LeNet

LeNet 是推進(jìn)深度學(xué)習(xí)領(lǐng)域發(fā)展的最早的卷積神經(jīng)網(wǎng)絡(luò)之一,以下使用LeNet來講解CNN的整個(gè)過程仰担。

主要流程

LeNet的主要流程為 :
卷積->ReLU->池化->全連接
整個(gè)流程如下圖所示:


流程圖

注意:卷積,ReLU绩社,池化都是可以有多層的摔蓝。

卷積 (濾波)

先說一說卷積層做了什么。我們以一張圖片為例愉耙。
一張5 * 5的黑白圖片可以用5 * 5的矩陣來表示贮尉,如下圖:


原始圖片

我們有另外一個(gè)3 * 3的矩陣(這個(gè)3*3的矩陣我們稱為卷積核,也叫做濾波器)


juanjihe

通過計(jì)算得到一個(gè)另外一個(gè)3 * 3的圖片(我們稱之為特征圖)朴沿,計(jì)算的過程如下圖所示:
[圖片上傳失敗...(image-5fb30b-1517135781556)]

計(jì)算過程為:濾波器以一定的步長(該例子中的步長為1)猜谚,從左至右的滑動(dòng)败砂。每次得到特征圖的一個(gè)值,該值為每個(gè)位置上對(duì)應(yīng)點(diǎn)的乘積的和魏铅。比如該圖中濾波器為矩陣((1昌犹,0,1)览芳,(0斜姥,1,0)路操,(1疾渴,0,1))屯仗,原始圖片的第一個(gè)矩陣為:((1搞坝,1,1)魁袜,(0桩撮,1,1)峰弹,(0店量,0,1))鞠呈。所以得到特征圖的第一個(gè)值為:(1 * 1 + 0 * 1 + 1 * 1) + (0 * 0 + 1 * 1 + 0 * 1) + (1 * 0 + 0 * 0 + 1 * 1)= 4

為什么要進(jìn)行卷積呢融师?因?yàn)榫矸e核在原始圖片上滑動(dòng)時(shí)會(huì)有重疊的部分,這樣新生成的矩陣保留了空間信息蚁吝。
我們使用一個(gè)比較直觀的例子來看看卷積層做了什么旱爆?
[圖片上傳失敗...(image-4bca76-1517135781556)]
該圖中,我們選取不同的濾波器會(huì)得到不同的特征圖窘茁。
第1幅圖中怀伦,我們選取的Filter對(duì)圖像進(jìn)行濾波之后得到的圖片和原始的圖片是一致的。
第2~4幅圖片中山林,我們得到圖片是原始圖片中的邊界
第5幅圖房待,得到是原始圖片的銳化
第6,7幅圖驼抹,得到的是原始圖片的模糊化之后的圖片.

[站外圖片上傳中...(image-e00c9d-1517135781556)]
該圖中桑孩,非常直觀的展示了兩個(gè)濾波器從原始圖片滑動(dòng),得到兩張不同的特征圖框冀。

修正線性單元 (Rectified linear unit洼怔,ReLU)

由于隱藏層的變換為線性變換,即使有多個(gè)隱藏層左驾,最終得到的依然是線性函數(shù)镣隶,為了擬合復(fù)雜的函數(shù)极谊,引入非線性操作,我們?cè)诿看尉矸e操作后使用ReLU操作安岂。
ReLU操作如下圖所示:


ReLU

池化 (下采樣)

在通過卷積得到特征圖之后轻猖,理論上,我們就可以通過特征來訓(xùn)練分類模型域那。但是由于特征的維度太大咙边,導(dǎo)致計(jì)算量太大。比如:對(duì)于一個(gè) 96X96 像素的圖像次员,假設(shè)我們已經(jīng)學(xué)習(xí)得到了400個(gè)定義在8*8輸入上的特征败许,每一個(gè)特征和圖像卷積都會(huì)得到一個(gè) (96 ? 8 + 1) * (96 ? 8 + 1) = 7921 維的卷積特征,由于有 400 個(gè)特征淑蔚,所以每個(gè)樣例 (example) 都會(huì)得到一個(gè) 89 * 89 * 400=3168400 維的卷積特征向量市殷。學(xué)習(xí)一個(gè)擁有超過300W 特征輸入的分類器十分不便,并且容易出現(xiàn)過擬合 (over-fitting)刹衫。

什么是過度擬合醋寝?


過度擬合

{:width="50%"}
圖片來自網(wǎng)絡(luò)

如上圖,第三幅圖片表示過度擬合带迟。

所以我們通過池化操作來降低特征的維度音羞。通常是通過對(duì)一定區(qū)域進(jìn)行采樣,用采用的值代表整個(gè)區(qū)域仓犬。
比如通過最大化的方式進(jìn)行池化的過程如下圖:


池化過程

在上圖中嗅绰,特征圖為8 * 8的矩陣,我們通過一個(gè)2*2的窗口對(duì)特征圖進(jìn)行采樣搀继,每次選取窗口內(nèi)最大的值代表整個(gè)窗口办陷。這樣就將8 * 8的矩陣變?yōu)榱? * 2的矩陣。

分類(全連接層)

全連接層就是傳統(tǒng)的多層感知器律歼,基于訓(xùn)練數(shù)據(jù)訓(xùn)練的模型參數(shù),對(duì)數(shù)據(jù)的圖像進(jìn)行分類啡专。

分類

對(duì)傳統(tǒng)的多層感知器不了解的話险毁,可以看看這篇文章:A Quick Introduction to Neural Networks

三 實(shí)驗(yàn):利用CNN進(jìn)行圖像識(shí)別

通過一個(gè)圖像識(shí)別的實(shí)驗(yàn)來看看整個(gè)過程。ps:實(shí)驗(yàn)使用DIGITS(nvidia的開源軟件)

訓(xùn)練網(wǎng)絡(luò)識(shí)別手寫數(shù)字

我們要訓(xùn)練一個(gè)深層神經(jīng)網(wǎng)絡(luò)識(shí)別手寫體數(shù)字0-9们童。這個(gè)挑戰(zhàn)性問題被稱為“圖像分類”畔况,我們的網(wǎng)絡(luò)將能夠決定哪一個(gè)圖像屬于哪個(gè)類或群體。

加載和整理數(shù)據(jù)

加載第一個(gè)數(shù)據(jù)集


22

注意以下幾點(diǎn):

  1. 數(shù)據(jù)是有標(biāo)簽的慧库。在數(shù)據(jù)中每個(gè)圖像配一個(gè)標(biāo)簽跷跪,告訴計(jì)算機(jī),圖片所代表的數(shù)字齐板,即0-9吵瞻。我們基本上提供了問題的答案葛菇,或者,正如我們的網(wǎng)絡(luò)將看到的橡羞,每個(gè)輸入都有所期望的輸出眯停。這些是我們的網(wǎng)絡(luò)將從中學(xué)習(xí)的“示例”。
  2. 每個(gè)圖像只不過是白背景上的一個(gè)數(shù)字卿泽。圖像分類是一個(gè)識(shí)別圖像中主要物體的任務(wù)莺债。對(duì)于第一次嘗試,我們使用只包含一個(gè)對(duì)象的圖像签夭。在后續(xù)的試驗(yàn)中我們將建立應(yīng)對(duì)混亂的數(shù)據(jù)的能力齐邦。

此處所用數(shù)據(jù)來自 MNIST 創(chuàng)立的MNIST數(shù)據(jù)集。 其在很大程度上被認(rèn)為是深入學(xué)習(xí)領(lǐng)域的“Hello World”或入門第租。

從數(shù)據(jù)中學(xué)習(xí) - 訓(xùn)練神經(jīng)網(wǎng)絡(luò)

接下來, 將使用我們的數(shù)據(jù)來訓(xùn)練一個(gè)人工神經(jīng)網(wǎng)絡(luò)措拇。 就像生物的靈感一樣,人腦煌妈、人工神經(jīng)網(wǎng)絡(luò)就是學(xué)習(xí)機(jī)器儡羔。和大腦一樣,這些“網(wǎng)絡(luò)”只能夠解決有經(jīng)驗(yàn)的問題璧诵,在這種情況下汰蜘,可以與數(shù)據(jù)交互。在整個(gè)實(shí)驗(yàn)中之宿,我們將把“網(wǎng)絡(luò)”作為未經(jīng)訓(xùn)練的人工神經(jīng)網(wǎng)絡(luò)族操,把“模型”作為經(jīng)過訓(xùn)練的網(wǎng)絡(luò)(通過接觸數(shù)據(jù))。

實(shí)驗(yàn)截圖

實(shí)驗(yàn)截圖

完成后比被,右邊的訓(xùn)練圖表應(yīng)該是類似下圖:

訓(xùn)練結(jié)果圖

報(bào)告包含三個(gè)量:訓(xùn)練損失色难、驗(yàn)證損失和準(zhǔn)確性。訓(xùn)練和驗(yàn)證損失的值應(yīng)該從一個(gè)epoch降低到另一個(gè)epoch等缀,盡管它們可能會(huì)跳來跳去枷莉。準(zhǔn)確度是模型對(duì)驗(yàn)證數(shù)據(jù)進(jìn)行正確分類的能力的度量。如果將鼠標(biāo)懸停在任何數(shù)據(jù)點(diǎn)上尺迂,就會(huì)看到其精確值笤妙。在這種情況下,最后一個(gè)epoch的準(zhǔn)確率大約是87%噪裕。由于最初的網(wǎng)絡(luò)是隨機(jī)生成的蹲盘,所以結(jié)果可能與這里顯示的稍有不同。

一個(gè)epoch是學(xué)習(xí)機(jī)器所需數(shù)據(jù)的完整表示膳音。讓我們了解一個(gè)epoch中發(fā)生的事情召衔。

  1. 神經(jīng)網(wǎng)絡(luò)獲取第一幅圖像(或一小組圖像),并預(yù)測(cè)它是什么(或它們是什么)祭陷。
  2. 將它們的預(yù)測(cè)與圖像的實(shí)際標(biāo)簽進(jìn)行比較苍凛。
  3. 網(wǎng)絡(luò)使用預(yù)測(cè)和實(shí)際標(biāo)簽之間的差異的信息來自我調(diào)整趣席。
  4. 然后網(wǎng)絡(luò)使用下一個(gè)圖像(或一組圖像)并做另一個(gè)預(yù)測(cè)。
  5. 將這個(gè)新的(希望更接近的)預(yù)測(cè)與圖像的實(shí)際標(biāo)簽進(jìn)行比較毫深。
  6. 網(wǎng)絡(luò)使用這個(gè)新預(yù)測(cè)和實(shí)際標(biāo)簽之間的差值的信息來再次調(diào)整吩坝。
  7. 經(jīng)過一輪輪的這種調(diào)整,直到網(wǎng)絡(luò)查看到每一副圖像為止哑蔫。

相比于人使用抽認(rèn)卡進(jìn)行學(xué)習(xí):

  1. 一個(gè)學(xué)生看第一張抽認(rèn)卡钉寝,猜測(cè)另一面是什么。
  2. 他們檢查另一側(cè)闸迷,看看猜測(cè)內(nèi)容有多接近嵌纲。
  3. 他們根據(jù)這些新信息來調(diào)整自己的理解。
  4. 然后腥沽,學(xué)生看著下一張卡片逮走,做出另一個(gè)預(yù)測(cè)。
  5. 將這個(gè)新的(希望更接近的)預(yù)測(cè)與卡背面的答案進(jìn)行比較今阳。
  6. 學(xué)生使用這種新的預(yù)測(cè)值和正確答案之間的差異信息师溅,再次進(jìn)行調(diào)整。
  7. 經(jīng)過一輪輪的這種調(diào)整盾舌,直到學(xué)生查看到每一張抽認(rèn)卡為止墓臭。

我們將把這個(gè)圖作為改進(jìn)的工具,但是最重要的一點(diǎn)是經(jīng)過5分鐘的訓(xùn)練妖谴,我們已經(jīng)建立了一個(gè)模型窿锉,它可以將手寫數(shù)字的圖像映射到它們所代表的數(shù)字,準(zhǔn)確率大約為87%膝舅!

四 實(shí)驗(yàn):利用CNN進(jìn)行目標(biāo)檢測(cè)

概述

在本次實(shí)驗(yàn)中我們將通過多個(gè)實(shí)例說明如何使用DIGITS和 Caffe檢測(cè)航拍圖像中的目標(biāo)嗡载。具體使用的是NOAA的露脊鯨識(shí)別競賽(https://www.kaggle.com/c/noaa-right-whale-recognition) 的例子,參賽者被要求在海洋的航空影像中識(shí)別到鯨魚仍稀。

圖1顯示了一個(gè)包含母露脊鯨和幼鯨的示例圖像:


我們將解決一個(gè)稍有不同的問題洼滚。不僅僅是要識(shí)別鯨魚的存在,我們還要訓(xùn)練一個(gè)卷積神經(jīng)網(wǎng)絡(luò)(CNN)來定位鯨魚在圖像中的位置技潘。不論鯨魚在不在圖像里遥巴,這類定位問題時(shí)常被稱為目標(biāo)檢測(cè)。在最初的競賽中崭篡,許多成功的參賽選手發(fā)現(xiàn),在試圖用裁剪和標(biāo)準(zhǔn)化的圖像來識(shí)別鯨魚之前吧秕,首先在圖像中發(fā)現(xiàn)并定位鯨魚琉闪,可以提高他們的得分。

目標(biāo)檢測(cè)方法1:滑動(dòng)窗口

有多種方法可以用卷積神經(jīng)網(wǎng)絡(luò)(CNN)來檢測(cè)和定位圖像中的物體砸彬。最簡單的方法是首先在可以區(qū)分目標(biāo)和非目標(biāo)實(shí)體的圖像塊上訓(xùn)練CNN分類器颠毙。圖2顯示了一個(gè)CNN的架構(gòu)斯入,其能夠從背景圖塊中區(qū)分出鯨魚的斑塊。


cnn分類器

有哪些方法可以提高該模型的分類精度蛀蜜?
事實(shí)上刻两,我們使用一個(gè)滑動(dòng)窗口與非重疊的柵格意味著它很可能是我們的一些柵格只能部分包含一個(gè)鯨魚的面部,這會(huì)導(dǎo)致錯(cuò)誤分類滴某。不幸的是磅摹,如果我們?cè)黾恿酥丿B的柵格,這個(gè)滑動(dòng)窗口方法的運(yùn)算時(shí)間將急劇增加霎奢。我們還需要一個(gè)解決方案將重疊分類結(jié)合到最終分類“熱圖”中去-一種流行的方法是非最大抑制(NMS)算法户誓。

正如我們所看到的這種滑動(dòng)窗口方法的優(yōu)點(diǎn)是,我們可以訓(xùn)練一個(gè)檢測(cè)器幕侠,只使用基于局部塊來訓(xùn)練數(shù)據(jù)(這種方法具有更廣泛的使用)帝美。但也有幾個(gè)缺點(diǎn):

  1. 預(yù)測(cè)速度慢,特別是柵格之間存在較大的重疊晤硕,導(dǎo)致大量冗余的計(jì)算
  2. 對(duì)于產(chǎn)生一個(gè)平衡的訓(xùn)練數(shù)據(jù)集是一個(gè)挑戰(zhàn)悼潭,非常容易造成誤報(bào)造成混亂
  3. 難以達(dá)到目標(biāo)檢測(cè)的尺度不變性

目標(biāo)檢測(cè)方法2:候選生成和分類

我們不采用以滑動(dòng)窗口的方式實(shí)現(xiàn)CNN分類,您可以使用一些更便宜舞箍、更靈敏的樣式舰褪,但容易產(chǎn)生候選檢測(cè)誤報(bào)的算法。用于這個(gè)流程的算法的例子是級(jí)聯(lián)分類器和選擇性搜索创译。將這些候選檢測(cè)體傳遞給CNN按目標(biāo)類型進(jìn)行分類或者作為背景噪聲過濾掉抵知。

這些候選生成算法,通常會(huì)生成比在滑動(dòng)窗口方法中測(cè)試所需要的柵格要少得多的圖像塊來通過CNN分類软族。此外刷喜,這些候選的檢測(cè)可以進(jìn)行批處理后輸入CNN,以便從并行運(yùn)算中得到性能提升立砸。

圖3顯示了如何在車輛檢測(cè)場景中使用此方法掖疮。


帶有候選生成預(yù)處理的CNN分類器

這種方法的優(yōu)點(diǎn)是:

候選檢測(cè)體的數(shù)目變少,使得測(cè)試加速
根據(jù)候選生成算法颗祝,我們可以獲得更精確的目標(biāo)定位
這種方法的缺點(diǎn)是:

多級(jí)處理通道變得更加復(fù)雜
需要候選生成構(gòu)建或訓(xùn)練一個(gè)附加模型
較高的誤報(bào)率
基于候選生成的數(shù)量浊闪,推理時(shí)間是一個(gè)變量

目標(biāo)檢測(cè)方法3:全卷積網(wǎng)絡(luò)(FCN)

正如前面提到的,在重疊窗口的滑動(dòng)窗口法中存在大量冗余計(jì)算螺戳。幸好有一個(gè)巧妙的方法能避免這種冗余搁宾。對(duì)于像Alexnet這樣的卷積分類的末級(jí)通常采用全連接層,可以很簡單的用卷積層替換倔幼。這些替換層具有與前一層的特征映射輸出相同的卷積濾波器盖腿,濾波器的數(shù)目等于它替換的全連接層中的神經(jīng)元的數(shù)目。這種替換的好處是可以將不同大小的圖像輸入到網(wǎng)絡(luò)中進(jìn)行分類。如果輸入圖像小于網(wǎng)絡(luò)的期望圖像大恤娓(稱為網(wǎng)絡(luò)的感受野)鸟款,那么我們?nèi)匀荒軌颢@得這副圖像的單一分類。然而茂卦,如果圖像比感受野大何什,我們將得到一個(gè)熱圖的分類,非常像我們從滑動(dòng)窗口獲取分類的方法等龙。

讓我們來看看Alexnet的fc6 層是如何工作的处渣。 您可以用DIGITS來檢查到 fc6輸入形狀: 使用您在這個(gè)實(shí)驗(yàn)第一部分訓(xùn)練得到的CNN分類器, 勾選 "Show visualizations and statistics" 來測(cè)試任意圖像。 您將看到如下圖4所示:


Alexnet FC6層

可以看到fc6從pool5接收輸入. 在pool5 的激活形狀是256 * 6 * 6.

在fc6的激活的形狀是4096而咆,這意味著fc6有4096個(gè)輸出神經(jīng)元霍比。把fc6轉(zhuǎn)化為一個(gè)等效的卷積層,我們將創(chuàng)建一個(gè)6×6卷積核的卷積層和4096輸出的特征圖暴备。

如果沒有看明白悠瞬,可以參考這個(gè)blog

目標(biāo)檢測(cè)方法4:DetectNet

最后一類目標(biāo)檢測(cè)方法是訓(xùn)練一個(gè)CNN網(wǎng)絡(luò),以便同時(shí)對(duì)在一副圖像中每個(gè)位置可能出現(xiàn)的目標(biāo)進(jìn)行分類涯捻。并通過回歸法預(yù)測(cè)該目標(biāo)的相應(yīng)邊界框浅妆。例如:

DetectNet

這種方法有很大的優(yōu)點(diǎn):

只有一次的簡單檢測(cè)、分類和邊界框回歸反饋通道
非常低的延遲
由于強(qiáng)而大量的背景訓(xùn)練數(shù)據(jù)障癌,誤報(bào)率非常低
為了訓(xùn)練這種類型的網(wǎng)絡(luò)凌外,需要專門的訓(xùn)練數(shù)據(jù)涛浙,所有感興趣的目標(biāo)都用精確的邊界框標(biāo)記康辑。這種類型的訓(xùn)練數(shù)據(jù)比較稀少按咒,成本也很高两波;然而,如果這種類型的數(shù)據(jù)可以用于目標(biāo)檢測(cè)問題乍狐,這幾乎是最好的方法。圖6顯示了用于車輛檢測(cè)場景的標(biāo)記訓(xùn)練樣本的示例。

三個(gè)類別的目標(biāo)檢測(cè)場景的標(biāo)簽數(shù)據(jù)

最近發(fā)布的DIGITS 4增加了這類模型訓(xùn)練的功能,并提供了一個(gè)新的 “standard network” -稱為 DetectNet - 作為例子凤薛。我們將使用 DetectNet在全尺寸海洋航拍圖像中訓(xùn)練露脊鯨檢測(cè)器活玲。

在訓(xùn)練單個(gè)CNN作為目標(biāo)檢測(cè)和邊界框回歸中主要面臨的挑戰(zhàn)是處理不同圖像中存在不同數(shù)量的目標(biāo)這一情形涣狗,在某些情況下,圖像中可能一個(gè)目標(biāo)對(duì)象都沒有舒憾。 DetectNet通過將一副具有一系列邊界框的注釋的圖像轉(zhuǎn)換成一個(gè)固定維度的描述屑柔。我們直接通過CNN嘗試預(yù)測(cè)。圖6顯示了在一個(gè)單獨(dú)的分類目標(biāo)檢測(cè)問題中珍剑,數(shù)據(jù)是如何映射到這個(gè)描述的掸宛。

DetectNet數(shù)據(jù)描述

DetectNet實(shí)際上是上面所述的FCN,但是需要配置以產(chǎn)生精確的數(shù)據(jù)描述作為它的輸出招拙。DetectNet大部分層是著名的GoogLeNet網(wǎng)絡(luò)唧瘾。

DetectNet訓(xùn)練構(gòu)架

參考資料

強(qiáng)烈推薦:

  1. An Intuitive Explanation of Convolutional Neural Networks
  2. 池化
  3. A Quick Introduction to Neural Networks
  4. NVLABS
  5. 神經(jīng)網(wǎng)絡(luò)技術(shù)發(fā)展的脈絡(luò)
  6. 深度學(xué)習(xí)的發(fā)展歷史
  7. 全卷積網(wǎng)絡(luò) FCN 詳解
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市别凤,隨后出現(xiàn)的幾起案子饰序,更是在濱河造成了極大的恐慌,老刑警劉巖规哪,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件求豫,死亡現(xiàn)場離奇詭異,居然都是意外死亡诉稍,警方通過查閱死者的電腦和手機(jī)蝠嘉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來杯巨,“玉大人蚤告,你說我怎么就攤上這事》” “怎么了杜恰?”我有些...
    開封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵获诈,是天一觀的道長。 經(jīng)常有香客問我心褐,道長舔涎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任逗爹,我火速辦了婚禮终抽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘桶至。我一直安慰自己,他們只是感情好匾旭,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開白布镣屹。 她就那樣靜靜地躺著,像睡著了一般价涝。 火紅的嫁衣襯著肌膚如雪女蜈。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天色瘩,我揣著相機(jī)與錄音伪窖,去河邊找鬼。 笑死居兆,一個(gè)胖子當(dāng)著我的面吹牛覆山,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播泥栖,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼簇宽,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了吧享?” 一聲冷哼從身側(cè)響起魏割,我...
    開封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎钢颂,沒想到半個(gè)月后钞它,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡殊鞭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年遭垛,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片操灿。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡耻卡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出牲尺,到底是詐尸還是另有隱情卵酪,我是刑警寧澤幌蚊,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站溃卡,受9級(jí)特大地震影響溢豆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜瘸羡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一漩仙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧犹赖,春花似錦队他、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至粘昨,卻和暖如春垢啼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背张肾。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來泰國打工芭析, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人吞瞪。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓馁启,卻偏偏與公主長得像,于是被迫代替她去往敵國和親芍秆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子进统,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

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