1、weights、bias 参数学习

我们希望有一种学习算法,它能够自动地调整网络中的权重因子和偏置。 但是,我们怎样才能设计出这样的算法神经网络?可以通过学习来解决一些问题。假如,网络的输入是从扫描的原始像素数据,亦或是手写数字的图像。我们希望通过网络可以自动地学习权重和偏差,使输出从网络正确分类的数字。假设我们对网络上的一些权重(或偏置)做一些小的调整,并且希望网络上权重因子和偏差也仅有较小的变化,同样的在输出网络中也只产生一个小的改变。我们想象一下这样的参数学习能否为自适应的形式?如下图所示:

(1)

假设一个小的权重变化(或偏置)对输出也产生较小的影响,那么我们通过这一策略来修改的权重(weight)和偏置(bias),让网络学习到更多想要的规则。例如,假设在网络中图像“9”被误分为“8”时。可以通过校正权重和偏(每次做细小的改变),使网络变得更接近分类的图像为“9”。 最终网络将循环校正,不断调整权重(weight)和偏置(bias),使网络得到更好的输出结果。

问题并不是想象的这么简单,在一个网络的众多神经元当中,一个参数的细小改变,也许会发生天翻地覆的变化。实际上,在网络中的任何一个单一的感知器(神经元)的权重或偏差发生变化,即使是细微的变化,有时会导致输出完全相反,就像从 0 到 1 的变化。因此,虽然你的“9”可能被正确分类,但是网络中的感知器就很可能无法学习到为其它数字分类的‘规则’,这也就使得网络中参数学习变得极其困难。也许有一些聪明的方法来解决这个问题,显而易见这不是我们想要的结果。

2、sigmoid 神经元的引入

我们可以通过引入一种人工神经元(即 sigmoid(function () { 神经元:
(2)

和感知器一样,这里 sigmoid 。 定义为:
(3)

上式中,将输入、即参数带入,形式上可以写为:
(4)

2.1、sigmoid 原理

仅从数学公式上看,sigmoid 神经元之间有许多相似之处。

为了更详细地了解感知器模型,假设 z≡w⋅x+b。

sigmoid

smoothed

2.2、Sigmoid function

假如σ 可以近似的表示为:

(5)

这里 Δoutput 进行微调,以至于感知器可以尽可能地学习到“想要”的规则。/font>

3 总结

我们该如何去阐述 sigmoid 神经元的输出不只局限在 0 or 1 。它的输出可以是 0 到 1 之间的任意数值,如 0.124…,0.864…。这样的改变,将对整个神经网络产生质的变化。

代码实现:

class Network(object):def __init__(self, sizes):self.num_layers = len(sizes)self.sizes = sizesself.biases = [np.random.randn(y, 1) for y in sizes[1:]]self.weights = [np.random.randn(y, x) for x, y in zip(sizes[:-1], sizes[1:])]def sigmoid(z):"""sigmoid 函数实现"""return 1.0/(1.0+np.exp(-z))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

(function () {('pre.prettyprint code').each(function () { var lines = (this).text().split(′\n′).length;var (this).text().split('\n').length;var numbering = $(' ').addClass('pre-numbering').hide(); (this).addClass(′has−numbering′).parent().append( (this).addClass('has-numbering').parent().append(numbering); for (i = 1; i

神经网络中的sigmoid函数相关推荐

  1. 机器学习、神经网络中不懂的函数及功能实现

    classification_report from sklearn.metrics import classification_report # 比较正确率 召回率 F1值 越高越好 print(c ...

  2. sigmoid函数_常用的激活(激励)函数——深度学习笔记(建议收藏)

    激活函数(又叫激励函数,后面就全部统称为激活函数)是模型整个结构中的非线性扭曲力,神经网络的每层都会有一个激活函数.那他到底是什么,有什么作用?都有哪些常见的激活函数呢? 深度学习的基本原理就是基于人 ...

  3. What is the Softmax Function?详解机器学习中的Softmax函数【小白菜可懂】

    目录 定义 公式 计算 Softmax vs Sigmoid Softmax vs Sigmoid 计算 Softmax vs Argmax Softmax vs Argmax 计算 应用 神经网络中 ...

  4. 【机器学习算法面试题】四.深度神经网络中激活函数有哪些?

    欢迎订阅本专栏:<机器学习算法面试题> 订阅地址:https://blog.csdn.net/m0_38068876/category_11810806.html [机器学习算法面试题]一 ...

  5. 神经网络中的S型函数是什么?

    S型函数是什么?有什么用? S型函数(Sigmoid function)是BP神经网络中常用的非线性作用函数,即sigmoid函数,公式是f(x)=1/(1+e-x)(-x是幂数) Sigmoid函数 ...

  6. Matlba绘制Logistic函数特殊形式的sigmoid函数图像(含程序)

    前言 仅作为记录,详细的探讨可以查看以下博主链接: 机器学习中 Sigmoid 函数的物理含义 - 知乎 大白话深度学习中的Sigmoid函数 - 知乎 1.Logistic函数通式 其中,σ0为初始 ...

  7. Sigmoid 函数(To be continued)

    1.Definition Sigmoid 函数又称 S 函数,或者逻辑函数(Logistic function),它是一个连续.光滑.严格单调的阈值函数. 其函数图像为: 其对称中心为(0, 0.5) ...

  8. Sigmoid函数与逻辑回归

    文章目录 (1). Sigmoid函数的由来--伯努利分布的衍生物 1.1 为什么会有 sigmoid 函数的出现? 1.2 sigmoid 函数推导过程 1.3 sigmoid 函数求导 (2). ...

  9. 机器学习基础(七)——sigmoid 函数的性质

    θ(s)=11+e−s \theta(s)=\frac1{1+e^{-s}} 值域 (0,1)(0, 1) 常作为神经元(neuron)内部所代表的激励函数(activation)存在: 但对于 BP ...

最新文章

  1. html5联系人字母,HTML5 字符串逐个字母变换
  2. gcc 编译器常用的命令行参数一览
  3. Linux命令 iperf - 网络性能测试工具
  4. 关系数据库是如何工作的
  5. python 批量读取文件夹的动漫美女图并显示
  6. VTK:可视化算法之IceCream
  7. YUM更换源--yum找不到安装包(转)
  8. BZOJ4122 : [Baltic2015]File paths
  9. ibatis mysql 配置文件详解_MyBatis配置文件详解
  10. [生活]我短暂的股票生涯
  11. 深入浅出、通俗易懂的讲解CAN bus。
  12. PreparedStatement 大数据查询
  13. staircase nim 经典组合游戏
  14. 三个团队的站立会议旁观笔记
  15. css中的vw/vh与%
  16. 管理薪酬 穆穆-movno1
  17. matlab斜杠日期,日期用斜线怎么写
  18. KDZD606绝缘服试验装置
  19. 机房租赁,如何鱼和熊掌兼得?
  20. linux下多个文件相同行合并

热门文章

  1. C 语言调用 JNI_CreateJavaVM
  2. html基础笔记与html5代码展示
  3. ADS1.2+2440+j-link(亲测)
  4. MySQL的utf8与utf8mb4编码,以及utf8_bin、utf8_general_ci编码区别
  5. python 使用wxpy实现获取微信好友列表 头像 群成员
  6. Vue-什么是vuex
  7. 淘宝商品SKU接口、desc信息、淘宝商品详情API
  8. 市场营销中4P对应4C理论
  9. 看了中国与别国的科研差距后,究竟什么才是真正的科研精神?
  10. 2.1.2 Android刘海屏适配