数据分析, 机器学习, 神经网络

机器学习的数学基础

1>本文主要介绍一些机器学习中用到的数学知识以及相应的python、matlab用法,包括微积分、线性代数和概率论的三个大类,分为基础篇和进阶篇两篇。因为我只是个菜鸟,所以水平有限,错漏在所难免,敬请指教。

一、基础篇

1. 矩阵运算

  • 矩阵加减:两个维度相同的矩阵可以进行相加减,相加(减)的结果等于矩阵中对应位置的元素相加(减)。

例:

python的numpy在进行矩阵的加减运算时,会进行广播(Broadcasting),将维度较小的矩阵向维度较大的矩阵进行扩展。
numpy的广播机制

  • 矩阵相乘:矩阵A与B相乘的方法是将矩阵A中的第i行元素与矩阵B中的第j列元素对应相乘,将乘积之和作为结果矩阵中的第(i,j)个元素。
    所以这里要注意两个相乘矩阵的维度关系,即A矩阵的行数要等于B矩阵的列数

例:

  • 矩阵点乘:矩阵对应元素相乘就是将两个维度相同的矩阵对应位置上的元素进行相乘。

例:

下面是一些常用的矩阵运算在matlab和python中的实现方法:

运算 matlab numpy
矩阵相乘 a3=a1*a2; a3=np.dot(a1, a2)
矩阵点乘 a3=a1.*a2; a3=a1*a2a3=np.multiply(a1, a2)
矩阵n次方 a2=a1.^n; a3=np.power(a1,n)
矩阵求逆 a2=inv(a1); a2=a1.I
矩阵转置 a2=a1'; a2=a1.T

参考:python的常见矩阵运算

2.矩阵的运算法则

3. 导数

对于函数f(x),假定其对向量的元素可导,则f(x)关于x的一阶导数是一个向量,其第i个分量为:

f(x)关于x的二阶导数是海森矩阵的一个方阵,其第(i,j)个元素为

向量和矩阵的导数满足乘法法则:

和上式,逆矩阵的导数可表示为:

其他的一些公式请参见:http://www2.imm.dtu.dk/pubdb/views/edoc_download.php/3274/pdf/imm3274.pdf