深度学习笔记

深度学习笔记(概念向) 本质是找一个极其复杂的F(X)=Y的函数映射,主要过程是定义一个函数以及损失函数,根据损失函数对模型进行优化1.衡量差距:用一个损失函数LOSS衡量当前f的预测值与真实值的差距2.计算梯度:用微积分中的链式法则计算每个参数对误差的影响大小也就是梯度3.更新映射:首先将loss计算的误差从最后一层向前传递到每一个神经元(backward)再更新参数(优化器 例如SGD adam) 阅读详情

持续更新...

目录

sigmoid和tanh的缺点

softmax回归

神经网络计算结构

针对问题的不同算法

one-hot表示

阶跃函数做激活函数的问题

卷积层和池化层的展开实现

图像上采样(upsampling)和下采样(downsampling)

名词解释

卷积的部分连接

神经网络的本质

Global Pooling (全局池化)


sigmoid和tanh的缺点

        sigmoid函数和tanh函数两者共同的缺点是,在z特别大或者特别小的情况下,导数的梯度或者函数的斜率会变得特别小,最后就会接近于0,导致降低梯度下降的速度。

——《吴恩达深入学习》1.3.6


softmax回归

softmax函数:   :最后一层共n输出,求第k个输出的softmax值

        softmax函数的实现中要进行指数函数的运算,但是此时指数函数的值很容易变得非常大。比如, 的值会超过20000, 会变成一个后面有40多个0的超大值, 的结果会返回一个表示无穷大的 inf 。如果在这些超大值之间进行除法运算,结果会出现“不确定”的情况。

softmax函数的实现可以进行如下改进:

        在进行softmax的指数函数的运算时,加上(或者减去)某个常数并不会改变运算的结果。这里的D可以使用任何值,但是为了防止溢出,一般会使用输入信号中的最大值。

——《深度学习入门:基于Python的理论与实践》3.5.2

 

        一般而言,神经网络只把输出值最大的神经元所对应的类别作为识别结果。并且,即便使用softmax函数,输出值最大的神经元的位置也不会变(比如, a的最大值是第2个元素, y 的最大值也仍是第2个元素。)。因此,神经网络在进行分类时,输出层的softmax函数可以省略。在实际的问题中,由于指数函数的运算需要一定的计算机运算量,因此输出层的softmax函数一般会被省略。

——《深度学习入门:基于Python的理论与实践》3.5.4


神经网络计算结构

如图所示:

神经网络计算结构
图 神经网络计算结构

——《深度学习入门:基于Python的理论与实践》3.6.3


针对问题的不同算法

        如图4-2所示,神经网络直接学习图像本身。在第2个方法,即利用特征量和机器学习的方法中,特征量仍是由人工设计的,而在神经网络中,连图像中包含的重要特征量也都是由机器来学习的。

识别方法
识别方法

        目前所有的深度神经网络都是利用计算机的计算能力来模拟出成千上万神经元来达到仿真的效果。然后再用模拟出来的这个神经网络,去解决真正业务的问题。所以相比一般的程序,深度神经网络多了一个仿真再处理的过程,等于是开了虚拟机再运行程序。

        传统机器学习基于统计学成功的把思考的这个问题转换为可以通过规则和逻辑来表达的方式,所以让计算机就像处理一般的程序一样,无需经过仿真环节,直接动用逻辑计算能力。

        神经网络是有史以来最美丽的编程范例之一。在传统的编程方法中,我们告诉计算机做什么,将大问题分解成计算机可轻松执行的许多精确定义的小任务。相比之下,在神经网络中,我们不需要告诉计算机如何解决我们的问题,而是让它通过观测数据学习,找出解决手头问题的办法。

—— 八大神经网络架构

—— 机器学习在干什么?

——《深度学习入门:基于Python的理论与实践》4.1.1


one-hot表示

将正确解标签表示为1,其他标签表示为0的表示方法称为one-hot表示,如:t = [0, 0, 1, 0, 0, 0, 0, 0, 0, 0]

——《深度学习入门:基于Python的理论与实践》4.2.1


阶跃函数做激活函数的问题

        如果使用阶跃函数作为激活函数,神经网络的学习将无法进行。如图4-4所示,阶跃函数的导数在绝大多数地方(除了0以外的地方)均为0。也就是说,如果使用了阶跃函数,那么即便将损失函数作为指标,参数的微小变化也会被阶跃函数抹杀,导致损失函数的值不会产生任何变化

阶跃函数做激活函数的问题

——《深度学习入门:基于Python的理论与实践》4.2.1


卷积层和池化层的展开实现

  • 卷积层的展开实现:

