达美航空

梯度提升与梯度下降

随声附和 提交于 2020-01-15 00:00:55
梯度提升与梯度下降 梯度是什么 梯度是谁的 梯度下降 梯度提升 总结 梯度是什么 “梯度提升”与“梯度下降”中的“梯度”是什么?梯度是损失函数对需要求解的模型参数的导数。梯度方向是参数导数中绝对值最大的方向,因此梯度方向有两个,一个是梯度最大方向,另一个是梯度最小方向。 梯度是谁的 “梯度”是目标函数在当前点的梯度(不是参数的梯度),因此有了目标函数、样本点,才会有梯度。 梯度下降 在参数空间中,梯度下降是指目标函数在当前点的取值下降(最小化目标函数),参数自身沿着负梯度的方向下降。因此梯度下降,是目标函数对最优参数的搜索,其变量是参数。 梯度下降通常用来求解这种无约束最优化问题,它是一种迭代方法:初选取参数初值(还包括算法终止距离参数和学习率参数),不断迭代,更新参数的值,进行损失函数的最小化。 为什么梯度的负方向是函数局部下降最快的方向?下面开始证明。 假设迭代公式为: θ t = θ t − 1 + Δ θ \theta_{t}=\theta_{t-1}+\Delta \theta θ t ​ = θ t − 1 ​ + Δ θ ,将 L ( θ t ) L\left(\theta_{t}\right) L ( θ t ​ ) 在 θ t − 1 \theta_{t-1} θ t − 1 ​ 处进行泰勒展开: L ( θ t ) = L ( θ t − 1 + Δ θ ) ≈

笔记:时间序列相关问题

試著忘記壹切 提交于 2020-01-13 22:04:13
平稳性 平稳性定义 时间序列 X t X_t X t ​ 来自于一个概率分布,且满足: 1、 均值为与时间无关的常数; 2、方差是与时间无关的常数; 3、协方差至于时间间隔有关,与时间无关; 则称该随机时间序列是 平稳的 ,该随机过程是一个 平稳随机过程 。 白噪声 X t = μ t , μ ~ N ( 0 , σ 2 ) X_t=\mu_t,\qquad \mu ~N(0,\sigma^2) X t ​ = μ t ​ , μ ~ N ( 0 , σ 2 ) 这个序列称为 白噪声 ,由于具有相同的均值与方差,且协方差为零,满足以上定义,是平稳的。 随机游走 X t = X t − 1 + μ t X_t=X_{t-1}+\mu_t X t ​ = X t − 1 ​ + μ t ​ 该序列有相同的均值。但是方差呢?我们递推可得: X t = X 0 + μ 1 + . . . + μ t X_t=X_0+\mu_1+...+\mu_t X t ​ = X 0 ​ + μ 1 ​ + . . . + μ t ​ 则Var ( X t ) = t σ 2 (X_t)=t\sigma^2 ( X t ​ ) = t σ 2 ,故非平稳。 但是可以取差分得到平稳序列: Δ X t = X t − X t − 1 = μ t \Delta X_t=X_t-X_{t-1}=\mu_t Δ

LDA-math-认识Beta/Dirichlet分布

前提是你 提交于 2020-01-13 10:02:10
http://cos.name/2013/01/lda-math-beta-dirichlet/#more-6953 2. 认识Beta/Dirichlet分布 2.1 魔鬼的游戏—认识Beta 分布 统计学就是猜测上帝的游戏,当然我们不总是有机会猜测上帝,运气不好的时候就得揣度魔鬼的心思。有一天你被魔鬼撒旦抓走了,撒旦说:“你们人类很聪明,而我是很仁慈的,和你玩一个游戏,赢了就可以走,否则把灵魂出卖给我。游戏的规则很简单,我有一个魔盒,上面有一个按钮,你每按一下按钮,就均匀的输出一个[0,1]之间的随机数,我现在按10下,我手上有10个数,你猜第7大的数是什么,偏离不超过0.01就算对。”你应该怎么猜呢? 从数学的角度抽象一下,上面这个游戏其实是在说随机变量 X 1 , X 2 , ⋯ , X n ∼ i i d U n i f o r m ( 0 , 1 ) ,把这 n 个随机变量排序后得到顺序统计量 X ( 1 ) , X ( 2 ) , ⋯ , X ( n ) , 然后问 X ( k ) 的分布是什么。 对于不喜欢数学的同学而言,估计每个概率分布都是一个恶魔,那在概率统计学中,均匀分布应该算得上是潘多拉魔盒,几乎所有重要的概率分布都可以从均匀分布 U n i f o r m ( 0 , 1 ) 中生成出来;尤其是在统计模拟中,所有统计分布的随机样本都是通过均匀分布产生的。

