吴恩达《Machine Learning》精炼笔记 5:神经网络

简介: 吴恩达《Machine Learning》精炼笔记 5:神经网络

系列文章:


吴恩达《Machine Learning》精炼笔记 1:监督学习与非监督学习

吴恩达《Machine Learning》精炼笔记 2:梯度下降与正规方程

吴恩达《Machine Learning》精炼笔记 3:回归问题和正则化

吴恩达《Machine Learning》精炼笔记 4:神经网络基础


今天带来第五周课程的笔记:神经网络。本文是在上节神经网络的基础上,做了进一步的阐述,内容包含:


  • 神经网络代价函数
  • 反向传播法及解释
  • 梯度检验
  • 神经网络的小结


神经网络代价函数


参数解释


对几个参数的标记方法进行说明解释:


image.png


分类讨论


主要是两类:二分类和多类分类


image.png


代价函数


逻辑斯蒂回归(LR)中的代价函数:


image.png

在逻辑斯蒂回归中,只有一个输出变量称之为标量scalar。


但是在神经网络中会有多个输出变量,hθ(x)是一个K维的向量。


假设第i个输出函数:


image.png

代价函数J表示为:


image.png

解释说明:


image.png



反向传播法Backpropagation Algorithm



image.png

image.png

  • 首先计算最后一层的误差
  • 再一层层地反向求出各层的误差,直到倒数第二层


前向传播例子


假设有一个数据样本:



image.png

前向传播法就是通过一层层地按照神经网络的顺序从输入层到输出层计算下去。


反向传播例子


image.png

1. 从最后一层的误差开始计算:


image.png


2. 用δ表示误差,误差=模型预测值-真实值


image.png

3. 前一层的误差


image.png

image.png

4. 再前一层的误差

image.png

第一层是输入变量,不存在误差


5. 假设λ=0,如果不做正则化处理时


image.png

对上面的式子中各个上下标的含义进行解释:


  • l代表的是第几层
  • j代表的是计算层中的激活单元的下标
  • i代表的是误差单元的下标


算法


image.png



  • 利用正向传播方法计算每层的激活单元
  • 利用训练集的真实结果与神经网络的预测结果求出最后一层的误差
  • 最后利用该误差运用反向传播法计算出直至第二层的所有误差。
  • 便可以计算代价函数的偏导数


反向传播的直观理解


前向传播原理


  • 2个输入单元;2个隐藏层(不包含偏置单元);1个输出单元
  • 上标ii表示的是第几层,下标表示的是第几个特征或者说属性


图中有个小问题,看截图的右下角!!!


image.png


根据上面的反向传播法得到的结论:

image.png

反向传播原理


image.pngimage.png


参数展开


上面的式子中实现了怎么利用反向传播法计算代价函数的导数,在这里介绍怎么将参数从矩阵形式展开成向量形式


image.png



梯度检验


如何求解在某点的导数


image.png


在代价函数中怎么对某个参数θ求导


image.png


神经网络小结


首要工作


在构建神经网络的时候,首先考虑的是如何选择网络结构:多少层和每层多少个神经单元


  • 第一层的单元数即我们训练集的特征数量。
  • 最后一层的单元数是我们训练集的结果的类的数量。
  • 如果隐藏层数大于1,确保每个隐藏层的单元个数相同,通常情况下隐藏层单元的个数越多越好。


训练神经网络步骤


  1. 参数的随机初始化
  2. 利用正向传播方法计算所有的hθ(x)
  3. 编写计算代价函数 JJ的代码
  4. 利用反向传播方法计算所有偏导数
  5. 利用数值检验方法检验这些偏导数
  6. 使用优化算法来最小化代价函数


至此,第五周的课程笔记完毕!

相关文章
|
27天前
|
机器学习/深度学习 数据可视化 Windows
深度学习笔记(七):如何用Mxnet来将神经网络可视化
这篇文章介绍了如何使用Mxnet框架来实现神经网络的可视化,包括环境依赖的安装、具体的代码实现以及运行结果的展示。
49 0
|
27天前
|
机器学习/深度学习 Python
深度学习笔记(九):神经网络剪枝(Neural Network Pruning)详细介绍
神经网络剪枝是一种通过移除不重要的权重来减小模型大小并提高效率的技术,同时尽量保持模型性能。
44 0
深度学习笔记(九):神经网络剪枝(Neural Network Pruning)详细介绍
|
27天前
|
机器学习/深度学习 算法
深度学习笔记(四):神经网络之链式法则详解
这篇文章详细解释了链式法则在神经网络优化中的作用,说明了如何通过引入中间变量简化复杂函数的微分计算,并通过实例展示了链式法则在反向传播算法中的应用。
41 0
深度学习笔记(四):神经网络之链式法则详解
|
27天前
|
机器学习/深度学习 编解码
深度学习笔记(三):神经网络之九种激活函数Sigmoid、tanh、ReLU、ReLU6、Leaky Relu、ELU、Swish、Mish、Softmax详解
本文介绍了九种常用的神经网络激活函数:Sigmoid、tanh、ReLU、ReLU6、Leaky ReLU、ELU、Swish、Mish和Softmax,包括它们的定义、图像、优缺点以及在深度学习中的应用和代码实现。
103 0
深度学习笔记(三):神经网络之九种激活函数Sigmoid、tanh、ReLU、ReLU6、Leaky Relu、ELU、Swish、Mish、Softmax详解
|
27天前
|
机器学习/深度学习
深度学习笔记(一): 神经网络之感知机详解
深度学习笔记(一):探索感知机模型及其在神经网络中的应用。
32 0
深度学习笔记(一): 神经网络之感知机详解
|
2月前
|
机器学习/深度学习
小土堆-pytorch-神经网络-损失函数与反向传播_笔记
在使用损失函数时,关键在于匹配输入和输出形状。例如,在L1Loss中,输入形状中的N代表批量大小。以下是具体示例:对于相同形状的输入和目标张量,L1Loss默认计算差值并求平均;此外,均方误差(MSE)也是常用损失函数。实战中,损失函数用于计算模型输出与真实标签间的差距,并通过反向传播更新模型参数。
|
6月前
|
机器学习/深度学习 数据可视化 计算机视觉
【YOLOv8改进】MCA:用于图像识别的深度卷积神经网络中的多维协作注意力 (论文笔记+引入代码)
YOLO目标检测专栏介绍了YOLO的创新改进和实战案例,包括多维协作注意力(MCA)机制,它通过三分支架构同时处理通道、高度和宽度注意力,提高CNN性能。MCA设计了自适应组合和门控机制,增强特征表示,且保持轻量化。该模块适用于各种CNN,实验证明其在图像识别任务上的优越性。此外,文章还展示了如何在YOLOv8中引入MCA层的代码实现和相关任务配置。
|
11月前
|
机器学习/深度学习
华为ICT——第一章-神经网络基础 私人笔记
机器学习方法分类 1:监督 2:无监督 3:自监督
58 1
华为ICT——第一章-神经网络基础 私人笔记
|
6月前
|
机器学习/深度学习 运维 搜索推荐
图神经网络笔记
图神经网络笔记
120 0
|
机器学习/深度学习 数据可视化 PyTorch
【Deep Learning 5】FNN前馈神经网络
🍊本文详细介绍了FNN的原理,并给出了具体的推导过程🍊使用Pytorch搭建了FNN模型,并对糖尿病数据集开展分类任务实战。
940 0