自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AndyJ的学习之旅

一个人工智能小白的进修历程

  • 博客(253)
  • 收藏
  • 关注

原创 排序算法之各种指标对比

2020-09-28 17:00:35 21

原创 排序算法之直接插入排序和希尔排序

直接插入排序的基本操作是将一个记录插入到已经排好序的有序表中,从而得到一个新的,记录数增1的有序表,模仿扑克牌的思想。看代码:def insert_sort(nums): n = len(nums) for i in range(1,n): if nums[i] < nums[i-1]: # 需要将nums[i]插入到有序子表中 temp = nums[i] # 设置哨兵 j = i - 1 w

2020-09-28 15:10:02 16

原创 深度学习之l2正则,weight decay,momentum,batchsize,lr超参数之间的关系

l2正则L2正则化的目的就是为了让权重衰减到更小的值,在一定程度上减少模型过拟合的问题。权重衰减(weight decay)weight decay(权值衰减)的使用既不是为了提高收敛精确度也不是为了提高收敛速度,其最终目的是防止过拟合。在损失函数中,weight decay是放在正则项(regularization)前面的一个系数,正则项一般指示模型的复杂度,所以weight decay的作用是调节模型复杂度对损失函数的影响,若weight decay很大,则复杂的模型损失函数的值也就大。L2正则

2020-09-27 20:01:49 81 2

原创 数据结构之B树和B+树

B树B树是为实现高效的磁盘存取而设计的多叉平衡搜索树。这个概念在文件系统,数据库系统中非常重要。基本原理B树是一种查找树,它最初启发于二叉查找树,二叉查找树的特点是每个非叶节点都只有两个孩子节点。然而这种做法会导致当数据量非常大时,二叉查找树的深度过深,搜索算法自根节点向下搜索时,需要访问的节点也就变的相当多。如果这些节点存储在外存储器中,每访问一个节点,相当于就是进行了一次I/O操作,随着树高度的增加,频繁的I/O操作一定会降低查询的效率。从外存储器中读取信息的步骤,简单来分,大致有两步:找到

2020-09-27 19:45:05 116

原创 图之DFS、BFS、Dijkstra、Floyd、Prim、Kruskal算法

