AI常见面试35题

1.为什么LR用交叉熵损失而不是平方损失

交叉熵做损失函数,训练时传播的梯度和训练误差是成正比的(单调),而当采用均方误差做损失函数时,训练时传播的梯度和训练误差不是成正比的(非单调),具体表现是,训练误差从0开始增大,梯度增大(这点与我们预期相符),但训练误差继续增大,梯度开始下降(这点就与我们的预期不符了),这样就显得,模型在训练误差大的时候,根本不愿意继续学习,模型显得“自暴自弃”不肯学习。

2.为什么SVM要引入核函数?

决在低维空间线性不可分的问题,通过核函数把低维映射到高维,实现线性可分。

3.常见的svm核函数有哪些?

常见核函数有线性核函数,多项式核函数,高斯核函数,sigmoid 核函数

4.GBDT和ADABOOST区别?

Adaboost用错分数据点来识别问题,通过调整错分数据点的权重来改进模型。GBDT通过负梯度来识别问题,通过计算负梯度来改进模型。

5.GBDT和xgboost区别?
    1. xgboost在代价函数里加入了正则项,用于控制模型的复杂度。正则项里包含了树的叶子节点个数、每个叶子节点上输出的score的L2模的平方和。从Bias-variance tradeoff角度来讲,正则项降低了模型的variance,使学习出来的模型更加简单,防止过拟合,这也是xgboost优于传统GBDT的一个特性
    1. 公式推导里用到了二阶导数信息,而普通的GBDT只用到一阶
    1. 允许使用column(feature) sampling来防止过拟合,借鉴了Random Forest的思想,sklearn里的gbm好像也有类似实现。
  • 4.实现了一种分裂节点寻找的近似算法,用于加速和减小内存消耗。
  • 5.节点分裂算法能自动利用特征的稀疏性。
  • 6.data事先排好序并以block的形式存储,利于并行计算
6.boosting和bagging区别?

1.样本选择:bagging训练集是在原始集有放回的选取,每次选取训练集都是独立的.boosting:每一轮的训练集的数量不变,但是训练集里的样例比重根据上一轮的分类结果进行调整
2.样本权重:bagging:均匀取样,每个样例的权重都相等。boosting:根据您错误率不断调整样例的权值,错误率越大的则权重越大
3.预测函数:bagging每个基分类器投票,权重比例都是一样的,boosting每个分类器的权重是不一样的
4.运行规律:bagging:各个预测函数可以并行生成 boosting:每个基分类器都都是根据前一个分类器的结果调整过来的

7.为什么朴素贝叶斯被称为“朴素”?

之所以被称为“朴素”, 是因为它假定所有的特征在数据集中的作用是同样重要和独立的,正如我们所知,这个假设在现实世界中是很不真实的,因此,说是很“朴素的”。

8.机器学习中的回归模型有哪些?

1.线性回归
2.逻辑回归
3.岭回归
4.多项式回归

8.特征值跟SVD的区别?

顺序关系,先求出特征值再来求SVD

9.解释ICA跟CCA?

PCA: 无监督学习,找到最优重构子空间,使主成分能刻画样本绝大部分的方差。
应用:数据降维、Eigenfaces、PCA-SIFT

CCA(Canonical Correlation Analysis): 无监督学习,对两组变量降维,找到一个最优相关子空间进行相关性分析。
应用:问卷调查中变量的相关性分析、跨模态学习。

LDA: 有监督学习,学习一个可分性最好的投影方向。相当于是白化(whitening) + PCA,得到的是假设条件下的最优分类子空间(假设每个类都是单模态高斯分布、每个类协方差矩阵相同)。
应用:数据降维、模式分类

ICA: 无监督学习,各个分量之间相互独立,利用数据的高阶统计信息而不是二阶信息得到用于信号分离的独立子空间。
应用:语音信号分离

10.随机森林的随机体现在哪个方面?

随机森林中树的选择是随机选择的,生成每棵树的样本也是随机采样有放回产生的