卷积层的池化实现

  • 池化层的展开实现:

池化层的展开实现

——《深度学习入门:基于Python的理论与实践》7.4.2—7.4.4


图像上采样(upsampling)和下采样(downsampling)

        下采样:即采样点数减少。对于一幅 N \times N 的图像来说,如果降采样系数为 k,则即是在原图中 每行每列每隔 k 个点取一个点组成一幅图像。

     上采样:图像放大几乎都是采用内插值方法,即在原有图像像素的基础上在像素点之间采用合适的插值算法插入新的元素。

——图像降采样和升采样

——图像的上采样(upsampling)与下采样(subsampled)


名词解释

CNN —— Convolutional Neural Network,卷积神经网络

MLP —— Multi-Layer Perceptron,多层感知机 / 多层神经网络

FCN —— Fully Convolutional Network,全卷积网络

FC Layer —— Fully Connected Layer,全连接层

ROI —— Region of Interest,感兴区域

RPN —— Region Proposal Network,区域候选网络 / 区域生成网络 / 区域推荐网络

DPM —— Deformable Parts Model,可变形部件模型

SPP —— Spatial Pyramid Pooling,空间金字塔池化

IOU —— Intersection over Union,交并比

mAP —— Mean Average Precision,平均均值精度


卷积的部分连接

        以LeNet网络举例,如下图所示:

LeNet网络
图 LeNet网络

        原始图像进来以后,先进入一个卷积层C1,由6个5x5的卷积核组成,卷积出28x28的图像,然后下采样到14x14(S2)。接下来,再进一个卷积层C3,由16个5x5的卷积核组成,之后再下采样到5x5(S4)。注意,这里S2与C3的连接方式并不是全连接,而是部分连接,如下图所示:

部分卷积连接
图 部分卷积连接

        其中行代表S2层的某个节点,列代表C3层的某个节点。我们可以看出,C3-0跟S2-0,1,2连接,C3-1跟S2-1,2,3连接,后面依次类推,仔细观察可以发现,其实就是排列组合:

0 0 0 1 1 1

0 0 1 1 1 0

0 1 1 1 0 0

...

1 1 1 1 1 1

我们可以领悟作者的意图,即用不同特征的底层组合,可以得到进一步的高级特征,例如:/ + \ = ^ (比较抽象O(∩_∩)O~),再比如好多个斜线段连成一个圆等等。

最后,通过全连接层C5、F6得到10个输出,对应10个数字的概率。

        最后说一点个人的想法哈,我认为第一个卷积层选6个卷积核是有原因的,大概也许可能是因为0~9其实能用以下6个边缘来代  表:

是不是有点道理呢,哈哈

然后C3层的数量选择上面也说了,是从选3个开始的排列组合,所以也是可以理解的。

——深度学习简介(一)——卷积神经网络


神经网络的本质

        神经网络由大量的节点(或称“神经元”、“单元”)相互连接构成,每个节点代表一种特定的函数,称为激励函数(Activation Function)。节点之间的连接具有特定的权重,信号经过会进行加权,代表神经网络的记忆。网络的输出则依网络的连接方式、权重值和激励函数的不同而不同。网络本身则代表对自然界某种算法或者函数的逼近,也可能是一种逻辑策略的表达。

——《行人检测:理论与实践》:81


Global Pooling (全局池化)

        说白了,“global pooling”就是pooling的滑窗size 和整张feature map的size一样大。这样,每个 W×H×CW×H×C 的feature map输入就会被转化为 1×1×C1×1×C 输出。因此,其实也等同于每个位置权重都为 1/(W×H)1/(W×H) 的FC层操作。等同于输入一个tensor,输出一根vector。

        “global pooling”在滑窗内的具体pooling方法可以是任意的,所以就会被细分为“global avg pooling”、“global max pooling”等。由于传统的pooling太过粗暴,操作复杂,目前业界已经逐渐放弃了对pooling的使用。替代方案 如下:

  • 采用 Global Pooling 以简化计算
  • 增大conv的 stride 以免去附加的pooling操作。

—— 深度学习: global pooling (全局池化)


前向传播的空间变换

对于神经网络:y=g(Wx+b)

