Delta

机器学习中的矩阵向量求导(四) 矩阵向量求导链式法则

回眸只為那壹抹淺笑 提交于 2020-08-10 07:31:58
    在 机器学习中的矩阵向量求导(三) 矩阵向量求导之微分法 中,我们讨论了使用微分法来求解矩阵向量求导的方法。但是很多时候,求导的自变量和因变量直接有复杂的多层链式求导的关系,此时微分法使用起来也有些麻烦。需要一些简洁的方法。     本文我们讨论矩阵向量求导链式法则,使用该法则很多时候可以帮我们快速求出导数结果。     本文的标量对向量的求导,标量对矩阵的求导使用分母布局, 向量对向量的求导使用分子布局。如果遇到其他资料求导结果不同,请先确认布局是否一样。 1. 向量对向量求导的链式法则     首先我们来看看向量对向量求导的链式法则。假设多个向量存在依赖关系,比如三个向量$\mathbf{x} \to \mathbf{y} \to \mathbf{z}$存在依赖关系,则我们有下面的链式求导法则:$$\frac{\partial \mathbf{z}}{\partial \mathbf{x}} = \frac{\partial \mathbf{z}}{\partial \mathbf{y}}\frac{\partial \mathbf{y}}{\partial \mathbf{x}}$$     该法则也可以推广到更多的向量依赖关系。但是要注意的是要求所有有依赖关系的变量都是向量,如果有一个$\mathbf{Y}$是矩阵,,比如是$\mathbf{x} \to

Cocos2d-x 学习笔记(11.3) JumpBy JumpTo

ぐ巨炮叔叔 提交于 2020-08-10 06:25:01
1. JumpBy JumpTo JumpBy,边跳边平移,不只做垂直向上的抛物动作,同时还在向终点平移。JumpTo是JumpBy的子类。 1.1 成员变量 create方法 JumpBy: Vec2 _startPosition; // startWithTarget getPosition设置 Vec2 _delta; // create 参数position设置 float _height; // create参数 int _jumps; // create参数 Vec2 _previousPos; // startWithTarget getPosition设置 JumpTo: Vec2 _startPosition; // startWithTarget getPosition设置 Vec2 _delta; // _endPosition减_startPosition float _height; // create参数 int _jumps; // create参数 Vec2 _previousPos; // startWithTarget getPosition设置 Vec2 _endPosition; // create 用参数position设置 JumpBy::create(float duration, const Vec2& position, float

Git-永久删除某个重要文件或文件夹 (包括历史记录) 强制

六月ゝ 毕业季﹏ 提交于 2020-08-10 02:41:01
有些时候不小心上传了一些文件(例如密码), 或者不想上传的文件(没及时或忘了加到.gitignore里的), 而且上传的文件又特别大的时候, 这将导致别人clone你的代码或下载zip包的时候也必须更新或下载这些无用的文件, 因此, 我们需要一个方法, 永久的删除这些文件(包括该文件的历史记录). 首先, 可以参考 github 的帮助: https://help.github.com/articles/remove-sensitive-data 步骤一: 从你的资料库中清除文件 以Windows下为例(Linux类似), 打开项目的Git Bash,使用命令: $ git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch path-to-your-remove-file' --prune-empty --tag-name-filter cat -- --all 其中, path-to-your-remove-file 就是你要删除的文件的相对路径(相对于git仓库的跟目录), 替换成你要删除的文件即可. 注意一点,这里的文件或文件夹,都不能以 '/' 开头,否则文件或文件夹会被认为是从 git 的安装目录开始。 如果你要删除的目标不是文件,而是文件夹,那么请在 `git rm -

MATLAB实例:多元函数拟合(线性与非线性)

China☆狼群 提交于 2020-08-10 00:43:41
MATLAB实例:多元函数拟合(线性与非线性) 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 更多请看: 随笔分类 - MATLAB作图 之前写过一篇博文,是 关于一元非线性曲线拟合,自定义曲线函数 。 现在用 最小二乘法 拟合多元函数,实现线性拟合与非线性拟合,其中非线性拟合要求自定义拟合函数。 下面给出三种拟合方式,第一种是多元线性拟合(回归),第二三种是多元非线性拟合,实际中第二三种方法是一个意思,任选一种即可,推荐第二种拟合方法。 1. MATLAB程序 fit_nonlinear_data.m function [beta, r]=fit_nonlinear_data(X, Y, choose) % Input: X 自变量数据(N, D), Y 因变量(N, 1),choose 1-regress, 2-nlinfit 3-lsqcurvefit if choose==1 X1=[ones(length(X(:, 1)), 1), X]; [beta, bint, r, rint, states]=regress(Y, X1) % 多元线性回归 % y=beta(1)+beta(2)*x1+beta(3)*x2+beta(4)*x3+... % beta—系数估计 % bint—系数估计的上下置信界 % r—残差 %

