美文网首页
机器学习:神经网络

机器学习:神经网络

作者: 星光下的胖子 | 来源:发表于2020-05-15 09:41 被阅读0次

    一、什么是神经网络

    人工神经网络简称“神经网络”,是一种应用类似于大脑神经突触联接的结构、用于进行信息处理的数学模型。简单来说,是一种数学模型,其借鉴了生物神经网络的工作原理,并用于做信息处理。

    神经元

    神经网络的基本结构是神经元,如下图所示:

    神经元

    其中,x_1x_2x_3代表输入,中间部分为神经元,最后的h_{w,b}(x)是神经元的输出。整个过程可理解为:输入--->处理--->输出。

    神经网络

    多个神经元可组成一个神经网络,神经网络的结构分为:输入层、隐藏层、输出层。

    神经网络

    上图是一个简单的神经网络,Layer1是输入层,Layer4是输出层,Layer2+Layer3为隐藏层。除了输入层以外,每一层的输入都是上一层的输出。

    神经网络数学原理
    神经元
    • 总输入值=\sum_{i=1}^{n}{x_iw_i}
      {x_1}~{x_n}为输入数据,每一个 feature 对应一个{x_i}{w_i}为权重。
    • 偏置(阈值)b = {x_0w_0}
      {x_0}通常被赋值为+1,也就使w_0变成固定的偏置输入b
      偏置的大小度量了神经元产生正(负)激励的难易程度。
    • 加和值\sum=总输入值+偏置值=\sum_{i=1}^{n}{x_iw_i} + {b} = \sum_{i=0}^{n}{x_iw_i}
    • f为激活函数,对加和结果做非线性变化。
      常用的激活函数有 ReLU、Tanh、Sigmoid、Linear。
    • h_{w,b}{(x)}=f(\sum_{i=1}^{n}{x_iw_i} + {b})为输出结果。

    在神经网络模型中,w就是我们要训练的模型参数。x是输入数据,y是我们期望的目标值(实际值),h是输出结果。|y-h|为误差,为方便计算,定义损失函数loss=(y-h)^2

    模型训练大致流程:

    • 首先,在随机分配权重w的情况下,数据x通过前向传播(输入层-->隐藏层-->输出层),得到一个输出h。对比目标yh之间的差距,得到损失loss=(y-h)^2
    • 然后,根据loss进行反向传播,对权值w进行更新修正。
    • 得到新的权值w后,再重复上面的过程,如此往复,不断地更新修正权值w,直到loss达到我们设定的阈值范围。

    二、常见的几种神经网络

    1、多层感知机MLP(Multilayer Perceptron)

    全连接神经网络(Full Connection,FC)的准则:除输入层之外的每个节点都和上一层的所有节点连接。

    多层感知机

    上图是一个多层感知机(MLP),我们说MLP就是全连接神经网络,因为MLP中层与层之间就是全连接的。第N层的每个神经元都和第N-1层的所有神经元相连,第N-1层神经元的输出就是第N层神经元的输入。

    2、卷积神经网络CNN(Convolutional Neural Networks)
    CNN

    卷积神经网络的层级结构:

    • 输入层
    • 隐藏层
      • 卷积层(convolutional layer)
      • 池化层(pooling layer)
      • 全连接层(fully-connected layer)
    • 输出层

    卷积神经网络主要用于图像处理,但也可用于其他类型的输入,如音频。CNN 的典型用例是对图像进行识别分类,如手写数字的识别分类。

    3、循环神经网络RNN(Recurrent Neural Network)
    RNN

    RNN循环神经网络是根据“人的认知是基于过往的经验和记忆”这一观点提出的。它与DNN、CNN的不同在于:它不仅考虑当前时刻的输入,而且赋予了网络对先前的内容的一种‘记忆’功能。

    在循环神经网络中,隐藏层节点之间是互相连接的,并且每个神经元内部会保存它先前的值。当前(t=2)的输出,不仅依赖于当前(t=2)的输入,还依赖于先前(t=1)的输出。

    只要是考虑时间先后顺序的问题,都可以用RNN来解决。RNN的常用领域:

    • 自然语言处理(NLP):主要有视频处理,文本生成,语言模型,图像处理。
    • 机器翻译,机器写小说
    • 语音识别
    • 图像描述生成
    • 文本相似度计算
    • 音乐推荐、商品推荐、视频推荐等。
    4、生成式对抗网络GAN(Generative Adversarial Networks)
    GAN

    生成式对抗网络包含两个模块:

    • 生成模型(Generative Model)。用来生成数据。
    • 判别模型(Discriminative Model)。用来判别生成数据的真实性。

    GAN的基本原理不难理解,我们以图片生成为例进行说明:

    • G是一个生成图片的网络。它接受一个随机的噪声z,通过这个噪声生成图片,记做G(z)。
    • D是一个判别网络,判别一张图片是不是“真实的”。它的输入参数是x,x代表一张图片,输出D(x)代表x为真实图片的概率,如果为1,就代表100%是真实的图片,如果为0,就代表不可能是真实的图片。

    在训练过程中,生成网络G的目标是尽量生成真实的图片去欺骗判别网络D。而D的目标是尽量把G生成的图片和真实的图片分辨出来。这样,G和D构成了一个动态的“博弈过程”。
    最后博弈的结果是什么?在最理想的状态下,G可以生成“以假乱真”的图片G(z)。对于D来说,它难以判定G生成的图片究竟是不是真实的,因此D(G(z)) = 0.5。
    这样我们的目的就达成了:我们得到了一个生成式的模型G,它可以用来生成图片。

    GAN常用于图像生成和数据增强。

    5、自编码机AE(AutoEncoder)
    AE

    AE的模型结构形似一个沙漏计时器,两边的输入层、输出层较大,中间的隐藏层较小。以中间层为轴,前半部分用于编码(特征提取、压缩),称为编码器;后半部分用于解码,称为解码器。

    • 编码器:将输入压缩成潜在空间表征。
    • 解码器:重构来自潜在空间表征的输入。

    自编码机的主要用途:去噪、降维、特征学习、信息补全等。

    相关文章

      网友评论

          本文标题:机器学习:神经网络

          本文链接:https://www.haomeiwen.com/subject/oljxohtx.html