前言

最近组里(我是局外人)遇到个课题 想做个基于知识图谱的个性化推荐(宣告失败)原因是实在是太难了 目前除了北京师范大学有个别老师在做以外 就只剩谷歌还在做了 基本都是博士级别的水平 对于本科生来说着实难以接受 但是我之前也已经学习了不少机器学习的算法 虽然我本身最喜欢的是计算机视觉方向 但是偶尔也会看一些别的方向的东西 例如我很喜欢的有机化学方向 目前打算毕设就是用机器学习推导方程式 用来找药或者是找催化剂 但是估计这个事情也得放到考研初试结束以后了 当然这个也比较有难度 所以我还备选了一个就是基于图像识别去做一个淘宝服饰品类分类 这次就想做个简单的电影推荐系统即可 大部分数学知识这里就不在继续陈述了 默认大家都会积分 求导 线性代数 概率统计

一些必须知道的数学公式

模型检测

Remp指的是经验风险 表示的是经验风险的模型就是最优模型 针对的是训练集而言 主要公式是

Re=1Nn=1iL(yi,f(xi))R_e = \frac{1}{N}\sum_{n=1}^{i}L({y_i},f(x_i))

其中L这个函数指的就是损失函数 可以用来量化预测值和实际值之间的差距 通常可以取两数相减取绝对值 或者是两数差的平方 或者对数函数等等

但是这个公式存在个小问题 那就数据量太小的时候误差超级大 所以实际上真的用的时候还是对测试集用这个公式即

Et=1Nn=1iL(yi,f(xi))E_t = \frac{1}{N}\sum_{n=1}^{i}L({y_i},f(x_i))

正则化 在Remp的基础上 为了防止过拟合或者欠拟合 (过拟合指的是训练的太过了 把噪点都训练进去了 欠拟合就是训练的还不够 就像耍朋友一样 你不能天天都耍 也不能一天到晚都不耍

1Nn=1iL(yi,f(xi)+λJ(f))\frac{1}{N}\sum_{n=1}^{i}L({y_i},f(x_i)+\lambda J(f))

公式中的J代表是惩罚项 前面的系数则用来配平 正则化项可以取不同的范式 比如L1或者L2范式

  1. 奥卡姆剃刀 指的是 如无必要,勿增实体 简单来说就是在所有模型中选择最简单同时也是最好的

  2. 关于二类分类问题 一般会用到以下几个概念

    名称 样本真实数据情况 样本预测数据情况
    TP 正样本 正样本
    FN 正样本 负样本
    FP 负样本 正样本
    TN 负样本 负样本

    举例:比如我们把识别狗这个问题中的 是狗 这么一个概念作为正样本 那么负样本就是 不是狗 所以基于以上内容 会有两个公式出现:

P=TPTP+FPR=TPTP+FNP = \frac{TP}{TP+FP} R = \frac{TP}{TP+FN}

P(precision 精确率) 可以看为是所有预测为正样本的数据中预测正确的概率 R(recall 召回率) 可以看做是所有真实正样本数据中的正确概率 即反过来可代表召回

模型算法相关
  1. 回归问题

    回归问题一般可以分为 一元回归和多元回归 或者按照线性回归和非线性回归

  2. 损失函数(重要概念)

    损失函数指的是量化预测值和实际值之间的差距的函数 一般可以取三种 1.平方损失函数 2.绝对值损失函数 3.对数函数(这个最好取2或者10位底 方便计算) 这些都是为了去掉正负号而出现的 其中对于平方损失函数 一个比较经典的做法就是采用最小二乘法(这个会在后面讲到)

模型求解算法
  1. 梯度下降算法

主要思想:沿着梯度(函数下降最快的那个方向 即导数)负方向下降 一定是最快的 换句话说就是导数最大的地方 肯定是变化率最大的 所以一个比较好的思路就是沿着正方向的反方向即可 多次迭代后的参数使得损失函数最小

θ=θασJ(θ)σθ \theta = \theta - \alpha\frac{\sigma J(\theta)}{\sigma\theta}

其中的

θσ\theta \sigma

分别指的是模型参数 以及对模型参数求偏导

  1. 牛顿法和拟牛顿法
    未使用到 暂不介绍

必须要了解的机器学习算法

监督学习

回归模型

线性回归模型

线性回归(linear regression)是一种线性模型,它假设输入变量x和单个输出变量y之间存在着线性关系 具体来说,利用线性回归模型,可以从一组输入变量x的线性组合中,计算输出变量y 注意:线性指的是x的次方都是一次 如果不是一次就不构成线性关系了(比如二次肯定就是抛物线状态了

y=ax+by=ax+b

f(x)=i=1mwixi+bf(x) = \sum_{i=1}^{m}{w_ix_i}+b

但是对于以上写法有点复杂且不好理解 所以为了简洁我们还可以采用向量去理解即

f(x)=ωTχ+bf(x)=\omega^T\chi+b

最小二乘法

基于均方误差最小化来进行模型求解的方法被称为最小二乘法(least square method) 我也不知道为啥这个叫最小二乘 从英文上看好像应该叫最小平方法更合适 主要的思想就是选取不同的参数 比较实际值和预测值之间的这么一个距离再求和求平均 让这个值最小即可

two

假设当属性(特征)只有一个的时候 则线性关系是:

f(xi)=ωxi+bif(x_i)=\omega x_i+b_i

在线性回归当中,最小二乘法就是要找到一条直线,使得所有样本点到直线上的欧氏距离最小。

(w,b)=argmini=1mf(xi)yi2=argmini=1m(yiωxib)2(w^*,b^*)=argmin\sum_{i=1}^{m}{f(x_i)y_i^2}=argmin\sum_{i=1}^{m}{(y_i-\omega x_i-b)^2}

这里注意的是 上面这个公式的内容是 当欧氏距离最小的时候 w和b的值 注意 要的是w和b的值 不要搞错了 这里我们是需要参数值

求解w和b,使得上面这个式子的值最小的过程被称作 " 最小二乘参数估计"

对原始公式中的w和b分别求偏导可以得到如下式子:

δE(w,b)δw=2(ωi=1mxi2i=1m(yib)xi)\frac{\delta E_(w,b)}{\delta w} = 2(\omega \sum_{i=1}^{m}{x_i^2}-\sum_{i=1}^{m}{(y_i-b)x_i})

δE(w,b)δb=2(mbi=1m(yiωxi))\frac{\delta E_(w,b)}{\delta b} = 2(mb-\sum_{i=1}^{m}{(y_i-\omega x_i)})

我们让偏导数都等于0(可以认为是在求导数中的驻点那个过程) 就可以推得w和b的表达式

ω=i=1myi(xix)i=1mxi21m(i=1mxi)2\omega = \frac{\sum_{i=1}^{m}{y_i(x_i-\overline{x})}}{\sum_{i=1}^{m}{x_i^2-\frac{1}{m}{(\sum_{i=1}^{m}{x_i})^2}}}

b=1mi=1m(yiωxi)b = \frac{1}{m}\sum_{i=1}^{m}{(y_i-\omega x_i)}

其中

x=1mi=1mxi\overline{x} = \frac{1}{m}\sum_{i=1}^{m}{x_i}

最后更新: 2020年04月30日 19:02

原始链接: http://www.sammie.top/2020/04/13/ml/

× 打钱(假装很多人打钱的样子)~
打赏二维码