神经网络之非线性分类器——神经网络

1.单一神经元

  神经网络是由许许多多的单一神经元构成的,那每一个神经元的实质是什么呢?神经元就干一件事情,叫做非线性变换。如下图所示:

  

2.神经网络

  sigmod激活函数的作用是什么呢?它把一个数从负无穷到正无穷映射为0到1的部分,它只干这么一件事。那什么是神经网络呢?神经元是一个函数吧,那么神经网络是一个超级超级复杂的复合函数。

      

  上图中的神经网络实际上与线性分类器如出一辙。你看看啊,上图中有三层网络,每两层之间有权重,这些权重相当于线性分类器中的W矩阵。换句话说,这个神经网络实际上是由两个线性分类器构成的,只不过这里的分类器输出还要做一个非线性变换,当然了,靠近输出的那一层没有做非线性变换。

  上图中这里的z是非线性变换之前的结果,而a(activation)是经过非线性变换之后的结果.

3.目标函数

    

  这里的Sc是分类错误的分数,S是分类正确的分数,Xc是输出错误的对应的输入,X是输出正确的对应的输入。Δ的作用是用来增强自信心的,通常取为1.

4.反向传播算法

    

  如上图所示,Wjkl 这里的L代表第几层,j代表后边那一层的第j个节点,k代表前边那一层的第K个节点。如果改变图中红色线的权重,那1号神经元的输出结果会受影响,而2,3,4号神经元的输出结果不会受影响。那第三层的神经元都会受变化,因为第二层的第一个神经元受变化了,它跟后边的神经元都连接了。

    

  如上图所示,第二层第一个神经元的受到的变化为ΔajL,它一受变化,最终会导致他后边的所有神经元都要受变化,最终会导致损失函数受变化。

    

  那么第二层第一个神经元受的变化为多少呢?可用上图中的公式计算,可类比为一次函数求变化。求导相当与求斜率,如下图所示:

                

  

      接下来,以此类推,求下一层的变化情况,如下图所示:

    

   直到最后一层,导致损失函数的变化:

  

     因为可能改变的不止一个权重,如果有多个权重发生了改变,如上图所示,用累加求和的办法求出最后损失函数的变化就可以了。

      

  上图中,最后一项,δjk是损失函数对第K层第j个神经元的输入求导。为什么要定义这个呢?这是因为后边的反向传播算法要用到。

   

转载于:https://www.cnblogs.com/carlber/p/9776406.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
单层感知器神经网络是一种简单的神经网络模型,常用于线性分类问题。它基于感知器算法,通过一个线性函数将输入数据映射到输出类别。 在Matlab中,可以使用CSDN(中国最大的IT开发者社区)提供的文档和代码来实现单层感知器神经网络。首先,需要加载神经网络工具箱,该工具箱提供了一些函数和方法用于实现神经网络的建模和训练。 接着,我们需要准备训练数据集和测试数据集,其中包含输入特征和对应的输出类别。可以使用Matlab提供的数据导入工具函数将数据导入到Matlab工作空间中。 接下来,我们可以使用CSDN提供的代码来创建一个单层感知器神经网络模型。该代码使用了Matlab的神经网络工具箱提供的函数和方法。 神经网络模型创建后,我们需要对模型进行训练。可以使用Matlab的神经网络工具箱中的训练函数对模型进行训练,例如使用梯度下降法或者牛顿法等优化算法进行训练。 训练完成后,我们可以使用测试数据集对模型进行评估,测试模型在新数据上的分类性能。可以使用Matlab提供的评估函数进行分类性能的评估,例如计算准确率、召回率、F1值等指标。 通过以上步骤,我们可以使用Matlab和CSDN提供的工具和代码来实现单层感知器神经网络的线性分类功能。这种简单的神经网络模型在一些简单的线性分类问题上具有良好的性能,但对于复杂的线性分类问题可能不够有效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值