11.神经网络怎么进行参数初始化?

预训练初始化:一般是在大规模数据上已经训练过的模型可以提供一个较好的参数初始值,并能提升模型的泛化能力(一种解释是预训练任务起到一定的正则化作用)。
随机初始化:如果全部初始化为0,在神经网络第一遍前向传播所有隐层神经网络激活值相同,反向传播权重更新也相同,导致隐层神经元没有区分性,称为“对称权重”现象。为打破这个平衡,比较好的方式是对每个参数进行随机初始化。
固定值初始化:比如对于偏置(bias)通常用0初始化,LSTM遗忘门偏置通常为1或2,使时序上的梯度变大,对于ReLU神经元,偏置设为0.01,使得训练初期更容易激活。

12.介绍常见的正则化方法?

1.dropout
L2正则化方法就是通过使参数变小,进而使模型变得简单的方法。dropout方法原理类似,只不过它不是减少权值,而是随机的删除某些节点,使得模型的网络结构变得简单,起到正则化的效果。
直接限制模型参数的方法:

L1,L2等惩罚项
参数共享
多任务学习(此方法也用到了参数共享)

从数据集入手的方法:

增加噪音:

对输入数据对隐层权重对输入目标
增大数据集重采样

集成化方法(通过训练多个不同的模型,并让所有模型一起表决测试集的输出):
baggingdropout
其他:
early stop交叉验证(bagging为又放回采样,而交叉验证可以理解为无放回模型平均)

13.自注意机制跟多头注意力机制的公式?

self-attention:attention(q,t,v) = softmax(qk.T/根号DK)*v
多头的本质是多个独立的attention计算,作为一个集成的作用,不同的权重矩阵映射到不同的空间

14.Transfarmer Rnn,Seq2seq之间的关系?

RNN:输入与输出长度相等,很多时候机器翻译的输入跟输出是不等的
seq2seq:encoder+decoder 所有输入的信息都保存在隐藏层的最后一个印象里,作为解码器的初始隐向量,银项链称之为上下文向量,长度固定,当输入句子很长的时候,上下文向量会丢失相关信息,效果很差
seq2seq+attention:seq2seq忽略了输入跟输出之间的对应关系,利用attention来寻求输入跟输出之间的对应关系
tranfarmer:解决了翻译中网络训练时间过长,难以并行计算的问题,利用self-attention代替RNN实现并行计算,用postion embedding记录位置信息

15.multi-head attention的作用

类似cnn的多个卷积核,不同卷积核提取不同方面的特征,不同head关注不同的表示子控件,总和利用各方面的信息,获得更丰富的特征

16.fead faward是什么?

由两个线性层组成,两个线性层直接具有relu激活函数

17.为什么self-attention采用点乘注意力而不是加减注意力?

点乘注意力可以用高度优化的矩阵乘法来实现
速度更快,空间效率更高

18.似然函数与概率密度函数的区别?

概率密度函数:由已知计算未知
似然函数:对于不同的模型参数,出现已知的概率是多少

19.特征标准化的原因?

将各个特征分布调整到标准正态分布,若某些特征方差很大,会主导目标函数从而使得模型无法正确学习其他特征

20.K折交叉验证?

将数据划分成K份,留作一份作为测试集,其他作为训练集
重复K次得到K个测试结果,取平均

21.进程跟线程的区别?

进程是火车,线程是车厢

1.线程在进程里运行
2.一个进程包含很多线程
3.不同进程很难数据共享,而线程可以
4.进程不会相互影响,线程会

22.信息增益跟信息增益比?

信息增益:偏向取值较多的特征
信息增益比:偏向取值较少的特征
决策树步骤:
特征选择:信息增益,信息增益比
决策树生成:id3使用信息增益选择特征,c45使用信息增益比选择特征
决策树剪枝:利用损失函数最小进行剪枝,当叶子节点回缩到父节点导致损失函数减小,则进行剪枝,将父节点变成新的叶子节点

23.k-means聚类?

