• 人工神经网络ANN


    神经网络

    结构 (Architecture) :

    结构指定了网络中的变量和它们的拓扑关系。例如,神经网络中的变量可以是神经元连接的权重(weights)和神经元的激励值(activities of the neurons)。

    激励函数(Activity Rule):

     

    作用:激励函数是用来加入非线性因素的,因为线性模型的表达能力不够。

     

    常用的激活函数:

     

    1.sigmoid  采用S形函数,取值范围[0,1]

     

     

     

     

     

    2.tanh   双切正切函数,取值范围[-1,1]

     

     

     


    3.ReLU        简单而粗暴,大于0的留下,否则一律为0。

     

    学习规则(Learning Rule):

    学习规则指定了网络中的权重如何随着时间推进而调整。这一般被看做是一种长时间尺度的动力学规则。一般情况下,学习规则依赖于神经元的激励值。它也可能依赖于监督者提供的目标值和当前权重的值。

    人工神经网络

    人工神经网络结构图例

    内部计算图例:

    逻辑回归sigmoid函数图像:

     

     

    内部结构具有输入(xi),加权输入(x*wi)和Sigmoid函数。

    a.他们的节点排列在输入,输出和中间层,最后从外部隐藏;

    b.每个层中的每个节点都连接其他节点到下一层。这保证了层与层之间信息的不断向前流动;

    c.同一层内的节点彼此完全隔离。

    这里学习过程发生在将输入 - 输出对的样本反复馈送到网络中,直到它“学习”元素之间的关系为止。 这个过程称为前馈人工神经网络中的监督学习。 特别地,反向传播学习是指学习会话的输出与预期结果之间的差异尽可能地最小的监督学习方法。

    神经网络在分类问题中应用:

    非线性可分:

    逻辑回归的比较擅长解决线性可分的问题。对于非线性可分的问题,逻辑回归有一种运用复杂映射函数的思路,但这种思路只做了一次(非线性的)几何变换,就得到了线性可分的情形。引入多项式回归:

    神经网络处理非线性可分原理(利用神经元):

     

    神经元结构:

     

    a1~an为输入向量的各个分量

    w1~wn为神经元各个突触的权值

    b为偏置

    f为传递函数,通常为非线性函数。一般有traingd(),tansig(),hardlim()。以下默认为hardlim()

    t为神经元输出

    数学表示 t=f(W'A+b)

    W为权向量,W'为 W的转置

    A为输入向量

    b为偏置

    f为传递函数

    可见,一个神经元的功能是求得输入向量与权向量的内积后,经一个非线性传递函数得到一个标量结果。

    单个神经元的作用:把一个n维向量空间用n-1超平面分区成两部分(称之为判断边界),给定一个输入向量,神经元可以判断出这个向量位于超平面的哪一边。该超平面的方程:W'p+b=0 ,其中W权向量b偏置p超平面上的向量

    1.神经元逻辑与(交集):

    2.神经元逻辑或(并集):

    对线性分类器的[与]和[或]的组合,可以完美对平面样本点分布进行分类:

     

     

     

     bp神经网络

    误差反向传播(Error Back Propagation, BP)算法。BP算法的基本思想是,学习过程由信号的正向传播与误差的反向传播两个过程组成。

    “正向传播” 求损失, “反向传播” 回传误差

    输入层和中间隐层可以把它们看成一种特征提取的过程,就是把激励函数(例如 Logistic Regression)的输出当作特征,然后再将它送入下一个激励函数(例如 Logistic Regression),一层层变换。神经网络的训练,实际上就是同时训练特征提取算法以及最后的 激励函数(例如 Logistic Regression)的参数

    算法:

    输出层:

    误差展开至隐层:

    展开至输入层:

     

    调整权重让误差不断减小:

    随机梯度下降.

     

    Tensfolw演示

     

     

     

     

     

     

     

     

  • 相关阅读:
    cmake的find_package()简单总结
    C++的模板类:不能将定义与声明写在不同文件中
    C++的模板类:不能将定义与声明写在不同文件中
    SLAM的评测工具evo
    ubuntu安装opencv3.2
    ROS的Target Platforms
    git push的时候.gitignore不起作用的解决方法
    利用zed相机为rtabmap_ros录制rosbag包及其使用
    .pcd格式点云文件的显示
    记录一下mariadb设置主从同步的过程[虚拟机测试]
  • 原文地址:https://www.cnblogs.com/xmeo/p/6743837.html
Copyright © 2020-2023  润新知