第四章 使用JAVA構(gòu)建神經(jīng)網(wǎng)絡(luò)

??構(gòu)建一個(gè)神經(jīng)網(wǎng)絡(luò)

?激活函數(shù)

??Encog持久化

?在代碼里使用Encog Analyst


這章將展示用Encog怎樣構(gòu)造前饋與簡單遞歸神經(jīng)網(wǎng)絡(luò),以及在最后部分怎樣保存這些神經(jīng)網(wǎng)絡(luò)污桦。創(chuàng)建神經(jīng)網(wǎng)絡(luò)類型使用BasicNetwork和BasicLayer這兩個(gè)類桶良,除了這兩個(gè)類龄减,還使用了激活函數(shù),激活函數(shù)的作用也將討論奥务。

考慮到神經(jīng)網(wǎng)絡(luò)需要花費(fèi)大量時(shí)間去訓(xùn)練,因此保存你的神經(jīng)網(wǎng)絡(luò)是很重要的抒抬,Encog神經(jīng)網(wǎng)絡(luò)能夠使用java內(nèi)置的序列化來持久化马篮,這種持久性能夠通過寫入神經(jīng)網(wǎng)絡(luò)的EG文件來實(shí)現(xiàn)映之,這是一種跨平臺的文本文件拦焚,這章將介紹這兩種持久化方式。

在上一章中杠输,使用EncogAnalyst來自動規(guī)范化數(shù)據(jù)赎败,EncogAnalyst也能夠自動化創(chuàng)建基于CSV數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)。這章將展示怎樣從代碼中使用Encog?Analyst創(chuàng)建神經(jīng)網(wǎng)絡(luò)蠢甲。

4.1構(gòu)建一個(gè)神經(jīng)網(wǎng)絡(luò)

能夠使用BasicLayer和BasicNetwork對象創(chuàng)建一個(gè)簡單的神經(jīng)網(wǎng)絡(luò)僵刮,以下代碼創(chuàng)建了幾個(gè)BasicLayer對象,默認(rèn)為雙曲正切激活函數(shù)鹦牛。


這個(gè)神經(jīng)網(wǎng)絡(luò)將有兩個(gè)神經(jīng)元的輸入層搞糕,三個(gè)神經(jīng)元的隱藏層和一個(gè)單一神經(jīng)元的輸出層,要使用除了雙曲正切函數(shù)以外的激活函數(shù)曼追,可以使用以下類似的代碼:


Sigmoid激活函數(shù)通過調(diào)用AddLayer傳遞給隱藏層和輸出層窍仰,True值指定這個(gè)BasicLayer應(yīng)該有一個(gè)偏執(zhí)神經(jīng)元,輸出層沒有偏執(zhí)神經(jīng)元礼殊,以及輸入層沒有激活函數(shù)驹吮,這是因?yàn)槠珗?zhí)神經(jīng)元影響下一層,以及激活函數(shù)影響來自前一層的數(shù)據(jù)晶伦。

除非Encog使用在一些實(shí)驗(yàn)碟狞,否則總是需要使用一個(gè)偏執(zhí)神經(jīng)元,偏執(zhí)神經(jīng)元允許激活函數(shù)轉(zhuǎn)移原點(diǎn)零點(diǎn)婚陪,這使得當(dāng)輸入不是0的時(shí)候偏執(zhí)神經(jīng)元允許生成一個(gè)0值族沃,以下URL提供了更多關(guān)于偏執(zhí)神經(jīng)元重要的數(shù)學(xué)原理:

http://www.heatonresearch.com/wiki/Bias

激活函數(shù)附加到層以及用來縮放來自一個(gè)層的數(shù)據(jù),Encog將層的激活函數(shù)應(yīng)用到此層將要輸出的數(shù)據(jù)上。如果在BasicLayer中沒有指定激活函數(shù)脆淹,默認(rèn)使用雙曲正切函數(shù)智润。

還可以創(chuàng)建上下文層,上下文層能夠使用來創(chuàng)建一個(gè)Elman或者Jordan樣式的神經(jīng)網(wǎng)絡(luò)未辆,以下代碼能夠使用來創(chuàng)建一個(gè)Elman神經(jīng)網(wǎng)絡(luò)窟绷。


注意hidden.setContextFedBy這行,這里創(chuàng)建一個(gè)從輸出層到隱藏層的上下文鏈接咐柜,隱藏層總是傳遞上一次迭代的輸出兼蜈,這是一個(gè)創(chuàng)建Elman樣式的神經(jīng)網(wǎng)絡(luò),Elman和Jordan網(wǎng)絡(luò)將在第七章介紹拙友。

4.2激活函數(shù)的作用

上一節(jié)介紹了怎樣分配激活函數(shù)給層为狸,許多神經(jīng)網(wǎng)絡(luò)體系結(jié)構(gòu)使用激活函數(shù)來縮放層的輸出,Encog提供大量不同的激活函數(shù)能夠使用來構(gòu)造神經(jīng)網(wǎng)絡(luò)遗契,下一節(jié)將介紹激活函數(shù)辐棒。

激活函數(shù)附加到層以及用來縮放來自一個(gè)層的數(shù)據(jù),Encog層的激活函數(shù)適用于輸出的數(shù)據(jù)牍蜂。如果沒有為BasicLayer指定一個(gè)激活函數(shù)漾根,將使用默認(rèn)的雙曲正切激活函數(shù),所有激活函數(shù)的類必須實(shí)現(xiàn)ActivationFunction接口鲫竞。

激活函數(shù)在訓(xùn)練神經(jīng)網(wǎng)絡(luò)任務(wù)中起到了非常重要的作用辐怕,傳播訓(xùn)練,這個(gè)將在下一章介紹从绘,對于傳播訓(xùn)練寄疏,激活函數(shù)要求有一個(gè)有效的導(dǎo)數(shù),并非所有的激活函數(shù)都有有效的導(dǎo)數(shù)僵井,確定一個(gè)激活函數(shù)有一個(gè)導(dǎo)數(shù)也許是選擇一個(gè)激活函數(shù)的重要因素陕截。

4.3?Encog的激活函數(shù)

下一節(jié)將介紹encog的每一個(gè)激活函數(shù),選擇一個(gè)激活函數(shù)這里有幾個(gè)因素要考慮批什,首先农曲,一個(gè)很重要的是要考慮如何使用神經(jīng)網(wǎng)絡(luò)類型決定所需的激活功能。第二渊季,考慮神經(jīng)網(wǎng)絡(luò)使用傳播訓(xùn)練的必要性朋蔫,傳播訓(xùn)練要求激活函數(shù)提供一個(gè)導(dǎo)數(shù)。最終却汉,考慮使用的數(shù)值范圍驯妄,一些激活函數(shù)僅僅處理正值或者特定范圍的數(shù)值。


4.3.1 ActivationBiPolar?

ActivationBiPolar激活函數(shù)使用要求為雙極值的神經(jīng)網(wǎng)絡(luò)合砂,雙極值的值為true或者是false這兩種之一青扔,雙極值的1代表為true,?雙極值的-1代表為false,?雙極激活函數(shù)確保了傳遞給它的任何值都為1或者是-1。雙極激活函數(shù)代碼如下:


如上所示,這個(gè)激活函數(shù)的輸出僅限為1或者是-1微猖。這種激活函數(shù)是用于神經(jīng)網(wǎng)絡(luò)需要從一層到另一層雙極輸出谈息。這個(gè)雙極值它沒有導(dǎo)數(shù)函數(shù),因此這個(gè)激活函數(shù)不能使用于傳播訓(xùn)練凛剥。

?

4.3.2 ActivationCompetitive

ActivationCompetitive函數(shù)用于迫使只有一組神經(jīng)元獲勝侠仇, 獲勝者是產(chǎn)出最高的神經(jīng)元群。每個(gè)神經(jīng)元的輸出被保存在傳遞給這個(gè)函數(shù)的數(shù)組中犁珠,獲勝神經(jīng)元組的大小是可定義的逻炊。函數(shù)首先決定獲勝者。所有非獲勝神經(jīng)元將被設(shè)置為0犁享。獲獎?wù)叨加邢嗤闹涤嗨兀@是獲勝產(chǎn)出總和的一個(gè)劃分。

這個(gè)函數(shù)首先創(chuàng)建了一個(gè)數(shù)組炊昆,將跟蹤每個(gè)神經(jīng)元是否已經(jīng)被選為獲勝者之一桨吊。獲勝者的數(shù)量也計(jì)算在內(nèi):


首先,循環(huán)maxWiners多次已發(fā)現(xiàn)獲勝者的數(shù)量:


現(xiàn)在凤巨,獲勝者必須確定视乐,循環(huán)所有神經(jīng)網(wǎng)輸出已找到最大的輸出:


