Michael Nielsen神经网络与深度学习notes(1)

Neural networks and deep learning(一本入门级好书)
Michael Nielsen
在线阅读链接:http://neuralnetworksanddeeplearning.com/index.html
中文版链接:https://pan.baidu.com/s/1bo0t7sz 密码: ecvf
代码下载链接:https://pan.baidu.com/s/1c1PuaGC 密码: 4w8n
(以识别手写数字为例)

Part 0 预备知识

0-0 感知器
(接受几个二进制输入,分配权重求和,产生一个二进制输出)


Michael Nielsen神经网络与深度学习notes(1)_第1张图片
感知器

Michael Nielsen神经网络与深度学习notes(1)_第2张图片
输出规则1

将阈值移到不等式另一边,用感知器的偏置b=-threshold代替。


输出规则2

假如我们有一个感知器,那如果这个网络能学习权重和偏置,就能做出判断啦。

0-1 S型神经元


Michael Nielsen神经网络与深度学习notes(1)_第3张图片

为了使我们的权重和偏置的微小改动只引起微小变化,我们定义一个S型函数(求偏导就知道为什么可以这样啦;而且事实上还有很多不同的激活函数):


S型函数

Michael Nielsen神经网络与深度学习notes(1)_第4张图片
S型函数图像

那么此时输出变成:
输出

0-2 一个简单的手写数字分类神经网络结构

Michael Nielsen神经网络与深度学习notes(1)_第5张图片
神经网络结构图

注:本文讨论的为前馈神经网络,即上一层输入作为下一层输出。(实际上也有递归神经网络~ )
输入层:由于此网络的输入训练数据为扫描得到的28 28的手写数字图像(0,1,2,...,9),因此输入层包含784=2828个神经元。
隐藏层:假设该层第一个神经元用于检测如下图像是否存在:
1

第二三四个分别检测以下是否存在:
234

那么若隐藏层的这四个神经元都被激活,则可以判断为0.
0

输出层:含有10个神经元。

Part 1 使用梯度下降算法学习权重和偏置

定义二次代价函数量化我们的目标:


代价函数

问题转化成求使C(w,b)最小的w和b。如下图,梯度下降方向则为使C最快减小的方向,eta称为学习速率。


梯度下降学习规则

为了加快学习,采用随机梯度下降:通过随机选取小量训练样本计算deltaCx,求平均值即可得到deltaC的估算。
Michael Nielsen神经网络与深度学习notes(1)_第6张图片
随机梯度下降学习规则

Part 2 反向传播算法计算代价函数的梯度

2-0 一些符号表示


Michael Nielsen神经网络与深度学习notes(1)_第7张图片
权重

Michael Nielsen神经网络与深度学习notes(1)_第8张图片
隐藏层和输出层的值

代价函数表示为:


代价函数

2-1 四个基本方程


输出层误差

当前层误差

第l层第j个神经元的误差

Michael Nielsen神经网络与深度学习notes(1)_第9张图片

2-2 反向传播算法

Michael Nielsen神经网络与深度学习notes(1)_第10张图片
算法步骤

你可能感兴趣的:(Michael Nielsen神经网络与深度学习notes(1))