机器学习 基础知识

m 代表训练集(training set)中实例的数量
x 代表特征(feature)/输入(input) 变量
y 代表目标(target)/输出(output) 变量
(x,y) 代表训练集中的实例
(x(i),y(i)) ( x ( i ) , y ( i ) ) 代表第i个观察实例
h代表学习算法的模型,也称假设(hypothesis), hθ(x)=θ0θ1x h θ ( x ) = θ 0 θ 1 x
θ θ 被称为参数(parameters)
模型预测值和训练集中实际值之间的差距就是建模误差(modeling error)
代价函数这里写图片描述
学习的过程就是使代价函数(cost function)最小
这里写图片描述

梯度下降
梯度下降是用来求函数最小值的算法,同样也适用于代价函数.
代价函数的梯度下降思想是:随机选择一个参数的组合 (θ0,θ1,...,θn) ( θ 0 , θ 1 , . . . , θ n ) ,计算代价函数,接着找一个能让代价函数值下降最多的参数组合,不断迭代.直到直到局部最小值(local minimum),因为没有尝试所有组合所以不能确定最小值是否是全局最小(global minimum).
这里写图片描述
这个就是批量梯度下降的计算公式(batch gradient descent),其中 α α 是学习速率(learn rate),学习速率随着越接近最小值,而变小(如果学习速率太大,则有可能越过最小值,使得代价函数发散)

向量化
常规的写法:
hθ(x)=nj=0θjxj h θ ( x ) = ∑ j = 0 n θ j x j
向量的写法:
hθ(x)=θTX h θ ( x ) = θ T X
其中 θ=[θ0,θ1,...,θn],X=[x1,x2,...,x3] θ = [ θ 0 , θ 1 , . . . , θ n ] , X = [ x 1 , x 2 , . . . , x 3 ]

In[2]: import numpy as np
  ...: from numpy.random import rand
  ...: from timeit import timeit
  ...: a = np.mat(rand(1,10000))
  ...: b = np.mat(rand(10000,1))
  ...: 
  ...: def matrix():
  ...:     a * b
  ...: timeit(matrix,number=100) # 矩阵写法
  ...: 
Out[2]: 0.009521265081375357
In[3]: a = [i for i in a.flat]
  ...: b = [i for i in b.flat]
  ...: 
  ...: def loop():
  ...:     sum = 0
  ...:     for i in range(len(a)):
  ...:         sum = sum + a[i]*b[i]
  ...: timeit(loop,number=100)  # 普通写法
  ...: 
Out[3]: 0.30903943240035536

矩阵的算法使得速度提高了进30倍

用矩阵描述梯度下降
常规写法:
这里写图片描述
向量写法:
这里写图片描述
这里写图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值