通过如下5种对输入空间的操作,完成输入向量 —> 输出空间的变换:

  1. 升维/降维
  2. 放大/缩小
  3. 旋转
  4. 平移
  5. 弯曲

        其中1,2,3是由 Wx 完成的,4是由 +b 完成的,5是由 g() 完成的。即用线性变换跟随着非线性变化 ,将输入空间投向另一个空间。

        以分类为例,当要分类正数、负数、零三类的时候,一维空间的直线可以找到两个超平面分割这三类(比当前空间低一维的子空间。当前空间是直线的话,超平面就是点)。

        平面的四个象限也是线性可分。但下图的红蓝两条线就无法找到一超平面去分割(当前空间为“二维平面”,故超平面为“线”)。神经网络的解决方法依旧是转换到另外一个空间下,用的是所说的5种空间变换操作。比如下图就是经过放大、平移、旋转、扭曲原二维空间后,在三维空间下就可以成功找到一个超平面分割红蓝两线 (同SVM的思路一样)。

分类
图1 “线性不可分”问题的分类方法

        上面是一层神经网络可以做到的,如果把 y 当做新的输入再次用这5种操作进行第二遍空间变换的话,网络也就变为了二层。最终输出是 y=g_2(W_2(g_1(W_1x+b_1))+b_2)
        设想网络拥有很多层时,对原始输入空间的“扭曲力”会大幅增加,如下图,最终我们可以轻松找到一个超平面分割空间。

原图
图2.1 输入分类图像
分类2
图2.2 线性变换1
图2.3 激活1
图2.4 线性变换2

 

图2.5 激活2
图2.6 线性变换3
图2.7 激活3
图2.8 线性变换4,可分类

 

线性可分视角:神经网络的学习就是学习如何利用矩阵的线性变换加激活函数的非线性变换,将原始输入空间投向线性可分/稀疏的空间去分类/回归。
增加节点数:增加维度,即增加线性转换能力。
增加层数:增加激活函数的次数,即增加非线性转换次数。

—— 金忍,神经网络与检测识别应用

神经网络原理 DEMO:https://cs.stanford.edu/people/karpathy/convnetjs//demo/classify2d.html
http://playground.tensorflow.org


Batch Bormalization(BN)

该过程在 z 到 a 之间,即:x\ + (\omega, b) \ \rightarrow z \ +(\gamma , \beta )\rightarrow \tilde{z}\ \rightarrow a\ \rightarrow g(a)

Batch Normalization
Batch Normalization

如上图所示,BN步骤主要分为4步:

  1. 求每一个训练批次数据的均值
  2. 求每一个训练批次数据的方差
  3. 使用求得的均值和方差对该批次的训练数据做归一化,获得0-1分布。其中 {\color{Red} \varepsilon} 是为了避免分母为0时所使用的微小正数。
  4. 尺度变换和偏移:将 x_{i} 乘以 \gamma 调整数值大小,再加上 \beta 增加偏移后得到 y_{i} ,这里的 \gamma 是尺度因子,\beta  是平移因子。这一步是BN的精髓,由于归一化后的 x_{i} 基本会被限制在正态分布下,使得网络的表达能力下降。为解决该问题,我们引入两个新的参数:\gamma 和 \beta。\gamma 和 \beta 是在训练时网络自己学习得到的。

【注】:\gamma 和 \beta 同 \omega 于 b 一样,也属于可学习参数,使用梯度下降法更新(或其他衍生的优化算法: Momentum、RMSprop、Adam )。

可以去掉参数b ,(见吴恩达)


特征提取的本质

使用一堆数字来表示一个事物的特点。(一般来说,要用更少的数据保存更多的特征)

最后一个全连接层的作用

在 CNN 中,编码器(特征提取层)后紧跟着一些全连接层,这些全连接层可以将编码器产生的局部特征混合到全局预测结果中,而全局预测可以告诉我们感兴趣的对象是否存在。

边界框回归中,为什么IoU较大,认为是线性变换?

参考:https://blog.youkuaiyun.com/zijin0802034/article/details/77685438/

 

 

 

 

DL学习笔记16 Structured Probabilistic Models for Deep Learning Structured Probabilistic Models阅读笔记 原文link, slides 笔记 0. Intro Structured probabilistic model: a way of describing a probability distritution also called graphic models Roadmap challege... 阅读详情

相关推荐

Coursera-吴恩达-深度学习(DL)专项课-课程笔记与编程实战-汇总

1.介绍 本文主要基于Coursera上deeplearning.ai的吴恩达主讲的经典课程——深度学习专项课程(Deep Learning Specialization) 将全部课程内容进行梳理并结合个人理解进行了总结。意在总结笔记加深理解,同时也为其他学习该课程或想学习DL相关知识的同学提供参考。 因本人仍在学习过程中,水平有限,难免有疏忽与错误,诚请各位指正。 2.参考资料 课程原地址:https://www.coursera.org/specializations/deep-learning B站转

Ogmx的博客 1512

深度学习(笔记)

