机器学习 :
利用现有经验E 不断改善其完成 既定任务T 的性能
基于经验数据的函数估计问题
x->y 寻找映射f。即机器学习力图构建一个映射函数
机器学习在构建数学模型时利用了统计学理论,因为其核心任务就是由样本推理。计算机科学的角色是双重的:第一,在训练时,我们需要求解优化问题以及存储和处理通常所面对的海量数据的高效算法。第二,一旦学习得到了一个模型,它的表示和用于推理的算法解也必须是高效的。在特定的应用中,学习或推理算法的效率,即它的空间复杂度和时间复杂度,可能与其预测的准确率同样重要。
人工智能》机器学习》深度学习
机器学习 :input ->feature extraction (人来负责特征工程)->classification ->output
深度学习: input ->feature extraction +classification ->output
机器学习:data drive , 优化问题,预测未来,侧重模型预测(prediction)
统计学习: theory drive,回归何假设检验,解释因果,侧重参数推断(inference)
机器学习让计算机模拟人的决策
设计模型为y=ax+b,输入数据集,机器学习后建立模型y=0.8x-100 (推断出参数)
对抗样本:在数据集中通过故意添加细微的干扰所形成的输入样本,导致模型以高置信度给出一个错误的输出。
在正则化背景下,通过对抗训练减少原有独立同分布的测试集的错误率——在对抗扰动的训练集样本上训练网络。
算法歧视?
认为所有的智能行为都可以被简化成在一个逻辑系统中的符号操作过程
自动定理证明、专家系统、知识图谱
用概率解释
神经网络
弱监督
因果学习:现在的机器学习算法大多只能推断相关性(correlation),而不能得到因果(casuality)。因果学习得到的模型有很好的可解释性。
输入 X ∈ x X\in x X∈x
输出 Y ∈ y Y\in y Y∈y
输入实例 x = ( x 1 , x 2 , . . . , x d ) ∈ X x=(x_{1},x_{2},...,x_{d})\in X x=(x1,x2,...,xd)∈X
输出实例
数据集 $D=\left { (x_{1},y_{1}),…,(x_{N},y_N) \right } $
目标函数 Y = f ( X ) Y=f(X) Y=f(X)
目标分布 P ( Y ∣ X ) P(Y|X) P(Y∣X)
对具体输入时 y = f ( X ) y=f(X) y=f(X)或 P ( y ∣ X ) P(y|X) P(y∣X)
使学习得到的映射 接近真相f
模型:决策函数或者条件概率分布
假设空间:决策函数、条件概率分布的集合
决策函数集合:$H=\left { f|Y=f(X;\theta ),\theta \in R^{n} \right } $
条件概率的集合:$H=\left { P|P(Y|X;\theta ),\theta \in R^{n} \right } $
策略:从及假设空间中选取最优模型
损失函数-度量误差的函数
在分类数为M的分类问题中,设 p i ( x ) p_i(x) pi(x)为分类器,将 x x x预测为类别$$的概率,则其对数损失函数为
L ( y , P ( y ∣ x ) ) = − log P ( y ∣ x ) = − ∑ i = 1 M [ y = i ] log p i ( x ) L(y, P(y \mid \mathbf{x}))=-\log P(y \mid \mathbf{x})=-\sum_{i=1}^{M} \left [ y=i \right ] \log p_{i}(\mathbf{x}) L(y,P(y∣x))=−logP(y∣x)=−∑i=1M[y=i]logpi(x)
若数据集容量为N,则该数据集的平均损失函数(代价函数)为
L ( Y , P ( Y ∣ X ) ) = − l o g P ( Y ∣ X ) = − 1 N ∑ j = 1 n ∑ i = 1 m [ Y = i ] log p i x j L(Y,P(Y|X))=-logP(Y|X)= -\frac{1}{N} \sum_{j=1}^{n} \sum_{i=1}^{m} \left [ Y=i \right ]\log_{p_{i}}{x_{j}} L(Y,P(Y∣X))=−logP(Y∣X)=−N1∑j=1n∑i=1m[Y=i]logpixj
(成本)风险函数
期望风险(泛化误差)$R_{exp}(f)=\int _{x\times y}^{}L(y,f(x))P(x,y)dxdy $
P(x,y)是不可知的,所以监督学习是一个病态问题
理论上,实现不知道哪个模型更好
经验风险 $R_{emp}(f)= \frac{1}{N} \sum_{i=1}^{N}L(y_{i},f(x_{i}) ) $
结构风险 $R_{xrm}=\frac{1}{N} \sum_{i=1}^{N}L(y_i,f(x_i)) + \lambda J(f) $
结构风险带有事先的领域知识
J ( f ) J(f) J(f)指模型复杂度
λ \lambda λ为平衡因子,可取0,也可取 ∞ \infty ∞
策略(找到模型中的一个元素f,使得经验风险 或者结构风险越小越好) $\min_{f \in H} R_{emp}(f) $ 或$\min_{f \in H} R_{srm}(f) $
结构风险可用于解决 正则化问题
使得经验风险、结构风险越小越好
算法:学习模型的具体算法, 选取最优模型
最优化问题:$\min_{w,b}J(w,b) $
假设偏好可看做学习算法自身在一个可能很庞大的假设空间中对假设进行选择的启发式或价值观.
奥卡姆剃刀(Occam’s razor): 若有多个假设与观察一致,则选最简单的那个。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O1uOo2Tm-1646018638390)(img/1.2.1.jpg)]
如果都符合目标,三个参数的模型,优先级高于七个参数的模型
定理 1 (没有免费的午餐定理 (no free lunch theorem))
对任意两个学习算法A和B, 若在某些问题上 比 好, 则必然存在另外一些问题 A比B好
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VqKmd8Rb-1646018638397)(img\1.2.2.jpg)]
没有一种机器学习算法是适用于所有情况的。但事实上, 并不是均匀分布,学习算法自身的归纳偏好与问题是否匹配, 往往会起到决定性的作用. 脱离具体问题, 空泛地谈论 “什么学习算法更好” 毫无意义。
为简单起见, 假设样本空间 X X X和假设空间 H H H都是离散的
对某个特定的学习算法, 令 为基于训练数据 D D D产生假设 h h h的概率
当作非确定性模型,根据训练集和算法找出h
再令 f f f代表我们希望学习的真实目标函数
假设真实的f是均匀分布的
则该算法在训练集之外的所有样本上的期望误差为
f是给定的,h是选的,然后把这个期望展开
p(x)是分布的离散的积分求法【连续的求法是这样的 E ( f ) = ∫ f ∗ p i ( x ) d x E(f)=\int f*p_i(x)dx E(f)=∫f∗pi(x)dx】
考虑二分类问题,且真实目标函数可以是任何函数
f : X → { 0 , 1 } f:X \to \left\{0,1 \right\} f:X→{0,1}
相等就是0,不等就是1
对所有可能的函数按照均匀分布对误差求和,有
x个点,每个点可能取0,1,所以总共的可能性是$2^{x} $
该例子源自西瓜书,可以再看而推导
机器学习的目的就是为了使得学习得到的映射 逼近真相
机器学习分为训练(Training)和测试(Testing)两个阶段:
训练:给定一个包含 个样本的训练集D = {(x1 , y1 ), (x2 , y2 ), … , (xN , yN )}
调整模型 的参数 ,使得预测结果 和 标注尽可能接近。
测试:将函数 应用在一个独立的测试集T = {(x , ), ( , ), … , ( , )},~1 y~1 x~2 y~2 x~N ′ y~N ′
验证所学到的函数能否在该数据集上做出准确预测,即 是否与 接近
欠拟合(underfitting)). 学习器对训练样本的一般性质尚未学好, 训练误差高,导致泛化能力低
过拟合(overfitting). 学习器把训练样本学得“太好了”, 把训练样本自身的一些特点当作了所有潜在样本都会有的一般性质, 导致泛化能力下降
结构过拟合:
模型能力过于强大:本来只需要二次曲线,结果用了过高次的
噪声大、数据质量不高
随着迭代次数增加,欠拟合的误差在减小(y方向差距)
学习次数过多也不好
绿色是模型预测值
a 0次曲线
b 1次曲线
……
定理: 偏差-方差-噪声分解(bias-variance decomposition)
偏差、方差+(噪声)
设测试数据 x x x的真实目标值为 h ( x ) h(x) h(x) , 观察到的目标值为 t t t , 模型的预测值 y ( x ) y(x) y(x), 并记 x x x和 t t t的联合分布 p ( x , t ) p(x,t) p(x,t)为 , 则目标值 t t t与预测值 y ( x ) y(x) y(x)之间的误差为
(期望计算)
这里区分真实值、观测值t,为的是引出噪声的概念
观测值t相当于在真实值附近采样,但是t在这点的期望必须等于真实值,即 E ( t ) = h ( x ) E(t)=h(x) E(t)=h(x)
第2行按照完全平方式展开,先积分t,在积分x,因为 E ( t ) = h ( x ) E(t)=h(x) E(t)=h(x),消去,得第三行
1 给不同的D,会产生不同的y。所以对D找平均值,以找y期望值
方差【Variance】:学习一次和多次学习后的平均值的差距
偏差【Bias】:学出的模型和真实模型的差距
学习算法的泛化性能是由
共同决定的.
偏差-方差窘境(bias-variance dilemma).
泛化误差先下降,后上升
对比图
多项式曲线拟合问题
模型复杂度增加后,干扰导致数据乱飞
λ = − ∞ \lambda=-\infty λ=−∞惩罚项几乎失效
λ \lambda λ越大,说明越考虑模型的复杂度
λ \lambda λ为了控制模型复杂度,大 λ \lambda λ要求小模型复杂度。模型过于简单,可能导致欠拟合,从而误差增加(图1、2对比)
平时(训练) | 测试 | 意义 |
---|---|---|
+ | + | good-fit |
+ | - | 过拟合 |
- | + | — |
- | - | 欠拟合 |
测试集(testing set)
验证集(validation set)
比方说,在训练集上用 λ 1 \lambda1 λ1和 λ 2 \lambda2 λ2跑出f1,f2,可以用验证集再跑,从而在f1和f2中做出选择
留出法(hold-out):
常规操作:多次划分取平均值
K折交叉验证
注意事项:
K最常用取值是10, 其他常用取值是5和20
每个子集都尽可能保持数据分布的一致性.
为减小因样本划分不同而引入的差别, 一般采用若干次交叉验证, 如10
次10折交叉验证.
1 | 2 | 3 | … | k |
---|
k次k折交叉验证,需要 k k k^{k} kk次,开销过大。
其中特例——留一法(leave-one-out)
得到一个有限的训练数据集合
确定包含所有可能的模型的假设空间,即学习模型的集合
确定模型选择的准则,即学习的策略
实现求解最优模型的算法,即学习的算法
通过学习方法选择最优模型
利用学习的最优模型对新数据进行预测和分析
监督学习:垃圾邮件分类、房价预测
非监督学习:异常检测
半监督学习:标注语音
强化学习:Alpha GO
我们都想要 P ( y ∣ x ) P(y|x) P(y∣x)
判别式模型: 决策树、支持向量机
生成式模型:GAN
批量学习:一次性批量输入给学习算法,可以被形象 的称为填鸭式学习
在线学习:按照顺序,循序的学习,不断的去修正模 型,进行优化
主动学习:通过某种策略找到未进行类别标注的样本 数据中最有价值的数据,交由专家进行人工标注后, 将标注数据及其类别标签纳入到训练集中迭代优化分 类模型,改进模型的处理效果