学机器学习有必要懂数学吗?深入浅出机器学习与数学的关系附教程

  • 随着AI资源越来越丰富,网上po出了越来越多的机器学习路线,机器学习攻略,这些路线攻略五花八门,却都有一个共同点,最基础的是数学和编程语言。编程语言作为基础,很好理解,机器学习是靠程序来完成的嘛,当然要学会编程语言啦~但是,为什么要学数学呢?还不是一门数学,最起码的也要包括微积分、线性代数、概率论、统计学,更不用说什么凸优化、数值计算、运筹学等等,在高中时期被数学折磨的阴影还留存着,不禁想要大声问一句:在机器学习中,这些数学都是做什么的啊?为什么一定要学这些数学呢?
  • 首先我们要知道,机器学习理论是一个涵盖统计、概率、计算机科学和算法方面的领域,该理论的初衷是以迭代方式从数据中学习,找到可用于构建智能应用程序的隐藏洞察。尽管机器学习和深度学习有巨大的发展潜力,但要深入掌握算法的内部工作原理并获得良好的结果,就必须透彻地了解许多技术的数学原理。搞清楚这些数学原理,可以帮助我们:选择正确的算法、选择参数设置和验证策略、通过理解偏差-方差权衡,识别欠拟合和过拟合、估算正确的置信区间和不确定性。
学机器学习有必要懂数学吗?深入浅出机器学习与数学的关系附教程
  • 从上面的图可以看出,普遍认为线性代数、微积分、概率论、统计学是比较重要的四块内容,首先可以告诉大家的是,统计学是核心,微积分告诉我们怎样学习和优化模型,线性代数使得算法能在超大型数据集上运行,概率论帮我们预测某个事件发生的可能性。那么我们举个简单的栗子来告诉大家这四块是如何在机器学习中起作用的。
学机器学习有必要懂数学吗?深入浅出机器学习与数学的关系附教程
  • 举个栗子
  • 我们来预测某个小区的房价,假设我们得到了一个数据集,包含每间房子的每平方英尺价格和这间房子的整体价格,直觉上告诉我们这两列数据之间有着某种关联,我们可以尝试建立预测模型,探讨这两列数据之间是何种关联,将来如果我们有了一套房子每平方英尺的价格,就可以预测它的整体价格。
学机器学习有必要懂数学吗?深入浅出机器学习与数学的关系附教程
  • 统计学
  • 我们可以把两列数据的化成散点图,然后尝试用统计学中的线性回归来总结和研究这两个变量之间的关系。其中一个变量x看作为独立变量,另一个变量y则看作为因变量。我们表示线性回归的方式就是使用等式:y=mx+b。y是预测值,x是输入,b是这条线和y轴交汇的数据点,m是直线的斜率。
学机器学习有必要懂数学吗?深入浅出机器学习与数学的关系附教程
  • 我们已经知道x的值,y是我们的预测值,如果我们也有m和b的值,很容易能计算出预测值。但问题是怎样得到这些值?我们可以一遍又一遍地尝试,随着时间推移来找到最合适的那条线,但是这样效率太低了。另一种方法是,我们其实知道m和b存在一些理想的值,用它们可以画出这条线,能以最佳程度拟合我们的数据集。我们需要某种方法来衡量这些值的合适程度,所用的方法就叫做误差函数。误差函数会告诉我们实际的y值和我们的预测值之间的差距,有很多不同类型的统计学误差函数,但我们只尝试一种叫做最小平方误差的简单函数。
学机器学习有必要懂数学吗?深入浅出机器学习与数学的关系附教程
  • 我们可以用这个函数来确认预测值和实际公寓价格之间的差距,它会将每个预测值从实际值中减去,然后求出差值的平方值,我们有m个数据点,所以误差值也有m个,这是我们的全部误差值。
学机器学习有必要懂数学吗?深入浅出机器学习与数学的关系附教程
  • 微积分
  • 我们现在可以创建一个三维图,我们知道x轴和y轴,它们分别代表了所有可能的m值和y值,但是我们再添加一个z轴,在z轴上会是m和b的每种组合的全部可能误差值。如果想把这些数据画出来,就会得到一个这样的图形。跟一个口袋一样,我们要找到这个口袋的最底部,也就是最小误差值,这些就是最理想的m值和b值,根据它们就能得到最合适的直线。但是怎样才能找到它们呢?这里就需要借助数学知识了。
学机器学习有必要懂数学吗?深入浅出机器学习与数学的关系附教程
  • 微积分,一门研究变化的学科。它有一种叫梯度下降的优化方法,能以迭代的方式帮我们找到最小值。它会用给定数据点的误差来计算未知变量的称为“梯度”的值,我们再用梯度来更新m和b两个变量。
  • 然后我们换到下个数据点,一遍又一遍地重复这个过程,就跟一个小球在口袋里边慢慢滚动一样。这样就能找到最小值。看吧,微积分可以帮我们发现数值变化的方向。比如我们应该往哪个方向调整位置变量m和b的值,从而得到最理想的预测值,即误差最小。
  • 线性代数
  • 但房间价格不仅仅依赖每平方英尺价格这个因素,还包括很多其他特征,比如卧室数量,浴室数量,以及一英里内房屋的均价等。如果我们把这些特征都包括进来,那么回归线会变成这样,就需要考虑多个变量,所以我们可以把它叫做多元回归问题。研究多元空间以及多元空间之间线性转换的数学学科,就叫做线性代数。
学机器学习有必要懂数学吗?深入浅出机器学习与数学的关系附教程
  • 线性代数中有很多运算公式,我们可以用称之为矩阵的数字来执行这些运算。现在我们的训练集就变成了一个m*n矩阵,m个样本有n个特征。这里不再是有一个权重的单个变量,而是每个特征都有一个权重。
学机器学习有必要懂数学吗?深入浅出机器学习与数学的关系附教程
  • 概率论
  • 以上就是这三大数学分支在机器学习中的应用示例,那么第四个学科概率论呢?我们从头再说说这个例子,加入我们不是预测房子的价格,而是预测房子是否处于最佳时期,是否值得入手。我们希望能分类一套房子处于或不处于最佳时期的概率,概率用于衡量某件事的可能性,我们可以用叫做逻辑回归的概率论方法帮我们确定概率,因为我们的数据是可分类的。
学机器学习有必要懂数学吗?深入浅出机器学习与数学的关系附教程
  • 它有不同的种类或者类别。我们不再是预测具体值,而是预测事件发生的概率。因为概率会在0 和100之间,我们无法使用能无穷延伸的直线,而是用一些阈值。输入一些数据点x,多半就能确定房子是否处于最佳时期。
学机器学习有必要懂数学吗?深入浅出机器学习与数学的关系附教程
  • 我们会用一个S型曲线,即S型函数来完成这一步。等优化完函数后,放入输入数据,就能得到一个概率性的类别值,就是这样。
  • 总 结
学机器学习有必要懂数学吗?深入浅出机器学习与数学的关系附教程

我们再回顾一下,机器学习包含了统计学,微积分,线性代数和概率论知识,关系如下:

  • 微积分告诉我们怎样优化
  • 线性代数让算法适用于大型数据集
  • 概率论帮我们预测某个特定输出的可能性
  • 统计学则表明是不是我们的目标

下面我给大家准备了一套机器学习从入门道精通的教程视频,希望大家能够喜欢,仅限前100名:

学机器学习有必要懂数学吗?深入浅出机器学习与数学的关系附教程

获取方式关注转发文章之后私信小编“学习”就可以拿到了~~~

每天干货满满,大家可以持续关注~

感谢大家支持!

相关推荐