
机器学习 二
文章平均质量分 92
Gallant Hu
计算机视觉 机器学习 深度学习
展开
-
Faster R-CNN 较Fast R-CNN的改进之处与第一阶段设计细节
在提出RPN之前候选区域如何生成2013年,R-CNN提出了两阶段目标检测,分为region proposal 阶段和区域分类与精细化阶段。在上图中,R-CNN 首先使用一种称为selective search的技术从输入图像中提取出感兴趣的潜在区域。selective search并不真正尝试理解前景目标,相反,它依靠启发式方法对相似的像素进行分组: 相似的像素通常属于同一个目标。因此,selective search的结果很有可能包含一些有意义的内容。接下来,R-CNN 将这些 region p原创 2020-08-19 17:26:55 · 1573 阅读 · 0 评论 -
使用 Slim 评估模型(Evaluating Models)
Slim 评价指标(Metrics)slim提供了很多评价指标操作(metric operation),这些op使得模型的评估变得容易。理论上,计算评价指标的值能够被分为三部分:初始化(Initialization):初始化评价指标相关的一些variables;聚合(Aggregation):执行很多计算评价指标需要的操作(sum等);最终操作(Finalization):(可选) 执行任何计算评价指标的最终操作。例如,计算均值(means)、最小值(mins)、最大值(maxes)等。ima原创 2020-12-29 15:12:22 · 481 阅读 · 1 评论 -
在一个不同的任务上微调模型(Fine-Tuning a Model on a different task)
我们有一个预训练好(pre-trained)的VGG16模型。这个模型是在1000类的ImageNet数据集上训练的。但是,我们想要将它应用到只有20类的Pascal VOC数据集上。为了达到这个目的,我们可以用预训练好的模型的参数来初始化我们的新模型(除了最后一层):# Load the Pascal VOC dataimage, label = MyPascalVocDataLoader(...)images, labels = tf.train.batch([image, label], bat原创 2020-12-29 11:20:15 · 263 阅读 · 0 评论 -
训练 VGG 模型(Working Example: Training the VGG16 Model)
import tensorflow as tfimport tensorflow.contrib.slim.nets as netsslim = tf.contrib.slimvgg = nets.vgg...train_log_dir = ...if not tf.gfile.Exists(train_log_dir): tf.gfile.MakeDirs(train_log_dir)with tf.Graph().as_default(): # Set up the dat原创 2020-12-28 20:21:35 · 332 阅读 · 0 评论 -
让 slim 知道额外的 loss 并处理 losses
# Load the images and labels.images, scene_labels, depth_labels, pose_labels = ...# Create the model.scene_predictions, depth_predictions, pose_predictions = CreateMultiTaskModel(images)# Define the loss functions and get the total loss.classificati原创 2020-12-28 20:11:53 · 159 阅读 · 0 评论 -
用紧凑的代码定义模型
def vgg16(inputs): with slim.arg_scope([slim.conv2d, slim.fully_connected], activation_fn=tf.nn.relu, weights_initializer=tf.truncated_normal_initializer(0.0, 0.01), weights_regularizer=sl原创 2020-12-28 19:59:25 · 136 阅读 · 0 评论 -
手动实现 binary cross entropy
BCEloss(o,t)=−1N∑i(t[i]⋅log(o[i])+(1−t[i])⋅log(1−o[i]))loss(o,t)=-\frac{1}{N}\sum_i(t[i]\cdot log(o[i])+(1-t[i])\cdot log(1-o[i]))loss(o,t)=−N1i∑(t[i]⋅log(o[i])+(1−t[i])⋅log(1−o[i]))其中t为标签,只包含{0,1},o为预测值。编程实现和 pytorch 内部函数的对比import torchimport torch原创 2020-10-28 21:24:24 · 901 阅读 · 0 评论 -
随机权值平均优化器SWA(Stochastic Weight Averaging)简介
SWA is a simple procedure that improves generalization in deep learning over Stochastic Gradient Descent (SGD) at no additional cost, and can be used as a drop-in replacement for any other optimizer in PyTorch. SWA has a wide range of applications and feat原创 2020-09-11 20:56:00 · 2240 阅读 · 1 评论 -
通俗理解ROC曲线(Receiver Operating Characteristic Curve)
ROC曲线ROC曲线,受试者操作特征曲线。ROC曲线横轴为假阳性率(False Positive Rate,FPR)FPR=FPN=FPFP+TNFPR=\frac{FP}{N}=\frac{FP}{FP+TN}FPR=NFP=FP+TNFPROC曲线纵轴为真阳性率(True Positive Rate,TPR)TPR=TPP=TPFN+TPTPR=\frac{TP}{P}=\frac{TP}{FN+TP}TPR=PTP=FN+TPTP理想目标:TPR=1,FPR=0,即图中(0,1)原创 2020-08-20 13:45:10 · 5272 阅读 · 0 评论 -
GBDT(梯度提升决策树)应用图解
要理解 GBDT,首先就要理解这个 Boosting。Boosting 是一族可将弱学习器提升为强学习器的算法,属于集成学习(ensemble learning)的范畴。Boosting 方法基于这样一种思想:对于一个复杂任务来说,将多个专家的判断进行适当的综合所得出的判断,要比其中任何一个专家单独的判断要好。基于梯度提升算法的学习器叫做 GBM(Gradient Boosting Machine)。理论上,GBM 可以选择各种不同的学习算法作为基学习器。GBDT 实际上是 GBM 的一种情况。为什么原创 2020-09-11 21:54:55 · 1035 阅读 · 0 评论 -
SVM与LR(Logistic Regression)
LR(Logistic Regression)虽然是回归模型,但却是经典的分类方法。对于二分类问题SVM,输出样本是正类还是负类;LR,输出样本是正类的概率。原创 2020-09-11 21:37:05 · 152 阅读 · 0 评论 -
从等式约束优化问题到不等式约束优化问题--从条件极值的拉格朗日乘数法说起
等式约束优化问题这是一个等式约束优化问题:构造拉格朗日函数(拉格朗日乘数法求条件极值):联立方程组:得到的解即为可能的极值点。可以联想到:等式约束下的Lagrange乘数法引入了lll个Lagrange乘子,或许我们可以把λk\lambda_kλk也看作优化变量(xix_ixi就叫做优化变量). 相当于将优化变量个数增加到(n+l)(n+l)(n+l)个,xix_ixi与λk\lambda_kλk一视同仁,均为优化变量,均对它们求偏导.不等式约束优化问题转化化归: 不等式约原创 2020-09-11 20:28:16 · 1723 阅读 · 0 评论 -
SVM优化方法--SMO优化算法(Sequential minimal optimization)
Sequential Minimal Optimization: A Fast Algorithm for Training Support Vector MachinesSMO算法由Microsoft Research的John C. Platt在1998年提出,并成为最快的二次规划优化算法,特别针对线性SVM和数据稀疏时性能更优。This paper proposes a new algorithm for training support vector machines: Sequential M原创 2020-09-11 16:01:35 · 927 阅读 · 0 评论 -
RNN 正则化方法小结
不能用于RNN的正则化方法包括Dropout, BN[1] Dropout, the most successful technique for regularizing neural networks, does not work well with RNNs and LSTMs.Existing regularization methods give relatively small improvements for RNNs Graves (2013). In this work, we show原创 2020-09-10 18:09:21 · 774 阅读 · 0 评论 -
SVM损失函数--Hinge loss 简介
在机器学习中,hinge loss是一种损失函数,它通常用于"maximum-margin"的分类任务中,如支持向量机。数学表达式为:其中 y^\hat{y}y^ 表示预测输出,通常都是软结果(就是说输出不是0,1这种,可能是0.87。), y 表示正确的类别(标签)。如果 yy^<1y\hat{y}<1yy^<1 ,则损失为: 1−yy^1-y\hat{y}1−yy^如果 yy^≥1y\hat{y}\ge1yy^≥1 ,则损失为:0SVM的损失函数就是Hinge l原创 2020-09-10 12:10:12 · 2679 阅读 · 0 评论 -
机器驱动的探索设计
在构建的过程中,首先设计主要的网络原型,原型基于 YOLO 网络家族中的单阶段目标检测网络架构。然后,将原型和机器驱动的设计探索策略结合,创建一个紧凑的网络。这个网络是高度定制化的,在模块级别上有着宏架构(macro-architecture)和微架构(micro-architecture),可用于嵌入式目标检测任务。原型主体网络设计首先是设计主要的网络原型,研究者创建了一个原始的架构(表示为ϕ),用于引导机器进行后续的探索设计。具体而言,研究者设计的网络基于 YOLO 家族中的单阶段目标检测架构。机原创 2020-08-13 11:48:32 · 194 阅读 · 0 评论 -
图解联邦学习(Federated Learning)
联邦学习与隐私保护原创 2020-07-09 22:09:19 · 2942 阅读 · 1 评论 -
小样本学习(Few-shot Learning)与元学习(meta-learning)初步
元学习初步1998年,Thrun和Pratt指出,对于一个指定的任务,一个算法“如果随着经验的增长,在该任务上的表现得到改进”,则认为该算法能够学习。与此同时,对于一族待解决的多个任务,一个算法“如果随着经验和任务数量的增长,在每个任务上的表现得到改进”,则认为该算法能够学习如何学习,我们将后者称为元学习算法。它不学习如何解决一个特定的问题,但可以成功学习如何解决多个任务。每当它学会解决一个新...原创 2020-02-13 21:44:00 · 3135 阅读 · 0 评论