SVM推导

实际上我们需要训练一个线性分类器(超平面):$$f(x)=sgn(w^{T}x+b)$$,也就是说当$$ w^{T}x+b \\geq 0 $$的时候输出1,否则输出-1。$$sgn()$$表示取符号。而$$g(x) =w^{T}x + b=0$$就是我们要寻找的分类超平面。
令$$H_{1}: w^{T}x + b= 1 和 H_{2}: y = w^{T}x + b=-1$$
好了,这时候我们就需要两个条件:(1)没有任何样本在这两个平面之间;(2)这两个平面的距离需要最大。(对任何的H1和H2,我们都可以归一化系数向量w,这样就可以得到H1和H2表达式的右边分别是+1和-1了)。
对于条件(2),例如$$ax+by=c_{1}$$和$$ax+by=c_{2}$$,那他们的距离是$$
\\frac{|c2-c1|}{\\sqrt(x2+y2)}$$
而用w来表示就是$$H_{1}: w_{1}x_{1}+w_{2}x_{2}=+1$$和$$H_{2}:w_{1}x_{1}+w_{2}x_{2}=-1$$,那$$H_{1}$$和$$H_{2}$$的距离就是$$
\\frac{|1+1|} {\\sqrt(w^{2}_{1}+w^{2}_{2})}=\\frac{2}{||w||}$$。
也就是说,我们需要最大化$$margin=\\frac{2}{||w||}$$,为了最大化这个距离,我们应该最小化||w||。同时我们还需要满足条件(1),也就是同时要满足没有数据点分布在H1和H2之间。
– 那么对于任何一个正样本$$y_{a}$$,保证$$y_{a}=w^{T}x+b \\geq 1$$
– 那么对于任何一个负样本$$y_{b}$$,保证$$y_{b}=w^{T}x+b \\leq -1$$
– 合并成一个式子后变成$$y_{i}(w^{T}x+b) \\geq 1$$

下面我们将这个问题转化为一个二次优化问题(Quadratic Programming)。
$$min\\frac{1}{2}||w||^{2}$$
$$s.t. y_{i}(w^{T}x_{i}+b) \\geq 1 , \\forall x_{i}$$
两个式子分别表示了,最大化支持向量与超平面的距离,在支持平面+1,-1区域内没有样本点。

统计学习的笔记

方差

$$D(X)=E(X^{2})-E^{2}(X)$$

伯努利分布(Bernoull)

常见的0-1分布,数学表示为:
$$p^{x}(1-p)^{1-x}$$
$$E(X)=p$$
$$D(X)=p-p^{2}$$

二项分布(Binomia)

二项分布是这样一种分布,假设进行n次独立实验,每次实验“成功”的概率为p,失败的概率为1−p,所有成功的次数X就是一个参数为n和p的二项随机变量.数学公式定义为:
$$p(x)=(_{2}^{2})$$

MongoDB使用笔记

属性操作

添加一个属性

  1. 第一个参数表示选中某些文档,这里为 {} 表示选中当前 groups 集合中的所有文档。

  2. 第二个参数为具体的更新操作,$set 表示添加属性。

  3. 第三个参数为额外选项,{ multi: true } 表示更新所有满足要求的文档,默认只会更新第一个。

删除一个属性

删除多个属性

文档操作

插入文档

删除一个文档

更新文档

数据库用户登录

集合操作

显示所有集合

删除集合

软件开发备注

生命周期

名称 描述
ionViewDidLoad 当页面加载的时候触发,仅在页面创建的时候触发一次,如果被缓存了,那么下次再打开这个页面则不会触发
ionViewWillEnter 顾名思义,当将要进入页面时触发
ionViewDidEnter 当进入页面时触发
ionViewWillLeave 当将要从页面离开时触发
ionViewDidLeave 离开页面时触发
ionViewWillUnload 当页面将要销毁同时页面上元素移除时触发

后台维护

显示所有正在运行的进程

停止某个进程

查看系统版本

Centos7安装fish插件

deeplearning.ai学习笔记

逻辑回归

$a^{1}$
$$y’=sigmod(W^{T}T+b)$$
$$sigmoid(z)=\frac{1}{1+e^{-z}}$$
$$y’=P(y=1|x)$$

如果是二元分类的输出层,用$$sigmoid(z)=\frac{1}{1+e^{-z}}$$,在其他地方用relu或者是tanh,$$tanh(z)=\frac{e^{z}-e^{-z}}{e^{z}+e^{-z}}$$,通常建议使用reluleaky relu,$$leaky relu(z)=max(0.01z,z)$$

sigmoid函数求导
$$f(z)=\frac{-(-e^{-z})}{(1+e^{-z})^{2}}$$
$$=\frac{e^{-z}}{(1+e^{-z})^{2}}$$
$$=\frac{1+e^{-z}-1}{(1+e^{-z})^{2}}$$
$$=\frac{1}{1+e^{-z}}-\frac{1}{(1+e^{-z})^{2}}$$
$$=\frac{1}{1+e^{-z}}(1-\frac{1}{1+e^{-z}})$$
$$=f(z)(1-f(z))$$

tanh函数求导 $$1-tanh(z)^{2}$$

卷积神经网络

  • 在卷积神经网络中,底层的过滤器(fliter)是用来处理边缘特征,可以很好地检索出图像的边缘。同时筛选器中的参数可以让神经网络自己训练出来,可以检测多种方向的边缘。
  • 过滤器的尺寸一般都是奇数,我的理解是,这样可以确定一个中心位置,便于接下来的计算。
  • 当过滤器的大小为1* 1时,作用相当于全连接,目的就是调整通道的数量。
  • 权值共享(parameter sharing)可以大量的削减参数量

循环神经网络

  • 在Beam Search中,对于每次生成的结果,并不使用贪心的做法,每次选择可能性最大单词作为生成的结果,二是设置一个b(beam width),每次保留前b个结果,然后在下一次生成的时候,根据加权后的概率P(y^{2}|y^{1},X)生成b*n个候选结果,以此类推选择最大的b个结果,这样的话,计算的整体复杂度会变成b倍,但是生成的结果会更好。