ML训练营笔记1

7月在线ML特训营-第三期-第1课时笔记

本课程中的知识点主要是微分学、梯度下降法、概率论基础、机器学习栗子等

  • 微分学
  • 梯度下降法
  • 概率论基础
  • 机器学习栗子

数学在机器学习中的应用

  1. 模型建立与选择:对工程问题进行抽象和量化
  2. 模型训练:参数的选择和调参与优化过程

微分学

微分学核心思想

微分学的核心思想是函数逼近:使用熟悉且简单的函数对复杂函数进行局部逼近。

实际中的demo

  • 人均GDP:使用常数函数来逼近收入函数
  • 平均速度:使用线性函数来逼近实际运行轨迹
  • 年化收益率:使用指数函数来逼近收益函数

常用作逼近的函数:

  1. 线性函数:函数的一阶导数
  2. 多项式函数:泰勒级数

极限论

  1. 微分学的基础是极限论。极限的表述为:当x—>a时,f(x)的极限是L,即:

\lim_ {x \to a}f(x)=L

  1. 一般把趋于零的极限称之为无穷小
  2. 两边夹定理:如果f(x)<g(x)<h(x)在a点出存在极限,那么:

lim_{x \to a}f(x) \leq lim_{x \to a}g(x)\leq lim_{x \to a}h(x)

  1. 重要的极限

    1. 三角函数
      lim_{x \to 0}{\frac{sin(x)}x}=1

    2. 自然对数底数
      e=\lim_{n \to \infty}(1+\frac{1}{n})^n

    3. 指数函数:
      lim_{x \to 0} {\frac{e^x-1}{x}}=1

  2. 一阶导数公式f^`(x)=lim_{\Delta}\to 0 {\frac{f(x+\Delta)-f(x)}{\Delta}}一般表示为dx=\Delta,那么
    f^`(x)=lim_{x}\to 0 {\frac{f(x+dx)-f(x)}{dx}}

  3. 二阶导数

    1. 导数的导数就是二阶导数
    2. 泰勒级数就是利用n阶导数对函数进行高阶逼近
  4. 泰勒展开

设函数f(x)在点{x_0}处的某邻域内具有n+1阶导数,则对该邻域内异于{{x}*{0}}的任意点x,在{{x}*{0}}x之间至少存在 一个\xi,使得:
f(x)=f({x_0})+{f}’({x_0})(x-{x_0})+\frac{1}{2!}f''({x_0}){{(x-{x_0})}^{2}}+\cdots+\frac{{{f}^{(n)}}({x_0})}{n!}{{(x-{x_0})}^{n}}+{R_n(x)}

其中
R_n(x)=\frac{{{f}^{(n+1)}}(\xi )}{(n+1)!}{{(x-{x_0})}^{n+1}}
称为f(x)在点x_0处的n泰勒余项

{x_0}=0,则n阶泰勒公式
f(x)=f(0)+{f}'(0)x+\frac{1}{2!}{f}''(0){{x}^{2}}+\cdots +\frac{{{f}^{(n)}}(0)}{n!}{{x}^{n}}+{R_n(x)}
其中
{R_n(x)}=\frac{{{f}^{(n+1)}}(\xi )}{(n+1)!}{{x}^{n+1}}
\xi在0与x之间.(1)式称为麦克劳林公式

  1. 常用5种函数在{{x}_{0}}=0处的泰勒公式

    • (1)

    {{{e}}^{x}}=1+x+\frac{1}{2!}{{x}^{2}}+\cdots +\frac{1}{n!}{{x}^{n}}+\frac{{{x}^{n+1}}}{(n+1)!}{{e}^{\xi }}

    或者表示为

e^x=1+x+\frac{1}{2!}{{x}^{2}}+\cdots +\frac{1}{n!}{{x}^{n}}+o({{x}^{n}})

​ (2)
sin(x)=x-\frac{1}{3!}{{x}^{3}}+\cdots +\frac{{{x}^{n}}}{n!}\sin \frac{n\pi }{2}+\frac{{{x}^{n+1}}}{(n+1)!}\sin (\xi +\frac{n+1}{2}\pi )
或表示为:
sin(x)=x-\frac{1}{3!}{{x}^{3}}+\cdots +\frac{{{x}^{n}}}{n!}\sin \frac{n\pi }{2}+o({{x}^{n}})
​ (3)
\cos x=1-\frac{1}{2!}{{x}^{2}}+\cdots +\frac{{{x}^{n}}}{n!}\cos \frac{n\pi }{2}+\frac{{{x}^{n+1}}}{(n+1)!}\cos (\xi +\frac{n+1}{2}\pi )
或表示为:
cox(x)=1-\frac{1}{2!}{{x}^{2}}+\cdots +\frac{{{x}^{n}}}{n!}\cos \frac{n\pi }{2}+o({{x}^{n}})
​ (4)