自然语言就是人类日常交流的语言,而自然语言的处理的目的是用计算机理解和处理人类的语言。强化学习讨论的是一个智能体基于环境的状态做出动作后如何去获得最大收益的问题。

2301_81169751的博客 1939

DL|深度学习笔记

把自己在学习深度学习过程中搜索的各种问题记到这里。 X = torch.normal(0, 1, size=(2, 1)) 意思是从均值为0,标准差为1的正态分布中抽取随机数,2行1列,“size=”可以省略不写

个人学习笔记 2313

深度学习知识点全面总结_深度学习总结

深度学习基础知识

feichangyanse的博客 2万+

深度学习笔记(2024.7.22更新)

主要介绍了深度学习应用的场景,深度学习的框架,并且根据实际展开Pytorch环境的搭建以及深度学习的基本概念(张量)。(2024.7.27有更新)

钅日 勿的博客 917

Deep Learning(深度学习)学习笔记整理系列pdf

。。。。。。。Deep Learning(深度学习)学习笔记整理系列pdf

深度学习笔记(转载)

目录: 一、概述 二、背景 三、人脑视觉机理 四、关于特征 4.1、特征表示的粒度 4.2、初级(浅层)特征表示 4.3、结构性特征表示 4.4、需要有多少个特征? 五、Deep Learning的基本思想 六、浅层学习(Shallow Learning)和深度学习(Deep Learning) 七、Deep learn

mysee1989的专栏 4993

Deep Learning(深度学习)学习笔记整理系列1-7

该Deep Learning的学习系列是整理自网上很大牛和机器学习专家所无私奉献的资的。具体引用的资料请看参考文献。具体的版本声明也参考原文献。

《繁凡的深度学习笔记》前言、目录大纲 一文让你完全弄懂深度学习所有基础(DL笔记整理系列)

一文让你完全弄懂深度学习所有基础 ! 看不懂你来打我呀 ~ 我希望能够创作出一本清晰易懂、可爱有趣、内容详实的深度学习笔记,而不仅仅只是知识的简单堆砌。

繁凡さん的博客 8897

ESD镜像解密与转换全攻略:从esd-decrypter到WinNTSetup的完整流程

本文详细解析了ESD镜像的加密特性与压缩优势,并提供了从解密到转换的完整实战指南。核心步骤包括使用esd-decrypter工具解密ESD文件为WIM格式,以及如何结合WinNTSetup进行灵活的系统安装或进一步封装为可引导的ISO镜像,帮助用户高效处理官方Windows安装镜像。

weixin_29207439的博客 453

用Matlab机器人工具箱搞定六轴机械臂建模:从DH参数到3D可视化(附完整代码)

本文详细介绍了如何使用Matlab机器人工具箱进行六轴机械臂建模,从DH参数输入到3D可视化全流程解析。通过正运动学验证、逆运动学求解和交互控制等实战技巧,帮助工程师快速掌握机械臂建模核心方法,并提供完整代码示例解决常见问题。

weixin_27372101的博客 395

台大DL—week1 笔记

用心努力引言 神经网络基础 一、引言1、ML与DL的区别a) 什么是ML呢?给定一组数据集,ML等效于寻找一个函数,这个函数可以实现预测识别功能。比如,给定一个波形,识别出“你好”,给定一个手写字体图片识别出“2”,给定星期四多云预测出星期六下雨等等。 模型:假设函数的集合(f1,f2,…) ⇒ 训练:挑选最优函数f* ⇒ 预测:测试集 b) 什么是DL呢?是寻找一个更复杂的函数,这个函数是

qq_30067751的博客 487

Star CCM+ 202206 (17.04) 详细安装步骤

StarCCM+ 17.04 安装包和详细安装步骤

薛定谔的alpha狗 3万+

深度学习笔记(二):DL资料汇总

吴恩达机器学习、深度学习笔记: 百度云https://pan.baidu.com/s/1l5q5BUXBG4CGAM4TlkVtoQ 密码:hvo2 注:此笔记为黄博主持编写、整理,小编只是借花献佛。 另外网易云课堂有对应视频教程,地址如下:http://mooc.study.163.com/smartSpec/detail/1001319001.htm 台大李宏毅教授的一天搞懂深度学习P...

小熊猫的博客 1414

阿里云导出的镜像raw转换成vmdk格式工具

阿里云导出的镜像raw转换成vmdk格式工具 1.安装java环境,安装教程不介绍了 2.raw2vmdk软件下载: 在我的链接里面: 3.使用 打开cmd.bat软件: java -jar raw2vmdk.jar (原镜像)C:\\images\\raw\\disk.img (转换的镜像)D:\\images\\vmdk\\disk.vmdk 4.vmware打开vmdk文件 ...

