机器学习笔记:初始化0的问题

1 前言

假设我们有这样的两个模型:

  • 第一个是逻辑回归
    • a=sigmoid(w_1x_1+w_2x_2+b)
  • 第二个是神经网络
    • a_1=sigmoid(w_{11}x_1+w_{21}x_2+b_1)
    • a_2=sigmoid(w_{12}x_1+w_{22}x_2+b_1)
    • a_3=sigmoid(w_{13}1_1+w_{23}a_2+b_3)

他们的损失函数都是交叉熵

sigmoid函数的导数:

他们能不能用0初始化呢?

2 逻辑回归

a=sigmoid(w_1x_1+w_2x_2+b)

2.1 求偏导

2.1.1 结论

2.1.2 L对a的偏导

2.1.3 对w1,w2求偏导 

w2同理

2.1.4 对b偏导

2.2 参数更新与分析

w1,w2,b的梯度和w1,w2,b无关,所以初始化成0之后没有影响

3 神经网络

3.1 偏导

a3的部分和前面逻辑回归是一样的

 

3.1.1 a1部分推导

3.1.1.1 对a1的偏导

3.1.1.2 对w11,w21,b1的推导

3.2 初始化为0

3.2.1 w初始化为0,b初始化为0

3.2.2w初始化为0,b随机初始化

3.3 w随机初始化,b初始化为0

前向传播过程中,a1,a2均不为0,反向传播的过程中各参数均可以更新

更新幅度也不一样

参考内容:神经网络权重为什么不能初始化为0? (qq.com)

相关推荐

  1. 机器学习经典问题笔记

    2024-07-10 11:46:03       26 阅读
  2. AI学习笔记机器学习种类

    2024-07-10 11:46:03       20 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 11:46:03       4 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 11:46:03       5 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 11:46:03       4 阅读
  4. Python语言-面向对象

    2024-07-10 11:46:03       4 阅读

热门阅读

  1. Android IdleHandler源码分析

    2024-07-10 11:46:03       8 阅读
  2. docker-1

    docker-1

    2024-07-10 11:46:03      7 阅读
  3. Git批量删除本地h和远程分支说明

    2024-07-10 11:46:03       9 阅读
  4. mvccaa

    2024-07-10 11:46:03       8 阅读
  5. Linux 常用指令详解

    2024-07-10 11:46:03       8 阅读
  6. 第2章 源码编译构建LAMP

    2024-07-10 11:46:03       8 阅读
  7. 数据库doris中的tablet底层解析

    2024-07-10 11:46:03       8 阅读
  8. 使用Python threading模块创建多线程程序

    2024-07-10 11:46:03       10 阅读
  9. 探索数据的奥秘:sklearn中的聚类分析技术

    2024-07-10 11:46:03       8 阅读