算法步骤:
1.随机选择K个中心点,
2.求所有点到中心点的距离
3.移动k个中心点属于他们的中心位置
4.重复23
K-Means的主要优点有:
    1)原理比较简单,实现也是很容易,收敛速度快。
    2)聚类效果较优。
    3)算法的可解释度比较强。
    4)主要需要调参的参数仅仅是簇数k。
K-Means的主要缺点有:
    1)K值的选取不好把握
    2)对于不是凸的数据集比较难收敛
    3)如果各隐含类别的数据不平衡,比如各隐含类别的数据量严重失衡,或者各隐含类别的方差不同,则聚类效果不佳。
    4) 采用迭代方法,得到的结果只是局部最优。
    5) 对噪音和异常点比较的敏感

24.随机森林的随机性体现在哪里?

1.每棵树的训练样本是随机的
2.每棵树的叶子节点特征是随机的

25.为什么要做模型压缩,模型压缩方法有哪些?

复杂的模型占用大量内存,且具有庞大的计算开销,导致模型难以被部署在手机等计算能力较差的设备上,抑或是时延要求较高的应用中。
模型压缩的主要方法可以分为:

  • 剪枝(Pruning):将模型中影响较小的部分舍弃,通过去除网络中冗余的channels,filters, neurons, or layers以得到一个更轻量级的网络,同时不影响性能。
  • 量化(Quantization):将高精度模型用低精度来表示,浮点存储(运算)转换为整型存储(运算)的一种;
  • 知识蒸馏(Knowledge Distillation):通过一些优化目标从大型、知识丰富、fixed的teacher模型学习一个小型的student模型。蒸馏机制主要分为3种类型
  • 矩阵分解(Matrix Decomposition):
  • 参数共享(Parameter Sharing):相似模型单元间的参数共享
    其他方法
  • 动态推理加速(Dynamic Inference Acceleration)
  • 二次Transformer模型(Sub-quadratic Transformer based model)
26.怎么提升模型的计算效率?

1.系统级优化,包括单设备优化和多设备优化。比如ZeRO-Offload,就设计了精细的策略来安排CPU内存和GPU内存之间的交换,以便内存交换和设备计算能够尽可能多地重叠。
2.探索更高效的预训练方法和模型架构,以降低方案的成本。
3.模型压缩策略,包括参数共享、模型剪枝、知识蒸馏和模型量化。

27.为什么要进行预训练?

深度学习时代,为了充分训练深层模型参数并防止过拟合,通常需要更多标注数据喂养。在NLP领域,标注数据更是一个昂贵资源。PTMs从大量无标注数据中进行预训练使许多NLP任务获得显著的性能提升。总的来看,预训练模型PTMs的优势包括:

  1. 在庞大的无标注数据上进行预训练可以获取更通用的语言表示,并有利于下游任务;
  2. 为模型提供了一个更好的初始化参数,在目标任务上具备更好的泛化性能、并加速收敛;
  3. 是一种有效的正则化手段,避免在小数据集上过拟合(一个随机初始化的深层模型容易对小数据集过拟合);
28.什么是词嵌入和分布式表示?PTMs与分布式表示的关系?

词嵌入是自然语言处理(NLP)中语言模型与表征学习技术的统称。概念上而言,它是指把一个维数为所有词的数量的高维空间嵌入到一个维数低得多的连续向量空间中,每个单词或词组被映射为实数域上的向量,这也是分布式表示:向量的每一维度都没有实际意义,而整体代表一个具体概念。

分布式表示相较于传统的独热编码(one-hot)表示具备更强的表示能力,而独热编码存在维度灾难和语义鸿沟(不能进行相似度计算)等问题。传统的分布式表示方法,如矩阵分解(SVD/LSA)、LDA等均是根据全局语料进行训练,是机器学习时代的产物。

29.PTMs有哪两大范式?对比不同的预训练编码器?

