zoukankan      html  css  js  c++  java
  • Deep Learning BP反向传播

    deep learning 深度学习
    Day2

    1.反向传播是神经网络训练的本质,简单的说就是迭代获得误差率,基于此调整参数,从而获得更可靠的模型。
    2.链式法则,如果某个函数由复合函数表示,则该复合函数的导数可以用构成复合函数的各个函数的导数的乘积表示。
    3.样本分成独立的三部分训练集(train set),验证集(validation set)和测试集(test set),训练集用于建立模型,验证集用来确定网络结构或者控制模型复杂程度的参数,测试集则检验最终选择最优的模型的性能如何。训练集占总样本的50%,而其它各占25%,三部分都是从样本中随机抽取。
    4.异或运算
    (1)数学符号为“⊕”,计算机符号为“xor”
    (2)a⊕b = (¬a ∧ b) ∨ (a ∧¬b)
    (3)如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。
    (4)表达式,可以矩阵表示为
    ①0^0 = 0,
    ②0^1 = 1,
    ③1^0 = 1,
    ④1^1 = 0
    5.激活函数就是上层节点输出和下层节点输入之间的函数关系。很多问题是非线性的,没 有激活函数,神经网络将直接成为一个线性函数。
    6.假设函数(hypothesis)根据一些数据推导另外一些数据。
    7.损失函数(cost function)损失函数就是表示的我们理想值与现实值之间的差距,又称 为成本函数。
    8.批处理梯度下降BGD是最小化风险函数、损失函数的一种常用方法
    (1)学习率难选取,太大会产生振荡,太小收敛缓慢
    (2)容易陷入局部最优解
    (3)梯度下降公式:h(x)是要拟合的函数,J(theta)损失函数,theta是参数,要迭代求解的值,theta求解 出来了那最终要拟合的函数h(theta)就出来了。其中m是训练集的记录条数,j是参数 的个数。

    9.偏置项(bias),控制着函数偏离原点的距离
    10.偏置b在网络中的目的是使得当某一层layer的输入分布不是0为中心时给予偏置补偿
    (1)但是,当该层layer的输入经过归一化,也就是0为中心时,不要偏置也可以拟合
    (2)通常情况下我们拿到的数据都不是0中心分布的,所以需要偏置b。
    (3)消除数据量纲
    11.神经网络的参数都是表示为:(W, b),其中W代表weight,b代表bias
    12.为了获得节点的损失(例如Z0),我们将其对应的f'(z)的值乘以它在下一层(delta_1)连接的节点的损失,再乘以连接两个节点的链路的权重。
    13.监督学习:从给定的训练数据集中学习出一个函数(模型参数),当新的数据到来时,可以根据这个函数预测结果。常见的有监督学习算法:回归分析和统计分类。最典型的算法是KNN和SVM。

    14.无监督学习:数据没标识,让机器学习出一个分类方法。常用的无监督学习算法主要有三种:聚类、离散点检测和降维,包括主成分分析方法PCA,等距映射方法、局部线性嵌入方法、拉普拉斯特征映射方法、黑塞局部线性嵌入方法和局部切空间排列方法等。目前常用聚类:把相似的东西聚在一起,而我们并不关心这一类是什么。
    15.半监督学习(semi-supervised learning)。对于半监督学习,其训练数据的一部分是有标签的,另一部分没有标签,而没标签数据的数量常常极大于有标签数据数量(这也是符合现实情况的)。隐藏在半监督学习下的基本规律在于:数据的分布必然不是完全随机的,通过一些有标签数据的局部特征,以及更多没标签数据的整体分布,就可以得到可以接受甚至是非常好的分类结果。
    16.主成分分析(PCA):是一种线性降维的方法,在减少矩阵维数同时,尽可能保留主要特征,从而节省空间和数据量
    17.协方差:度量各个维度偏离其均值的程度。正值正相关,负值负相关,0没有关系相互独立
    18.神经元:构成神经网络的基础结构,接收输入,处理后输出

    反向传播算法流程

    1.构建模型
    (1)设置训练集
    (2)激活函数
    ①Sigmoid函数
    1)优势
    a.映射到0~1
    b.连续可导
    2)缺点
    a.含有幂运算,训练缓慢
    b.梯度反向传递时,导致梯度爆炸和梯度消失
    c.输出不是0均值,使w单向更新,影响收敛速度
    ②Tanh函数
    1)优势:
    a.解决了0均值问题
    2)缺点:
    a.梯度消失
    b.幂运算
    另:ReLU函数
    3)优势:
    a.解决了梯度消失问题
    b.一次判断,计算速度快
    c.收敛快
    4)缺点
    a.不是0均值
    b.Dead ReLU Problem,某些神经元可能永远不会激活
    ③Leaky ReLU函数(PReLU)
    1)优势
    a.解决了Dead ReLU Problem
    (3)假设函数
    h(x) = W0X0+W1X1+W2X2。。。。。。
    (4)成本函数
    2.绘制网络图像
    (1)输入层 隐层 输出层
    (2)设定偏置项
    先设1,后期调整
    3.向前传播
    (1)计算加权和
    h(x) = W0X0+W1X1+W2X2......=a
    (2)计算激活值
    z = f(a)
    (3)计算迭代成本
    Loss = actual_y - perdicted_y
    4.反向传播
    (1)计算反向反馈的值
    F’(a) = 1
    J’(w) =z * delte
    5.计算增量
    (1)计算每个单元的增量
    捷径公式:
    delta_0 = w * delta_1 * f’(z)
    delta_0是单位损失,delta_1是另一侧的单位损失
    6.更新权重
    (1)批量梯度下降
    W:=W - alpha * J’(W)
    J’(W) = Z*delta
    (2)计算新权重

  • 相关阅读:
    LintCode "Maximum Gap"
    LintCode "Wood Cut"
    LintCode "Expression Evaluation"
    LintCode "Find Peak Element II"
    LintCode "Remove Node in Binary Search Tree"
    LintCode "Delete Digits"
    LintCode "Binary Representation"
    LeetCode "Game of Life"
    LintCode "Coins in a Line"
    LintCode "Word Break"
  • 原文地址:https://www.cnblogs.com/hello-bug/p/12524769.html
Copyright © 2011-2022 走看看