自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

转载 (八)计算机视觉 -- 3 目标检测和边界框

3. 目标检测和边界框在图像分类任务中,我们假设图像里只有一个主体目标,并关注如何识别该目标的类别。然而,很多时候图像中存在多个感兴趣的目标,我们不仅想知道它们的类别,还想得到它们在图像中的具体位置。在计算机视觉里,将这类任务称为目标检测(object detection)或物体检测。目标检测在多个领域中被广泛使用,例如:在无人驾驶中,需要通过识别拍摄到的视频图像里的车辆、行人、道路和障碍的位置来规划行进线路。机器人常通过该任务来检测感兴趣的目标。安防领域需要检测异常目标,如歹徒或者炸弹。

2020-10-31 22:33:15 1241

转载 (四)卷积神经网络 -- 12 稠密连接网络(DenseNet)

12. 稠密连接网络(DenseNet)ResNet中的跨层连接设计引申出了数个后续工作,稠密连接网络(DenseNet)就是其中之一。DenseNet与ResNet的主要区别,如下图所示:图中将部分前后相邻的运算抽象为模块A和模块B。与ResNet的主要区别在于:DenseNet里模块B的输出,并非是ResNet那样和模块A的输出相加,而是在通道维上连结。由此,模块A的输出可以直接传入模块B后面的层。在这个设计里,模块A直接跟模块B后面的所有层连接在了一起。这也是它被称为“稠密连接”

2020-10-25 18:26:34 1781

转载 (四)卷积神经网络 -- 11 残差网络(ResNet)

11. 残差网络(ResNet)问题:对神经网络模型添加新的层,充分训练后的模型是否只可能更有效地降低训练误差?理论上,如果能将新添加的层训练成恒等映射 f(x)=xf(x)=xf(x)=x,新模型和原模型将同样有效。由于新模型可能得出更优的解来拟合训练数据集,因此添加层似乎更容易降低训练误差。然而在实践中,添加过多的层后训练误差往往不降反升。即使利用批量归一化带来的数值稳定性使训练深层模型更加容易,该问题仍然存在。针对这一问题,何恺明等人提出了残差网络(ResNet)。它在2015年的Ima

2020-10-25 17:07:08 3966

转载 (四)卷积神经网络 -- 10 批量归一化

10. 批量归一化对于 “Kaggle比赛:预测房价” 的场景,可以对输入数据做标准化处理,使得:处理后的任意一个特征在数据集中所有样本上的均值为0、标准差为1。标准化处理输入数据使各个特征的分布相近:这往往更容易训练出有效的模型。通常来说,数据标准化预处理对于浅层模型就足够有效了。随着模型训练的进行,当每层中参数更新时,靠近输出层的输出较难出现剧烈变化。但对深层神经网络来说,即使输入数据已做标准化,训练中模型参数的更新依然很容易造成靠近输出层输出的剧烈变化。这种计算数值的不稳定性通常导致难

2020-10-25 15:31:52 2288

原创 (六)算法 -- 3.数值算法

3. 数值算法数值算法(numerical algorithm)计算机用来实现如sqrt这样的数学函数的技术称为数值算法,是计算机科学的一个重要领域。3.1 连续逼近连续逼近(successive approximation)是解决数值问题的最通用策略之一,也是找出近似答案的一般策略。具体由下列步骤组成:(1) 先对答案进行猜测。(2) 一旦有了猜测值,可以用猜测值产生一个更佳的值。例如,假设测试答案太大,可以把它变小,用这个小的值作为新的猜测值。(3) 如果能保证,每一轮猜测与真实答案

2020-10-25 13:05:31 1304

转载 (四)卷积神经网络 -- 9 含并行连结的网络(GoogLeNet)

9. 含并行连结的网络(GoogLeNet)2014年的ImageNet图像识别挑战赛中,GoogLeNet的网络结构大放异彩。GoogLeNet吸收了NiN中网络串联网络的思想,并在此基础上做了很大的改进。在随后的几年里,研究人员对GoogLeNet进行了数次改进,本节将介绍这个模型系列的第一个版本。9.1 Inception 块GoogLeNet中的基础卷积块称作Inception块。与上一节介绍的NiN块相比,这个基础块在结构上更加复杂,如下图所示:由此可见,Inception

2020-10-22 23:03:36 1236

原创 (六)算法 -- 2.计算最大公约数