3845

深入博通PEX89000内部:那颗ARM CPU和Synthetic Mode到底能玩出什么花样?

本文深入解析博通PEX89000系列PCIe交换芯片内置的ARM CPU与Synthetic Mode技术,揭示其在AI计算和数据中心的智能潜能。通过ARM Cortex CPU的实时控制和Synthetic Mode的自治网络功能,PEX89000实现了GPU集群的动态拓扑重组和资源池化,大幅提升AI训练效率。文章还探讨了该技术在软件定义数据平面和弹性AI架构中的创新应用。

weixin_30776273的博客 216

Google 深度学习笔记

由于谷歌机器学习教程更新太慢,所以一边学习Deep Learning教程,经常总结是个好习惯,笔记目录奉上。 Github工程地址:https://github.com/ahangchen/GDLnotes

梦里风林的专栏 1157

sql server安装并SSMS连接

  SQL Server是一种广泛应用于网络业务数据处理的关系型数据库管理系统。SQL Server 2016是微软公司研发的新一代旗舰级数据库和分析平台,突出高级分析和丰富可视化,并融合了关键创新功能。其可提供对企业基础架构最高级别的支持,专门针对关键业务应用的多种功能与解决方案提供最高级别的可用性,并提供更多、更全面的功能以满足不同人群对数据的需求,包括支持来自不同网络环境的数据交互、全面的自助分析等创新功能。百度搜索sql server,在官网下载 地址是:SQL Server 下载| Microso

jiankang66的博客 5187

吴恩达Deep learning笔记

吴恩达深度学习笔记不再更新 笔记参考 http://www.ai-start.com/dl2017/ 感谢作者

weixin_44001794的博客 201

ChangeMamba训练调试

此仓库的代码是在 Linux 系统下运行的。我们尚未测试是否能在其他操作系统下运行。 首先需要安装VMama仓库。以下安装顺序取自VMama仓库。克隆该版本库并导航至项目目录: 建议设置 conda 环境并通过 pip 安装依赖项。使用以下命令设置环境: 创建并激活新的 conda 环境 安装依赖项 检测和分割任务的依赖库(在 VMamba 中为可选项) 二、下载预训练权重 另外,请下载VMamba-Tiny, VMamba-Small, and VMamba-Base在ImageNet上的预训练权重并把它

hanfeng5268的博客 578

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Deep Learning(深度学习)学习笔记整理 推荐

http://www.sigvc.org/bbs/thread-2187-1-3.html 前段时间查了一些深度学习的资料,该链接是 另一博主总结的 深度学习的学习笔记 作者写的还是很详细的,对于没有接触过深度学习的同学可以起到很好的入门做种。 在此,也感谢该博主的总结,受益匪浅。

小菜鸟的AI之路 766

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

吴恩达深度学习工程师系列课程笔记(Deep Learning Specialization - deeplearning.ai)

我的笔记不同于一般的笔记,我的笔记更加凝练,除了结论以及公式,更多的是对知识的理解,结合课程可以加速理解,省去很多时间,但是请注意,笔记不能替代课程,应该结合使用。

亦梦亦醒乐逍遥的博客 5299

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

送书|《深度学习笔记》你想要的DL知识都在这里了

恭喜伟哥(作者公众号:机器学习实验室)新书《深度学习笔记》发布,也感谢伟哥能为CS的陋室粉丝送福利,争取到3本书可以送给大家。先容我给大家介绍一下这本书,文末有送书方法:本书概况了学习深...

baidu_25854831的博客 202

DL2: A Deep Learning-Driven Scheduler for Deep Learning Clusters(论文笔记)

DL2目标是找到最佳的资源调度策略,最小化所有并发任务的平均完成时间。

qq_42890800的博客 1365

吴恩达机器学习,深度学习笔记

最近在整理机器学习的知识,找了很久andrew的课程笔记。吴恩达的ML,DL系列课程不论对人工智能初学者还是已经有一定经验的想要进一步提高的MLer,DLer都是非常有帮助的。 从2014年开始,以黄海广博士为首的一群机器学习爱好者发起了一个公益性质的项目(http://www.ai-start.com):对吴恩达机器学习和深度学习课程的字幕翻译以及笔记整理。黄海广博士曾说知识在于分享, 赠人玫瑰...

爱喝舒化奶的博客 397
上一篇: 理解常用的3个梯度下降法
下一篇: 卷积神经网络概述
且听风吟0618
博客等级 码龄11年 150粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值