- 博客(30)
- 收藏
- 关注
原创 R-CNN
R-CNNR-CNN 是基于卷积神经网络(CNN),线性回归和支持向量机(SVM)等算法实现目标检测技术的算法。什么是目标检测对象识别,给定一张图片可以识别出类别,而目标检测除了识别类别之外,还要找到对象的位置。R-CNN 的提出R-CNN 论文的作者受到 AlexNet 的启发,尝试将 AlexNet 在 ImageNet 目标识别的能力泛化到目标检测上面来,但需要解决两个主要的问题...
2019-10-16 10:38:44
311
原创 R-CNN:Bounding-Box 回归
为什么要使用 Bounding-Box 回归 ?使用 Bounding-Box 回归是 R-CNN 对目标准确定位的关键,能够通过微调的方式减小预测窗口与 Ground Truth 之间的误差。如上图所示,红色框和绿色框分别表示检测目标的 Region Proposal 和真实的 Ground Truth,红色框虽然把目标识别为飞机,但与绿色框的重合度 IoU < 0.5,这张图还是相...
2019-10-16 10:02:12
591
原创 Selective Search 选择性搜索算法原理
1. 什么是 Selective Search ?简单说,就是从图片中找出物体可能存在的区域,下面宇航员图片中红色框就是 selective search 找出来的可能存在物体的区域,2. 与传统的目标检测算法相比传统的目标检测算法一般是图片上使用穷举法或者滑动窗口选出所有物体可能出现的区域框,对这些区域框提取特征并进行使用图像识别分类方法,得到所有分类成功的区域后,通过非极大值抑制输出...
2019-10-14 17:39:36
2779
1
原创 ResNet
一、综述ResNet 最根本的动机是所谓的退化问题,即当模型的层次加深时,错误率却提高了。一般认为,随着模型的深度加深,学习能力增强,但上图表明:常规的网络堆叠在网络很深的时候,效果却越来越差。这其中的原因之一是网络越深,梯度消失的现象就越来越明显。于是,作者提出了一种 Residual 残差结构。即通过在输出和输入之间引入一个 shortcut connection,而不是简单的堆叠...
2019-10-14 09:45:14
265
原创 GoogLeNet
GoogLeNet 网络GoogLeNet 是由谷歌为了参加 ILSVRC 2014 大赛而开发的,并在挑战赛上获得了冠军,将 Top5 的错误率降低到 6.67%,总体上是一个 22 层的深度网络 。一般来说,提升网络性能最直接的办法就是增加网络深度和宽度,但这也意味着更多的参数,这容易带来过拟合,也大大增加了计算量。GoogLeNet 论文认为解决上述两个缺点的根本方法是将全连接层甚至一般...
2019-10-10 11:47:48
325
原创 VGGNet
VGG 网络VGG 网络的提出目的是为了探究在大规模图像识别任务中,卷积网络深度对模型精确度有何影响;VGG模型是2014年 ILSVRC 竞赛的第二名,第一名是 GoogLeNet。但是 VGG 模型在多个迁移学习任务中的表现要优于 googLeNet。而且,从图像中提取CNN特征,VGG 模型是首选算法。网络结构VGG 网络根据卷积核大小和卷积层数目的不同,可分为 A,A-LRN,B,C...
2019-10-10 09:03:25
369
原创 AlexNet
AlexNet 网络AlexNet 网络是在 LeNet5 网络之后第一个引起大家注意的网络,因其在 ImageNet 大赛上的出色发挥而受到关注;AlexNet 在结构上类似于 LeNet5,但在细节上有很大的不同,AlexNet 的网络更为复杂。AlexNet 首先将网络分为两部分,分别对应两个 GPU,直到特定的网络层后两个部分才会发生交互,这样设置提高了运算的效率。两部分网络在结构...
2019-10-09 19:51:23
158
原创 深度学习笔记(二):各种梯度下降优化算法总结
1. 批量梯度下降 (Batch Gradient Descent)定义代价函数为所有样本的代价J(θ)=12m∑i=1m(hθ(x(i))−y(i))2J(\theta)=\frac{1}{2m}\sum^m_{i=1}(h_{\theta}(x^{(i)})-y^{(i)})^2J(θ)=2m1i=1∑m(hθ(x(i))−y(i))2θj=θj−α⋅∇θjJ(θ) (for j...
2019-10-08 16:40:38
783
原创 深度学习笔记(一):神经网络的反向传播算法
前向传播神经网络的目标函数对于一系列的训练样本 X,期望的输入为 t=(t1,...,tc)t=(t_1,...,t_c)t=(t1,...,tc),网络的实际输出 z=(z1,...,zc)z=(z_1,...,z_c)z=(z1,...,zc),定义目标函数为J(w)=12∣∣t−z∣∣2=12∑k=1c(tk−zk)2J(w)=\frac{1}{2}||t-z||^2=\frac...
2019-10-07 15:35:58
1018
原创 滑动平均模型原理
滑动平均算法的原理滑动平均模型又称为指数加权平均算法,是一种对数据的估测方式,它的好处是可以使数据更加平滑,数据噪声更少,不会出现异常值。举例来说,这是来自吴恩达老师的深度学习课程中的一个例子,上图表示了一年365天的温度散点图,以天数为横坐标,温度为纵坐标,大致看来图中的点遵循一定的曲线规律,但不明显。为了使温度变化的趋势更加明显,需要用到滑动平均模型,具体的计算方式如下:首先给定一...
2019-09-13 18:20:29
4918
1
原创 kaggle 房价预测比赛项目(二):使用集成学习方法提高排名
集成学习使用单个模型进行预测还不能达到最好的效果,因此考虑使用集成学习的方法来进一步减小误差。集成学习就是不同模型的堆叠与集成,并且选择最优参数以下集成学习中会用到 13 个模型,首先导入需要用到的包:from sklearn.model_selection import cross_val_score, GridSearchCV, KFoldfrom sklearn.linear_mo...
2019-09-12 17:16:54
552
原创 kaggle 房价预测比赛项目(一):数据处理,特征选择
房价预测是 kaggle 上的入门比赛,总的来说就是给你 79 个关于房价的特征,然后根据特征预测房价。房价预测的评价指标是均方根误差(RMSE),即:1. 数据探索性分析首先使用 pandas 模块读取数据import pandas as pdtrain = pd.read_csv("train.csv")test = pd.read_csv("test.csv")分别显示...
2019-09-12 17:16:32
2629
3
原创 Python 学习笔记(十七):并发编程之多线程
一、线程线程的基本概念1. 什么是线程【1】 线程被称为轻量级的进程【2】 线程也可以使用计算机多核资源,是多任务编程方式【3】 线程是系统分配内核的最小单元【4】 线程可以理解为进程的分支任务2. 线程特征【1】 一个进程中可以包含多个线程【2】 线程也是一个运行行为,消耗计算机资源【3】 一个进程中的所有线程共享这个进程的资源(变量)【4】 多个线程之间的运行互不影响各自...
2019-08-13 20:09:06
158
原创 Python 学习笔记(十六):并发编程之多进程
一、进程(process)进程理论基础1. 什么是进程?进程 是程序运行在计算机中这种动态过程的描述,它会占有计算机运行资源,具有一定的生命周期。2. 进程是如何产生的?【1】 用户空间通过调用程序接口或者命令发起请求【2】 操作系统接收用户请求,开始创建进程【3】 操作系统调配计算机资源,确定进程状态等【4】 操作系统将创建的进程提供给用户使用3. 进程的一些基本概念cpu...
2019-08-13 20:08:38
164
原创 Python 学习笔记(十五):浅拷贝与深拷贝
Python 的引用计数Python 内不可变对象的内存管理方式是引用计数,Python 不会对值相同的不可变对象申请单独的内存空间,只会记录它的引用次数,如:import copya = "ironman"b = ac = copy.copy(a)d = copy.deepcopy(a)print("原字符串>>", id(a))print("赋值操作>>...
2019-08-10 13:45:24
98
原创 Python 学习笔记(十四): 装饰器
装饰器装饰器是 Python 中的一种特殊工具,他可以在不改变原函数的调用以及内部代码情况下,为其添加新功能的函数,简而言之就是一种修改其他函数的功能的函数。先讨论几个python函数的概念1. 函数中定义函数首先我们讨论一下在函数中定义函数,示例如下def f1(): print("now you are in the f1()") def f2(): ...
2019-08-10 11:24:57
137
原创 python 网络编程基础
网络模型OSI 七层模型应用层 : 提供用户服务,具体功能有应用程序实现 表示层 : 数据的压缩优化加密 会话层 : 建立用户级的连接,选择适当的传输服务 传输层 : 提供传输服务 网络层 : 路由选择,网络互联 链路层 : 进行数据交换,控制具体数据的发送 物理层 : 提供数据传输的硬件保证,网卡接口,传输介质1. 物理层OSI模型的最底层,包括物理联网媒...
2019-07-05 09:04:45
298
原创 Python 学习笔记(十三):内置高阶函数
python 内置高阶函数1. map 函数使用可迭代对象中的每个元素调用函数,将返回值作为新可迭代对象元素;返回值为新可迭代对象。语法:re = map(函数, 可迭代对象)实例>>> list01 = ['a', 'b', 'c', 'd']>>> re = map(lambda x: x.upper(), list01)>&...
2019-06-25 20:18:48
197
原创 Python 学习笔记(十二):生成器 generator
生成器一种能够动态(循环一次计算一次返回一次)提供数据的可迭代对象。在循环过程中,按照某种算法推算数据,不必创建容器存储完整的结果,从而节省内存空间。数据量越大,优势越明显。以上作用也称之为延迟操作或惰性操作,通俗的讲就是在需要的时候才计算结果,而不是一次构建出所有结果。生成器和迭代器所有的生成器都是迭代器,因为生成器完全实现了迭代器接口;但两者也有所不同,迭代器用于从可迭代对象(如集...
2019-06-22 10:29:56
389
原创 Python 学习笔记(十一):面向对象编程(类的特殊操作)
1.访问可见性问题对象属性的访问权限包括私有的、受保护的和公开的,而对象的方法通常是公开的。如果希望属性是私有的,即不允许外界访问,在给属性命名时可以用两个下划线作为开头,如:class Student(): def __init__(self, name, foo): self.name = name self.__foo = fooprop...
2019-06-06 13:04:27
209
原创 Python 学习笔记(九):is 和 == 的区别
is 和 == 都是对 python 对象进行比较的操作符,python 对象包含三个要素:id,type,value。== 运算符主要对 python 对象的 value 进行比较,如比较字符串,数字等>>> a = 'python'>>> b = 'python'>>> a == bTrueis 运算符也称为同一性运...
2019-06-03 12:59:54
132
原创 Python学习笔记(八):集合、字典的操作
集合集合内数据无序,即无法使用索引和分片集合内部数据元素具有唯一性,可以用来排除重复数据集合内的数据,字符串,整数,浮点数,元组,冰冻集合等,不能是列表和一般集合,即内部只能放置可哈希数据(即不可变类型)set1 = {'a', 2, 2.5, (2,3,'a')}1.集合的简单操作集合的序列操作>>> 'a' in set1True>>&...
2019-05-30 17:29:12
440
原创 Python学习笔记(七):Linux命令
一、基础命令linux 命令格式: 命令名称 命名参数 命名对象1.用户相关命令:查看当前名称:whoamiatongmu@atongmu-virtual-machine:~$ whoamiatongmu添加用户:adduser 用户名但必须拥有 root 权限才能创建新用户。atongmu@atongmu-virtual-machine:~$ sudo ...
2019-05-27 19:30:47
158
原创 Python学习笔记(六):面向对象编程(创建类、对象、类属性、类的继承与多态)
类和对象类是对象的蓝图和模板,而对象是类的实例,类是抽象的概念,而对象是具体的东西,类可以产生多个对象,每个对象都有属性和行为,每个对象都是独一无二的。定义类在python中使用class关键字定义类,在类中使用函数定义方法class First(object): ...
2019-05-08 15:47:59
441
原创 Python学习笔记(五):python中列表、元组、字符串的操作
列表list列表可以执行所有标准序列操作,如索引,切片,拼接和相乘,但列表最大的特点在于它是可变的。列表的基本操作#给列表里的元素赋值>>> x = [1, 1, 1]>>> x[1] = 2>>> x[1, 2, 1]#从列表中删除元素>>> names = ['a', 'b', 'c']>>...
2019-05-04 17:17:05
678
原创 Python学习笔记(四):函数中的位置参数、关键字参数、默认参数、收集参数的区别
一、位置参数最常用的参数方法,通过位置进行匹配把参数值传递给函数头部的参数名称,匹配顺序为从左到右def func(name, age): print(''my name is %s, i am %s years old''%(name, age))#参数的顺序从左到右一一对应,不能缺少或增加额外的参数func('faka', 23) 二、关键字参数通过参数名进行匹配,使...
2019-05-04 14:48:52
940
原创 Python学习笔记(三):变量类型、运算符
变量和类型整型:在python3.x中整数只有int一种,而且支持二进制(如0b100,对应十进制是4)、八进制(如0o100,对应十进制是64)、十进制(100)和十六进制(如0x100,对应十进制是256)。浮点型:也就是小数,由于按照科学计数法表示时,一个浮点数的小数点位置是可变的,浮点数除了数学写法(123.456)之外还支持科学计数法(1.23456e2)。字符串型:是以单引号或...
2019-05-04 13:39:17
112
原创 Python学习笔记(二):可迭代对象和迭代器
迭代器(iterator):是访问数据集合内元素的一种方式,一般用来遍历数据,但不能像列表一样用下标来获取数据,也就是说迭代器是不能返回的__next__方法任何迭代工具(如for循环、列表解析)内部工作就是在每次迭代中调用__next__方法,并且捕捉StopIteration异常来确定何时离开#对于文件可以调用__next__方法代替readline(),两者效果相同f = open(...
2019-04-30 16:54:20
720
原创 Python学习笔记(一): lambda
除def语句之外,python还提供了一种生成函数对象的表达式形式:lambda,它创建了一个之后能够调用的函数,但是它返回了一个函数而不是将这个函数赋值给一个变量。lambda表达式形式:关键字lambda,之后是一个或多个参数,紧跟一个冒号,之后是一个表达式lambda argument1, argument2,... argumentN: expression using argume...
2019-04-29 13:37:45
166
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人