吴恩达机器学习笔记(一)
标签(空格分隔): 机器学习
- 吴恩达机器学习笔记一
- 一机器学习简介
- 代价函数cost function
- 二梯度下降和线性回归gradient descent and linear regression
- 梯度下降
- 多变量梯度下降
- 特征标准化变量归一法feature normalization
- 关于alpha学习速率
- 正规方程normal equations
- 三实际使用中重要的几个式子
一.机器学习简介
1.机器学习的定义
对于一个程序,给它一个任务T和一个性能测量方法P,如果在经验E的影响下,P对T的测量结果得到了改进,那么就说该程序从E中学习
分类 |
内容 |
例子 |
监督学习 |
回归 在已有数据中寻找规律,解决类似问题。 |
预测房价 |
无监督学习 |
聚类,独立组件分析寻找混合数据之间的区别进行分类。 |
区分声音 |
强化学习 |
回报函数,自我学习优化算法。 |
机器人运动。 |
作业软件:Matlab/Octave
2.监督学习
在监督式学习中,我们给了一个数据集,并且已经知道我们的正确输出应该是什么样子,并且有输入和输出之间有关系的想法。
监督学习问题分为“回归(classification)”和“分类(regression)”问题。
- 在回归问题中,我们试图预测连续输出中的结果,这意味着我们试图将输入变量映射到某个连续函数。
- 在分类问题中,我们试图预测离散输出的结果。意味着我们将输入变量映射到离散类别。
3.非监督学习
- 无监督的学习使我们能够很少或根本不知道我们的结果应该是什么样子。
- 我们可以从数据中推导出结构,我们不一定知道变量的影响。
- 我们可以通过基于数据中变量之间的关系对数据进行聚类来推导出这种结构。
- 在无监督学习的基础上,没有基于预测结果的反馈。
例:
回归与分类的区分
* 当我们试图预测的目标变量是连续的,比如在我们的住房例子中,我们把学习问题称为回归问题。
* 当y只能接受少量的离散值时(比如,如果考虑到居住面积,我们想要预测一个住宅是房子还是公寓),我们称之为分类问题
代价函数cost function
J(θ0,θ1)=12m∑i=1m(yi~−yi)2=12m∑i=1m(hθ(xi)−yi)2
这个函数被称为“平方误差函数”或“均方误差”。
平方项求导有常数2,增加1_2系数,以方便计算梯度下降。
示例:
假设(hypothesis):
hθ(x)=θ0+θ1x
参数(parameter):
θ0,θ1
代价函数(cost function):
J(θ0,θ1)=12m∑i=1m(yi~−yi)2=12m∑i=1m(hθ(xi)−yi)2
对于多变量还可以写做:
J(θ)=12m(Xθ−y⃗ )T(Xθ−y⃗ )(重要)
目标(goal):
minimizeJ(θ0,θ1)
二:梯度下降和线性回归(gradient descent and (linear regression))
1.梯度下降
重复运算直至收敛:(alpha为学习速率(learning rate))
θj:=θj−αααθjJ(θ0,θ1)
同时对两个theta赋值:
temp0=θ0−αααθ0J(θ0,θ1)
temp1=θ1−αααθ1J(θ0,θ1)
然后将temp赋值给theta循环运行直至算法收敛
逆矩阵:m*m的矩阵与其逆矩阵相乘为单位矩阵 (identity matrix)
AA−1=I
转置4 877777777777777矩阵:
A=⎡⎣⎢acebdf⎤⎦⎥AT=[abcdef]
输入的变量:
- n:特征(feature)数量
- m: 训练集数量
- x(i)= 第i个训练集
- x(i)j= 第i个训练集第j个特征的参数
- hθ(x)=[θ0θ1⋯θn]⎡⎣⎢⎢⎢x0x1⋯xn⎤⎦⎥⎥⎥=θ
2.多变量梯度下降:
重复运行直至收敛:{
θj:=θj−α1m∑i=1m(hθ(x(i))−y(i))⋅x(i)j(for j:=0...n)
}
变量形式可以写作:
θ=θ−αmXT(Xθ−y⃗ )(重要)
3.特征标准化、变量归一法(feature normalization):
防止变量数值差距过大难以收敛,将数据可以缩放到一个合适的范围
xi=xi−uisi
ui 是数据的平均值,
si 是数值的范围(最大值-最小值),或者是标准差
例如:如果数据范围为100~2000,平均值为1000
则:
xi=xi−10001900
mean(X(:,i))与std(X(:,i))可以分别计算第i列的X矩阵的平均数与平方差
4.关于 α 学习速率:
如果 α 过大,那么 J(θ) 可能越来越大甚至不收敛
如果 α 过小,那么 J(θ) 迭代速率会非常慢
一般认定如果 J(θ) 迭代中下降小于一个值,例如1e-3,则判定函数收敛,但是实际应用中很难确定一个合适的判定范围
5.正规方程(normal equations)
类似与一元二次方程对方程直接求导找到最小值
θ=(XTX)−1XTy(重要)
- X为m*(n+1)的矩阵
- y是表达结果的一个m*1的矩阵
如果使用正则方程则不需要进行变量归一化
梯度下降法 |
正则方程法 |
需要选择 α |
不需要选择 α |
需要多次迭代 |
不需要多次迭代 |
当特征值很多时很有效(约为 O(Kn2) |
当特征特别多时运算非常慢(约为 O(n3) ) |
* 当n< 105 使用正则方程
* 当n> 108 使用梯度下降
如果发现矩阵X不可逆,则查看是否矩阵中有冗余特性,删除其一即可
如果特征太多,则删除一些特征或者使用正则化
三.实际使用中重要的几个式子:
J(θ)=12m(Xθ−y⃗ )T(Xθ−y⃗ )(cost function)
θ=θ−αmXT(Xθ−y⃗ )(gradient descent)
θ=(XTX)−1XTy(normal equations)
xi=xi−10001900(feature normalization)
mean(X(:,i))与std(X(:,i))可以分别计算第i列的X矩阵的平均数与平方差
附上作业答案下载地址(包含附加题)