[WPF]使用附加属性处理 ScrollViewer 的滚动轮劫持问题

邮差的信 提交于 2020-08-09 12:43:37
之前写过一篇博客 关于 ScrollViewer 和滚动轮劫持(scroll-wheel-hijack) ,里面介绍了 ScrollViewer 的滚动轮劫持问题,以及如果解决。当时的做法是继承 ScrollViewer 并重写 OnMouseWheel,全部代码如下: public class ExtendedScrollViewer : ScrollViewer { protected override void OnMouseWheel(MouseWheelEventArgs e) { if (ViewportHeight + VerticalOffset >= ExtentHeight && e.Delta <= 0) return; if (VerticalOffset == 0 && e.Delta >= 0) return; base.OnMouseWheel(e); } } 最近有人提到能不能使用附加属性处理,所以我就试试。暂时发现简单地用附加属性处理,除非查找 VisualTree 上的父节点 ScrollView 并调用它的 LineUp 和 LineDown ,全部代码如下: public class ScrollViewerService { /// <summary> /// 从指定元素获取 CanScrollOuter 依赖项属性的值。 /// <

OFDM通信系统的MATLAB仿真(1)

空扰寡人 提交于 2020-08-09 06:47:51
由于是第一篇博客,想先说点废话,其实自己早就想把学到的一些东西总结成文章随笔之类的供自己复习时查看的了。但是一是觉得自己学的的不够深入,总结也写不出什么很深刻的东西;二是觉得网上也有海量的资料了,需要时查一查根本不需要自己写。但是恰恰也是网上的资料过于庞大,良莠不齐,导致每次都如海水一样的知识涌入脑中,最后也如走马观花一般了了看下,知识吸收率低的惊人。现在也准备改变一下观念,尽量把自己学过的东西归纳整理,以随笔的形式发出来,可能有些地方我还不能理解作者的做法,我也会记录出来,懂的地方解释清楚,不懂的地方也标记清楚,同时在之后的不断学习和总结中补上之前挖的坑,强迫症写文章真的是太难了~哭。 不过也这样安慰自己吧,将所学的进行输出整理其实也是很重要的一步,看似时间浪费了好多,不过读书人花的时间怎么能叫浪费呢!整理出来自己看着不爽吗。如果能同时帮助到其他人的话,那就太好了!希望自己能坚持下去。 关于OFDM系统我目前参考的是《MIMO-OFDM无线通信技术及MATLAB实现》这本书,我看到网上用这本书做参考的人还挺多的,这里将将作者实现OFDM系统的思路及其代码重新理顺一遍。因为我理解的也不是很深入,有不对的地方希望大佬能帮忙指正。如果是没怎么接触过OFDM的萌新,这篇文章可以帮助你对OFDM地仿真有个粗浅的了解。 首先画一个我个人认为特别好理解的OFDM符号变化图来帮助理解代码

Linux FQ 队列实现原理浅析

╄→гoц情女王★ 提交于 2020-08-08 21:36:09
2018/04/21 又到了周六早上,依然是后半夜属于自己的时间。起床,读了几篇古文,准备梳理一下Linux FQ和RPS方面的原理,正好昨天也有人问到我。本文先从FQ开始。 enqueue入队过程 上一张图: 详细描述了fq队列的入队过程,其中着重理解几个数据结构: sock作为键的红黑树:用于关联skb和flow next_time作为键的红黑树:用于保存未来被调度的flow,并决定timer唤醒时间以调度skb new_list:用于保存新创建尚未发包的flow链表,用于优先调度触发第一包 old_list:用于保存正在被调度的flow。 dequeue调度过程 dequeue操作要比enqueue操作更复杂一些,先看一张图: 这是一个相对动态的过程,由Linux的hrtimer来驱动,其超时时间则取决于 每一个flow的最近要发送的skb的时间 ,诸多flow中的时间取最小,这明显倾向于使用红黑树来实现,我们来看一下dequeue的核心代码: static struct sk_buff * fq_dequeue ( struct Qdisc * sch ) { . . . /* 将红黑树上已经到期的flow从红黑树上摘除,加入old_list准备开始被调度 */ fq_check_throttled ( q , now ) ; begin : /*

通俗易懂 | 拉格朗日乘子法

谁都会走 提交于 2020-08-08 18:34:30
在SVM中,将约束问题转化成非约束问题采用到了拉格朗日乘子法。这个文章就讲一下拉格朗日乘子法与KKT约束是怎么回事。本人不是数学科班出身,但是也只能硬着头皮讲一讲了。 从零理解 现在我们要解决这样一个问题: \(x^2y=3\) 这个函数距离原点最近的距离是多少。 先画出函数图像: 然后想求出最短距离: 这里的思路就是,做一个以原点为中心的圆形: 不断扩大圆形的半径,直到圆与蓝色的曲线相切: 现在。第一次与 \(x^2y=3\) 相交的点就是距离原点最近的那个点: 这个,圆形与曲线相切,且切线既是圆形的切线,也是曲线的相切。 这时候,这个切线的垂线其实也就是我们所说的 梯度 ,也叫做 等高线的法线 ,看下面两个图可能会好理解一些: 那么这个 梯度 怎么计算呢?先看圆形 \(f(x,y)=x^2+y^2\) 的梯度: 再看曲线的梯度计算 \(g(x,y)=x^2y\) 的梯度: 在相切的时候,两者的梯度方向都在同一条直线上,可以称之为, 成比例 ,这里用比例系数 \(\lambda\) 来表示: 所以我们汇总一下所有的已知信息,得到下面的方程组: 可以求解得到: 这个就是拉格朗日乘子法的直观理解。 抽象成数学的形式 我们要解决的问题: \(\min {x^2+y^2}\) \(s.t. x^2y=3\) 我们会将约束问题通过拉格朗日乘子法转换成非约束问题: \(\min F(x,y)

地图开发中WebGL着色器32位浮点数精度损失问题

若如初见. 提交于 2020-08-08 16:48:42
以下内容转载自木的树的文章《WebGL着色器32位浮点数精度损失问题》 作者:木的树 链接: https://www.cnblogs.com/dojo-lzz/p/11250327.html 来源:博客园 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 前言 Javascript API GL 是基于WebGL技术打造的3D版地图API,3D化的视野更为自由,交互更加流畅。 提供丰富的功能接口,包括点、线、面绘制,自定义图层、个性化样式及绘图、测距工具等,使开发者更加容易的实现产品构思。 充分发挥GPU的并行计算能力,同时结合WebWorker多线程技术,大幅度提升了大数据量的渲染性能。最高支持百万级点、线、面绘制,同时可以保持高帧率运行。 同步推出基于Javascript API GL的 位置数据可视化API库 ,欢迎体验。 问题 WebGL浮点数精度最大的问题是就是因为js是64位精度的,js往着色器里面穿的时候只能是32位浮点数,有效数是8位,精度丢失比较严重。 分析 在基础底图中,所有的要素拿到的都是瓦片里面的相对坐标,坐标范围在0-256之间。在每次渲染时都会重新实时计算瓦片相对中心点的一个偏移来计算瓦片自己的矩阵,这种情况下精度损失比较小,而且每个zoom级别都会加载新的瓦片,不会出现精度损失过大问题。 但是对于一些覆盖物,比如marker

论隐马尔可夫模型在谈恋爱中的重要性

血红的双手。 提交于 2020-08-08 07:04:16
  学习了隐马尔科夫模型至今也有一些时日了,前一阵子由于会错了女朋友的意思,搞得心里有些芥蒂,虽然没有掀起什么波澜,但这却引起了我对人生的思考: 如何通过这件事让我们更好地理解隐马尔可夫模型呢?   首先我们来讲一个故事:   故事的主人公是我们的朋友小丁,小丁同学最近交了一个女朋友芳名李建钢,两个人平日里感情还挺不错。这天下午,小丁和李建钢在公园散步,路上 遇到了小丁的前女友 ,赵铁柱,两人一见面,竟热情的聊起来。   李建钢在一旁心中满是尴尬,但还是 礼貌的小丁的前女友说了声“你好”   小丁见状,心中不禁为女朋友的“大度 ”点了个赞,转过头来, 邀请赵铁柱和他们一起出游。   李建钢心中不乐意了,但是一时找不到什么理由拒绝,在大庭广众之下也不好发脾气,从牙缝中挤出一句“ 多一个人也热闹点”。   小丁这时候还没有意识到事情的严重性,心里感激涕零,暗暗赞赏自己现女友的与众不同。三个人就这么度过了一个“愉快”的下午。   晚上各自回到家之后,李建钢 越想越气 ,觉得自己没有受到起码的尊重,最后觉得这样的男友扔了也罢,反手一条微信,发了一句“ 你是个好人 ”,然后就将小丁删除、拉黑了。   小丁回到家里,还在回味今天的偶遇,也不禁啧啧赞叹李建钢表现的“大度”,这时手机收到李建钢的消息。   “我是个好人?交往了这段时间,这个女人总算明白我和那些渣男不一样了!”小丁乐开了花,关上灯