\ln (1+x)=x-\frac{1}{2}{{x}^{2}}+\frac{1}{3}{{x}^{3}}-\cdots +{{(-1)}^{n-1}}\frac{{{x}^{n}}}{n}+\frac{{{(-1)}^{n}}{{x}^{n+1}}}{(n+1){{(1+\xi )}^{n+1}}}
或表示为:
ln(1+x)=x-\frac{1}{2}{{x}^{2}}+\frac{1}{3}{{x}^{3}}-\cdots +{{(-1)}^{n-1}}\frac{{{x}^{n}}}{n}+o({{x}^{n}})
​ (5)
{{(1+x)}^{m}}=1+mx+\frac{m(m-1)\cdots (m-n+1)}{n!}{{x}^{n}}+\frac{m(m-1)\cdots (m-n+1)}{(n+1)!}{{x}^{n+1}}{{(1+\xi )}^{m-n-1}}
或表示为:
{{(1+x)}^{m}}=1+mx+\frac{m(m-1)}{2!}{{x}^{2}}+\cdots+\frac{m(m-1)\cdots (m-n+1)}{n!}{{x}^{n}}+o({{x}^{n}})

随机梯度下降法

梯度基础

  1. 梯度

    对于可微函数f(x,y),梯度定义为:

\bigtriangledown f(x,y)=(\alpha_{x}{f}, \alpha_{y}{f})^T

梯度方向就是函数增长最快的方向;反方向就是减小最快的方向

  1. 梯度下降法