2. 计算最大公约数给出两个数x和y,其最大公约数(或缩写为GCD)是能够同时被两个数整除的最大数。假设任务是写一个函数,该函数将整型数x和y作为输入,返回它们的GCD。那么,该函数的原型为:int GCD(int x, int y);利用最基本的测试算法,这个问题存在几个可用的解决方案。2.1 brute-force算法计算GCD的最简单的方法基于最通用的方法,称为brute-force方法(brute-force method)。该方法测试每一种可能性。代码实现如下:#incl

2020-10-20 22:45:13 593

原创 (六)算法 -- 1. 测试素数

1. 测试素数数论(number theory)研究非负整数的特性的数学领域。数论中的一个重要问题是确定一个数是否为素数。素数(prime)如果一个正整数n只能被1和它本身整除,则这个正整数n是素数。素数在研究编码的密码学(cryptography) 中起着重要的作用。在现代电子通信领域中,计算机经常用于执行编码和解码操作。许多可用的、最好的编码技术都是基于素数。设计一个确定整数n是否为素数的函数,思路:如果直接从素数的定义出发,最直接的方法是,检查是否有两个约数。由于n的约数

2020-10-18 19:31:59 299

转载 (四)卷积神经网络 -- 8 网络中的网络(NiN)

8. 网络中的网络(NiN)前文所述的LeNet、AlexNet和VGG,在设计上的共同点是:先以由卷积层构成的模块充分抽取空间特征,再以由全连接层构成的模块来输出分类结果。其中,AlexNet和VGG对LeNet的改进,主要在于:如何对卷积层模块和全连接层模块,加宽(增加通道数)和加深。网络中的网络(NiN)提出了另一个思路:通过串联多个由卷积层和“全连接”层构成的小网络,来构建一个深层网络。8.1 NiN块卷积层的输入和输出通常是四维数组(样本,通道,高,宽),而全连接层的输入和输出则

2020-10-18 17:11:48 343

转载 深度学习 -- 1. A Recipe for Training Neural Networks

1. A Recipe for Training Neural NetworksGoalFollow a certain process to avoid making common errors (or fix them very fast).1.1 Two important observations1.1.1 Neural net training is a leaky abstractionFor standard software, like:>>> r = re

2020-10-18 13:51:20 709

转载 (四)卷积神经网络 -- 7 使用重复元素的网络(VGG)

7. 使用重复元素的网络(VGG)关于AlexNet改进:AlexNet在LeNet的基础上增加了3个卷积层,同时,对卷积窗口、输出通道数和构造顺序均做了大量的调整。局限性:虽然AlexNet指明了深度卷积神经网络可以取得出色的结果,但并没有提供简单的规则以指导后来的研究者如何设计新的网络。VGG提出了可以通过重复使用简单的基础块来构建深度模型的思路。其名称来源于论文作者所在的实验室Visual Geometry Group。7.1 VGG块组成规律:连续使用数个相同的填充为1、窗口

2020-10-13 23:23:56 578

原创 (五)函数 -- 6 自顶向下的设计

6. 自顶向下的设计如前一节的GiveInstructions实例所建议,利用过程和函数,可以将一个大的程序设计问题分解为较小的部分,从而使每一部分都比较容易理解。将一个问题划分为可管理的片段的过程被称为分解(decomposition),这个过程表示了程序设计的最基本的策略。当遇到写一个程序的任务时,最好的策略一般是从编写主程序开始。从主程序的观点出发,将问题作为一个整体考虑,然后试着去找出整个任务的主要片段。一旦确定了程序的主要片段,可以沿着这条主线将整个问题继续分解为独立的组件。由于这些组

2020-10-06 22:00:44 621

原创 (五)函数 -- 5 过程

5. 过程到目前为止,本章中的函数都为它们的调用程序返回某种类型的值。在程序设计中,有时调用一个函数不是为了得到它的返回值,而是要它产生某些作用。例如, 当在一个语句中用以下方法调用printf函数时,printf("Helloworld.\n");并不希望让printf返回某些值,所关心的是在屏幕上显示某些信息。过程(procedure)不返回值的而是起到某些作用的函数被称为过程。在C语言中,用术语函数表示函数和过程。认识到某些函数是不返回结果的,这很重要。当强调某个函数没有返

2020-10-06 16:04:45 211

原创 (五)函数 -- 4 函数调用过程机制

4. 函数调用过程机制为了理解函数机制,以下图所示的fact.c程序为例,进行说明。它包括前文所述的计算n!的Factorial函数和一个显示阶乘表的主程序:4.1 参数传递C语言是如何使同一个名字有不同的值?又如何使得同一个概念值用不同的名字表示?为了理解这个问题的答案,有必要介绍一下函数调用中的实际参数值和函数中用来保存这个值的变量在语义上的区别。当主程序调用Factorial(它本身是作为函数printf的实际参数)时, 实际参数是表达式i。当这个语句被执行时, 其效

