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

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

今天带来第四周课程的笔记:神经网络基础。


  • 非线性假设
  • 神经元和大脑
  • 模型表示
  • 特征和直观理解
  • 多类分类问题



非线性假设Non-linear Hypotheses


线性回归和逻辑回归的缺点:特征太多的时候,计算负荷会非常大


假设我们希望训练一个模型来识别视觉对象(例如识别一张图片上是否是一辆汽车),我们怎样才能这么做呢?一种方法是我们利用很多汽车的图片和很多非汽车的图片,然后利用这些图片上一个个像素的值(饱和度或亮度)来作为特征。


image.png


假设采用的是50*50像素的小图片,将所有的像素视为特征,则有2500个特征。普通的逻辑回归模型不能处理的,需要使用神经网络



神经元和大脑


image.png



模型表示


模型表示1


每个神经元是可以被认为一个处理单元/神经核processing unit/Nucleus,主要包含:


  • 多个输入/树突input/Dendrite
  • 一个输出/轴突output/Axon

神经网络是大量神经元相互链接并通过电脉冲来交流的一个网络

image.png

  1. 神经网络模型建立在很多神经元之上,每一个神经元又是一个个学习模型
  2. 神经元称之为激活单元activation unit;在神经网络中,参数又可被成为权重(weight)
  3. 类似神经元的神经网络

image.png

神经网络


下图是逻辑回归模型作为自身学习模型的神经元示例


image.png

类似神经元的神经网络结构


image.png


  • x1,x2,x3是输入单元,将原始数据输入给它们
  • 几个比较基础的概念

  • 输入层:数据节点所在的层
  • 网络层:输出hihi连同它的网络层参数w,bw,b
  • 隐藏层:网络层中间的层
  • 输出层:最后一层
  • 偏置单元:bias unit,每层加上偏置单元

上面模型的激活单元输出分别表示为:


image.png


三个激活单元的表达式:

image.png

输出的表达式为:


image.png

将特征矩阵的每行(一个训练实例)喂给了神经网络,最终需要将整个训练集都喂给神经网络。


这种从左到右计算的算法称之为:前向传播法FORWARD PROPAGATION


模型标记的记忆方法

image.png


其尺寸具体表示为:

  • 以第jj 层的激活单元数量为行数
  • 以第 j+1j+1层的激活单元数+1为列数的矩阵


模型表示2


FORWARD PROPAGATION相对于使用循环来编码,利用向量化的方法会使得计算更为简便,


假如现在有:


image.png

其中z满足:


image.png

也就是上面三个激活单元式子中的括号里面部分,那么有:


image.png

image.png


那么输出h可以表示为 :

image.png


特征和直观理解


神经网络中,单层神经元(无中间层)的计算可用来表示逻辑运算,比如逻辑与(AND)、逻辑或(OR)


实现逻辑”与AND”


image.png


实现逻辑"或OR"


image.png

实现逻辑“非not”


image.png



多类分类问题


当输出中不止有两种分类时,比如使用神经网络算法来识别路人、汽车、摩托车等。


image.png

  • 输入向量有3个维度,两个中间层
  • 输出层有4个神经元表示4种分类,也就是每一个数据在输出层都会出现[a,b,c,d]T[a,b,c,d]T,且[a,b,c,d][a,b,c,d]中仅有一个为1,表示当前类



TF中解决办法


上述多类分类问题和TF中手写数字问题类似,解决办法如下:


image.png

image.pngimage.png

  1. 手写数字图片数据

总类别数是10,即输出节点总数值dout=10dout=10,假设某个样本的类别是i,即图片中的数字是ii,需要一个长度为10的向量yy,索引号为ii的位置设置为1,其余是0。


  • 0的one-hot编码是[1,0,0,0,….]
  • 1的one-hot编码是[0,1,0,0,….]
  • 其余类推


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

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

热门文章

最新文章