![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
机器学习基础理论
文章平均质量分 59
PlanB@@
热爱视觉,主要从事工业视觉、计算机视觉方向!
展开
-
图像透视变换
定义透视变换(Perspective Transformation)是将成像投影到一个新的视平面(Viewing Plane),也称作投影映射(Projective Mapping)。问题透视变换矩阵如何求解,矩阵不同参数底层原理是什么?透视变换目标图像的坐标点坐标值如何定?(目前是尝试出来的)参考文章[1] 透视变换——cv::getPerspectiveTransform()与cv::warpPerspective()详解[2] 透视变换(进阶)[3] 高级车道线识别...原创 2021-04-21 19:46:31 · 122 阅读 · 0 评论 -
正则化
背景解决过拟合问题原理引入正则化实现对参数的约束,有效选择特征问题:1,数学上如何解释正则化过程?答:可以从两个角度来理解正则化,一种是贝叶斯角度,另一种是最优化角度[5]。可以看出加入权重衰减后会引起学习规则的修改[4],在每步梯度更新之前都会先收缩权重向量——将权重向量前边乘上一个小于1的权重因子(1−ϵα),也就是说,正则化惩罚系数α升高会将权重w拉向0。可以从两个角度进一步理解一下这个操作:a.在神经网络中,当一些权重趋近于0时,则可以理解为去掉了一些逻辑单元,简化后的网络虽然小但原创 2021-04-20 20:35:47 · 184 阅读 · 0 评论 -
Batch Normalization原理与实战
总结至此,关于Batch Normalization的理论与实战部分就介绍道这里。总的来说,BN通过将每一层网络的输入进行normalization,保证输入分布的均值与方差固定在一定范围内,减少了网络中的Internal Covariate Shift问题,并在一定程度上缓解了梯度消失,加速了模型收敛;并且BN使得网络对参数、激活函数更加具有鲁棒性,降低了神经网络模型训练和调参的复杂度;最后BN训练过程中由于使用mini-batch的mean/variance作为总体样本统计量估计,引入了随机噪声,在一转载 2021-04-12 17:11:09 · 65 阅读 · 0 评论 -
深度卷积网络中反卷积(转置卷积)
结论插值方法不需要学习任何参数,而转置卷积就像卷积一样需要学习参数。tf.nn.conv2d_transpose中设置参数“SAME”,参考【3】,是在输入四周PAD一圈或者两圈0,然后在裁减,输出不唯一;设置参数“VALID”时,直接在四周PAD两圈0,没有裁剪,输出唯一确定,当不知道该函数如何使用时写一个小的DEMO可以快速了解。参考文章【1】深度卷积网络中如何进行上采样?【2】一文搞懂反卷积,转置卷积【3】tf.nn.conv2d_transpose反卷积(转置卷积)【4】如何理解深原创 2021-04-08 19:13:50 · 126 阅读 · 0 评论 -
CNN真的需要下采样(上采样)吗?
一篇非常棒的博客文章连接:CNN真的需要下采样转载 2021-04-01 15:43:24 · 94 阅读 · 0 评论 -
深度学习的可解释性|Global Average Pooling(GAP)
GAP (Global Average Pooling)可用于模型微调,在做图像分类比赛时效果较好.最早在<>中提出.在常见的卷积神经网络中,全连接层之前的卷积层负责对图像进行特征提取,在获取特征后,传统的方法是接上全连接层之后再进行激活分类,而GAP的思路是使用GAP来替代该全连接层(即使用池化层的方式来降维),更重要的一点是保留了前面各个卷积层和池化层提取到的空间信息\语义信息,所以在实际应用中效果提升也较为明显!,另外,GAP去除了对输入大小的限制!,而且在卷积可视化Grad-CAM中也转载 2021-04-01 14:26:00 · 2242 阅读 · 0 评论 -
深度卷积网络中如何进行上采样?
原文连接深度卷积网络中如何进行上采样?摘要深度学习的许多应用中需要将提取的特征还原到原图像大小,如图像的语义分割、生成模型中的图像生成任务等。通过卷积和池化等技术可以将图像进行降维,因此,一些研究人员也想办法恢复原分辨率大小的图像,特别是在语义分割领域应用很成熟。常见的上采样方法有双线性插值、转置卷积、上采样(unsampling)、上池化(unpooling)和亚像素卷积(sub-pixel convolution,PixelShuffle)。下面对其进行简单介绍。参考文献参考文章:上采样、上池转载 2021-03-31 17:36:01 · 684 阅读 · 0 评论 -
二分类分割调试
BUG List问题1:Loss值固定不变解决方法:1,改变初始化值标准差stddev,loss开始变化;2,训练代码忘记运行adam优化器;参考文章:深度学习(神经网络)训练时loss不变的可能原因问题2:Loss Nan解决方法:sparse_softmax_cross_entropy_with_logits的logits输入前又做了一遍softmax。参考文章:tf.nn.sparse_softmax_cross_entropy_with_logits问题3:Tensorflo原创 2021-03-31 15:56:42 · 250 阅读 · 0 评论 -
分割评价指标MIOU
MIOU定义有很多博客都有写MIOU,参考下面文章注意点:类别包含背景,二分类也包含背景混淆矩阵就是分别统计分类模型归错类,归对类的观测值个数,然后把结果放在一个表里展示出来。代码实现def fast_hist(a, b, n): ''' a是W*H的一维数组,预测值 b是W*H的一维数组,真实值 ''' # k是一个一维bool数组,形状(H×W,);目的是找出标签中需要计算的类别 k = (a >= 0) & (a < n)原创 2021-03-26 16:51:51 · 1314 阅读 · 3 评论 -
为什么要批标准化?
有两个作者写的很好什么是批标准化 (Batch Normalization)详解深度学习中的Normalization,BN/LN/WN原创 2021-03-21 11:47:16 · 269 阅读 · 0 评论 -
卷积神经网络中的pooling层能否用相同stride的convolution层替代?
项目场景:卷积神经网络中的pooling层能否用相同stride的convolution层替代?问题描述:根据Inception_v3 general design principles,作者在其论文中有这样的描述:concat一个stride为2的conv层和stride为2的pooling层可以avoid representation bottlenecks,那么pooling层是否可以完全由conv层替代,因为conv层也可以通过增大stride来缩小feature map的尺寸,增大感受野。转载 2021-03-14 11:04:06 · 1105 阅读 · 0 评论 -
ResNet网络结构分析---DeepLabV3
今天回顾了ResNet的论文Deep Residual Learning for Image Recognition,又结合PyTorch官方代码,整理一遍ResNet的结构,在这里写个总结。首先,ResNet在PyTorch的官方代码中共有5种不同深度的结构,深度分别为18、34、50、101、152(各种网络的深度指的是“需要通过训练更新参数”的层数,如卷积层,全连接层等),和论文完全一致。图1是论文里给出每种ResNet的具体结构:图1 不同深度ResNet的具体结构其中,根据Block类型,可以将这转载 2021-03-14 10:14:21 · 1237 阅读 · 0 评论 -
全局平均池化
文章目录一、作用和优点二、Tensorflow实现参考文献一、作用和优点首次提出全局平均池化概念的论文是:Network In Network, 作用和优点都讲的很清楚。在这里插入图片描述:作用:如果要预测K个类别,在卷积特征抽取部分的最后一层卷积层,就会生成K个特征图,然后通过全局平均池化就可以得到 K个1×1的特征图,将这些1×1的特征图输入到softmax layer之后,每一个输出结果代表着这K个类别的概率(或置信度 confidence),起到取代全连接层的效果。优点:- 和全原创 2021-03-08 17:44:19 · 1505 阅读 · 0 评论 -
二值语义分割评价标准
文章目录前言一、F1 Score 定义二、代码实现总结参考文献前言刚开始做两个类别语义分割项目时,发现分割的评价指标高,但是实际效果可能完全错误的现象。当时使用的指标是Pixel Accuracy,因为前景像素占总像素的5%以内,所以如果预测结果都是背景的话识别也过也非常高。目前分割论文中普遍使用的评价标准是mIOU,单一类别和多类别都可以使用该标准,另外还有一个较好的评价指标F1 Score。即使是F1 Score还不能完全表示所有分割任务的评价标准,具体人物可以参考这篇文章(R. Haralic原创 2021-03-02 10:23:05 · 1338 阅读 · 2 评论 -
深度残差网络
深度残差网络(Deep residual network, ResNet)***文章解读参考博客***:[深度残差网络—ResNet总结](https://www.cnblogs.com/xiaoboge/p/10539884.html) 文章目录 一、前言二、深度网络的退化问题三、残差学习3.1 残差网络原理3.2 ResNet结构为什么可以解决深度网络退化问题?3.3 残差单元3.4 ResNet的网络结...转载 2021-02-26 14:18:23 · 650 阅读 · 0 评论 -
嵌入式分割网络之空洞卷积
文章目录前言一、空洞卷积是什么?二、为什么要使用空洞卷积?三、如何使用空洞卷积?总结前言空洞卷积[^1]在分割网络中频繁出现,空洞卷积对分割网络有什么好处?这是我分析该原理的原因。一、空洞卷积是什么?在图像中,卷积核的大小不变,但是在图像中通过增加卷积核间隔,可以扩大图像的感受野范围。当stride = 1时,间隔为0,也就成为普通的卷积,普通卷积是空洞卷积的特例,参考动态图例子vdumoulin /conv_arithmetic二、为什么要使用空洞卷积?普通卷积网络操作过程:先卷积,再下原创 2021-02-25 11:34:15 · 264 阅读 · 0 评论 -
交叉熵在loss函数中使用的理解
关于交叉熵在loss函数中使用的理解 交叉熵(cross entropy)是深度学习中常用的一个概念,一般用来求目标与预测值之间的差距。以前做一些分类问题的时候,没有过多的注意,直接调用现成的库,用起来也比较方便。最近开始研究起对抗生成网络(GANs),用到了交叉熵,发现自己对交叉熵的理解有些模糊,不够深入。遂花了几天的时间从头梳理...转载 2021-02-20 13:54:52 · 449 阅读 · 0 评论 -
为何要使用Dice Loss
文章目录前言总结前言上一篇文章阐述了Dice Loss的原理,但是为什么要使用Dice Loss没有说明白,参考下面的一篇博客非常清晰的阐述了我的问题。语义分割之dice loss深度分析(梯度可视化)总结优点:Dice Loss 对正负样本严重不平衡的场景有着不错的性能,训练过程中更侧重对前景区域的挖掘。Dice Loss是一种区域相关的loss,像素点的loss以及梯度值不仅和该点的label以及预测值相关,和其他点的label以及预测值也相关缺点:训练loss容易不稳定,尤其是原创 2021-02-08 17:05:04 · 2066 阅读 · 0 评论 -
语义分割中Dice Loss原理与Python实现
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、Dice Loss是什么?二、使用步骤1.引入库2.读入数据总结前言用Dice Loss的作语义二分类分割Loss的过程中,发现自己并不知道Dice是什么,计算公式是如何得到的?那么来探索一下。一、Dice Loss是什么? Dice loss是Fausto Milletari等人在V-net中提出的Loss function,其源于Sørensen–Dice coefficient,是Thorvald Søre原创 2021-02-07 17:34:10 · 3721 阅读 · 0 评论