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