PTMs的发展经历从浅层的词嵌入到深层编码两个阶段,按照这两个主要的发展阶段,我们归纳出PTMs两大范式:「浅层词嵌入」和「预训练编码器」。
浅层词嵌入的主要缺陷为:

  • 词嵌入与上下文无关,每个单词的嵌入向量始终是相同,因此不能解决一词多义的问题。
  • 通常会出现OOV问题,为了解决这个问题,相关文献提出了字符级表示或sub-word表示,如CharCNN[5] 、FastText[6] 和 Byte-Pair Encoding [7]

PTMs范式为预训练编码器,主要目的是通过一个预训练的编码器能够输出上下文相关的词向量,解决一词多义的问题。这一类预训练编码器输出的向量称之为「上下文相关的词嵌入」

30.为什么会出现梯度消失跟梯度爆炸呢?

随着网络层数的增加,从前面的层传递到后面的层的梯度会越来越小,进而就梯度消失了
梯度消失和梯度爆炸,简单来说,就是因为激活函数sigmoid导致的,输入值过大或过小导致sigmoid函数趋于0和1,对应的求导趋近于0,而且sigmoid的导数在(0,1/4)之间,这就导致如果初始化W为0-1之间的比较小的值,通过过多的层数之后,梯度下降的时候,慢慢就会出现梯度消失。如果W初始化为较大的值,通过多层之后,梯度下降会导致梯度越来越大,产生爆炸。

当w越大,其wx+b很可能变的很大,而根据上面sigmoid函数导数的图像可以看到,wx+b越大,导数的值也会变的很小。因此,若要出现梯度爆炸,其w既要大还要保证激活函数的导数不要太小。
下面说下解决办法:

预训练加微调
梯度剪切、权重正则(针对梯度爆炸)
使用不同的激活函数(非饱和的激活函数,如ReLU、Leaky-ReLU、P-ReLU、R-ReLU、Maxout等)
使用batchnorm
使用残差结构
使用LSTM网络
梯度截断(Gradient Clipping)
更快的优化器
好的参数初始化方式,如He初始化
31.embedding?

在数学上是一个函数,,意思就从高纬抽象空间映射到低纬具象空间
抽象-具象
词-语义
为什么要做embedding?
1.抽象的事物都应该有一个低纬的表示
2.计算机善于处理低纬度信息
3.解决one-hot编码带来的纬度爆炸问题
嵌入的好处?
1.计算词向量的相似度,扩充标签
2.累加得到一个文本向量
3.用于聚类会比词聚类有更好的聚类效果

32.语言模型跟CBOW模型的区别?

1.输入层:前者用N-GRAM模型,后者是CBOW
2.输入到投影层的操作:前者是拼接,后者是累加求和
3.隐藏层:前者有,后者无
4.输出层:前者线性结构,后者是树形结构

33.深度学习不适合处理稀疏特征向量的原因?

1.导致全连接层爆炸
2.样本数量少于特征数会造成模型过拟合

34.激活函数?

饱和:sigmoid,tanh
缺点:出现梯度消失问题
非饱和:relu及其变体
优点:解决梯度消失问题
加快收敛速度
计算速度快

35.什么是预训练?

NLP网络第一层参数使用其他任务训练的word embedding ,高层参数仍然随机初始化
为什么可行?
因为网络底层提取出的特征是基础特征,跟具体任务相关性不大,具备任务的通用性,而网络高层提取出的特征跟具体任务密切相关

机器学习

1.梯度下降的特征缩放

1.使得算法不会受到某一特征的主导
2.加快梯度下降算法的收敛速度

2.梯度下降的学习率

1.学习率太小,收敛会很慢,损失函数不断下降
2.学习率过大,会越过最低点,导致无法收敛甚至发散,损失函数不断上升

3.梯度下降的学习率

1.学习率太小,收敛会很慢,损失函数不断下降
2.学习率过大,会越过最低点,导致无法收敛甚至发散,损失函数不断上升

4.前向传播跟反向传播的区别?

前向传播:输入的加权和做非线性映射 = 激活值
反向传播:误差的加权和与激活值的导数相乘 = 误差

5.神经网络的参数为什么要随机初始化?