如果這個(gè)神經(jīng)元沒有獲勝,它已經(jīng)是最大的輸出以及沒有其他神經(jīng)元比這個(gè)更高磅甩,那這可能是一個(gè)獲勝者:


保留被發(fā)現(xiàn)的獲勝者的總和炊林,并標(biāo)記這個(gè)神經(jīng)元為獲勝者,把它標(biāo)記為勝利者將防止它在此被選中卷要。獲勝者產(chǎn)出的總和最終將在優(yōu)勝者中分配。


現(xiàn)在確定了獲勝者的正確數(shù)量独榴,必須調(diào)整獲勝者和非獲勝者的值僧叉。所有的非獲勝者將設(shè)置為0,獲勝者將分享所有獲勝者的值總和棺榔。


這類激活函數(shù)能夠用在競爭型學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)瓶堕,例如自組織映射,這個(gè)激活函數(shù)沒有導(dǎo)數(shù)症歇,因此它不能用于傳播訓(xùn)練郎笆。

?

4.3.3 ActivationLinear

ActivationLinear函數(shù)實(shí)際上沒有激活功能,它簡單實(shí)現(xiàn)了線性函數(shù)忘晤,線性函數(shù)如下公式4.1所示:


圖4.1顯示了線性函數(shù)的簡單圖像:


線性激活函數(shù)的java實(shí)現(xiàn)非常簡單宛蚓,它什么也不做


線性函數(shù)主要使用在那些沒有激活函數(shù)的特定神經(jīng)網(wǎng)絡(luò)類型,例如自組織映射设塔,線性激活函數(shù)有一個(gè)常數(shù)導(dǎo)數(shù)凄吏,因此他能夠使用于傳播訓(xùn)練,傳播訓(xùn)練前饋神經(jīng)網(wǎng)絡(luò)的輸出層有時(shí)使用線性層

?

4.3.4 ActivationLOG

ActivationLog激活函數(shù)使用的是log函數(shù)算法痕钢,以下顯示了這個(gè)激活函數(shù)的計(jì)算:


產(chǎn)生的這條曲線類似雙曲正切激活函數(shù)图柏,那個(gè)將在本章后面討論。圖4.2顯示了對數(shù)激活函數(shù)的圖像任连。


對數(shù)激活函數(shù)能夠使用在防止飽和蚤吹。一個(gè)神經(jīng)元的隱藏節(jié)點(diǎn)被認(rèn)為過飽和,在給定的一組輸入時(shí)候随抠,輸出在大多數(shù)情況下大約為1或-1距辆。這能夠顯著放慢訓(xùn)練,當(dāng)選擇雙曲正切函數(shù)訓(xùn)練不成功的時(shí)候暮刃,這個(gè)對數(shù)激活函數(shù)是一個(gè)合適的選擇跨算。

正如圖4.2所示,對數(shù)激活函數(shù)由正和負(fù)兩種值椭懊,這意味著它可以使用于那些期望需要負(fù)值輸出的神經(jīng)網(wǎng)絡(luò)诸蚕,一些激活函數(shù),例如sigmoid激活函數(shù)僅僅只產(chǎn)生正的輸出氧猬,對數(shù)激活函數(shù)有一個(gè)導(dǎo)數(shù)背犯,因此它能夠使用于傳播訓(xùn)練。

?

4.3.5 ActivationSigmoid

ActivationSigmoid激活函數(shù)應(yīng)該僅僅使用于當(dāng)期望輸出為正值的時(shí)候盅抚,因?yàn)锳ctivationSigmoid激活函數(shù)僅僅產(chǎn)生正的輸出漠魏。ActiviationSigmoid激活函數(shù)的方程式如下所示:


ActivationSigmoid函數(shù)將負(fù)的范圍變?yōu)檎姆秶H鐖D4.3所示妄均,顯示了sigmoid函數(shù)的圖像:


ActivationSigmoid函數(shù)是前饋和簡單遞歸神經(jīng)網(wǎng)絡(luò)很常見的一個(gè)選擇柱锹。然而,非常必要的是訓(xùn)練數(shù)據(jù)不期望負(fù)的輸出丰包,如果要求有負(fù)的輸出禁熏,雙曲正切激活函數(shù)也許是一個(gè)最好的解決方式。

?

4.3.6 ActivationSoftMax

ActivationSoftMax激活函數(shù)將縮放所有的輸入值讓所有之和等于1邑彪,ActivationSoftMax有時(shí)用于一個(gè)隱藏層的激活函數(shù)瞧毙。

激活函數(shù)從所有神經(jīng)元輸出的自然指數(shù)相加開始:


然后,每個(gè)神經(jīng)元的輸出根據(jù)這個(gè)和寄症,由此產(chǎn)生總和為1?的輸出:


ActivationSoftMax通常用于神經(jīng)網(wǎng)絡(luò)的輸出層分類宙彪。

?

4.3.7 ActivationTANH

ActivationTANH激活函數(shù)使用雙曲正切函數(shù),雙曲正切函數(shù)也許是最常用的激活函數(shù)有巧,因?yàn)樗姓?fù)兩個(gè)范圍释漆,雙曲正切函數(shù)是Encog默認(rèn)的激活函數(shù),雙曲正切函數(shù)的公式如下公式4.3所示:


圖4.4顯示的雙曲正切函數(shù)圖像可以看到雙曲正切激活函數(shù)事實(shí)上接受正負(fù)兩個(gè)值剪决。


雙曲正切函數(shù)在前饋和簡單遞歸神經(jīng)網(wǎng)絡(luò)中是非常常用的選擇灵汪。雙曲正切函數(shù)有一個(gè)導(dǎo)數(shù)檀训,因此他能夠用于傳播訓(xùn)練。

4.4?Encog持久化

訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)需要花費(fèi)相當(dāng)長的時(shí)間享言,重要的是采取措施保證你的工作在網(wǎng)絡(luò)訓(xùn)練完成后保存下來峻凫,Encog對于數(shù)據(jù)的保存提供了幾種方式,與兩種最主要的存儲Encog數(shù)據(jù)對象的方式览露,Encog提供了基于文件的持久化或者是java自身的持久化荧琼。

Java提供自己序列化對象的方式,稱為java序列化差牛,java序列化允許大量不同的對象類型寫入到一個(gè)流命锄,例如磁盤文件,java序列化Encog和序列化其他java對象一樣偏化,每一個(gè)重要的Encog對象支持序列化實(shí)現(xiàn)Serializable接口脐恩。

Java序列化是一種存儲Encog對象的快速方式,然而侦讨,它有一些重要的局限性驶冒,創(chuàng)建java序列化文件只能用于Encog的java平臺,它們將不兼容Encog的.Net或者Encog for Silverlight平臺韵卤。進(jìn)一步骗污,java序列化直接依賴于對象,因此沈条,未來的Encog版本也許不兼容你的序列化文件需忿。

創(chuàng)建所有Encog平臺的通用文件,考慮Encog EG格式蜡歹,EG格式文件架構(gòu)神經(jīng)網(wǎng)絡(luò)保存為文本文件屋厘,文件擴(kuò)展名為.EG。

這一章將介紹這兩種Encog持久化季稳,先開始Encog EG持久化擅这,這章將探索怎樣用一個(gè)Encog持久化文件保存一個(gè)神經(jīng)網(wǎng)絡(luò)。

4.5使用Encog EG持久化

Encog EG持久化文件是Encog原生文件格式以及存儲在外部的..EG文件景鼠,Encog Workbench使用Encog EG處理文件,這種格式能夠在不同的操作系統(tǒng)和Encog平臺之間進(jìn)行交換痹扇。這是選擇Encog應(yīng)用的一個(gè)原因铛漓。

這一節(jié)開始看一下一個(gè)XOR示例使用Encog EG文件,最后鲫构,同樣的示例將用在java序列化浓恶。我們將開始用Encog EG持久化示例。


4.5.1?使用Encog EG持久化

使用Encog EG持久化非常簡單结笨,EncogDirectoryPersistence類用來從Encog EG文件中加載和保存對象包晰。以下是關(guān)于Encog EG持久化一個(gè)好的示例:


這個(gè)例子有兩個(gè)主要的方法組成湿镀,第一個(gè)方法,trainAndSave,?訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)以及保存到一個(gè)Encog EG文件伐憾。第二個(gè)方法勉痴,LoadAndEvaluate,?加載Encog EG文件和評價(jià)它,這證明了這個(gè)Encog EG文件保存正確树肃,main方法簡單地按順序調(diào)用這兩個(gè)方法,我們將開始檢測trainAndSave方法。


這個(gè)方法開始通過創(chuàng)建一個(gè)基本的神經(jīng)網(wǎng)絡(luò)來訓(xùn)練這個(gè)XOR運(yùn)算符冗酿。它是一個(gè)簡單三層前饋神經(jīng)網(wǎng)絡(luò)寄锐。


