first week of machine learning on Coursera

first week of machine learning on Coursera

@(Coursera)
惯例是,先在Matlab/octava上实现算法原型,确定可用再迁移到其他编译环境。因为Matlab/octava集成了很多机器学习算法和常用的计算,对于算法实现速度很快,而且代码比较简单。


平方误差函数是解决回归问题最常用的代价函数(cost function)。
我们的目的是使我们作出的假设函数hypothesis function最接近于实际的训练集样本点集 (x,y) ,假设函数用 h(θ)=θ1x+θ0 表示衡量假设函数拟合训练样本的情况是通过代价函数来衡量的,代价函数用 J(θ) 来表示, J(θ) θ1 θ0 的函数。
所以我们的目的就是找到一组 θ1 θ0 ,使得 J(θ) 的值最小。
我们使用梯度下降法来寻找 θ1 θ0 的值。
梯度下降法的直观描述就是,当人在山顶,每次迈出一步长 α ,他可以选择任意方向来下山,但是需要以最短时间下山。那么肯定选择和自身位置等高线垂直的方向下山,此时正好是梯度下降的方向。

θj=θjαJ(θ0,θ1)θj(forj=0andj=1)

这里的 α 代表学习速率,也就是下山时的步长。
temp0: =θ0αJ(θ0,θ1)θ0
temp1: =θ1αJ(θ0,θ1)θ1
θ0:=temp0
θ1:=temp1
通过梯度下降不断的更新 θ0θ1 ,知道 J(θ) 收敛为止。如下图的 J(θ) 是个凸函数(Convex function)它收敛时为全局最小值。
步长太大可能会导致无法收敛:
![Alt text](./屏幕快照 2017-09-23 下午7.14.33.png)


线性模型时:
假设函数 hθ(xi)=θ1x+θ0
成本函数cost function: J(θ0,θ1)=12mmi=1(hθ(xi)yi)2
这里为什么乘以 12m 系数呢,乘以 1m 是使用均方误差来衡量平方误差,这是数理统计中经常使用的方法;乘以 12 是因为后续对 J(θ0,θ1) 求导时会多出个2,用 12 来抵消,是式子看起来更简便。因为我们的目的就是求cost function最小化时的 θ0θ1 ,前面乘以个系数并不影响。
此时,

θ0:θ0αddθ0J(θ0)=θ0α1mi=1m(hθ(xi)yi)

θ1:θ1αddθ1J(θ1)=θ1α1m(hθ(xi)yi)xi

Batch:表示步长,也称为学习速率,就是上式中的 α .


Vector:an N*1 matrix
矩阵计算:
单位矩阵(Identity matrix):对角线元素为1,其余元素为0的方阵。

I=100010001

矩阵乘法: A×BB×A
除非: A×I=I×A
矩阵的逆,当矩阵是个方阵时, m×m ,并且矩阵 A 存在逆矩阵,则满足
A×A1=A1×A=I

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值