机器学习公开课笔记(2):多元线性回归
多元线性回归
一元线性回归只有一个特征,而多元线性回归可以有多个特征
假设 (Hypothesis):
参数 (Parameters):
代价函数 (Cost function):
目标 (Goal):
梯度下降 (Gradient Descent)
迭代更新参数: for
向量化实现 (Vectorized Implementation):
Feature Scaling
动机:如果不同特征之间的数值量级差别太大,那么梯度下降的速度非常慢,为了加快算法的收敛速度,将各个特征划归到统一数量级,一般是[0, 1]或者[-1, 1]之间
Trick1: , 其中 表示第j个特征的均值, 表示第j个特征的范围(max - min)或者标准差(standard deviation)
Trick2: 学习速率的选择
- 合理的选择学习速率,保证的值在每一次迭代后都是下降的;
- 如果随迭代次数单调递增或者随迭代次数成波浪形(例如: \/\/\/\/\/\/), 这时候应该考虑选择较小的; 但是太小会导致收敛速度过慢
- 为了正确的选择 ,尝试序列 0.001, 0.01, 0.1, 1等
Normal Equation的数学推导
解析推导过程:
可以简化写成向量的形式:
展开可得:
注意到是一个标量,因此它与其转置是相等的,即中间两项是相等的,从而可以进一步化简为:
对向量的求导与单变量的求导法则有诸多不同,这里不加证明给出如下两个重要的向量求导结论(具体可参照向量矩阵求导)
根据结论(1), 第一项的求导结果为; 根据结论(2),第二项的求导结果为;第三项不含,求导结果当然为0,整合三项我们可以得到的导数,
令该导数等于0,我们很容易得到
这就是使得代价函数取得最小值对应的。
梯度下降和Normal Equation优劣对比
Gradient Descent | Normal Equation |
需要选择合适的 | 不需要选择 |
需要不断的迭代 | 不需要迭代 |
当特征非常多时(n非常大),算法依然表现良好 | 当n非常大时,计算速度非常慢,因为需要计算复杂度为 |
参考文献
[1] Andrew Ng Coursera 公开课第二周
标签:
机器学习
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
2011-12-16 【算法23】把字符串转换成整数