CentOS查看CPU、内存、网络流量和磁盘 I/O

偶尔善良 提交于 2020-01-13 07:50:16
安装 yum install -y sysstat sar -d 1 1 rrqm/s: 每秒进行 merge 的读操作数目。即 delta(rmerge)/s wrqm/s: 每秒进行 merge 的写操作数目。即 delta(wmerge)/s r/s: 每秒完成的读 I/O 设备次数。即 delta(rio)/s w/s: 每秒完成的写 I/O 设备次数。即 delta(wio)/s rsec/s: 每秒读扇区数。即 delta(rsect)/s wsec/s: 每秒写扇区数。即 delta(wsect)/s rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。(需要计算) wkB/s: 每秒写K字节数。是 wsect/s 的一半。(需要计算) avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。delta(rsect+wsect)/delta(rio+wio) avgqu-sz: 平均I/O队列长度。即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)。 await: 平均每次设备I/O操作的等待时间 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio) svctm: 平均每次设备I/O操作的服务时间 (毫秒)。即 delta(use)/delta(rio+wio) %util:

pandas 时间函数

你离开我真会死。 提交于 2020-01-13 04:41:59
1、在python中,日期类型date和日期时间类型dateTime是不能比较的。 2、字符串转时间格式(要相对应) import datetime str_p = '2019-01-30 15:29:08' dateTime_p = datetime.datetime.strptime(str_p,'%Y-%m-%d %H:%M:%S') 3、时间相减 time_now=datetime.datetime.now() time_distance_year=(time_now-datetime.datetime.strptime(time,'%Y-%m-%d')).days/365 4、转为时间格式 pd.to_datetime() 5、time和datetime时间转换 尽管Unix时间戳有点反人类,但是一物降一物,datetime就有办法收拾他,那就是一个属性(家法伺候)——fromtimestamp() import time import datetime t = time.time() print(t) dt = datetime.datetime.fromtimestamp(t) print(dt) 6、timedelta模块 datetime这个模块可以说是非常贤惠了,不仅能表示具体的时刻,还能够表示一段时间,这就要提到她的另外一个属性——timedelta

CentOS查看CPU、内存、网络流量和磁盘 I/O【详细】

佐手、 提交于 2020-01-13 01:13:09
安装 yum install -y sysstat sar -d 1 1 rrqm/s: 每秒进行 merge 的读操作数目。即 delta(rmerge)/s wrqm/s: 每秒进行 merge 的写操作数目。即 delta(wmerge)/s r/s: 每秒完成的读 I/O 设备次数。即 delta(rio)/s w/s: 每秒完成的写 I/O 设备次数。即 delta(wio)/s rsec/s: 每秒读扇区数。即 delta(rsect)/s wsec/s: 每秒写扇区数。即 delta(wsect)/s rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。(需要计算) wkB/s: 每秒写K字节数。是 wsect/s 的一半。(需要计算) avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。delta(rsect+wsect)/delta(rio+wio) avgqu-sz: 平均I/O队列长度。即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)。 await: 平均每次设备I/O操作的等待时间 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio) svctm: 平均每次设备I/O操作的服务时间 (毫秒)。即 delta(use)/delta(rio+wio) %util:

CentOS查看CPU、内存、网络流量和磁盘 I/O

