机器学习平台建设
2022-09-13 13:51:21 1 举报
AI智能生成
整理了整个机器学习平台所需要知识点,考虑的因素
作者其他创作
大纲/内容
理论误差是什么
计算假设的目标就是使: 理论误差最小
理论误差 又叫 泛化错误率
我们都是根据经验误差最小的方式来计算出某个假设. "经验误差" 就是 "误差的样本均值"
理论误差就等于该伯努利分布的期望
经验误差就等于该伯努利分布的样本均值
假定: 某个假设"对单个样本分类错误"的概率服从伯努利分布
m为样本个数
r 为经验误差跟理论误差之差
根据hoeffding不等式可得: P( |经验误差 - 理论误差| > r ) > 1 - 2*exp(-2r*r*m)
一个模型可以看作一个假设集合
假设该模型有k个假设
根据上式可得: P( 该模型内所有假设都满足: |经验误差 - 理论误差| < r ) >= 1 - 2*k*exp(-2*r*r*m)
根据经验误差最小找到的假设的经验误差: 叫该模型的训练错误率
该模型的理论误差最小的假设的理论误差: 叫该模型的泛化错误率
经验假设的理想误差 <= 经验假设的经验误差 + r
根据经验误差最小计算出的肯定是经验假设
经验假设的经验误差 <= 理想假设的经验误差
理想假设的经验误差 <= 理想假设的理想误差 + r
所以: 经验假设的理想误差 <= 理想假设的理想误差 + 2r
m >= (1/2*r*r) log(2*k / (1-P))
可以确定样本个数: 使得该模型的泛化错误率和训练错误率之差在r之内
由于: 经验假设的理想误差 <= 理想假设的理想误差 + 2r = 理想假设的理想误差+ 2*开方( log(2k/(1-P)) / 2m)
如何选择模型
由此做出我们的策略
学习理论
加强学习
缺点
沿梯度方向(或反方向),以规定步长距离点进行迭代搜索
梯度下降法
使用函数f(x)的泰勒级数的前面几项来寻找方程f(x)=0的根
牛顿法
直接计算解析解
导数为0
单变量函数
一般方法是整体迭代至收敛
或者有选择的更新某些对全局影响最大的变量
每次迭代所有变量更新一遍
2 直接计算出函数最小时该变量的值
更新某个变量的时候有两种策略
多变量函数
无条件函数计算极值(凸函数)
分支主题
计算出来的极值包含原问题的极值
极值处: 拉格朗日方程的值 = 原函数的值
思想: 构造一个无条件限制的函数(拉格朗日函数)
标准拉格朗日乘数法
计算最小值
目标函数 和不等式约束都是 凸函数
不等式约束都是 <= 0
另外加上等式约束
https://zh.wikipedia.org/wiki/%E5%87%B8%E5%84%AA%E5%8C%96
凸优化问题
问题描述采用凸优化问题中的标准表示方法
没有提及充要条件
不等式约束是凸函数
仿射函数: 线性映射 + 截距
等式约束是仿射函数
充分条件: 使广义拉格朗日乘数有解的充分条件
原变量的极值
拉格朗日方程对原函数变量的偏导为0
即:等式约束 = 0
使 拉格朗日函数的极值 等于 原函数的极值
对等式约束的系数的偏导为0
使等式约束的部分为0
要么不等式约束 = 0 ,要么 不等式系数 = 0
使不等式约束的部分为0
这个是约定好的
不等式约束 <=0
不等式约束的系数 >= 0
使拉格朗日函数比原函数范围更宽 (拉格朗日乘数函数的极小值 必须 小于等于 原函数的极小值 )
必要条件: 广义拉格朗日乘数的解
https://en.wikipedia.org/wiki/Karush%E2%80%93Kuhn%E2%80%93Tucker_conditions
参考网页
kkt 条件
这一步是解析解。
先以原变量为当前变量,计算拉格朗日函数的最小值
每个函数的极小值都 <= 原函数的极小值。
只有极小值符合kkt条件的函数的极小值 == 原函数的极小值
拉格朗日方程实际上是一个函数族。
所以我们计算出所有函数的极小值,找到最大的那个,就是原函数的极小值。
再以约束系数为变量,计算拉格朗日函数的最大值
化解:kkt条件中的 "不等式约束 <=0",因为数值趋紧的计算方式不能处理情况。
每次都选择不满足kkt条件的系数来更新,因为满足kkt条件的系数已经到达极值点了。
剩下的对单个变量的范围限制,在更新约束式系数时使用。
计算极值时kkt 条件的使用
扩展的拉格朗日乘数
只剩一个变量的方程,牛顿法求解
如果能化简为只剩一个变量
如果多个系数相互关联,每次选两个系数
计算最终数值解的方法
先假定 原函数和下界函数都是平滑的.
是下界函数的极值点
是下界函数和原函数的重合点
理由
最终结果需要满足两个条件
下界函数计算极值: 更接近原函数极值
迭代过程不断接近最终结果
形状接近: 下界函数的凹凸性与原函数相同
计算过程需要
在某个点与原函数相等
对下界函数的要求
下界函数趋近
求极值
概率中的逗号表示两个都是随机变量,联合概率分布。分号表示后一个是固定值,作为概率分布的参数出现
概率
数学理论
一般是有大量数据,但函数参数较少
所谓回归分析法,是在掌握大量观察数据的基础上,利用数理统计方法建立因变量与自变量之间的回归关系函数表达式
回归分析中,又依据描述自变量与因变量之间因果关系的函数表达式是线性的还是非线性的,分为线性回归分析和非线性回归分析。通常线性回归分析法是最基本的分析方法,遇到非线性回归问题可以借助数学手段化为线性回归问题处理
研究一个变量(因变量)关于另一些变量(自变量)的依赖关系
它通过最小化误差的平方和寻找数据的最佳函数匹配
要求:y的条件概率呈正态分布。 E(y) = f (x)
普通最小二乘法
加权最小二乘法
非线性最小二乘法
包括
利用最小二乘法寻找最佳的函数匹配
假设因变量和自变量呈线性关系
使用加权最小二乘法,使尽量多的点接近目标直线
权值是距离平方的负指数函数(类似正态分布形状)
如果真实函数不是线性函数,我们用线性拟合效果就很差。这样我们就做一个"凑合"的线形拟合,使某些点接近这条线,某些点可以不太接近。
线性回归
利用最小均方差估计寻找最佳函数匹配
如果x->y有对应关系,按照概率是 Beta*x -> E(y)
为什么用g,g是h的前一个字母吗?
一般把f换成字母g, E(y) =g (Beta*x) = h(x)
扩展一下,把E(y) = beta * x 改成 E(y) = f (Beta *x ) ,就变成了广义线性模型
连续概率分布的参数:要么和期望相关,要么和方差相关。
离散概率分布的参数:应该包括每一个随机变量取值的概率。
f 和期望相关
https://en.wikipedia.org/wiki/Exponential_family
是否必须是"Natural exponential family"
使用指数分布族的形式,进行最大似然估计,是最容易计算的
https://zh.wikipedia.org/wiki/%E5%BB%A3%E7%BE%A9%E7%B7%9A%E6%80%A7%E6%A8%A1%E5%9E%8B
指数分布族的形式,把解释期望的参数和解释的方差相参数分开了。我们不关心方差,只关心期望 。剥离了无关因素
指数分布族中,参数与函数的其它部分相互做的形式最简单:仅有一个相乘(如果是矢量就是点积)
为什么使用指数分布族的通用形式,而不是具体形式(例如伯努利分布)
指数分布族的其它特征
如y属于指数分布族,将其转化为指数分布族的通用形式
是否可用指数族分布来近似
如果y不属于指数分布族,例如studuent分布,该怎么办
机器学习中,任何一种模型都不是万金油,都是在合理的猜测。再没有充分理由的情况下,不要增加模型复杂度
正则参数 = f(原来的概率分布参数): 该函数叫正则响应函数
原来的参数 = f(正则参数): 该函数叫正则关联函数
使用Beta *x 充当指数分布族的正则参数Theta
如何找到f,换句话说 Beta * X 如何影响y的分布,再换句话说Beta*X 在 y的概率分布函数中可以充当哪个参数
利用最大似然估计,计算出Beta的值
正则参数就是期望, 最大似然估计的过程就是线性回归
y服从高斯分布
正则参数 = ln(u / ( 1 - u))
伯努利分布,计算最大似然估计的过程,成为 logistic 回归
y服从伯努利分布
广义线性模型的特例
广义线性模型
最大似然估计函数在采样样本总数趋于无穷的时候达到最小方差(其证明可见于Cramer-Rao lower bound)。当最大似然估计非偏时,等价的,在极限的情况下我们可以称其有最小的均方差。 对于独立的观察来说,最大似然估计函数经常趋于正态分布。
最大似然估计
利用最大似然估计寻找最佳函数匹配
对两个类别分别建模,新样本匹配两个分类,匹配度较高的作为新样本的类别。
p(x| y): 条件概率
在分类问题是,都是使用多项式分布
有别的问题吗?
p(y) :先验概率。
注意与广义线性回归区分,广义线性回归中x是作为y分布的一个参数出现的。
如果在训练集中,一个随机变量某个值没有出现,其概率也不能为零。再人为增加一组样本,每个值出现一次。 新增的样本仅占极小的比例,不影响其概率分布。
处理方式是:所有计算出的概率:分子加1, 分母加k (k为可能值的个数)
拉普拉斯平滑
p(y|x) = p(x|y)*p(y) / p(x)
p(y |x ): 新样本所属类别, 后验概率
利用贝叶斯公式计算后验概率
生成学习算法
条件概率p(x|y) 是一个多维高斯分布, x的每一个分量是一个维度
p(y) 服从伯努利分布
计算p(x|y) 的时候,利用最大似然估计
实际上,只要先验分布属于指数分布族。p(y=1|x; 其它参数) 都是一个logistic函数
logstic 回归鲁棒性更强。 GDA更精确、需要的数据更少
高斯判别分析(GDA)
如此一来:高维空间的分布,可以有低维空间各个维度的分布简单计算出来。
假定前提:给定y后,x的各个分量的概率分布是相互独立的
由于处理的都是离散值,计算过程中完全不涉及x、y分布的解析形式
利用联合概率密度的最大似然估计,计算出给定y下x的每个分量的每个值的概率,以及y的每个值的概率密度。
把整空间网格化,计算出每一个网格的概率
x每个分量可以有任意有限个值。甚至可以把连续的x离散化,利用朴素贝叶斯建模
x的第j个分量的值: 字典中第j个单词是否存在
多元伯努利事件模型(NB-MBEM)
x的第j个分量的值: 文章中第j个单词,在字典中的序号
由于x各个分量互不相关,所以文章的性质和单词出现的顺序无关
都是利用了某个类别下每个单词出现的概率
该模型考虑了单词出现的频率
与多元伯努利模型相比
多项式事件模型(NB-MEM)
示例
朴素贝叶斯模型(适合x维度非常高的情况)
利用最大后验概率寻找最佳类型匹配
回归问题
感知器算法
如果数据不是线性可分的,即不存在一条直线或一个超平面,能把数据分成两部分。就在中间插入一次层中间值。
这几个sigmoid函数互不相同
因为是分成两部分,所以是sigmoid函数。是否有其它情况,使用其它函数
一个x向量经过多个sigmoid函数,变成一个中间向量,中间向量再经过一个sigmoid函数,得到最终结果。
成本函数就是计算最小值的函数
由于最终的目标函数是由多个函数复合而来,非常复杂,所以y的误差符合标准正态分布
利用梯度下降算法计算成本函数最小值的过程叫"反向传播"
成本函数为误差的平方和
神经网络
计算方法
映射到高维空间的具体形式不用管,最后还是计算内积。所以核函数对应的映射函数不用考虑
普通内积: 相当于映射到自身
映射函数是啥
高斯核
常用的核函数
svm模型,没有等式约束。如果有等式约束,是否要放宽
小量为正值
实际是允许某些点穿过超平面一小段距离
不等式约束放宽一点: 原不等式左边 + 小量 > 0
为了使所有小量整体最小(整体放宽的尽量小): 原函数 变成: 原函数 + 所有小量和
调整
https://zh.wikipedia.org/wiki/%E5%BA%8F%E5%88%97%E6%9C%80%E5%B0%8F%E4%BC%98%E5%8C%96%E7%AE%97%E6%B3%95
TODO
利用SMO 计算最大值
支持向量机
分类问题
监督学习: 基于标记数据的学习
先设定参数初始值
整体思想
优化目标是样本距离聚类中心的距离之平方和最短
类比的最小二乘法
思路
先给初识化K个聚类中心
设定参数初值
根据参数标记样本
根据标记结果重新计算参数
过程
K-Means法
每个样本的标记数据为: 样本和聚类的联合概率
优化目标: 样本的整体出现概率最大 ( 样本出现的概率之积最大)
所有概率分布的参数
标记样本
数学技巧
每个聚类在所有聚类中的概率分布类型: 多项式分布
每个聚类出现某个样本的概率分布类型: 多维正态分布
假设条件
联合概率之积最大
计算结果符合 "频度约等于概率" 规律
聚类的分布: 某个聚类的概率 = 所有样本属于这个聚类的概率 的 平均值
聚类中样本的分布
各个参数可以计算出解析解
混合高斯分布
最大似然函数 = 样本求和( log( 聚类求和()))
假设某个样本属于某个聚类的一组参数为theta
一般形式
EM算法: Expectation-Maximization
EM 算法的一般好形式
无监督学习(初识数据没有标记数据):
把指示函数换成概率
要计算的值
作为每次迭代的初识条件
聚类的概率参数
标记数据的值
三组数据
从最大似然估计到em
某个聚类的概率 = 每个样本属于该聚类的概率之和 / 样本总数
聚类的概率更新公式:
聚类中心(高斯模型的期望) = 特征数据的加权平均值 (权重就是: 特征数据下该聚类的概率)
方差呢
混合高斯模型三组数据的迭代
混合朴素贝叶斯模型三组数据的迭代
不断用下界函数的极值趋紧似然估计函数的极值
e-step: 下界函数上移的过程(使新下界函数与似然函数在当前当前下界函数极值点处相切)
m-step: 计算下界函数极值
em一般形式里
路上考虑
公式的语言描述是什么
em 的一般模型
todo
对接
安全
网络瓶颈
检测
应对
网络爬虫
隐私保护
数据采集
可靠性
一致性
访问速度
版本控制
数据存储
导入导出
转换
检验清洗
可视化
数据加工
图片
文本
目标检测
语音识别
标记方法分类
训练集
验证集
测试集
基本原则
数据使用
在线标记
外包
众包
其他
标记工具
样本数据
数据
数据科学家进行试验,找到解决问题的最佳方案
数据清洗
纠正数据偏离(bias)
数值变换
输入先验知识
数据降维
特征工程
算法与网络结构
批数据量大小
学习率
超参调整
自动化建模
组合模型
模型试验
计算机训练模型的过程
主要包括
建模
持续集成
模型评估
特征抽取
实时与批处理
负载均衡
容器化管理
API版本管理
数据收集
服务
部署
功能性
认证授权
网络安全
服务器安全
代码安全
数据保护
安全日志
安全性
易用性
非功能性
虚拟化
任务队列
代码集成
分布式训练
批量任务
交互试验体验
算力管理
快速试验
数据分布
训练进度
可解释性
团队协作
平台支持
通用与专业
扩展能力
监控
配置化管理
日志
运维支持
设计约束
功能
平台化建设
机器学习
0 条评论
下一页