虽然这种“遇到问题解决问题”的学习方法会让人陷入短暂的自我否定之中,但是等到真正掌握了某个数学知识点,那种“久旱逢甘霖”的感觉会让人非常快乐。为了延续这种快乐,有的人从箱子里翻出了当年的高等数学、线性代数以及概率论与数理统计教材,但翻了几页之后又重归自我否定;还有的人会继续这种临时抱佛脚的学习模式,从而进入“盲人摸象”模式:了解了许多知识点,却始终不能形成完整的知识网络。
规划了详细的学习路径——从基础的向量计算到最终的神经网络训练,基本涵盖了业务工程师和初级算法工程师所需了解的所有数学知识。写作基于大量的代码片段,且以Jupyter Notebook 为载体,可以直接把学到的数学知识转化为代码。为各章添加了大量的练习。这些练习既有开放式的提问,又有针对正文内容的扩展和提升。学习曲线十分平缓,并且章节之间环环相扣。最关键的是,它能帮你通过代码来学习数学,并且用包含数学知识的代码来解决实际问题。
我参考的学习资料:
《程序员数学用Python学透线性代数和微积分》中文PDF,869页,有详细书签目录,文字可以复制;《程序员数学用Python学透线性代数和微积分》英文PDF,692页,有详细书签目录,文字可以复制;配套源代码;
下载: https://pan.baidu.com/s/1TPxbw-OaKF0w7OklzGbtcg?pwd=fcjq
提取码: fcjq
多维空间:你可能对二维(2D)和三维(3D)这两个词的意思有一些直观的了解。我们生活在一个三维世界里,而二维世界是平面的,就像一张纸或一面计算机屏幕。二维世界中的一个具体位置可以用两个数(通常称为x 坐标和y 坐标)来描述,而在三维世界中则需要3 个数来定位一个位置。我们无法想象一个17 维的空间,但可以用包含17 个数的列表来描述其中的点。像这样的数字列表被称为向量,向量数学有助于更好地阐述“维度”这一概念。
函数空间:有时,一个数字列表可以指定一个函数。举个例子,有两个数a = 5 和b = 13,就可以创建一个形式为f (x) = ax + b 的(线性)函数。在这种情况下,函数就是f (x) = 5x+ 13。对于二维空间中的每一个点(表示为坐标(a, b)),都有一个线性函数与之对应。所以可以把所有线性函数的集合看作一个二维空间。
导数和梯度:测量函数变化率的微积分运算。导数可以反映当输入值x 变大时,函数f (x)增大或减小的速度。在三维空间中,函数可能看起来像f (x, y),当改变x 或y 的值时,它的值会增大或减小。把(x, y)对看作二维空间中的点,也许你会问,在这个二维空间中,朝哪个方向走能使f 增大得最快。梯度给出了答案。