我是研究僧i 提交于 2020-01-12 12:22:35
安装 yum install -y sysstat sar -d 1 1 rrqm/s: 每秒进行 merge 的读操作数目。即 delta(rmerge)/s wrqm/s: 每秒进行 merge 的写操作数目。即 delta(wmerge)/s r/s: 每秒完成的读 I/O 设备次数。即 delta(rio)/s w/s: 每秒完成的写 I/O 设备次数。即 delta(wio)/s rsec/s: 每秒读扇区数。即 delta(rsect)/s wsec/s: 每秒写扇区数。即 delta(wsect)/s rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。(需要计算) wkB/s: 每秒写K字节数。是 wsect/s 的一半。(需要计算) avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。delta(rsect+wsect)/delta(rio+wio) avgqu-sz: 平均I/O队列长度。即 delta(aveq)/s/1000 (因为aveq的单位为毫秒)。 await: 平均每次设备I/O操作的等待时间 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio) svctm: 平均每次设备I/O操作的服务时间 (毫秒)。即 delta(use)/delta(rio+wio) %util:

iostat 命令

天涯浪子 提交于 2020-01-12 02:42:21
iostat -x 1 10   Linux 2.6.18-92.el5xen 02/03/2009   avg-cpu: %user %nice %system %iowait %steal %idle   1.10 0.00 4.82 39.54 0.07 54.46   Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util   sda 0.00 3.50 0.40 2.50 5.60 48.00 18.48 0.00 0.97 0.97 0.28   sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00   sdc 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00   sdd 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00   sde 0.00 0.10 0.30 0.20 2.40 2.40 9.60 0.00 1.60 1.60 0.08   sdf 17.40 0.50 102.00 0.20 12095.20 5.60 118.40 0.70 6.81 2.09 21.36  

DSO 优化代码中的 Schur Complement

不想你离开。 提交于 2020-01-11 20:34:59
接上一篇博客《直接法光度误差导数推导》,DSO 代码中 CoarseInitializer::trackFrame 目的是优化两帧(ref frame 和 new frame)之间的相对状态和 ref frame 中所有点的逆深度。 在代码中出现了变量 Hsc 和变量 bsc ,其中的"sc"是指 Schur Complement。依据这个事实就能够确定整个优化过程的所有细节。 一下假设 ref frame 上需要优化逆深度的点共有 N 个。 首先构建 Gauss Newton 方程,需要优化的参数共有 N + 8 个。 \[J^TJ \delta x = - J^T r_{21}\] 其中 \(\delta x\) 是一个(N+8)x1的向量, \(J\) 是 Nx(N+8) 的矩阵,第 i 行表示 \(r_{21}^{(i)}\) 对 \(\delta x\) 的导数(求导得到的结果就是“横着”的), \(r_{21}\) 是 Nx1 的向量。 \[\begin{align}\delta x &= \begin{bmatrix} \delta \rho^{(1)} & \delta \rho^{(2)} & \dots & \delta \rho^{(N)} & \delta \xi_{21}^{(1)} & \delta \xi_{21}^{(2)} & \dots &

linux动态时钟探索

馋奶兔 提交于 2020-01-10 23:28:44
在早期的linux内核版本的时间概念都是由周期时钟提供的。虽然比较有效,但是,对于关注能耗电量的系统上,就不能满足长时间休眠的需求,因为周期系统要求必须在一定的频率下,周期性的处于活动状态。因此,linux提出了tickless system,即无时钟系统。其关键就是判定系统当前是否无事可做,若是则禁用时钟系统。判定系统当前无事可做的依据是:如果运行队列时没有活动进程,内核将选择idle进程来运行,而此时动态时钟发挥作用。 一、动态时钟使用的数据结构tick_sched 1 struct tick_sched { 2 struct hrtimer sched_timer;//用于实现时钟的定时器 3 unsigned long check_clocks; 4 enum tick_nohz_mode nohz_mode; 5 ktime_t idle_tick;//禁用周期时钟之前,上一个时钟信号到期时间。 6 int inidle; 7 int tick_stopped;//周期时钟是否已经停用,若停用,则置为1 8 unsigned long idle_jiffies;//存储周期时钟禁用时的jiffy值 9 unsigned long idle_calls;//内核试图停用周期时钟次数。 10 unsigned long idle_sleeps;//成功停用周期时钟次数。 11