2020-10-06 15:36:24 310

原创 (五)函数 -- 3 函数编写

3. 函数编写在C程序中增加一个新的函数由两个步骤组成:(1) 需要指定这个函数原型,它通常位于整个程序的头部,在#include行之后。(2) 在程序的稍后部分,需要提供该函数的实现,即指定一些实际的程序步骤。例如,要写一个将摄氏温度转为华氏温度的函数。其原型为:double CelsiusToFahrenheit(double c);函数的实现是由它的原型开始,去掉结尾的分号,然后加入函数体。函数体(function body)函数体是一个程序块,由一组括在一对花括号中的语句组成

2020-10-04 15:39:24 701

原创 (五)函数 -- 1-2 函数调用/函数声明

1. 函数调用一个函数(如printf)表示一组用于完成某一操作的程序设计步骤。从这个角度来看,函数类似于一个完整的程序。到目前为止看到的程序都被写成了一个函数,它有一个名字叫main。函数和程序在概念上的根本的不同在于,谁来使用它:程序是被外部用户调用,服务于外部用户;函数则提供了让程序调用事先定义好的一组操作的机制。函数的操作完全是程序内部的事。函数(function)函数是由一组语句组成,并给定一个名字。调用(calling)执行与函数相关的一组语句的行为称为调用这个函数。

2020-10-03 17:01:57 168

原创 (四)语句形式 -- 7 for语句

7. for语句C语言中最重要的一个控制语句就是for语句。它经常在将一个操作重复执行特定次数的情况下使用。init表达式指出for循环应该如何初始化,通常用于设置下标变量的初始值。例如语句:for (i = 0; . . .表示循环开始时将下标变量i初始化为0。test表达式是和while语句中的控制条件要求一样的条件测试。只要测试表达式的值为TRUE,循环就会继续。例如语句:for (i = 0; i < n; i++)表示该循环开始时i的值为0,当i小于n时继续下

2020-10-03 11:34:41 234

原创 (四)语句形式 -- 6 while语句

6. while语句最简单的迭代结构就是while语句,它重复执行一条简单语句或程序块,直到条件表达式变为FALSE为止。while循环整条语句(包括while控制行本身和循环体)一起构成了一个while循环。程序执行while语句时,先计算出条件表达式的值,看它是TRUE还是FALSE。如果是FALSE,循环终止(terminate),并接着执行在整个while循环之后的语句。如果是TRUE,将执行整个循环体,而后再回到while语句的第一行,再次对条件进行检查。周期(cycl

2020-10-03 09:29:38 444

原创 (四)语句形式 -- 5 switch语句

5. switch语句当程序需要更复杂的判断结构时,如有两个以上的可选项,这些选项被划分为一系列互相排斥的情况。最适合这种情况的就是switch语句。switch语句的起始行为:switch (e)其中,eee 是一个表达式,称为控制表达式(control expression)。switch语句的主体分成许多独立的由关键词case或default引入的语句组。一个case关键词和紧随其后直到下一个case或default之前的所有语句合称为case子句。default关键词及其相应语句合

2020-10-02 17:34:01 751

原创 (四)语句形式 -- 4 if语句

4. if语句C语言中表示条件执行的最简单办法就是使用if语句,它有以下两种形式:这个范例中的condition部分是一个布尔表达式,语句部分可以是简单语句,也可以是程序块。条件表达式为TRUE时所执行的程序块叫做if语句的then子句,条件为FALSE时执行的程序块叫做else子句。悬空else问题(dangling-else problem)由于if语句中的else子句是可有可无的, 所以有时会造成歧义,这种情况叫做悬空else问题。消除悬空else问题:在if语句中使用程序块

2020-10-02 16:55:23 1288

原创 (四)语句形式 -- 3 布尔型数据

3. 布尔型数据布尔型数据(boolean data)合法值只能为TRUE或FALSE的数据。C语言定义的使用布尔型数据的运算符,分为两大类:关系运算符、逻辑运算符。3.1 关系运算符关系运算符(relational operator)用来比较两个值。(1) 比较两个数值大小关系> 大于< 小于>=大于等于<= 小于等于(2) 判断相等关系== 等于!= 不等于运算符优先级排序:判断相等关系 < 比较两个数值大小关系 < 算术运

2020-10-02 10:16:30 1140

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除