吴恩达《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,….]
  • 其余类推


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

目录
打赏
0
0
0
0
104
分享
相关文章
FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频
ijkplayer是由Bilibili基于FFmpeg3.4研发并开源的播放器,适用于Android和iOS,支持本地视频及网络流媒体播放。本文详细介绍如何在新版Android Studio中导入并使用ijkplayer库,包括Gradle版本及配置更新、导入编译好的so文件以及添加直播链接播放代码等步骤,帮助开发者顺利进行App调试与开发。更多FFmpeg开发知识可参考《FFmpeg开发实战:从零基础到短视频上线》。
900 2
FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频
目标检测笔记(五):详细介绍并实现可视化深度学习中每层特征层的网络训练情况
这篇文章详细介绍了如何通过可视化深度学习中每层特征层来理解网络的内部运作,并使用ResNet系列网络作为例子,展示了如何在训练过程中加入代码来绘制和保存特征图。
212 1
目标检测笔记(五):详细介绍并实现可视化深度学习中每层特征层的网络训练情况
深度学习笔记(七):如何用Mxnet来将神经网络可视化
这篇文章介绍了如何使用Mxnet框架来实现神经网络的可视化,包括环境依赖的安装、具体的代码实现以及运行结果的展示。
131 0
轻量级网络论文精度笔记(三):《Searching for MobileNetV3》
MobileNetV3是谷歌为移动设备优化的神经网络模型,通过神经架构搜索和新设计计算块提升效率和精度。它引入了h-swish激活函数和高效的分割解码器LR-ASPP,实现了移动端分类、检测和分割的最新SOTA成果。大模型在ImageNet分类上比MobileNetV2更准确,延迟降低20%;小模型准确度提升,延迟相当。
237 1
轻量级网络论文精度笔记(三):《Searching for MobileNetV3》
目标检测笔记(一):不同模型的网络架构介绍和代码
这篇文章介绍了ShuffleNetV2网络架构及其代码实现,包括模型结构、代码细节和不同版本的模型。ShuffleNetV2是一个高效的卷积神经网络,适用于深度学习中的目标检测任务。
223 1
目标检测笔记(一):不同模型的网络架构介绍和代码
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
这篇博客文章介绍了如何使用包含多个网络和多种训练策略的框架来完成多目标分类任务,涵盖了从数据准备到训练、测试和部署的完整流程,并提供了相关代码和配置文件。
305 0
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
轻量级网络论文精度笔记(二):《YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object ..》
YOLOv7是一种新的实时目标检测器,通过引入可训练的免费技术包和优化的网络架构,显著提高了检测精度,同时减少了参数和计算量。该研究还提出了新的模型重参数化和标签分配策略,有效提升了模型性能。实验结果显示,YOLOv7在速度和准确性上超越了其他目标检测器。
219 0
轻量级网络论文精度笔记(二):《YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object ..》
深度学习笔记(九):神经网络剪枝(Neural Network Pruning)详细介绍
神经网络剪枝是一种通过移除不重要的权重来减小模型大小并提高效率的技术,同时尽量保持模型性能。
292 0
深度学习笔记(九):神经网络剪枝(Neural Network Pruning)详细介绍
深度学习笔记(五):学习率过大过小对于网络训练有何影响以及如何解决
学习率是深度学习中的关键超参数,它影响模型的训练进度和收敛性,过大或过小的学习率都会对网络训练产生负面影响,需要通过适当的设置和调整策略来优化。
1475 0
深度学习笔记(五):学习率过大过小对于网络训练有何影响以及如何解决
深度学习笔记(四):神经网络之链式法则详解
这篇文章详细解释了链式法则在神经网络优化中的作用,说明了如何通过引入中间变量简化复杂函数的微分计算,并通过实例展示了链式法则在反向传播算法中的应用。
372 0
深度学习笔记(四):神经网络之链式法则详解
登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问