概要对于DFS和BFS,如果遇到搜索和遍历,肯定要想到堆栈和队列,而遇到堆栈肯定就要想到是不是可以用递归来实现,因为递归程序其实就是函数在内存中的出栈入栈,DFS就是使用堆栈或者递归来实现,而类似层次遍历的BFS自然就可以使用队列来实现DFS和BFSgraph = { 'a' : ['b', 'c'], 'b' : ['a', 'c', 'd'], 'c' : ['a','b', 'd','e'], 'd' : ['b' , 'c',

2020-09-24 20:33:38 34

转载 操作系统之高并发

本文参考,如有侵权,联系删除什么是高并发高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per Second),并发用户数等。响应时间:系统对请求做出响应的时间。例如系统处理一个HTTP请求需要200ms,这个200ms就是系统的响应时间。吞吐量:单位时间内处理的请求数量。

2020-09-19 21:04:47 26

原创 目标检测之anchor_based和anchor_free优缺点

anchor based优点使用anchor机制产生密集的anchor box,使得网络可直接在此基础上进行目标分类及边界框坐标回归。加入先验,训练稳定密集的anchor box可有效提高网络目标召回能力,对于小目标检测来说提升非常明显。缺点anchor机制中,需要设定的超参:尺度(scale)和长宽比( aspect ratio) 是比较难设计的。这需要较强的先验知识。冗余框非常之多:一张图像内的目标毕竟是有限的,基于每个anchor设定大量anchor box会产生大量的easy-sa

2020-09-19 20:40:35 340

原创 目标检测之单阶段和两阶段检测算法的对比

双阶段精度高但速度慢,单精度速度快但精度稍逊。双阶段目标检测器采用了两段结构采样来处理类别不均衡的问题,rpn使正负样本更加均衡使用了两阶段级联的方式来拟合bbox,先粗回归,再精调。One stage detector 的一个通病就是既要做定位又要做classification。最后几层1x1 conv layer 的loss 混在一起,并没有什么专门做detection 或者专门做bbox regression的参数,那每个参数的学习难度就大一点。Two stage detector 的第一个s

2020-09-19 20:39:21 1021

原创 数据结构之单链表和双链表的区别

本文参考,如有侵权,联系删除链表和数组的区别数组静态分配内存,链表动态分配内存;数组在内存中连续,链表不连续;数组利用下标定位,时间复杂度为O(1),链表定位元素时间复杂度O(n);数组插入或删除元素的时间复杂度O(n),链表的时间复杂度O(1)。数组的优点随机访问性强(通过下标进行快速定位)查找速度快数组的缺点插入和删除效率低(插入和删除需要移动数据)可能浪费内存(因为是连续的,所以每次申请数组之前必须规定数组的大小,如果大小不合理,则可能会浪费内存)内存空间要求高,必须

2020-09-19 10:52:40 54

原创 目标检测之RCNN,Fast RCNN,Faster RCNN

R-CNNRich feature hierarchies for accurate object detection and semantic segmentation-CVPR2014训练过程准备region proposal。对于训练集中的所有图像,采用selective search方式来获取,最后每个图像得到2000个region proposal。准备正负样本。如果某个region proposal和当前图像上的所有ground truth中重叠面积最大的那个的IOU大于等于0.5

2020-09-18 17:06:02 44

原创 目标检测之MAP计算方式

precision表示某一类样本预测有多准。 Recall表示某一类样本,预测正确的与所有Ground Truth的比例。  Recall和Precision一样,脱离类别是没有意义的。说道这两个指标,一定指的是某个类别的。以Recall为横轴,Precision为纵轴,就可以画出一条PR曲线,PR曲线下的面积就定义为AP。所有类别的平均即为MAPimport numpy as npdef voc_ap(rec, prec, use_07_metric=False): """ a

2020-09-16 20:20:22 40

原创 栈之消除连续k个重复的字符

给定一个字符串s和k,删除s中连续重复的k个字符,直到不能删除为止。示例:input: “aaadbbcccbbdd”, K=3dbbbbdddbddoutput: dbdddef remove_k(s, k): stack = [] n = len(s) i = 0 while i < n: temp = stack[-k+1:] t = list(set(temp)) if len(stack) >= k-1 and len(t) == 1

2020-09-13 10:22:50 21

原创 BFS之网格中的最短路径

LeetCode 1293. 网格中的最短路径给你一个 m * n 的网格,其中每个单元格不是 0(空)就是 1(障碍物)。每一步,您都可以在空白单元格中上、下、左、右移动。如果您 最多 可以消除 k 个障碍物,请找出从左上角 (0, 0) 到右下角 (m-1, n-1) 的最短路径,并返回通过该路径所需的步数。如果找不到这样的路径,则返回 -1。示例 1:输入: grid = [[0,0,0], [1,1,0], [0,0,0], [0,1,1], [0,0,0]], k = 1输

2020-09-11 11:20:56 129

原创 DFS之最大人工岛

Leetcode 827. 最大人工岛在二维地图上, 0代表海洋, 1代表陆地,我们最多只能将一格 0 海洋变成 1变成陆地。进行填海之后,地图上最大的岛屿面积是多少?(上、下、左、右四个方向相连的 1 可形成岛屿)示例 1:输入: [[1, 0], [0, 1]]输出: 3解释: 将一格0变成1,最终连通两个小岛得到面积为 3 的岛屿。示例 2:输入: [[1, 1], [1, 0]]输出: 4解释: 将一格0变成1,岛屿的面积扩大为 4。示例 3:输入: [[1, 1], [

2020-09-11 10:43:46 37

原创 数学动态规划之整数拆分

LeetCode 343. 整数拆分给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。示例 2:输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。数学法:尽可能多的拆成3如果能整除3:乘积为3^(n//3)如果除3的余数为1:拆成(n//3-1)个3和两个2,因为13 < 22如果除3的余数为2

2020-09-10 16:30:07 68

原创 区间DP之合并石头的最低成本

LeetCode 1000. 合并石头的最低成本有 N 堆石头排成一排,第 i 堆中有 stones[i] 块石头。每次移动(move)需要将连续的 K 堆石头合并为一堆,而这个移动的成本为这 K 堆石头的总数。找出把所有石头合并成一堆的最低成本。如果不可能,返回 -1 。示例 1:输入:stones = [3,2,4,1], K = 2输出:20解释:从 [3, 2, 4, 1] 开始。合并 [3, 2],成本为 5,剩下 [5, 4, 1]。合并 [4, 1],成本为 5,剩下 [5

2020-09-10 15:30:20 29

原创 深度学习之联邦学习

什么是联邦学习联邦学习(federated learning)能够让AI算法借助位于不同站点的数据中获得经验。该方法能够让多个组织协作开发模型,而且不需要彼此之间直接共享敏感的数据在多次训练迭代过程中,共享模型所覆盖的数据范围会比任何一个组织内部拥有的数据都要大得多。联邦学习如何工作难点:不仅仅是数据量的问题,数据集还需要极高的多样化。但是考虑到隐私性,这些数据一般无法共享。解决办法:联邦学习摒弃了将数据集中到某个位置进行训练的方法,取而代之的是将模型分散到各个不同的站点进行迭代训练。例如

2020-09-10 10:34:00 169

原创 深度学习之知识蒸馏(Knowledge Distillation)

本文参考以下链接,如有侵权,联系删除论文参考引言知识蒸馏是一种模型压缩方法,是一种基于“教师-学生网络思想”的训练方法,由于其简单,有效,在工业界被广泛应用。Knowledge Distillation,简称KD,顾名思义,就是将已经训练好的模型包含的知识(”Knowledge”),蒸馏(“Distill”)提取到另一个模型里面去。温度: 我们都知道“蒸馏”需要在高温下进行,那么这个“蒸馏”的温度代表了什么,又是如何选取合适的温度?背景虽然在一般情况下,我们不会去区分训练和部署使用的模型,但

2020-09-10 10:17:02 300

原创 机器学习之如何选取特征(特征工程)

特征工程特征工程的意义是找一个更好的空间去重构表达,把原始的数据对象映射到这个空间去表达,更便于你的应用。比如分类应用,最好是找到线性可分的空间嘛。不止是神经网络可以代替人工找特征,理论上越是复杂的模型本身就是在代替人工找特征,只不过复杂模型的有效训练又成了难题。深层神经网络(就是层数特别多)就是一种通用的复杂的模型,而深度学习很大程度上解决了它的训练问题。当你用一个N层的网络去学习人脸分类时,看上图最左边,最下面的就是接近输入端的层学到的特征,长相是不是很像Gabor滤波~~这部分的表达粒度比较

2020-09-09 17:45:51 119

原创 深度学习之常用激活函数

引言激活函数的目标是,将神经网络非线性化。激活函数是连续的且可导的。连续的:当输入值发生较小的改变时,输出值也发生较小的改变;可导的:在定义域中,每一处都是存在导数;常见的激活函数:sigmoid,tanh,relu。sigmoidsigmoid是平滑的阶梯函数,可导。sigmoid可以将任何值转换为0~1概率,用于二分类。当使用sigmoid作为激活函数时,随着神经网络隐含层(hidden layer)层数的增加,训练误差反而加大。表现为:靠近输出层的隐含层梯度较大,参数更新速度快,很

2020-09-09 16:32:05 70

原创 目标检测实例分割之mask rcnn

本文参考以下链接,如有侵权,联系删除参考Mask RCNN-ICCV2017概要Mask R-CNN是ICCV2017的best paper,在一个网络中同时做目标检测(object detection)和实例分割(instance segmentation)。该算法在单GPU上的运行速度差不多是5 fps,并且在COCO数据集的三个挑战赛:instance segmentation、bounding-box object detecton、person keypoint detection中的效果

2020-09-09 16:10:51 124

原创 损失函数之center loss

A Discriminative Feature Learning Approach for Deep Face Recognition-ECCV2016概要对于常见的图像分类问题,我们常常用softmax loss来求损失,最后各个类别学出来的特征分布大概如下图Fig2。这个图是以MNISTt数据集做的实验,一共10个类别,用不同的颜色表示。从Fig2可以看出不管是训练数据集还是测试数据集,都能看出比较清晰的类别界限。如果你是采用softmax loss加上本文提出的center loss的损失,

2020-09-09 15:16:46 104

原创 目标检测之YOLT(you only look twice)

本文参考以下链接,如有侵权,联系删除参考You Only Look Twice: Rapid Multi-Scale Object Detection In Satellite Imagery-2018概要这篇文章是做卫星图的目标检测,在YOLO v2算法基础上做了改进得到YOLT(You Only Look Twice)算法,因为卫星图的目标检测和常见的目标检测场景最大的区别在于卫星图像本身尺寸很大(比如16000*16000),其次目标尺寸非常小而且常常聚集在一起。因此YOLT算法整体上是解决卫

2020-09-09 14:45:51 74

原创 机器学习之评价指标AUC的意义

参考概要在互联网的排序业务中,比如搜索、推荐、广告等,AUC(Area under the Curve of ROC)是一个非常常见的评估指标。AUC的理解一般有两大类解释,一种是基于ROC线下面积,需要理解混淆矩阵,包括精确率、召回率、F1 值、ROC等指标的含义。另外一种是基于概率的解释,模型的排序能力。AUC的排序特性对比accuracy、precision等指标,AUC指标本身和模型预测score绝对值无关,只关注排序效果,因此特别适合排序业务。为何与模型预测score值无关为何是很好

2020-09-09 14:17:43 234

原创 目标检测之FPN(feature pyramid networks)

本文参考以下链接,如有侵权,联系删除参考feature pyramid networks for object detection-2017概述原来多数的object detection算法都是只采用顶层特征做预测,但我们知道低层的特征语义信息比较少,但是目标位置准确;高层的特征语义信息比较丰富,但是目标位置比较粗略。另外虽然也有些算法采用多尺度特征融合的方式,但是一般是采用融合后的特征做预测,而本文不一样的地方在于预测是在不同特征层独立进行的。motivation(a)图像金字塔,即将图像

2020-09-09 10:49:57 41

原创 python之List底层实现

数据是如何在内存中存储的?在32位的计算机上,1个字节有8位,内存寻址的最小单位就是字节。假设我们有一个int类型的值,它从0x10开始,一个int占据4个字节,则其结束于0x13。数据类型的意义它确定了一个特定类型的数据到底需要申请多大的内存地址来存储(大小),并且决定取到的二进制数应该如何解释(意义)。地址里存储的只有二进制数,但对于数字和字符同一二进制数代表的意义是不同的。同类型的数据在内存中是如何连续存储的假设有一个四个数的集合 24, 299, 10, 4,将它们连续地存储在一起时,在

2020-09-08 21:19:07 50

原创 目标检测之IOU系列

Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression-AAAI 2020IOU lossIoU是目标检测里面很重要的一个指标,通过预测的框和GT间的交集与并集的比例进行计算,经常用于评价bbox的优劣 。但一般对bbox的精调都采用L2范数,而一些研究表明这不是最优化IoU的方法,因此出现了IoU lossIoU loss直接通过IoU计算梯度进行回归,论文提到IoU loss的无法避免的缺点:当两个bo

2020-09-08 10:28:13 89

原创 BFS之公交路线

leetcode 815. 公交路线我们有一系列公交路线。每一条路线 routes[i] 上都有一辆公交车在上面循环行驶。例如,有一条路线 routes[0] = [1, 5, 7],表示第一辆 (下标为0) 公交车会一直按照 1->5->7->1->5->7->1->… 的车站路线行驶。假设我们从 S 车站开始(初始时不在公交车上),要去往 T 站。 期间仅可乘坐公交车,求出最少乘坐的公交车数量。返回 -1 表示不可能到达终点车站。示例:输入:route

2020-08-25 11:01:23 55 1

原创 DFS之被围绕的区域

leetcode 130. 被围绕的区域给定一个二维的矩阵,包含 ‘X’ 和 ‘O’(字母 O)。找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。示例:X X X XX O O XX X O XX O X X运行你的函数后,矩阵变为:X X X XX X X XX X X XX O X X解释:被围绕的区间不会存在于边界上,换句话说,任何边界上的 ‘O’ 都不会被填充为 ‘X’。 任何不在边界上,或不与边界上的 ‘O’ 相连的 ‘O’ 最终都会

2020-08-25 09:58:50 39

原创 动态规划之括号匹配(二)包含多种括号

题目描述给你一个字符串,里面只包含"(",")","[","]"四种符号,请问你需要至少添加多少个括号才能使这些括号匹配起来。如:[]是匹配的([])[]是匹配的((]是不匹配的([)]是不匹配的动态规划思路状态定义:使用二维dp,dp[i][j]表示从s[i]到s[j]的最少添加括号个数初始化:单独一个字符时,dp[i][j]=1,因为一个字符必定需要添加一个括号,其他值先赋值为0状态转移方程:循环遍历区间长度(区间长度m从1到n),每次考虑[i,j]内的区间(i从0开始,j=i+m)

2020-08-24 14:24:44 180

原创 字符串之字符串相乘

leetcode 43. 字符串相乘给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = "2", num2 = "3"输出: "6"示例 2:输入: num1 = "123", num2 = "456"输出: "56088"说明:num1 和 num2 的长度小于110。num1 和 num2 只包含数字 0-9。num1 和 num2 均不以零开头,除非是数字 0 本身。

2020-08-20 17:25:15 140

原创 数学概率之z=x+y和z=x-y和z=x/y的分布

Z=X+Y 的分布设(X,Y)的概率密度为f(x,y),则Z=X+Y的分布函数为:故Z=X+Y的概率密度为:由X,Y的对等性,fZ(z)f_{Z}(z)fZ​(z) 又可写成卷积公式:如果X和Y相互独立时,Z=X+Y的密度函数公式称为卷积公式即:fZ(z)=∫−∞+∞fX(z−y)fY(y)dy=∫−∞+∞fX(x)fY(z−x)dxf_{Z}(z)=\int^{+\infty}_{-\infty}f_{X}(z-y)f_{Y}(y)dy=\int^{+\infty}_{-\infty}f

2020-08-20 16:45:46 1834

原创 数学概率之max(x,y)和min(x,y)的分布

max(X,Y)和min(X,Y)的分布例题求max(x,y)的期望由期望的定义带入概率密度函数即可,x*2x在0到1上的积分,结果为2/3最小值可以利用上面的公式进行计算,也可以用1-2/3=1/3

2020-08-20 15:08:37 1391

原创 数学概率之分布函数和概率密度函数

概率密度和分布函数联合概率密度边际概率密度条件概率密度复合函数概率密度

2020-08-20 14:42:53 53

原创 目标检测之Deformable Convolutional Networks

本文参考以下链接,如果侵权,联系删除参考Deformable Convolutional Networks-ICCV2017

2020-08-19 15:16:17 99

原创 Linux常用命令面试题

Linux面试题常用命令

2020-08-19 11:12:42 100

原创 深度学习之权重初始化

为什么要初始化权重权重初始化的目的是防止深度神经网络的正向(前向)传播过程中层激活函数的输出损失梯度出现爆炸或消失.如果发生任何一种情况,损失梯度太大或者太小,就无法有效向后反传,即便可以向后反传,网络也需要花更长的时间来达到收敛.矩阵乘法是神经网络的基本数学运算。在多层深度神经网络中,一个正向传播仅需要在每层对该层的输入和权重矩阵执行连续的矩阵乘法。这样每层的乘积成为后续层的输入,依此类推。训练神经网络的标准做法,是让输入值落入类似一个均值为0,标准差为1的正态分布中,以确保其被归一化。假设有一个

2020-08-19 11:10:06 90

原创 哈希表之物品的完美对数

有n个物品,每个有k个属性,ai,ja_{i,j}ai,j​表示第iii件物品的第jjj个属性,两个物品被称为完美配对需要满足两个物品的任意一个属性之和相等,即ai,j+ak,j=ai,0+ak,0a_{i,j}+a_{k,j}=a_{i,0}+a_{k,0}ai,j​+ak,j​=ai,0​+ak,0​然后求完美配对的个数输入描述第一行n k表示物品数和属性数接下来n行每行k个数表示第i个物品的k个属性输出一个数字表示完美配对数输入5 32 11 2119 10 120 11 16

2020-08-18 17:06:14 57

原创 排列组合之冲突的邻居

一个监狱有n个房子,每个房子的人可以选择一个1~m的数,如果相邻房子的人选择的数字是一样的,就会发生冲突,问发生冲突的可能性有多少种。输入,m n分别表示可选数字的范围和房间的数目。输出冲突的种类,并对100003取模输入2 3输出6对于样例输入,发生冲突的情况有(1,1,1),(1,1,2),(1,2,2),(2,1,1),(2,2,1),(2,2,2)冲突的情况不好穷举,但是总的排列数目是可以求出的,为mnm^nmn,然后考虑不发生冲突的情况,第一个人有m个选择,第二个人只需要不和第一个

2020-08-18 16:46:39 30

原创 几何数学之曲线相交的面积

题目描述求函数 y2=2Axy^2=2Axy2=2Ax 和 y=Bx+Cy=Bx+Cy=Bx+C 两个曲线所围出的面积。如果没有所围面积,则输出0输入描述第一行一个数 nnn,表示测试用例的组数接下来 nnn 行,每行输入三个数,分别是 A B C每个用例输出一个数,表示面积,相对误差在10−410^{−4}10−4都算对输入11 1 -6输出31.2481110540先判断曲线是否存在交点,没有交点,输出0.第一个函数是yyy的二次函数,看起来不方便,把xxx和yyy交换,然后

2020-08-18 16:23:34 83

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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