XOR運(yùn)算符訓(xùn)練集的創(chuàng)建包含了預(yù)期的輸出和輸入。


這個(gè)神經(jīng)網(wǎng)絡(luò)將使用彈性傳播訓(xùn)練(RPROP)


RPROP迭代執(zhí)行知道錯(cuò)誤里非常小劣像,訓(xùn)練將在下一章討論乡话,現(xiàn)在,訓(xùn)練是驗(yàn)證網(wǎng)絡(luò)重新加載后錯(cuò)誤率保持不變的一種方式耳奕。


一旦網(wǎng)絡(luò)被訓(xùn)練绑青,顯示最終的錯(cuò)誤率,想在就可以保存神經(jīng)網(wǎng)絡(luò)吮铭。

這個(gè)神經(jīng)網(wǎng)絡(luò)現(xiàn)在能保存到一個(gè)文件时迫,每一個(gè)文件僅僅保存一個(gè)Encog對象,使用EncogDirectoryPersistence類的saveObject方法谓晌。


現(xiàn)在這個(gè)Encog EG文件已創(chuàng)建掠拳,之后使用loadAndEvaluate從這個(gè)文件中加載這個(gè)神經(jīng)網(wǎng)絡(luò)以確保它仍然執(zhí)行很好。

現(xiàn)在已經(jīng)構(gòu)造這個(gè)集合纸肉,加載之前保存的已命名的網(wǎng)絡(luò)溺欧,重要的是要評估神經(jīng)網(wǎng)絡(luò)來證明他仍是訓(xùn)練有素的。要做到這點(diǎn)柏肪,為XOR運(yùn)算符創(chuàng)造一個(gè)訓(xùn)練集姐刁。


計(jì)算給定的訓(xùn)練數(shù)據(jù)的誤差。


這個(gè)錯(cuò)誤應(yīng)該和之前的神經(jīng)網(wǎng)絡(luò)保存時(shí)相同烦味。

4.6使用java序列化

還可以使用標(biāo)準(zhǔn)的java序列化與Encog神經(jīng)網(wǎng)絡(luò)訓(xùn)練集聂使。Encog EG持久性比java序列化更加靈活,然而谬俄,在某些情況下神經(jīng)網(wǎng)絡(luò)可以被保存到一個(gè)平臺獨(dú)立的二進(jìn)制文件柏靶,這個(gè)例子開始通過調(diào)用trainAndSave方法:

這個(gè)方法開始通過創(chuàng)建一個(gè)基本的神經(jīng)網(wǎng)絡(luò)去訓(xùn)練XOR運(yùn)算。它是一個(gè)簡單的例子溃论,三層前饋神經(jīng)網(wǎng)絡(luò)屎蜓。


我們將使用彈性傳播(RPROP)訓(xùn)練這個(gè)網(wǎng)絡(luò).


以下代碼通過循環(huán)迭代訓(xùn)練直到錯(cuò)誤率低于1%(<0.01).


最后顯示神經(jīng)網(wǎng)絡(luò)的錯(cuò)誤率。


可以使用普通java序列化代碼或者SerializeObject類保存網(wǎng)絡(luò)钥勋。此實(shí)用工具類提供了一個(gè)保存的方法炬转,將編寫任何一個(gè)可序列化的對象寫入到一個(gè)二進(jìn)制文件辆苔。這里的保存方法使用來保存神經(jīng)網(wǎng)絡(luò)。


現(xiàn)在這個(gè)二進(jìn)制文件已經(jīng)創(chuàng)建扼劈,之后將從這個(gè)文件中加載神經(jīng)網(wǎng)絡(luò)看是否仍然很好地執(zhí)行驻啤,這里通過loadAndEvaluate方法執(zhí)行。


SerializeObject類也提供了加載方法测僵,將從一個(gè)二進(jìn)制序列化文件讀取對象街佑。


現(xiàn)在,網(wǎng)絡(luò)加載完成捍靠,給出了誤差水平沐旨。


此錯(cuò)誤級別應(yīng)與網(wǎng)絡(luò)最初訓(xùn)練時(shí)的錯(cuò)誤級別相匹配。


4.7總結(jié)

使用BasicNetwork和BasicLayer類創(chuàng)建前饋和簡單遞歸神經(jīng)網(wǎng)絡(luò)榨婆,使用這些對象磁携,神經(jīng)網(wǎng)絡(luò)能夠被創(chuàng)建,也能使用上下文連接層良风,就像簡單遞歸神經(jīng)網(wǎng)絡(luò)谊迄,例如Elamn神經(jīng)網(wǎng)絡(luò)就是這樣創(chuàng)建的。

