V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
q7695650
V2EX  ›  Python

自学人工智能之数学篇,数学入门并不难

  •  3
     
  •   q7695650 · 2018-08-22 14:43:34 +08:00 · 2512 次点击
    这是一个创建于 2275 天前的主题,其中的信息可能已经有所发展或是发生改变。

    写这篇文章很久想了很久,到底该怎么写?

    关于数学与机器学习的关系,观点很多。

    写本文的目的,希望结合众家之长,试图解决数学对机器学习入门的困扰。

    现在数学困扰大家主要有这几个方面:

    1、 机器学习需要的数学知识是不是很难,网上的公式都看不懂?

    2、 很多人都说工作后就是调参,调包,不太需要用到数学吧?

    3、 零基础究竟该怎么自学数学,学到哪个程度?

    观点: 1、数学是必须的。

    数学对于机器学习来说是必备基础,数学是内功,你要理解一个算法的内在逻辑,没有数学是不行的。以后跑算法的时候,你可能就是调参、调包,不会用到数学。但是你发现效果不好的时候,如果你数学不懂,就很难作优化,数学是你在机器学习路上的天花板。

    2、数学也不是很难。

    但是,数学真的很难吗?说实话,对于一般人来说,是有点门槛的,但没有你想的那么难。这里假设你上过大学的数学课,你就具备了机器学习的数学入门门槛了,之后的数学啃一啃是可以下来的。如果说你没有上过大学的数学,emmm,挺难的,这说明你除了跟别人付出同样的努力之外,还要多付出一些大学数学的学习。

    3、 相比于数学,实际项目能力更重要。

    这句话没错,可是大部分人在没接触到实际项目的时候,就已经被挡在门外了。很多从事机器学习的你问他数学,他可能也不是很懂,可是你能咋办。人家面试你的时候就要问你这些,问你对算法的理解,你不会那你就过不了面试啊。

    4、 学习是枯燥的,但是有办法缓解。

    在学习算法的时候,我们会看到很多推导,学着学着就怕了,就失去兴趣了,这里有个方法可以有效缓解。我之前的系列中有本书叫做机器学习实战,跟着上面的代码敲一敲,很容易出成果,你会看到在现实中的实际应用,很有成就感。

    5、 数学的学习是可以“取巧”的

    这里说的取巧指的是,数学的学习是有迹可循的,因为入门阶段的数学实际上就需要那些,列出来,你自己啃一下就可以了。具体的学习方法不是等你把数学都学好了再去学算法知识。而是你在学习算法的时候,看到你数学缺哪块再去补哪块,这是最高效的。当然了,在这之前你可以通读一遍数学的基础,对学习有个大概是更好的。

    数学必备知识点 1、 线性代数

    标量、向量、矩阵和张量;矩阵向量的运算;单位矩阵和逆矩阵;行列式;方差,标准差,协方差矩阵;范数;特殊类型的矩阵和向量;特征分解以及其意义;奇异值分解及其意义

    Moore-Penrose 伪逆;迹运算

    2、 概率统计

    概率学派和贝叶斯学派;何为随机变量和何又为概率分布;条件概率,联合概率和全概率公式;边缘概率;独立性和条件独立性;期望、方差、协方差和相关系数;常用概率分布;贝叶斯及其应用;中心极限定理;极大似然估计;概率论中的独立同分布

    3、 优化

    计算复杂性与 NP 问题;上溢和下溢;导数,偏导数及两个特殊矩阵;方向导数和梯度;梯度下降法;牛顿法;仿射集,凸集和凸锥;超平面,半空间及凸集分离定理;不改变凸性的运算;凸函数及凸优化简述;无约束的优化,等式约束优化,不等式约束优化;线性规划中对偶理论;拉格朗日对偶理论

    4、 信息论及其他

    信息熵;条件熵;相对熵 (KL 散度);互信息;几种常用的距离度量;图论;树论

    上面数学基本上就是我们所要学的数学的全部了,看上去有点吓人是不?不要慌,没有那么难,一点点啃下去就可以了。

    推荐资料: 资料一:机器学习王牌课程 CS229 课后配套数学,专门配套机器学习的。

    链接: https://pan.baidu.com/s/1Fh__7N7rqGEgjsyb4YpNSg 密码:48n4

    资料二:Yoshua Bengio 的《深度学习》书,网上公开的,前面有一部分是对数学的专门讲解,很基础很全面。

    链接: https://pan.baidu.com/s/1A9mcO8_ORQmTJ-V7z9bLdw 密码:hwjn

    资料三:知乎答主的优秀回答,很细致,适合初学者

    线代专栏: https://zhuanlan.zhihu.com/p/30191876

    概率统计: https://zhuanlan.zhihu.com/p/30314229

    优化(上): https://zhuanlan.zhihu.com/p/30383127

    优化(下): https://zhuanlan.zhihu.com/p/30486793

    信息论及其他: https://zhuanlan.zhihu.com/p/30383356

    我看过很多数学材料,上面三个是我总结过来最好的,必看。但是每个人基础不同,可能看完上面三个后,还是有需要去看别的。

    数学实在太弱怎么办? 如果你上面三个材料看起来很吃力,或者说你的数学没有达到大学的水平。那就是数学基本功的问题了。针对这种情况,我觉得只能把相关的大学数学书拿出来翻一翻,基本概念要弄懂,什么是矩阵、导数等等,偷不了懒。

    1、数学分析与概率论

    同济大学数学教研室,高等数学,高等教育出版社,1996

    王松桂、程维虎、高旅端,概率论与数理统计,科学出版社,2000

    2、矩阵和线性代数

    同济大学数学系编,工程数学线性代数(第五版),高等教育出版社 2007

    以上三本数学书,如果你对基础概念忘了的话,可以选择性看下相应的篇章。

    重申: 最好的数学学习方式是边学边补,没必要百分之百看懂数学的推导过程,初级阶段懂个 70%也就够了,有些实在太难的,就没必要钻牛角尖了。网上动辄看到几百块钱的数学教程,希望大家不要被割智商税。 讨论学习,文章发布,公众号:learningthem

    2 条回复    2018-08-25 09:16:52 +08:00
    q7695650
        1
    q7695650  
    OP
       2018-08-24 12:49:59 +08:00
    点的人还挺多,哈哈哈
    zycode
        2
    zycode  
       2018-08-25 09:16:52 +08:00 via Android
    感谢 LZ 的文章,之前一直对怎么补数学线路迷糊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5842 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 06:11 · PVG 14:11 · LAX 22:11 · JFK 01:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.