強(qiáng)化學(xué)習(xí)基礎(chǔ)篇(一)強(qiáng)化學(xué)習(xí)入門

強(qiáng)化學(xué)習(xí)基礎(chǔ)篇(一)強(qiáng)化學(xué)習(xí)入門

本文主要基于David Silver的強(qiáng)化學(xué)習(xí)基礎(chǔ)課程進(jìn)行總結(jié)回歸梳理強(qiáng)化學(xué)習(xí)的基礎(chǔ)知識。 主要基于的課本來自Richard.S.Sutton以及Andrew G.Barto的《Reinforcement Learning》第二版。同時有由俞凱翻譯的中譯本侨歉。

這里主要關(guān)注兩個方面腐泻,一方面是基礎(chǔ)知識,另一方面是基礎(chǔ)算法代碼的實(shí)現(xiàn)感帅。代碼實(shí)現(xiàn)上圆雁,如果需要選擇pytorch以及tensorflow同時實(shí)現(xiàn)。簡單的場景直接使用Numpy實(shí)現(xiàn)为黎。

1. 機(jī)器學(xué)習(xí)與強(qiáng)化學(xué)習(xí)

1.1 機(jī)器學(xué)習(xí)的分支領(lǐng)域

機(jī)器學(xué)習(xí)可以分為幾個分支領(lǐng)域邮丰,監(jiān)督學(xué)習(xí)(Supervised Learning),無監(jiān)督學(xué)習(xí)(Unsupervised Learning)以及強(qiáng)化學(xué)習(xí)(Reinforcement Learning)铭乾。
監(jiān)督學(xué)習(xí)(Supervised Learning)是從外部監(jiān)督者提供的帶標(biāo)注訓(xùn)練集中進(jìn)行學(xué)習(xí)剪廉,每一個樣本都是關(guān)于情景與標(biāo)注(label)的描述。標(biāo)注即為在當(dāng)前場景下炕檩,系統(tǒng)應(yīng)當(dāng)采取的正確動作斗蒋,也可以將其看做為對當(dāng)前情景進(jìn)行分類的所屬類別標(biāo)簽。采用這種學(xué)習(xí)方式是為了讓系統(tǒng)能夠具備推斷或泛化能力捧书,能夠響應(yīng)不同的情景并做出正確的動作選擇吹泡,即目標(biāo)是在情景未出現(xiàn)在訓(xùn)練數(shù)據(jù)中的情況下也能夠做出正確的判斷。
無監(jiān)督學(xué)習(xí)(Unsupervised Learning) 是一個典型的尋找未標(biāo)注數(shù)據(jù)中隱含結(jié)構(gòu)的過程经瓷。強(qiáng)化學(xué)習(xí)有時候會被認(rèn)為是一種無監(jiān)督學(xué)習(xí)的方式爆哑,但是他們是有區(qū)別的。 強(qiáng)化學(xué)習(xí)的主要目的是最大化收益信號舆吮,而不是尋找數(shù)據(jù)的隱含結(jié)構(gòu)揭朝。雖然無監(jiān)督學(xué)習(xí)通過智能體尋找隱含結(jié)構(gòu)對強(qiáng)化學(xué)習(xí)很有意義,但是這并不能解決最大化收益信號的問題色冀。
所以強(qiáng)化學(xué)習(xí)(Reinforcement Learning)是在監(jiān)督學(xué)習(xí)與無監(jiān)督學(xué)習(xí)之外的第三種機(jī)器學(xué)習(xí)范式潭袱。他是學(xué)習(xí)這樣一個問題"What to do,how to map situations to actions, so to maximize a numerical reward singal"。即考慮如何才將當(dāng)前的情景映射為動作锋恬,以最大化數(shù)值化的收益信號屯换。
這三種學(xué)習(xí)范式的關(guān)系如下所示:

image.png

1.2 強(qiáng)化學(xué)習(xí)在多學(xué)科中的應(yīng)用

強(qiáng)化學(xué)習(xí)多學(xué)科中都有著有效的應(yīng)用,他們在不同學(xué)科中強(qiáng)化學(xué)習(xí)的方法與思想可能有著不同的專業(yè)名稱与学。比如在計(jì)算機(jī)科學(xué)中屬于機(jī)器學(xué)習(xí)(Machine Learning)彤悔,在工程領(lǐng)域?qū)儆谧顑?yōu)化控制(Optimal Control),在神經(jīng)科學(xué)領(lǐng)域?qū)儆讵剟钕到y(tǒng)(Reward System)索守,在心理學(xué)領(lǐng)域中屬于經(jīng)典/操作性條件反射(Classical/Operant Conditioning),在經(jīng)濟(jì)學(xué)領(lǐng)域?qū)儆谟邢蘩硇裕╞ounded rationality)理論晕窑,在運(yùn)籌學(xué)中屬于也有相應(yīng)的數(shù)學(xué)基礎(chǔ)。這些交叉領(lǐng)域相關(guān)的關(guān)系如下圖所示:

image.png

1.3 強(qiáng)化學(xué)習(xí)的主要特征

強(qiáng)化學(xué)習(xí)區(qū)別于其他機(jī)器學(xué)習(xí)范式的主要幾點(diǎn)原因是:

a. 強(qiáng)化學(xué)習(xí)沒有監(jiān)督信號卵佛,只有收益信號(reward signal)

b. 強(qiáng)化學(xué)習(xí)得到得到回饋不是即時的杨赤,是有時延的反饋敞斋。

c. 強(qiáng)化學(xué)習(xí)中使用的數(shù)據(jù)不是獨(dú)立同分布,時序數(shù)據(jù)對強(qiáng)化學(xué)習(xí)非常重要疾牲。

d. 智能體在當(dāng)前場景下做出的決策植捎,將對未來將會受到的數(shù)據(jù)序列產(chǎn)生直接的影響。

1.4 強(qiáng)化學(xué)習(xí)的應(yīng)用實(shí)例

這里簡單說一些:

a. 直升飛機(jī)進(jìn)行特技表演说敏,這是吳恩達(dá)在斯坦福做出來的東西鸥跟,沒有特定程式的控制丢郊,飛機(jī)自己學(xué)習(xí)特技表演盔沫,僅僅依靠獎勵來提升自己
b. AlphaGo的自我對弈,就是強(qiáng)化學(xué)習(xí)枫匾,通過勝負(fù)這個獎勵信號架诞,不斷提升自己的棋力
c. Tesauro的TD-Gammon程序在西洋雙陸棋(BackGammon)的出色表現(xiàn)。
d. 使用強(qiáng)化學(xué)習(xí)控制能源站干茉,訓(xùn)練機(jī)器人走路谴忧,玩視頻游戲等等。

2. 強(qiáng)化學(xué)習(xí)中的幾個基本概念

2.1 獎勵(Reward)

獎勵R_t是一個變量的回饋信號角虫,他表明了智能體在時間步t時表現(xiàn)如何沾谓。 智能體訓(xùn)練的目的即最大化這個累積的獎勵R_t。 強(qiáng)化學(xué)習(xí)最基礎(chǔ)的假設(shè)即獎勵假設(shè)

Reward Hypothesis

All goals can be described by the maximisation of expected cumulative reward.

獎勵假設(shè)

所有的目標(biāo)可以由最大化期望累計(jì)獎勵來描述

獎勵的設(shè)定是個很重要的問題戳鹅,比如在訓(xùn)練一個類人機(jī)器人走路的任務(wù)中均驶,可以設(shè)定機(jī)器人向前移動即可增加獎勵r,如果摔倒即扣除獎勵r。在訓(xùn)練智能體做Atari視頻游戲任務(wù)中枫虏,其獎勵可以是視頻游戲中本身的分?jǐn)?shù)妇穴。

2.2 序貫決策(Sequential Decision Making)

序貫決策的目的還是在于最大化未來的總回報(bào)。智能體在進(jìn)行訓(xùn)練任務(wù)中可能有很長的動作序列隶债, 其最終回報(bào)不是即時的腾它,會有一定的時延。甚至在一些場景之下死讹,智能體必須犧牲一些即時回報(bào)瞒滴,以獲得長期的回報(bào)。

2.3 智能體與環(huán)境(Agent and Enviroment)

智能體和環(huán)境之間的交互如下圖所示:

image.png

在每個時間步t赞警,智能體從環(huán)境接收觀測信號O_t以及量化的回報(bào)R_t妓忍, 并執(zhí)行動作A_t。環(huán)境在每個時間步即接收動作A_t,產(chǎn)生由動作執(zhí)行后生成的新的觀測狀態(tài)O_{t+1}與回報(bào)R_{t+1}仅颇。

2.4 狀態(tài)(state)

這里有個特定的概念即歷史(history)单默,在強(qiáng)化學(xué)習(xí)中是指序列化的觀測狀態(tài),動作以及回報(bào)忘瓦。即:
H_t=O_1,R_1,A_1,...,A_{t-1},O_t,R_t
這里包含了從迭代開始到時間步t的所有觀測變量搁廓。并且在時間步t之后的所有觀測都依賴于當(dāng)前的history引颈。智能體基于當(dāng)前的歷史選擇動作,并從環(huán)境中接收新的觀測與回報(bào)境蜕。

與歷史(history)這個概念有所區(qū)別的是狀態(tài)(State)蝙场, 狀態(tài)是主要用于智能體如何進(jìn)行下一步?jīng)Q策,他不是一個序列粱年,而是從歷史產(chǎn)生的映射狀態(tài)售滤,即S_t=f(H_t)通惫。

狀態(tài)需要考慮到三種狀態(tài):環(huán)境狀態(tài)(Enviroment State)冤狡, 智能體狀態(tài)(Agent State), 信息狀態(tài)(Information States)宽闲。

環(huán)境狀態(tài)S_t^e(Enviroment State)

環(huán)境狀態(tài)是對環(huán)境的私有表示拉队,他是一些測試智能體任務(wù)中用來挑選下一步觀察和獎勵的數(shù)據(jù)弊知。環(huán)境State并不總是對智能體可見,即使可見粱快,也可能包含一些對任務(wù)無關(guān)的信息

智能體狀態(tài)S_t^a( Agent State)

智能體狀態(tài)是智能體的內(nèi)部表示秩彤,他包含智能體用來挑選下一步動作的信息,智能體State是我們強(qiáng)化學(xué)習(xí)算法所需要的主要狀態(tài)事哭。 他可以是history的任何函數(shù):S_t^a = f (H_t),

信息狀態(tài) (Information State)

信息狀態(tài)是包含歷史中所有有用的信息漫雷,也稱為Markov State,馬爾科夫狀態(tài)鳍咱。既然叫馬爾科夫狀態(tài)降盹,也就是說,下一個狀態(tài)只依賴于當(dāng)前狀態(tài)流炕。
馬爾科夫性質(zhì)其定義為:

一個狀態(tài)S_t具有馬爾科夫性質(zhì)澎现,其充分必要條件為:
P[S_{t+1}|S_t]=P[S_{t+1}|S_1,...,S_t]

即未來的狀態(tài)在給定當(dāng)前狀態(tài)的情況下,是獨(dú)立于歷史狀態(tài)的每辟。所有的歷史數(shù)據(jù)已經(jīng)充分反映在了當(dāng)前的狀態(tài)S_t當(dāng)中剑辫。
H_{1:t} \rightarrow S_t \rightarrow H_{t+1:\infin}
一旦我們知道了當(dāng)前狀態(tài),我們即可丟棄所有的歷史數(shù)據(jù)渠欺。當(dāng)前狀態(tài)是對未來數(shù)據(jù)的充分統(tǒng)計(jì)量妹蔽。與此同時,環(huán)境狀態(tài)S_t^e與歷史H_t都是具有馬爾可夫性挠将。

2.5 環(huán)境的可觀測性

有兩種環(huán)境的分類胳岂,一種是完全可觀測環(huán)境,另一種是部分可觀測環(huán)境舔稀。

完全可觀測(Fully Observable Enviroments)

在完全可觀測環(huán)境之中乳丰,智能體可以直接獲取到環(huán)境的狀態(tài), 即O_t=S_t^a=S_t^e内贮。這種場景之下智能體狀態(tài)产园,環(huán)境狀態(tài)汞斧,信息狀態(tài)完全一致。這種場景就是馬爾科夫決策過程MDP(Markov decision process)什燕。

部分可觀測(Partially Observable Enviroments)

在其他一些場景之下粘勒,智能體不能直接觀察環(huán)境,比如機(jī)器人的攝像頭不能告訴他具體的位置屎即,卡牌游戲不知道別人的牌庙睡,只知道已經(jīng)打出的牌。此時智能體狀態(tài)(agent state )不等于 環(huán)境狀態(tài)(environment state)技俐,所以這只是一個 partially observable Markov decision process(POMDP)乘陪,部分可觀察馬爾科夫決策過程。在這種情況下虽另,智能體沒法參考環(huán)境狀態(tài)暂刘,必須構(gòu)建自己的狀態(tài)表示饺谬,比如以下幾種情況

  • 使用完整的歷史信息捂刺,S_t^a=H_t
  • 堅(jiān)信環(huán)境狀態(tài):S_t^a=(P[S_t^e=s^1],...,P[S_t^e=s^n]
  • 使用循環(huán)神經(jīng)網(wǎng)絡(luò): S_t^a=\delta(S_{t-1}^aW_s+O_tW_o)

3. 強(qiáng)化學(xué)習(xí)要素

除了獎勵,智能體和環(huán)境之外募寨,強(qiáng)化學(xué)習(xí)系統(tǒng)也會有如下三個核心要素族展,包括策略(Policy),值函數(shù)(Value Function)以及模型(Model)拔鹰。

3.1策略(Policy)

策略定義了智能體在特定時間的行為方式仪缸,即,策略是環(huán)境狀態(tài)到動作的映射列肢。策略可能是確定的策略恰画,也可能是隨機(jī)的策略,隨機(jī)策略有助于探索未知的獎勵瓷马。策略可能是一個簡單的函數(shù)或查詢表格拴还,也可能是涉及大量計(jì)算的神經(jīng)網(wǎng)絡(luò)。策略本身是可以決定行為的欧聘,因此策略是強(qiáng)化學(xué)習(xí)智能體的核心片林。一般來說,策略可能是環(huán)境所在狀態(tài)和智能體所采取的動作的隨機(jī)函數(shù)怀骤。

確定性策略可以表示為:a=\pi(s)

隨機(jī)策略可以表示為:\pi(a|s) = P[A_t=a|S_t=s]

3.2 值函數(shù)(Value Function)

之前所說的獎勵费封,即收益信號,他表明了在即時狀態(tài)下什么是好的蒋伦,而值函數(shù)(Value Function)表示了從長遠(yuǎn)角度看什么是好的弓摘。簡單地說,一個狀態(tài)的價值是一個智能體從這個狀態(tài)開始痕届,對將來累積的總收益的期望韧献。盡管收益決定了環(huán)境狀態(tài)的直接寺旺、即時、內(nèi)在的吸引力势决,但價值表示了接下來所有可能狀態(tài)的長期期望阻塑。智能體通過值函數(shù)進(jìn)行動作的選擇。
v_{\pi}=E_{\pi}[R_{t_1}+\gamma R_{t+2}+ \gamma^2R_{t+3}+...|S_t=s]

3.3 模型(Model)

智能體對環(huán)境建立的模型是另一個重要的要素果复,這是一種對環(huán)境反映模式的模擬陈莽。智能體根據(jù)模型對外部環(huán)境進(jìn)行推斷。例如虽抄,給定一個狀態(tài)和動作走搁,模型就可以預(yù)測外部環(huán)境的下一個狀態(tài)和收益。環(huán)境模型可以被用來做規(guī)劃迈窟。

模型可以如下表示:
P_{ss'}^a=P[S_{t+1}=s'|S_t=s, A_t=a] \\ R_s^a=E[R_{t+1}|S_t=s, A_t=a]
下面這個例子展示在一個迷宮游戲中什么是策略私植,值函數(shù)以及模型。在迷宮環(huán)境中我們設(shè)定獎勵為每個時間步為-1车酣∏冢可執(zhí)行的動作為(N,E,S,W),狀態(tài)即為智能體的位置湖员。

image.png

策略的表示在每個狀態(tài)下采取的動作:

image.png

值函數(shù)表示為:

image.png

模型可以表示為:

[圖片上傳失敗...(image-144088-1601634840681)]

這里要注意到智能體是有著獨(dú)立的對環(huán)境的認(rèn)知贫悄,這個對環(huán)境的認(rèn)識不一定是完全與真實(shí)環(huán)境一模一樣。這個認(rèn)知中的環(huán)境包括執(zhí)行動作將會對狀態(tài)產(chǎn)生什么影響娘摔,以及在每個狀態(tài)中可以獲得什么樣的獎勵窄坦。認(rèn)知中的模型完全可以是不完美的。

4. 強(qiáng)化學(xué)習(xí)算法分類

基于使用策略與使用值函數(shù)凳寺,我們可以將強(qiáng)化學(xué)習(xí)算法分為三大類:

  • 基于值函數(shù)的強(qiáng)化學(xué)習(xí)算法
  • 基于策略的強(qiáng)化學(xué)習(xí)算法
  • Actor-Critic算法

基于是否使用模型鸭津,我們可以將強(qiáng)化學(xué)習(xí)算法分為兩大類:

  • 無模型算法(Model Free)
  • 基于模型的強(qiáng)化學(xué)習(xí)算法(Model Based)

總結(jié)一下就是這張圖:

image.png

5.強(qiáng)化學(xué)習(xí)中的幾個基本問題

5.1 強(qiáng)化學(xué)習(xí)與規(guī)劃(Reinforcement Learning and Planning)

在序貫決策(Sequential Decision Making)中有兩個基礎(chǔ)性的問題,一個是強(qiáng)化學(xué)習(xí)(Reinforcement Learning)肠缨,另一個是規(guī)劃(Planning)逆趋。規(guī)劃即時在真正經(jīng)歷之前,先考慮未來可能發(fā)生的各種情景怜瞒,從而預(yù)先決定采取何種動作父泳。他們的區(qū)別在于:
強(qiáng)化學(xué)習(xí):

  • 環(huán)境初始狀態(tài)未知
  • 智能體與環(huán)境進(jìn)行實(shí)時交互
  • 智能體會不斷提升策略

規(guī)劃:

  • 環(huán)境模型完全已知
  • 智能體通過已知的模型進(jìn)行所有運(yùn)算,運(yùn)算過程完全不需要與環(huán)境進(jìn)行交互吴汪。
  • 智能體會不斷提升策略

以智能體執(zhí)行視頻游戲Atari訓(xùn)練任務(wù)為例惠窄,在強(qiáng)化學(xué)習(xí)中游戲規(guī)則是未知的,智能體在于游戲屏幕直接的交互過程中學(xué)習(xí)并通過輸入的圖像像素以及分?jǐn)?shù)選擇游戲手柄的動作漾橙。

image.png

但是在規(guī)劃任務(wù)中杆融,游戲規(guī)則是完全已知的,智能體可以隨時查詢模擬器獲得所有信息霜运,其中模擬器即游戲主機(jī)脾歇。在查詢主機(jī)信息的過程中蒋腮,主機(jī)會告訴智能體在狀態(tài)s,下一個動作可能有哪些藕各,以及在每個可能的動作產(chǎn)生的下一個狀態(tài)會產(chǎn)生什么樣的分?jǐn)?shù)池摧。規(guī)劃的目的是要直接找到最優(yōu)的策略。

image.png

5.2. 探索與利用(Exploration and Explotiation)

探索與利用(Exploration and Explotiation)是強(qiáng)化學(xué)習(xí)的另一個基本問題激况。

假設(shè)有如下的場景:

假設(shè)你家附近有十個餐館作彤,到目前為止,你在八家餐館吃過飯乌逐,知道這八家餐館中最好吃的餐館可以打8分竭讳,剩下的餐館也許會遇到口味可以打10分的,也可能只有2分浙踢,如果為了吃到口味最好的餐館绢慢,下一次吃飯你會去哪里?

image.png

所謂探索:是指做你以前從來沒有做過的事情洛波,以期望獲得更高的回報(bào)胰舆。所謂利用:是指做你當(dāng)前知道的能產(chǎn)生最大回報(bào)的事情。那么奋岁,你到底該去哪家呢思瘟?這就是探索-利用困境。

如果你是以每次的期望得分最高闻伶,那可能就是一直吃8分那家餐廳;但是你永遠(yuǎn)突破不了8分够话,不知道會不會吃到更好吃的口味蓝翰。所以只有去探索未知的餐廳,才有可能吃到更好吃的女嘲,同時帶來的風(fēng)險就是也有可能吃到不和口味的食物畜份。

這個例子只是用于找找感覺,后面會討論多臂賭博機(jī)問題的時候再來多討論一下欣尼。一般基本的最常用的隨機(jī)策略為\epsilon-greedy策略(抖動策略):
\pi(a|s)=\begin{cases} 1-\epsilon+\frac{\epsilon}{|A(s)|},\quad if a= argmax_aQ(s,a) \\\\ \frac{\epsilon}{|A(s)|},\quad if a \neq argmax_aQ(s,a) \end{cases}
這個策略是比貪婪策略稍微復(fù)雜一點(diǎn)爆雹,意思是說,\epsilon的概率隨機(jī)選擇任何一個動作愕鼓,否則選擇Q最大的動作钙态。該策略稱為抖動策略。

  • 利用抖動策略的好處是:
    (1) 抖動策略計(jì)算容易菇晃,不需要復(fù)雜的計(jì)算公式册倒。
    (2) 能保證充分探索所有狀態(tài)。
  • 當(dāng)然相應(yīng)的壞處是:
    (1) 需要大量探索磺送,數(shù)據(jù)利用率低驻子。
    (2) 需要無限長時間(取決于狀態(tài)的數(shù)量以及\epsilon大胁右狻)。

5.3 .預(yù)測與控制(Prediction and Control)

預(yù)測與控制的問題是另一個強(qiáng)化學(xué)習(xí)的基礎(chǔ)問題崇呵,預(yù)測(Prediction )即在給定策略的情況下對未來進(jìn)行評估缤剧,控制(Control)即為了尋找到最優(yōu)的策略,對未來進(jìn)行最優(yōu)化的過程域慷。


歷史文章鏈接:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鞭执,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子芒粹,更是在濱河造成了極大的恐慌兄纺,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件化漆,死亡現(xiàn)場離奇詭異估脆,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)座云,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進(jìn)店門疙赠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人朦拖,你說我怎么就攤上這事圃阳。” “怎么了璧帝?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵捍岳,是天一觀的道長。 經(jīng)常有香客問我睬隶,道長锣夹,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任苏潜,我火速辦了婚禮银萍,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘恤左。我一直安慰自己贴唇,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布飞袋。 她就那樣靜靜地躺著戳气,像睡著了一般。 火紅的嫁衣襯著肌膚如雪授嘀。 梳的紋絲不亂的頭發(fā)上物咳,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼览闰。 笑死芯肤,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的压鉴。 我是一名探鬼主播崖咨,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼油吭!你這毒婦竟也來了击蹲?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤婉宰,失蹤者是張志新(化名)和其女友劉穎歌豺,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體心包,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡类咧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蟹腾。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片痕惋。...
    茶點(diǎn)故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖娃殖,靈堂內(nèi)的尸體忽然破棺而出值戳,到底是詐尸還是另有隱情,我是刑警寧澤炉爆,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布堕虹,位于F島的核電站,受9級特大地震影響叶洞,放射性物質(zhì)發(fā)生泄漏鲫凶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一衩辟、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧波附,春花似錦艺晴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至仅财,卻和暖如春狈究,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背盏求。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工抖锥, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留亿眠,地道東北人。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓磅废,卻偏偏與公主長得像纳像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子拯勉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評論 2 354