Encog使用激活函數(shù)縮放來自神經(jīng)網(wǎng)絡(luò)層的輸出烟央,Encog默認(rèn)將使用雙曲正切函數(shù)统诺,那是一個(gè)好的通用的目標(biāo)激活函數(shù),任何激活函數(shù)類必須實(shí)現(xiàn)ActivationFunction接口疑俭,如果激活函數(shù)要使用于傳播訓(xùn)練粮呢,這個(gè)激活函數(shù)必須要有能力計(jì)算導(dǎo)數(shù)。

ActivationBiPolar激活函數(shù)類使用一個(gè)網(wǎng)絡(luò)僅僅接受雙極值钞艇,ActivationCompetitive激活函數(shù)類使用在競爭機(jī)制的神經(jīng)網(wǎng)絡(luò)例如自組織映射啄寡,ActivationLinear激活函數(shù)類使用在不需要激活功能的時(shí)候,ActivationLOG激活函數(shù)類工作類似于ActivationTANH激活函數(shù)類哩照,除了它不總是作為一個(gè)隱藏層飽和挺物,ActivationSigmoid激活函數(shù)類類似于ActivationTANH激活函數(shù),除了僅僅返回一個(gè)正值飘弧,ActivationSoftMax激活函數(shù)類縮放輸出讓其所有之和等于1.

這章討論了怎樣使用兩種方法保存Encog對象识藤,也許使用Encog EG格式或者java序列化兩者之一保存對象。

對于保存Encog神經(jīng)網(wǎng)絡(luò)優(yōu)先使用Encog EG格式方式次伶,這些對象通過使用他們資源名字蹋岩,EG文件能在Encog支持的任何平臺互換。

Encog也允許java序列化存儲對象到磁盤或者流学少。Java序列化有太多限制性超過了Encog EG文件,因?yàn)檫@二進(jìn)制文件是直接從對象自動存儲秧骑,即使是最小的改變版确,一個(gè)Encog對象就會導(dǎo)致不兼容的文件扣囊。此外,其他平臺也沒有能力使用這個(gè)文件绒疗。

在下一章中闡述神經(jīng)網(wǎng)絡(luò)訓(xùn)練中的概念侵歇,訓(xùn)練的過程神經(jīng)網(wǎng)絡(luò)的初始權(quán)值修改為產(chǎn)生所需的輸出。這兒有幾種神經(jīng)網(wǎng)絡(luò)訓(xùn)練的方式吓蘑,下一章將介紹傳播訓(xùn)練惕虑。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市磨镶,隨后出現(xiàn)的幾起案子溃蔫,更是在濱河造成了極大的恐慌,老刑警劉巖琳猫,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件伟叛,死亡現(xiàn)場離奇詭異,居然都是意外死亡脐嫂,警方通過查閱死者的電腦和手機(jī)统刮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來账千,“玉大人侥蒙,你說我怎么就攤上這事≡茸啵” “怎么了鞭衩?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長攒射。 經(jīng)常有香客問我醋旦,道長,這世上最難降的妖魔是什么会放? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任饲齐,我火速辦了婚禮,結(jié)果婚禮上咧最,老公的妹妹穿的比我還像新娘捂人。我一直安慰自己,他們只是感情好矢沿,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布滥搭。 她就那樣靜靜地躺著,像睡著了一般捣鲸。 火紅的嫁衣襯著肌膚如雪瑟匆。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天栽惶,我揣著相機(jī)與錄音愁溜,去河邊找鬼疾嗅。 笑死,一個(gè)胖子當(dāng)著我的面吹牛冕象,可吹牛的內(nèi)容都是我干的代承。 我是一名探鬼主播,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼渐扮,長吁一口氣:“原來是場噩夢啊……” “哼论悴!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起墓律,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤膀估,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后只锻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體玖像,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年齐饮,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了捐寥。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,117評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡祖驱,死狀恐怖握恳,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情捺僻,我是刑警寧澤乡洼,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站匕坯,受9級特大地震影響束昵,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜葛峻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一锹雏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧术奖,春花似錦礁遵、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至唧龄,卻和暖如春兼砖,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工掖鱼, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留然走,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓戏挡,卻偏偏與公主長得像,于是被迫代替她去往敵國和親晨仑。 傳聞我的和親對象是個(gè)殘疾皇子褐墅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評論 2 355

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