跬步神经网络:基本模型解析

作者:严峻

导语:最近开始看NN,很多疑问。微积分什么的早丢了,边看边查,记录备忘。 本篇主要是针对最基本的网络模型,解释反向传播(backpropagation)原理。

整个神经网络可以理解成变量是所有 w、b的损失函数 L,L(w1,b1,w2,b2,w3,b3.......)。

为求L的极小值,使用梯度下降的方法,

对每个变量求偏导,算出 Δw、Δb,

更新 w = w - lr Δw,b = b - lr Δb ,其中lr 是步长(learning rate)。

激活函数、损失函数、网络结构、训练方法、连接方式、填充方式,都有很多选择,每个选择都会影响最终结果,要达到最优需要逐步积累经验。

先从最简单的开始。

需要复习的知识点,导数和偏导数、链式法则、梯度下降 。

导数:二维几何场景下,可以理解为曲线上某点的斜率,在求函数极小值的时候,可以根据斜率确定下一步 X 该增大还是减小。

偏导数:存在多个变量的情况下,x的偏导就是假设其他变量都是常数,然后对x求导。

链式法则:借一张图

梯度下降:求导或偏导得到斜率确定变化值,更新变量得到新的值,重复上面的操作,直到斜率为0或小于设置的某个阈值(比如0.000001)

x = x - lrΔx,y = y - lrΔy,其中lr 是步长

NN网络举个栗子:

神经元:

激活函数、损失函数:

网络结构:

根据上面的网络结构以及定义,可以得到:

为了更新 W24、W25,需要求 E关于W24、W25的偏导:

计算W12偏导比较麻烦一些

根据上面的结果,总结下面的公式:

不同的激活函数和损失函数,求导的方程不一样。 上面的例子使用 logistic函数和最小方差。 下一步打算根据上面的公式,用c++写个小程序动手跑一遍,加深理解,尝试解决简单问题,然后熟悉成熟框架。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Phoenix的Android之旅

Java 集合 Vector

List有三种实现,ArrayList, LinkedList, Vector, 它们的区别在于, ArrayList是非线程安全的, Vector则是线程安全...

692
来自专栏Java Edge

AbstractList源码解析1 实现的方法2 两种内部迭代器3 两种内部类3 SubList 源码分析4 RandomAccessSubList 源码:AbstractList 作为 Lis

它实现了 List 的一些位置相关操作(比如 get,set,add,remove),是第一个实现随机访问方法的集合类,但不支持添加和替换

622
来自专栏赵俊的Java专栏

从源码上分析 ArrayList

1211
来自专栏ml

朴素贝叶斯分类器(离散型)算法实现(一)

1. 贝叶斯定理:        (1)   P(A^B) = P(A|B)P(B) = P(B|A)P(A)   由(1)得    P(A|B) = P(B|...

3657
来自专栏MelonTeam专栏

ArrayList源码完全分析

导语: 这里分析的ArrayList是使用的JDK1.8里面的类,AndroidSDK里面的ArrayList基本和这个一样。 分析的方式是逐个API进行解析 ...

4779
来自专栏xingoo, 一个梦想做发明家的程序员

Spark踩坑——java.lang.AbstractMethodError

百度了一下说是版本不一致导致的。于是重新检查各个jar包,发现spark-sql-kafka的版本是2.2,而spark的版本是2.3,修改spark-sql-...

1290
来自专栏计算机视觉与深度学习基础

Leetcode 114 Flatten Binary Tree to Linked List

Given a binary tree, flatten it to a linked list in-place. For example, Given...

2108
来自专栏刘君君

JDK8的HashMap源码学习笔记

3308
来自专栏拭心的安卓进阶之路

Java 集合深入理解(6):AbstractList

今天心情比天蓝,来学学 AbstractList 吧! ? 什么是 AbstractList ? AbstractList 继承自 AbstractCollec...

20910
来自专栏Hongten

ArrayList VS Vector(ArrayList和Vector的区别)_面试的时候经常出现

2392

扫码关注云+社区