neural networks and deep learning第一章读书笔记


一切为了数据挖掘的准备

第一章:使用神经网络识别手写数字
1.1 感知器
  • 感知器:有输入x,用权重w表示相应的输入对输出的重要性,输出0或1由分配权重后的总和 ∑ w i x i \sum{w_ix_i} wixi小于或大于一些阈值threshold决定。可以将感知器看作根据权重做出决定的设备。
  • 设置偏置b=-threshold;wx+b <=0时输出0,wx+b > 0时输出1
  • 可以用感知器来计算简单的逻辑功能
  • 我们可以设计学习算法,自动调整人工神经元的权重和偏置
1.2 S型神经元
  • S型神经元中,被修改为权重和偏执的微小改动只引起微小的变化。

z = w x + b z = wx + b z=wx+b

σ ( z ) = 1 1 + exp ⁡ − z \sigma(z) = \frac{1}{1+\exp^{-z}} σ(z)=1+expz1
σ \sigma σ有时被称为逻辑函数,新的神经元被称为逻辑神经元

  • σ \sigma σ函数的平滑特性,意味着权重和偏执的微小变化会产生一个微小的输出变化。它的输出是[0,1]之间的任何实数,而不仅仅是0或1 ,可以根据输出与0.5的大小,判断“是”/“不是”的问题。
1.3 神经网络的架构
  • 输入层,输入神经元
  • 输出层,输出神经元
  • 中间层,隐藏层
  • 多层感知器/MLP:由S型神经元构成的神经网络
  • 前馈神经网络:以上一层的输入作为下一层的输出。这种网络没有回路,最终的输出依赖于输入。
  • 递归神经网络:有些人工神经网络的模型,反馈环路可行。设计思想:有些神经元在休眠前有限时间内被激活。这种激活状态可以刺激其它神经元在有限时间内被激活。随着时间的推移,得到一个级联的神经元激活系统。这样一个神经元的输出只在一段时间后影响它的输入,而非立即影响。
  • 递归神经网络比前馈网络影响力小很多。
1.4 用梯度下降算法进行学习
1.4.1 代价函数C

C ( w , b ) = 1 2 n ∑ i n ∥ ( y ( x i ) − a ) ∥ 2 C(w,b) = \frac{1}{2n}\sum_{i}^{n} \begin{Vmatrix}(y(x_i)-a)\end{Vmatrix}^2 C(w,b)=2n1in(y(xi)a)2

  • w表示所有的网络中权重的集合
  • b是所有的偏置
  • n是训练输入数据的个数
  • a是表示当输入为x时的输出向量,a = wx + b
  • 求和是在总的训练输入x上进行的
  • y是x对应的实际值
  • C称为二次代价函数,有时也叫均方误差,或MSE
  • 训练算法的目的:找到合适的权重和偏置,最小化代价函数C(w,b)
1.4.2 梯度下降算法
  • 对于C(w,b)
    Δ C ≈ ∂ C ∂ w Δ w + ∂ C ∂ b Δ b \Delta{C} \approx \frac{\partial C}{\partial w} \Delta{w} + \frac{\partial C}{\partial b} \Delta{b} ΔCwCΔw+bCΔb
  • 梯度向量
    ∇ C = ( ∂ C ∂ w , ∂ C ∂ b ) T \nabla{C} = (\frac{\partial C}{\partial w},\frac{\partial C}{\partial b})^T C=(wC,bC)T
    Δ v = ( Δ w , Δ b ) T \Delta{v} = (\Delta{w},\Delta{b})^T Δv=(Δw,Δb)T
    Δ C ≈ ∇ C ⋅ Δ v \Delta{C} \approx \nabla{C} \cdot \Delta{v} ΔCCΔv
    选取:
    Δ v = − η ∇ C \Delta{v} = -\eta\nabla C Δv=ηC
    w k → w ′ = w k − η ∂ C ∂ w k w_k \rightarrow w^ \prime = w_k - \eta\frac{\partial C}{\partial w_k} wkw=wkηwkC
    b l → b l ′ = b l − η ∂ C ∂ b l b_l \rightarrow b_l^ \prime = b_l - \eta\frac{\partial C}{\partial b_l} blbl=blηblC
    Δ C ≈ − η ∣ ∣ ∇ C ∣ ∣ 2 \Delta{C} \approx -\eta \mid\mid\nabla C\mid\mid ^2 ΔCηC2
    学习速率 η \eta η是个很小的正数
  • 梯度下降算法:重复的计算梯度 ∇ C \nabla C C,然后沿相反的方向移动 − η ∇ C -\eta\nabla C ηC,就能降低代价函数C( Δ C \Delta C ΔC< 0)
1.4.3 随机梯度下降

通过随机选取小量训练输入样本来计算 ∇ C x \nabla C_x Cx,进而估算梯度 ∇ C \nabla C C.通过计算少量样本的平均值,快速得到一个对实际梯度很好的估算,加速梯度下降。

  • 随机选取一个小批量数据。选m个训练数据,标记为 X 1 X_1 X1, X 2 X_2 X2, X m X_m Xm
  • 在当前批次数据中通过梯度下降计算权重和偏置
    w k → w k ′ = w k − η m ∑ j ∂ C X j ∂ w k w_k \rightarrow w_k ^ \prime =w_k -\frac{\eta}{m} \sum_j \frac{\partial C_{Xj}}{\partial w_k} wkwk=wkmηjwkCXj
    b l → b l ′ = b l − η m ∑ j ∂ C X j ∂ b l b_l \rightarrow b_l ^ \prime =b_l -\frac{\eta}{m} \sum_j \frac{\partial C_{Xj}}{\partial b_l} blbl=blmηjblCXj
  • 再挑选另一随机小批量数据训练,知道用完所有的训练输入。这被称为完成了一个训练迭代期(epoch)
1.4.4 在线/递增学习

将随机梯度下降算法中的小批量数据量设为1。即假设一个训练输入x,按照规则 w k → w k ′ = w k − η ∂ C X ∂ w k w_k \rightarrow w_k ^ \prime =w_k -\eta \frac{\partial C_{X}}{\partial w_k} wkwk=wkηwkCX, b l → b l ′ = b l − η ∂ C X ∂ b l b_l \rightarrow b_l ^ \prime =b_l -\eta \frac{\partial C_{X}}{\partial b_l} blbl=blηblCX更新权重为偏置;再选取另一个训练输入数据,再更新权重和偏置。

1.5 实现网络分类数字
  • 下一层的输入,是上一层的输出
  • 输出为wx+b应用 σ \sigma σ函数(将函数 σ \sigma σ向量化)
    x ′ = σ ( w x + b ) x^\prime = \sigma(wx+b) x=σ(wx+b)
1.6 深度神经网络

一个网络把非常复杂的问题,分解为在但像素层面就能回答的简单问题。它通过一系列多层结构完成,在前面的网络中,它回答一些关于输入图像非常明确的问题,在后面的网络哟层,建立一个更加复杂和抽象的层级结构。包含这种多层结构–两层或更多隐藏层–的网络被称为深度神经网络

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值