机器学习基础知识
m 代表训练集(training set)中实例的数量
x 代表特征(feature)/输入(input) 变量
y 代表目标(target)/输出(output) 变量
(x,y) 代表训练集中的实例
h代表学习算法的模型,也称假设(hypothesis),
模型预测值和训练集中实际值之间的差距就是建模误差(modeling error)
代价函数
学习的过程就是使代价函数(cost function)最小
梯度下降
梯度下降是用来求函数最小值的算法,同样也适用于代价函数.
代价函数的梯度下降思想是:随机选择一个参数的组合
这个就是批量梯度下降的计算公式(batch gradient descent),其中
向量化
常规的写法:
向量的写法:
其中
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倍
用矩阵描述梯度下降
常规写法:
向量写法: