deeplearning 打卡第四天_线性代数基础_1
来源:互联网 发布:上海高级美工培训 编辑:程序博客网 时间:2024/05/21 18:47
本系列内容是对于Deep Learning一书的研读心得,将会在尊重原著及版权的基础上,加入一部分critical thinking。阅读请尊重Deep Learning原著版权。本系列欢迎评论转载,请注明出处。
本文中图片来源于原书Deep Learning,只用于学习交流,不得用于商业目的。
在近期的几次博客中,将会讲述机器学习,尤其是深度学习需要的应用数学基础。内容是基于原书Deep Learning,但是并不做全面的记录,而是重点讲述大学数学教育要求之外的部分,以及对容易遗忘的想法与技巧做一下拾遗。
本次是线型代数部分(linear algebra),由于线性代数部分内容在后续内容中都较为重要,所以分为两节梳理:
在下述讲解中,均视为维数相同的列向量,为任意方阵,为正交矩阵,为与之同阶的单位矩阵。
1.向量点积的转置与位置转换
注意到两个向量的点积已经变为标量了,而对标量而言,转置并不改变其值的任何属性。所以,对矩阵乘法中已经变为标量的部分,可以对整体做转置而不改变它的值,也可以对整体移动其在整个乘法算式中的位置(相当于系数)。
例如:
再如:
2.正交矩阵
这是一类性质非常好的矩阵,其定义是,满足行与列皆为相互正交的单位向量的方阵。从而有如下性质:
并使得计算它的逆变为了一件耗费非常低的事情:
关于正交矩阵的行列式,同时有如下性质:
3.范数
向量和矩阵的范数(norm),是用于衡量其规模(size)的重要指标。在数学中,满足正定性,正齐次性以及三角不等式的函数都可以被称为范数。
在机器学习中,经常用到的范数有用于向量的范数、范数,习惯性称呼为范数的特殊“范数”,以及矩阵的Frobenius范数。
范数可以表示为:
其中,是我们常用的范数,分别为绝对值求和与平方求和。
是范数定义中的所得的结果,写为表达式即:
还有一种特殊的“范数”,虽然一般意义上我们称之为范数,但其实它并非范数。它统计的是向量中非零元素的个数。
最后应当介绍矩阵的Frobenius范数,这是向量的范数在矩阵中的推广:
4.迹
方阵的迹(Trace)是主对角线上所有元素的和,也是所有特征值(eigenvalue)的和。
基于迹的定义,可知其满足线性性:
由于迹是所有特征值的和,所以,不改变矩阵特征值的操作也都不改变迹。应当注意到,矩阵特征值不变是迹不变的充分不必要条件。
同时,在矩阵乘法中,将一系列相乘的矩阵的末尾矩阵交换到首位,是不改变迹的值的:
这种操作,即使对于交换后计算得到的阶数不同的矩阵也是成立的。
迹还有一种非常重要的用途,即在省略求和符号和矩阵元素表示的前提下,能够仅使用迹和矩阵乘法就表示一些特别的操作,如Frobenius范数:
matrix calculus:一个补充主题
不得不承认这是国内高等数学教育的短板。数学技巧与数学训练的难度确实非常重要,证明的构建确实是非常重要,但是,高等数学教育,更应该考虑到学高等数学的理工科学生的现状,同应用数学的需要接轨。
尤其是这个符号系统,简直没有办法吐槽了。明明已经把原理讲清楚了,却非要用一套自以为“形象化”却实际上繁琐得不得了的记号。学生对高数下册的考试无力吐槽不说,跟实际应用或者科研层的符号系统也接不上轨。
欧洲大陆的微积分最终超过了微积分的发源地英国,不得不承认,莱布尼兹发明的记号系统是发挥了很大的作用的。讲述同样内核的记号系统,越简单越接近本质就越应该被推广。这一点国内高等数学教育真的是要向国外好好学习。
这里空间有限,就写两种通用的写法之间的转换:
推荐一本很好的工具书,matrix cookbook。同时嵌入进博客,可以直接查看:
- deeplearning 打卡第四天_线性代数基础_1
- deeplearning 打卡第二天_深度学习趋势_1
- 线性代数_廖艾贤_1
- 打卡第四天
- deeplearning 打卡第三天_深度学习趋势_2
- android基础_第四天
- 黑马程序员_基础加强_1
- python_学习笔记_基础练习_1
- 【web++_第四阶_Ui_导航、照片轮播_1】
- 【web++_第四阶_中间学习阶段_学习security始于这两篇_1】
- 机器学习:LDA_数学基础_1:贝叶斯数学_基础
- JAVA基础第四天学习日记_数组
- Deeplearning学习之路_第四章(Self-Taught learning&deep networks)
- 【web++_第四阶段_精美网页设计专题篇_1】
- 【web++_第四阶段_(security后)学做精美前台_1】
- 机器学习笔记_数学基础_4-线性代数
- 【web++_第四阶_中间学习阶段_百度富文本编辑器_主要还是按照笔记来_1】
- 黑马程序员_Java基础_前期准备01_1
- sqlhelper重构
- poj-3641(Pseudoprime numbers)
- system.exit(0) system.exit(1) 含义与区别
- 从百度统计看到的一些有意思的事情
- linux socket实现内核态和用户态通信
- deeplearning 打卡第四天_线性代数基础_1
- Android与H5的交互
- HRBUST1315-火影忍者之~大战之后
- 简单易用的json解析,json生成器和基于JSONArray和JSONObject for Android的数据存储
- 2017.3.5
- 关于GetWindowTextA()和GetWindowTextW()和GetWindowText()的区别
- Dijkstra算法详解
- hdu5078 Osu!
- 十道海量数据处理面试题与十个方法大总结