entropy

机器学习之SVM(Hinge Loss+Kernel Trick)原理推导与解析

落爺英雄遲暮 提交于 2020-08-04 22:18:16
支持向量机(Support Vector Machine, SVM)是一类按监督学习方式对数据进行二元分类的广义线性分类器(generalized linear classifier),其决策边界是对学习样本求解的最大边距超平面。 SVM使用铰链损失函数(hinge loss)计算经验风险(empirical risk)并在求解系统中加入了正则化项以优化结构风险(structural risk),是一个具有稀疏性和稳健性的分类器。SVM可以通过核方法(kernel method)进行非线性分类,是常见的核学习(kernel learning)方法之一 。 因此, hinge loss+kernel trick就是Support Vector Machine。 本文借助了李宏毅机器学习笔记,主要是用通俗易懂的语言来推导出hinge loss和kernel trick。 目录 1.引入Hinge loss 1.ideal loss 2.Square loss 3.Sigmoid+Square loss 4.Sigmoid+Cross entropy 5. Hinge loss 2.线性SVM 1.Step1:定义Function 2. Step2:定义loss function。 3.线性SVM的另外一种表述 3.kernel function的引入 1. function set 2

学术分享丨机器人操作学习系列分享:模仿学习

拟墨画扇 提交于 2020-08-04 09:42:44
  随着学会的队伍不断发展壮大,分支机构的发展愈发完善,丰富多彩的分支活动与学术分享也频频呈现。疫情期间,CAAI认知系统与信息处理专委会积极倡导学会“疫情防控不放松,学习充电不间断”的理念,邀请年轻学者结合本专委会自身领域研究精选相关文献进行研究与再解读,与大家分享《机器人操作学习系列分享:模仿学习》。   人类从婴幼儿时期就学会模仿别人来获得许多新技能,这种行为被称为 模仿学习 。我们古代中国就有很多形容人们模仿学习中成语,有如“ 邯郸学步 ”、“ 画虎成狗 ”、“ 鹦鹉学语 ”等都是形容模仿不到位的情况,又如“ 惟妙惟肖 ”、“ 栩栩如生 ”、“ 有模有样 ”等模仿极佳的状态。因此,智能体如何通过模仿学习避免出现那些尴尬的状态,而达到完美的状态,也是亟待研究的课题。      目前模仿学习也成为许多研究领域的重要课题,包括心理学、神经科学、人工智能和机器人学。模仿学习是机器学习诸多领域的交叉点。它对应于一个复杂的优化问题,可以用不同的方式形式化,例如结构化输出预测问题或半监督学习问题。模仿学习还与强化学习、在线主动学习、多智能体学习、特征建构等有着密切的关系。      从机器学习的角度来看,模仿学习是一种解决控制和顺序决策问题的学习方法。在模仿学习社区内,机器人获得专家的示例数据主要包括运动示教、遥操作、动作捕捉,视觉实例等等。最近,相关研究领域可分为以下子领域:行为克隆

(原)faster rcnn的tensorflow代码的理解

て烟熏妆下的殇ゞ 提交于 2020-07-28 11:10:18
转载请注明出处: https://www.cnblogs.com/darkknightzh/p/10043864.html 参考网址: 论文: https://arxiv.org/abs/1506.01497 tf的第三方faster rcnn: https://github.com/endernewton/tf-faster-rcnn IOU: https://www.cnblogs.com/darkknightzh/p/9043395.html faster rcnn主要包括两部分:rpn网络和rcnn网络。rpn网络用于保留在图像内部的archors,同时得到这些archors是正样本还是负样本还是不关注。最终训练时通过nms保留最多2000个archors,测试时保留300个archors。另一方面,rpn网络会提供256个archors给rcnn网络,用于rcnn分类及回归坐标位置。 Network为基类,vgg16为派生类,重载了Network中的_image_to_head和_head_to_tail。 下面只针对vgg16进行分析。 faster rcnn网络总体结构如下图所示。 1. 训练阶段: SolverWrapper通过construct_graph创建网络、train_op等。 construct_graph通过Network的create

python编写softmax函数、交叉熵函数实例

一笑奈何 提交于 2020-07-28 06:09:01
python代码如下: import numpy as np # Write a function that takes as input a list of numbers, and returns # the list of values given by the softmax function. def softmax(L): pass expL = np.exp(L) sumExpL = sum(expL) result = [] for i in expL: result.append(i*1.0/sumExpL) return result python编写交叉熵公式: import numpy as np def cross_entropy(Y, P): Y = np.float_(Y) P = np.float_(P) return -np.sum(Y * np.log(P) + (1 - Y) * np.log(1 - P)) import numpy as np def cross_entropy(Y, P): Y = np.float_(Y) P = np.float_(P) return -np.sum(Y * np.log(P) + (1 - Y) * np.log(1 - P)) MSE: cross-entropy: 从上述的公式可以看出

[paper]IMPROVING ADVERSARIAL ROBUSTNESS REQUIRES REVISITING MISCLASSIFIED EXAMPLES

微笑、不失礼 提交于 2020-07-25 17:11:00
对抗训练是当前最有效的防御措施,经常被公式化为最小-最大优化问题。 where n is the number of training examples and l l l (·) is the classification loss, such as the commonly used cross-entropy (CE) loss.Recently, adversarial training with adversarial examplesgeneratedbyProjectedGradientDescent(PGD) 内部的最大化用来生成对抗样本,外部最小化用来训练鲁棒的DNN模型。 本文研究了对抗训练中正确分类和错误分类对最终鲁棒性的不同影响,并发现错误分类的样本确实会对鲁棒性产生较大的影响。 在错误分类上使用不同的最大化方法对最终鲁棒性的影响微乎其微,但不同的最小化方法影响却非常大。 基于上述发现,本文提出了一种新的防御算法:MART(Misclassification Aware adveRsarial Training )以及MART的一种半监督形式。 MART可以明确区分训练过程中分类错误和分类正确的样本。 半监督MART可以利用未标记的数据进一步提高鲁棒性。 本文的主要贡献: 研究了错误分类和正确分类的示例对对抗训练的最终鲁棒性的不同影响。

理解Pytorch中LSTM的输入输出参数含义

依然范特西╮ 提交于 2020-07-25 04:23:06
本文不会介绍LSTM的原理,具体可看如下两篇文章 Understanding LSTM Networks DeepLearning.ai学习笔记(五)序列模型 -- week1 循环序列模型 1、举个栗子 在介绍LSTM各种参数含义之前我们还是需要先用一个例子(参考 LSTM神经网络输入输出究竟是怎样的?Scofield的回答 )来理解LSTM。 Recurrent NNs,一般看的最多的图是这个: rnn但是这个图对初学者相当不太友好。个人认为,目前所有的关于描述RecurrentNNs的图都画得不好,不够明确,里面的细节丢失了。(事实上里面一个"A"仅仅表示了一层的变换,具体如下图所示。) 非常清楚,这是很多初学者不能理解RecurrentNNs的根本原因,即在于 Recurrent NNs是在time_step上的拓展 的这一特性。MLP好理解,CNN也好理解,但Recurrent NNs,就是无法搞清楚里面的拓扑结构,跟MLP联系不上。 先看看MLP,很好理解,就是一张网络清楚地显示了张量流向。 general MLP是这样的拓扑: mlp然后CNN也好理解,跟MLP无差若干,只是权重运算由 \(*\) 变为 \(\otimes\) 。CNN是这样的拓扑: 但RecurrentNNs的拓扑发生了一个很大的改动,即一个MLP会在time_step这个维度上进行延伸

Interpreting scipy.stats.entropy values

天涯浪子 提交于 2020-06-24 07:47:33
问题 I am trying to use scipy.stats.entropy to estimate the Kullback–Leibler (KL) divergence between two distributions. More specifically, I would like to use the KL as a metric to decide how consistent two distributions are. However, I cannot interpret the KL values. For ex: t1=numpy.random.normal(-2.5,0.1,1000) t2=numpy.random.normal(-2.5,0.1,1000) scipy.stats.entropy(t1,t2) 0.0015539217193737955 Then, t1=numpy.random.normal(-2.5,0.1,1000) t2=numpy.random.normal(2.5,0.1,1000) scipy.stats.entropy

海思HI35xx平台软件开发快速入门之H264解码实例学习

