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

2017-05-19  本文已影响0人  Sherlyn_CHEN

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 感知器
(接受几个二进制输入,分配权重求和,产生一个二进制输出)


感知器
输出规则1

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


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

0-1 S型神经元



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


S型函数
S型函数图像
那么此时输出变成:
输出

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

神经网络结构图
注:本文讨论的为前馈神经网络,即上一层输入作为下一层输出。(实际上也有递归神经网络~ )
输入层:由于此网络的输入训练数据为扫描得到的2828的手写数字图像(0,1,2,...,9),因此输入层包含784=2828个神经元。
隐藏层:假设该层第一个神经元用于检测如下图像是否存在:
1
第二三四个分别检测以下是否存在:
234
那么若隐藏层的这四个神经元都被激活,则可以判断为0.
0
输出层:含有10个神经元。

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

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


代价函数

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


梯度下降学习规则
为了加快学习,采用随机梯度下降:通过随机选取小量训练样本计算deltaCx,求平均值即可得到deltaC的估算。
随机梯度下降学习规则

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

2-0 一些符号表示


权重
隐藏层和输出层的值

代价函数表示为:


代价函数

2-1 四个基本方程


输出层误差
当前层误差
第l层第j个神经元的误差

2-2 反向传播算法

算法步骤
上一篇 下一篇

猜你喜欢

热点阅读