好久没有更新网站了,一个原因是最近乱七八糟的事情真挺多的,另一个是因为vps ip被gfw给屏蔽了。由于这种情况太多,他们已经不给换ip了,供货商劝我重装个os,说几天内就有可能解封,我照做之后却没有效果。于是也乘着合约即将到期换了一个平台,前几天才把环境配置好。

最近的工作主要是跟公司的算法平台设计相关,也过了一把“架构师”的瘾。虽然在学校也爱写写代码,但很少做面向较大用户群体的复杂服务系统。通过设计这个平台,接触了很多当红的工具,真的是有种 “洞中方一日,世上已千年”的感觉。

首先解决的问题是分布式异步调用,由于我们的算法大部分是python写的,最终找到了Celery这个框架,自然也就找到了它的可选基石之一rabbitmq。Rabbitmq是一种消息队列,通过这个组件可以很方便地在多个终端间交换消息。在我们的问题中,它可以用来分发计算任务,每个worker都监听这个队列,当自己空闲的时候就会从队列中消费一个任务


终于有机会玩GPU了!但在Ubuntu下搞定CUDA和CuDNN还是挺麻烦的,于是将过程记录了下来,大家可以少踩一点坑。

1 安装显卡驱动

驱动安装部分参考了这个网页

1.1 版本确定

首先你应该查一下你的显卡可以装什么版本的驱动。可以在这个网页查到。里面会有类似这样的信息


在vpn被禁的今天,自己用shadowsocks搭一个代理便成了科学上网的最佳方式。假设你已经买了一个vps(如果还没买,这里推荐著名的搬瓦工,最低配一年只需19.9美元,购买链接),只需简单几步就可以完成配置。

安装服务器端shadowsocks

最简单的方式是通过pip安装,使用这种方式你首先需要安装pip。打开终端,键入以下两行命令

sudo apt-get update
sudo apt-get install python-pip

有了pip就可以一句话安装shadowsocks了,在命令行中键入

sudo pip install shadowsocks

为了支持某些加密方式,还需要安装一个


ARMA是目前最常用的分析平稳时间序列的方法。可以分为AR(自相关)模型,MA(移动平均模型,和ARMA(自回归移动平均)三种模型。

滞后算子

滞后算子是一个很重要的算子,通常用B表示,定义就是取序列上个时刻的值。即

$$ By_t=y_{t-1} $$

它有一些运算,例如数乘、加减法、幂法等,符合交换律和结合律。用这个算子可以很方便地表示差分,例如k步差分可表示为 $$ x_t-x_{t-k}=(1-B^k)x_t $$

p阶差分则可以表示为 $$ (1-B)^px_t=\sum_{i=0}^p(-1)^iC_n^ix_{t-i} $$



时间序列(或称动态数列)是指将同一统计指标的数值按其发生的时间先后顺序排列而成的数列。时间序列分析的主要目的是根据已有的历史数据对未来进行预测。

建模

把时间序列建模为随机变量序列,即