设有一个多层感知机模型,假设输出层只保留一个输出单元 ,且隐藏层使用相同的激活函数。如果将每个隐藏单元的参数都初始化为相等的值,那么在正向传播时每个隐藏单元将根据相同的输入计算出相同的值,并传递至输出层。
在反向传播中,每个隐藏单元的参数梯度值相等。因此,这些参数在使用基于梯度的优化算法迭代后值依然相等。之后的迭代也是如此。在这种情况下,无论隐藏单元有多少,隐藏层本质上只有一个隐藏单元在发挥作用。
因此,通常对神经网络的模型参数,特别是权重参数进行随机初始化。随机初始化模型参数的方法有很多,可以使用正态分布的随机初始化方式。

6.算法结题思路?

1.赛题理解

  • 分析数据的特征
  • 理解业务背景
  • 构建解决问题的思路

2.数据探索跟预处理

  • 数据探索分析
  • 缺失值填充
  • 异常值处理

3.特征工程

  • 分析业务特点
  • 搜集行业经验
  • 数据探索分析
  • 头脑风暴
  • 特征优化调优

4.算法尝试

  • 常见的机器学习算法
  • 常见的深度学习算法

5 算法选择

  • xgboost
  • lightgbm
  1. 算法模型参数优化
  • 网格调参
  1. 模型融合
  • stack
  • 平均值
  • 最大投票
7.样本不均衡解决方法?

1.随机欠采样:
优点:平衡数据的同事减小了数据量
缺点:数据减少会影响模型的特征学习能力跟泛化能力
2.随机过采样:
优点:没有导致数据信息的丢失
缺点:增加了过拟合的可能性

8.类别特征的转换?

类别特征常用的处理方法:
1.序号编码:成绩的高中低,转成3,2,1
2.独热编码:比如血性中的a=[1,0,0,0],b = [0,1,0,0]
3.二进制编码:跟独热类似

9.高纬组合特征的处理?

把一阶离散特征两两组合,就构成高阶组合特征
中文 - 电影 = 中文电影,中文电视剧
英文-电视剧 = 英文电影,英文电视剧,
一般当引入id类型的特征,通常需要降维
组合特征
利用决策树方法来组合特征

10.常见的机器学习算法?

朴素贝叶斯,逻辑回归,sVM,感知机,最大熵模型,em算法,决策树,主成分分析
感知机:是二类分类的线性分类模型,输入为实例的特征向量,输出是正负1
K近邻算法:是一种基本分类跟回归算法,算法步骤是,计算当前数据跟其他数据距离最近的K个数据点,然后查看他们的类,类最多的就是数据的分类类别
朴素贝叶斯:是一种基于贝叶斯定力跟条件独立假设的分类算法
决策树:是一种基本的分类跟回归方法,呈现树形结构,基于树的特征依次对实例进行分类
逻辑回归:对数线性模型分类回归方法

11.为什么做反向传播?

主要是为了加速,因为反向传播求导一次就可以求出所有的偏导数,反之前向传播因为数据的输入入口会变慢很多倍

12.两种框架的区别?

pytorch是一个动态的框架,而TensorFlow是一个静态的框架。何为静态的框架呢?我们知道,TensorFlow的尿性是,我们需要先构建一个TensorFlow的计算图,构建好了之后,这样一个计算图是不能够变的了,然后我们再传入不同的数据进去,进行计算。这就带来一个问题,就是固定了计算的流程,势必带来了不灵活性,如果我们要改变计算的逻辑,或者随着时间变化的计算逻辑,这样的动态计算TensorFlow是实现不了的,或者是很麻烦

12.有什么交叉验证的方法?

K折交叉法,留一法,留P法

13.怎么调参的?

网格搜索,也就是一种穷举的方法,划定一个范围,不断的尝试,所有的可能性,选出表现最好的参数

14.缺失值填充跟异常值检测?

1.直接删除2.平均值填充,中值填充,众数填充3.预测模型填充

dropna:删除
fillna:填充(指定值或插值方法)

isnull:返回是否空值
notnull:isnull的否定
统计量填充:连续值
特殊值填充:比如0
不处理:xgb跟LGB会自动处理

利用可视化的方法进行异常值检测
比如直方图,散点图,箱线图
利用封顶方法,认为在第五和第95范围之外的任何值都是异常值
距离平均值为三倍标准差或更大的数据点可以被认为异常值
删除:如果是输入误差,数据处理误差引起的异常值,直接删除
转换:数据转换可以消除异常值
填充:像处理缺失值一样,对异常值进行修改
区别对待:如果异常值很多,可以将数据区分两个不同的组,两组分别建立模型,最终输出合并

15.特征选择的定义?

主要是特征降维
1.过滤法:按照发散性跟相关性对各个特征进行评分,通过设定阈值或者带选择阈值的个数来选择特征
(代表:相关系数,互信息,卡方检验,信息增益)
2.包装法:根据预测效果得分,每次选择若干特征,或者排除若干特征
(代表:遗传算法,模拟退火算法)
3.嵌入发:使用机器学习算法进行训练,得到每个特征的权值系数,并根据系数从大到小选择特征
(代表:决策树-熵,信息增益,正则化)

16.模型的融合?

1.第一,根据电化学模型进行温度修正,兼顾不同场景
2.电化学模型的RUL结果会作为LSTM的一个新特征输入

17.模型融合方法?

1.bagging,boosting
2.投票法,平均法,权重法,

17.模型调参方法?

1.网格搜索
2.随机森林

18.数据探索是怎么做的?

1.查看训练集特征变量信息
2.查看数据统计信息
3.查看数据字段信息
4.画箱线图探索数据
5.查看数据分布图
6.可视化线性回归关系
7.查看特征变量的相关性(画出相关性热力图,找出特征变量和target变量相关系数大于0.5的特征变量)
8.查看特征变量跟target变量的

19.特征工程是怎么做的?

1.删除异常值
2.最大最小值归一化
3.查看训练集数据和测试集数据分布情况
4.特征降维
5相关性初筛
6.多重共线性筛选降维
7.pca主成分降维
8.决策树构建新特征

20.回归模型的评估指标和调用方法?

1.平均绝对值误差:MAE是预测值跟真实值的绝对值
2.均方误差:mse指参数估计值跟参数真实值之差的平方
3.均方根误差:均方误差的平方根
4.R2:反映了回归模型在多大程度上解释了因变量的变化,换句话就是模型对观测值的拟合程度如何

21.什么条件下做模型融合?

个体学习模型的准确性越高,多样性越大,模型融合的提升效果越好

22.L1正则化和L2正则化分别适⽤于什么样的场景?

如果需要稀疏性就⽤l1,因为l1的梯度是1或-1,所以每次更新都稳步向0趋近。
⼀般多⽤l2因为计算⽅便“求导置零解⽅程”,l2只有最好的⼀条预测线⽽l1可能有多个最优解。
l1鲁棒性更强对异常值不敏感

23.归⼀化和标准化

归⼀化:对不同特征维度的伸缩变换的⽬的是使各个特征维度对⽬标函数的影响权᯿是⼀致的,即使得那些扁平分
布的数据伸缩变换成类圆形。这也就改变了原始数据的⼀个分布。
好处:
1 提⾼迭代求解的收敛速度,不归⼀化梯度可能会震荡
2 提⾼迭代求解的精度

标准化:对不同特征维度的伸缩变换的⽬的是使得不同度ᰁ之间的特征具有可⽐性。同时不改变原始数据的分布。
好处
1 使得不同度ᰁ之间的特征具有可⽐性,对⽬标函数的影响体现在⼏何分布上,⽽不是数值上
2 不改变原始数据的分布

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,657评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,889评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,057评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,509评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,562评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,443评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,251评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,129评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,561评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,779评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,902评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,621评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,220评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,838评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,971评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,025评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,843评论 2 354

推荐阅读更多精彩内容