李宏毅老师的机器学习视频是机器学习领域经典的中文视频之一,也被称为中文世界中最好的机器学习视频。李老师以幽默风趣的上课风格让很多晦涩难懂的机器学习理论变得轻松易懂,并且老师会通过很多有趣的例子结合机器学习理论在课堂上展现出来,并且逐步推导深奥的理论知识。比如老师会经常用宝可梦来结合很多机器学习算法。对于想入门机器学习又想看中文讲解的人来说绝对是非常推荐的。
内容:
1.Regression
Regression 就是找到一个函数 functionfunction ,通过输入特征 xx,输出一个数值 ScalarScalar。
应用举例
股市预测(Stock market forecast)输入:过去10年股票的变动、新闻咨询、公司并购咨询等
输出:预测股市明天的平均值
自动驾驶(Self-driving Car)输入:无人车上的各个sensor的数据,例如路况、测出的车距等
输出:方向盘的角度
商品推荐(Recommendation)输入:商品A的特性,商品B的特性
输出:购买商品B的可能性
Pokemon精灵攻击力预测(Combat Power of a pokemon):输入:进化前的CP值、物种(Bulbasaur)、血量(HP)、重量(Weight)、高度(Height)
输出:进化后的CP值
模型步骤
step1:模型假设,选择模型框架(线性模型)
step2:模型评估,如何判断众多模型的好坏(损失函数)
step3:模型优化,如何筛选最优的模型(梯度下降)
2.误差
3.梯度下降
在回归问题的第三步中,需要解决下面的最优化问题:
θ∗=argθ minL(θ)
L :lossfunction(损失函数)
θ :parameters(参数)
这里的parameters是复数,即 θ 指代一堆参数,比如上篇说到的 w 和 b 。
我们要找一组参数 θ ,让损失函数越小越好,这个问题可以用梯度下降法解决:
假设 θ 有里面有两个参数 θ1,θ2 随机选取初始值
θ0=[θ1;θ2]
然后分别计算初始点处,两个参数对 L的偏微分,然后θ0 减掉η 乘上偏微分的值,得到一组新的参数。同理反复进行这样的计算。黄色部分为简洁的写法,▽L(θ) 即为梯度。
η 叫做Learning rates(学习速率)
4.logistic回归
Step1 逻辑回归的函数集
上一篇讲到分类问题的解决方法,推导出函数集的形式为
将函数集可视化:
这种函数集的分类问题叫做 Logistic Regression(逻辑回归),将它和第二篇讲到的线性回归简单对比一下函数集:
Step2 定义损失函数
上图有一个训练集,每个对象分别对应属于哪个类型(例如 x^3x3 属于 C_2C2 )。假设这些数据都是由后验概率 f_w,_b(x)=P_w,_b(C_1|x)fw,b(x)=Pw,b(C1∣x)产生的。
给定一组 w和b,就可以计算这组w,b下产生上图N个训练数据的概率,
L(w, b) = f_{w,b}(x^{1})f_{w,b}(x^{2}) \left( 1-f_{w,b}(x^{3}) \right) \cdots f_{w,b}(x^{N}) \qquad (1-1)L(w,b)=fw,b(x1)fw,b(x2)(1−fw,b(x3))⋯fw,b(xN)(1−1)
对于使得 L(w,b)最大的w和 b,记做w^∗w∗ 和b^∗b∗ ,即:
w^∗,b^∗=arg max_w,_bL(w,b)w∗,b∗=argmaxw,bL(w,b)
将训练集数字化,并且将式1-2中求max通过取负自然对数转化为求min :
然后将 −lnL(w,b)−lnL(w,b) 改写为下图中带蓝色下划线式子的样子:
图中蓝色下划线实际上代表的是两个伯努利分布(0-1分布,两点分布)的 cross entropy(交叉熵)
假设有两个分布 p 和 q,如图中蓝色方框所示,这两个分布之间交叉熵的计算方式就是 H(p,q)H(p,q);交叉熵代表的含义是这两个分布有多接近,如果两个分布是一模一样的话,那计算出的交叉熵就是熵
交叉熵的详细理论可以参考《Information Theory(信息论)》,具体哪本书我就不推荐了,由于学这门科目的时候用的是我们学校出版的教材。。。没有其他横向对比,不过这里用到的不复杂,一般教材都会讲到。
下面再拿逻辑回归和线性回归作比较,这次比较损失函数:
Step3 寻找最好的函数
下面用梯度下降法求
要求−lnL(w,b)−lnL(w,b)对 w_iwi的偏微分,只需要先算出lnf_w,_b(x_n)lnfw,b(xn) 对 w_iwi的偏微分以及 ln(1−f_w,_b(x_n))ln(1−fw,b(xn))) 对 w_iwi的偏微分。计算lnf_w,_b(x_n)lnfw,b(xn) 对w_iwi偏微分,f_w,_b(x)fw,b(x)可以用\sigma{(z)}σ(z)表示,而z可以用w_iwi和 b表示,所以利用链式法则展开。
计算 ln(1−fw,b(x_n))ln(1−fw,b(xn)) 对 w_iwi 的偏微分,同理求得结果。
将求得两个子项的偏微分带入,化简得到结果。
现在 w_iwi 的更新取决于学习率 η ,x^n_ixin 以及上图的紫色划线部分;紫色下划线部分直观上看就是真正的目标 y^n yn与我们的function差距有多大。
下面再拿逻辑回归和线性回归作比较,这次比较如果挑选最好的function:
链接:https://aistudio.baidu.com/aistudio/course/introduce/1978
666
可以说是很棒了