岁酱吖の 提交于 2020-05-08 19:38:32
ref :https://blog.csdn.net/wytzsjzly/article/details/82500277 前言 H264视频编码技术诞生于2003年,至今已有十余载,技术相当成熟,它的优势在于有高的视频的压缩率,利用帧间和帧内预测(Estimation)、变换(Transform)和反变换、量化(Quantization)和反量化、环路滤波(Loop Filter)、熵编码(Entropy Coding)等视频编码技术,可以实现高质量、低码率的视频流编码。H.264提供了网络抽象层NALU(Network Abstraction Layer)概念对编码出来的视频码流进一步格式封装,使得H.264的文件能容易地在不同网络上传输,以达到低带宽占用、低播放延时的目的。相信在未来几年H.264仍是视频编码的主流技术,尽管在2013年提出了H.265新一代视频编码技术,但是H265的压缩率仅仅提高40%,复杂程度却提升%50以上,这对硬件性能提出新的要求。本文讲述如何在海思HI35xx平台上实现H.264解码。 背景知识 先来弄清楚视频格式和视频编码的相互关系,视频格式可以理解为一个容器,它将编码器生成的多媒体内容(视频,音频,字幕,章节信息等)混合封装在一起的标准,这样就能很好处理视频、音频、字幕的播放同步问题,常见的视频格式有mp4、avi、flv、rmvb、mkv等等

强化学习(十三) 策略梯度(Policy Gradient)

风流意气都作罢 提交于 2020-05-02 07:41:52
    在前面讲到的DQN系列强化学习算法中,我们主要对价值函数进行了近似表示,基于价值来学习。这种Value Based强化学习方法在很多领域都得到比较好的应用,但是Value Based强化学习方法也有很多局限性,因此在另一些场景下我们需要其他的方法,比如本篇讨论的策略梯度(Policy Gradient),它是Policy Based强化学习方法,基于策略来学习。     本文参考了Sutton的强化学习书第13章和策略梯度的 论文 。 1. Value Based强化学习方法的不足     DQN系列强化学习算法主要的问题主要有三点。     第一点是对连续动作的处理能力不足。DQN之类的方法一般都是只处理离散动作,无法处理连续动作。虽然有NAF DQN之类的变通方法,但是并不优雅。比如我们之前提到的经典的冰球世界(PuckWorld) 强化学习问题,具体的动态demo见 这里 。环境由一个正方形区域构成代表着冰球场地,场地内大的圆代表着运动员个体,小圆代表着目标冰球。在这个正方形环境中,小圆会每隔一定的时间随机改变在场地的位置,而代表个体的大圆的任务就是尽可能快的接近冰球目标。大圆可以操作的行为是在水平和竖直共四个方向上施加一个时间乘时长的力,借此来改变大圆的速度。假如此时这个力的大小和方向是可以灵活选择的,那么使用普通的DQN之类的算法就不好做了

从梯度下降法、最大间隔法两种角度理解SVM

大憨熊 提交于 2020-04-30 01:44:35
一、机器学习算法的常见流程 一般的机器学习分类算法,我们可以通常从三个步骤得到,以SVM算法为例,这里规定正例的y为1,负例的y为-1 Step 1: Function Set(Model) Step 2: Loss function 理想情况下的loss function(ideal loss)是当g(x)和y不相等的情况下的样本相加,但是这种情况下的损失函数是不可微分的,所以无法用梯度下降法训练。 Step 3:Gradient descent 第三步就是用梯度下降法训练模型了,我们现在的目标是寻找一种适合SVM的loss function。 二、Hinge Loss 接下来我们来分析SVM采用哪种损失函数比较合适,此坐标系横坐标表示y*f(x),纵坐标表示loss。 首先分析Square loss的情况,从图像上可以看出y*f(x)的值越接近于1越好,但y*f(x)很大的时候,loss越大,显然不合理 sigmod+square loss的情况:函数曲线变化太平缓,梯度下降的performance比较差 Sigmod + cross entropy(逻辑回归采用的损失函数) hinge loss(SVM采用的损失函数) 假设此时的样本是正例,即yn为1。其实f(x)大于0就已经能正确分类了,但hinge loss里还是强调f(x)>1,图中penalty的部分就是margin