(1). 如果J(\theta)是一个多元函数,在\theta_0处对J(\theta)做线性逼近:
J(\theta_0+\bigtriangleup_{\theta})=J(\theta_0)+\bigtriangleup^T_{\theta}\cdot \bigtriangledown J(\theta_0)+o(|\bigtriangleup_\theta|)
(2). 通过学习率\eta来表示梯度走下去的方向
\theta_n=\theta_(n-1) \cdot \eta_(n-1)\bigtriangledown J(\theta_{(n-1)}
(3). 本质:对函数进行一阶逼近寻找函数下降最快的方向

  1. 牛顿法

本质:对函数进行二阶逼近,并估计函数的极小值点

  1. 困难点

    1. 梯度的计算:样本量过大,梯度计算非常耗时

    2. 学习率的选择:太小到时算法收敛太慢;过大导致算法不收敛

随机梯度下降法

随机梯度下降法是为了解决梯度的计算问题,梯度下降法的分类:

  1. 批梯度下降GD

  2. 随机梯度下降SGD

  3. 小批量随机梯度下降Mini Batch SGD

优化算法

  1. 动量算法

  2. Adgrad(自动调整学习率)

  3. Adamdelta

  4. Adam

概率论

基础点

1.事件的关系与运算

(1) 子事件:A \subset B,若A发生,则B发生。

(2) 相等事件:A = B,即A \subset B,且B \subset A

(3) 和事件:A\bigcup B(或A + B),AB中至少有一个发生。

(4) 差事件:A - BA发生但B不发生。

(5) 积事件:A\bigcap B(或{AB}),AB同时发生。

(6) 互斥事件(互不相容):A\bigcap B=\varnothing

(7) 互逆事件(对立事件): A\bigcap B=\varnothing ,A\bigcup B=\Omega ,A=\bar{B},B=\bar{A}

2.运算律

(1) 交换律:A\bigcup B=B\bigcup A,A\bigcap B=B\bigcap A

(2) 结合律:(A\bigcup B)\bigcup C=A\bigcup (B\bigcup C)

(3) 分配律:(A\bigcap B)\bigcap C=A\bigcap (B\bigcap C)

概率公式

(1)条件概率: P(B|A)=\frac{P(AB)}{P(A)},表示A发生的条件下,B发生的概率。

(2)全概率公式:
P(A)=\sum\limits_{i=1}^{n}{P(A|{{B}*{i}})P({{B}*{i}}),{{B}*{i}}{{B}*{j}}}=\varnothing ,i\ne j,\underset{i=1}{\overset{n}{\mathop{\bigcup }}},{{B}_{i}}=\Omega
(3) Bayes公式:
P({{B}*{j}}|A)=\frac{P(A|{{B}*{j}})P({{B}*{j}})}{\sum\limits*{i=1}^{n}{P(A|{{B}*{i}})P({{B}*{i}})}},j=1,2,\cdots ,n
注:上述公式中事件{{B}*{i}}的个数可为可列个。

(4)乘法公式:
P({{A}*{1}}{{A}*{2}})=P({{A}*{1}})P({{A}*{2}}|{{A}*{1}})=P({{A}*{2}})P({{A}*{1}}|{{A}*{2}})

P({{A}*{1}}{{A}*{2}}\cdots {{A}*{n}})=P({{A}*{1}})P({{A}*{2}}|{{A}*{1}})P({{A}*{3}}|{{A}*{1}}{{A}*{2}})\cdots P({{A}*{n}}|{{A}*{1}}{{A}*{2}}\cdots {{A}*{n-1}})​

(5)联合概率

  • 给定Y先发生,X再发生的概率

  • P(XY)=P(Y)P(Y|X)

  • P(Y|X)=\frac{P(XY)}{P(X)}

(6) 贝叶斯公式

P(XY)=P(X|Y)*P(Y)=P(Y|X)*P(X)

P(Y|X)=\frac{P(X|Y)*P(Y)}{P(X)}

  • P(Y|X) 后验概率

  • P(Y) 先验概率

假设含有sex的邮件是垃圾邮件的概率是P(Y=spam|X=sex), Y是垃圾邮件的概率是0.9;假设垃圾邮件出出现sex的概率是1%,正常邮件中出现sex的概率是0.1%,求出P=(Y=spam|X=sex)=P(X=sex|Y=spam)*P(Y=span)/P(X=sex)

(7)生成模型和判别模型

生成模型:

  • 朴素贝叶斯

  • 隐马尔科夫

判别模型:

  • 逻辑回归

  • 支持向量机

  • 条件随机场

(8). 常见分布

(1) 0-1分布:P(X = k) = p^{k}{(1 - p)}^{1 - k},k = 0,1

(2) 二项分布:B(n,p)P(X = k) = C_{n}^{k}p^{k}{(1 - p)}^{n - k},k =0,1,\cdots,n

(3) Poisson分布:p(\lambda)P(X = k) = \frac{\lambda^{k}}{k!}e^{-\lambda},\lambda > 0,k = 0,1,2\cdots

(4) 均匀分布U(a,b)
f(n)= \begin{cases} \frac {1}{b-a}, & \text a\leq n \leq b \\ 0, \text else \end{cases}
(5) 正态分布:N(\mu,\sigma^{2}):
\varphi(x) =\frac{1}{\sqrt{2\pi}\sigma}e^{- \frac{{(x - \mu)}^{2}}{2\sigma^{2}}},\sigma > 0,\infty < x < + \infty

(6)指数分布:
f(x) = \begin{cases} \lambda e^{- \lambda x}, \text x\geq 0 \\ 0 , \text x \leq 0 \end{cases}
(7)几何分布:
G(p):P(X = k) = {(1 - p)}^{k - 1}p,0 < p < 1,k = 1,2,\cdots
(8)超几何分布:
H(N,M,n):P(X = k) = \frac{C_{M}^{k}C_{N - M}^{n -k}}{C_{N}^{n}},k =0,1,\cdots,min(n,M)

期望、方差、协方差和相关系数

基础知识点

期望

  • E[X]=x_1p_1+...+x_np_n

  • E[X+Y]=E[X]+E[Y]

  • 如果XY独立,那么E[XY]=E[X]*E[Y]

方差

  • Var[X]=(x_1-u)^2p_1+...+(x_n-u)^2p_n
  • Var[X]=E[(X-u)^2]
  • Var[X]=E[X^2]-E[X]^2
  • Var[X+a]=Var[X];Var[aX]=a^2Var[X]

协方差

Cov(X,Y) = E\left\lbrack (X - E(X)(Y - E(Y)) \right\rbrack=E[XY]-E[X]E[Y]

相关系数

\rho_{{XY}} = \frac{Cov(X,Y)}{\sqrt{Var(X)}\sqrt{Var(Y)}},k阶原点矩 E(X^{k});

几个性质:

(1)\ Cov(X,Y) = Cov(Y,X)

(2)\ Cov(aX,bY) = abCov(Y,X)

(3)\ Cov(X_{1} + X_{2},Y) = Cov(X_{1},Y) + Cov(X_{2},Y)

(4)\ \left| \rho\left( X,Y \right) \right| \leq 1

(5) \ \rho\left( X,Y \right) = 1 \Leftrightarrow P\left( Y = aX + b \right) = 1 ,其中a > 0

\rho\left( X,Y \right) = - 1 \Leftrightarrow P\left( Y = aX + b \right) = 1 ,其中a < 0

常见分布的期望和方差

概率分布有两种型別:离散(discrete)概率分布和连续(continuous)概率分布。

离散概率分布也称为概率质量函式(probability mass function)。离散概率分布的例子有

  • 伯努利分布(Bernoulli distribution)
  • 二项分布(binomial distribution)
  • 泊松分布(Poisson distribution)
  • 几何分布(geometric distribution)

连续概率分布也称为概率密度函式(probability density function),它们是具有连续取值(例如一条实线上的值)的函式。常见的有:

  • 正态分布(normal distribution)
  • 指数分布(exponential distribution)
  • β分布(beta distribution)
MHe5Uf.png

机器学习实例

查全率、查准率和F1

  1. 定义

对于二分类问题,可将样本实例根据真实类别(真假)和学习器预测得到的类别(正反)的组合分为四种:

  • 真正例 true positive,TP
  • 假正例 false positive,FP
  • 真反例 true negative,TN
  • 假反例 false negative,FN

分类结果的混淆矩阵如下:

真实情况 预测结果
正例 反例
TP(真正) FN(假反)
FP(假正) TN(真反)

查准率P和查全率R分别定义为:

P=\frac {TP}{TP+FP}

R=\frac {TP}{TP+FN}

注意:查准率和查全率是一对矛盾的度量。

F1是基于P和R的调和平均值:

\frac {1}{F1}=\frac{1}{2}(\frac{1}{P}+\frac{1}{R})=\frac{2PR}{P+R}

  1. 应用demo

查全率recall:逃犯信息检索系统中,希望尽可能少的漏掉逃犯

查准率precision:推荐系统中,为了尽可能少的打扰客户,希望推荐的内容是用户感兴趣的。

  1. ROC和AUC

ROC(Reciver Operation Characteristic)全称是“受试者工作特征”曲线。曲线横、 纵坐标为:

  • 横轴:FPR
  • 纵轴:TPR

TPR=\frac {TP}{TP+FN}

FPR=\frac {FP}{TN+FP}

AUC(Area Under ROC Curve):指的是RUC曲线下面的面积。

朴素贝叶斯

朴素贝叶斯的公式

P(Y|X_1,X_2,…,X_n)=\frac{P(X_1,X_2,…,X_p|Y)P(Y)}{P(X_,X_2,…,X_p)}=\frac{{P(X_1|Y)}{P(X_2)|Y…{P(X_p|Y)}}P(Y)}{P(X_1,X_2,…,X_p)}

中间表示的是贝叶斯公式;后面的假设表示每个X是相互独立的

决策树

主要算法有:ID3、C4.5、CART

各种熵

  • 信息熵: H(D)=-\sum_{y=k}^{K}p_k·log(p_k)
  • 联合熵: H(X,Y)=-\sum_{x,y}p(x,y)\log p(x,y)
  • 条件熵:条件熵=联合熵-熵 H(Y|X)=H(X,Y)-H(X) H(D|f)=\sum_{v\epsilon V_f}\frac{|D_v|}{|D|}H(D_v)
  • 信息增益: Gain(D,f)=H(D)-H(D|f)
  • 交叉熵: H(p,q)=-\sum_x p(x)\log q(x)
  • KL散度(相对熵)=交叉熵-熵 D_{KL}(p||q)=H(p,q)-H(p)

学习收获

今天花了4个多小时学习和整理第一课时的两个视频,学习的同时也复习了很多基本知识,包含:

  • 高数
  • 微积分
  • 概率论与统计

此外自己也了解了不同的机器学习算法在实际中的不同应用常景。打好基础,继续前进!

待改进点

需要进一步改进的地方:

  1. 概率论落下的知识蛮多的,需要好好补充
  2. 对算法的理解需要提高,实际编码的能力有待提升
  3. 对于在本课程中提到的随机梯度下降算法需要好好掌握!

本节课主要注重的是理论基础知识,希望有更多的例子和实战相结合!加油吧️

M7NTtH.png

本文为原创,转载请注明!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 改进神经网络的学习方法(上) 当一个高尔夫球员刚开始学习打高尔夫时,他们通常会在挥杆的练习上花费大多数时间。慢慢地...
    nightwish夜愿阅读 3,061评论 2 8
  • 本文主题-逻辑回归(上部分):逻辑回归的应用背景逻辑回归的数学基础逻辑回归的模型与推导逻辑回归算法推导梯度下降算法...
    杨强AT南京阅读 1,386评论 1 4
  • 概率论与数理统计 无穷小阶数 无穷小量表述:线性逼近 相当于利用切线和斜率来理解误差和逼近。 泰勒级数:线性逼近 ...
    Babus阅读 828评论 0 1
  • 最近发现自己的一个缺点,很多原理虽然从理论上或着数学上理解了,但是难以用一种简洁的偏于沟通的方式表达出来。所以合上...
    给力桃阅读 1,739评论 0 0
  • AI人工智能时代,机器学习,深度学习作为其核心,本文主要介绍机器学习的基础算法,以详细线介绍 线性回归算法 及其 ...
    erixhao阅读 14,051评论 0 36