写在前面一些东西:我是一个转行的人,也是一个小白,写这些东西既是为了记录回顾自己所学,同时也是给刚入门的同学一点信心和冲劲,正如亮剑中李云龙所说,我们要敢于亮剑,不管前方道路有多么艰难困苦,我相信我们的坚持和努力能够克服
本帖会持续更新,记录自己一路走过的学习之路,如果有人能够从中获取点什么,也算是我的万分荣幸。另外 本帖中出现的所有课程资料我均已购买正版或为免费资源,如有侵权,请告知
这是成为一个成熟的AI算法工程师所必需的知识框架,当然大家也不要太过紧张,短时间内肯定不可能都学完,下面是我的学习之路,仅做参考,后续成长的过程中继续对自己进行补充升级。
这个地方也是我踩的坑之一,一开始总会显得比较迷茫,太多了,不知道开始学什么,这也学点那也学点,最后还是什么都不会,才痛定思痛,顺着一条路径开始学习,并且定了自己的细分领域,比如我想进入无人驾驶行业,细分下就是目标检测,这属于CV即计算机视觉,单单只学习前面的东西,是不够的,万丈高楼从地起,前面的都是地基,是方法,细分领域下还有工具,有更多具体问题的算法,正如周院士所说,算法没有优劣,具体问题的算法才有优劣,每一个细分领域的算法都是基础算法的改进再改进,但是万变不离其宗,如果基础不牢固,后面也听不懂,无从下手。我就是直接跳过了一些基础算法部分,直接去看SSD,YOLO,Faster RCNN这些经典算法发现看不懂,又回来补基础。
看一下学习路径吧,从小白入门开始,慢慢进阶,学到哪儿我就更新到哪儿,步步排雷,开拓道路,希望有一起学习的同学加入我,我们互相鼓励,共同进步
这是我学python的视频,大家可以另外找视频,也可以用这个,内容较多,请选择观看,不明白的请私信我
链接:https://pan.baidu.com/s/1K4ObShiou1ttOXkmD3u-1A
提取码:wed0
数学基础就是上面提到的那些,目前只用到了简单的微积分,线性代数(主要是矩阵思维,还有一些特殊矩阵的性质,比如对称矩阵,忘记了的不要慌,我也忘记了,重新翻一下,静下心来,大概几个小时就可以了,大家可以找本书看一下),概率论与数理统计(基础建设,深度学习很多东西都是基于概率来的,从头到尾即符号意义,古典概率开始到大数定理都需要掌握,静下心来,很快的,因为都是基础东西,不做很难的研究,先把原理搞懂再说,基础不牢地动山摇)。
比较重要的是导数,偏导,梯度下降原理,Beta函数(概率的概率分布),Taylor展开(多项式,我们解决的就是一个模型近似问题),我看的是王良老师的课程,是数学背景,大家有兴趣可以搜一下,我报的会员不需要钱,不知道正常看这个课需不需要钱,其个人博客为:https://wangliangster.github.io,我是转行的所以比较着急,想花点钱有人带着少走些弯路,资金有困难的同学可以自己看,都是基础知识,上学时间比较充裕
附上一个知乎专栏连接,讲机器学习中数学知识点的,你会了可以按这个复习,不会可能看不懂,但可以按照这个点去看相关知识点:https://zhuanlan.zhihu.com/p/36584206
还是那句话,基础不牢地动山摇,在这之前我已经看了比较久的深度学习了,但是遇到了一些瓶颈,让我的学习进度变得很慢,有些东西开始听不太懂了,心情也跟着烦躁了起来,干脆就针对性的复习数学知识,我下面所说都是我视频课程中的数学知识点,大家可以按照这个学习,应该够用,如果时间充裕,可以将基本数学课全部过一遍另算。
今天学习和复习的内容包括:导数,偏导,方向导数,梯度下降原理(为什么梯度下降最快,因为该方向的导数移动速度最快),Beta函数,Taylor展开,还有线代的一些知识,包括特征值与特征向量,方程组的解,PCA降维原理,主要是协方差矩阵和对称矩阵的性质,具体可以到王良老师博客上去看一下。
关于Beta分布可以看下这篇博客:https://blog.csdn.net/ccnt_2012/article/details/81113923
可汗学院统计学的经典内容:
http://open.163.com/newview/movie/free?pid=M82IC6GQU&mid=M83J9IK60
不知道一天能不能看完,看不完过来分割一下。
很可惜今天没有看可汗学院的视频,主要理解PCA的降维原理的时候碰到了一些问题,对于矩阵对角化和对称矩阵这块儿不太理解,又重新翻了下书,附上PCA算法链接,写的很通俗易懂:https://blog.csdn.net/r709651108/article/details/82777598
此博客关键部分的理解:
当然首先就是矩阵与其转置相乘为协方差矩阵的理解,先看协方差的定义:
Cov(X,Y) = E[(X-E(X))(Y-E(Y)],先看这个式子,是协方差定义,再看下面这个性质:若两个随机变量X和Y相互独立,则E[(X-E(X))(Y-E(Y))]=0,因而若上述数学期望不为零,则X和Y必不是相互独立的,亦即它们之间存在着一定的关系
这就是博客中所说的去中心化的好处,即数据都减去了均值,全部完成了X1=X-E(X)和Y1=Y-E(Y)的过程,然后相乘的时候,对角线全是自己乘自己,就是方差(保持自己这个维度离散情况),对角线全是自己乘以别的数据(保持自己维度和别的维度的不相关性),挨个乘一遍(这个地方适合自己举个例子写出来),你再看看协方差定义是什么乘什么,不就是X1Y1嘛,所以这不就是协方差吗,再看性质,如果相互独立,E(X1Y1)=0,这不就是我们要求的东西嘛,我们要求解一个矩阵P,使得D矩阵满足非对角线元素为0。解释到这儿应该差不多了吧,再看下面
协方差矩阵A * A的转置的对角元素是数据方差,其余元素为不同数据间的协方差,降维而不丢失信息的原理就是找到一个新的这样的协方差矩阵,使数据自己的方差最大,保持本身数据完整性,协方差为0,保证数据降维过程中不同数据的不相关性,以便在新的基上投影时保证数据的多样性。
我们在降维过程中是在这样的原则指导下进行的,所以基于下图D和原始数据协方差矩阵C的关系,我们将原始数据X降维到Y的矩阵P就可以确定了,C本身是实对称矩阵(至于为什么矩阵X *X的转置是对称矩阵,不知道的可以自己查一下资料),P就是将C对角化的一个矩阵,接下来就是C为对称矩阵的性质,求P,求出P取前K行(怎么取),再乘以X得到Y,就完成了降维。
附上个图,是博客里面涉及到的一个推导过程,博客中没有,其余少的例子自己例举一下就好,不知道为啥举例子解释却没有例子,不过不咋影响阅读
总结一下PCA的算法步骤:
设有m条n维数据。
1)将原始数据按列组成n行m列矩阵X
2)将X的每一行(代表一个属性字段)进行零均值化,即减去这一行的均值
3)求出协方差矩阵
4)求出协方差矩阵的特征值及对应的特征向量
5)将特征向量按对应特征值大小从上到下按行排列成矩阵,取前k行组成矩阵P
6)即为降维到k维后的数据
首先提出矩阵相似的概念,设有n 阶方阵A与B,若有可逆矩阵P使得P逆AP=B,则称A与B相似,如果一个方阵和一个对角阵相似,就称此方阵可对角化。
矩阵对角化的充要条件为:n阶方阵A有n个线性无关的特征向量
推论:若n阶方阵A有n个不同的特征值,则A可对角化
因为不同特征值的特征向量是线性无关的,若特征值有重数,还是看特征向量的个数
对于这种情况来说P就是线性无关的特征向量组成的矩阵
对于n阶实对称方阵来说,有定理:不同特征值对应的特征向量互相垂直
这就是求解上述使对称矩阵C成为对角化矩阵D的P矩阵的方法,对于博客中所说的基只需要将特征向量正交化即可,使用施密特正交公式。
正交矩阵的定义是A*A的转置=E
我又把书全部快速过了一遍,每个定理对应看一个练习题,太难的略过,把重要的都掌握一下中心思想,以下所提所有概念和理解都是工程意义上的常规理解,不做纯数学上的严格区分,比如卷积,期望和均值等
概率公式,条件概率公式,0-1分布(n=1的二项分布,又叫做伯努利分布),二项分布,泊松分布,连续分布,联合分布(二维因素),联合分布的边缘密度(只考虑一个因素)。协方差公式,切比雪夫公式即大数定理,中心极限定理
大数定理比较好理解,在下面的统计学中我也做了介绍,大数定理本身讲究的是频率的稳定性。而中心极限定理讲的是不管来自任何分布的独立变量,符合期望为μ,方差为sigmod方,
当n趋向于无穷大时,所有随机变量的和近似符合正态分布,正态分布的期望为nμ,方差为n倍的sigmod方 ,将这个和记为Y。标准化后近似服从N(0,1)标准正态分布,标准化式子为(Y-nμ)/sigmod*根号n,(这个不知道的可以查一下,就是正态分布的内容,一个是变量符合正态分布,那么标准化后符合期望为0,方差为1的标准正态分布)。
为什么把这个中心极限定理写出来,是因为下面要用,有了这个中心极限定理,在下面统计学中样本均值的抽样分布,期望和方差的计算才可以理解,样本均值的抽样分布一样符合中心极限定理,但它近似正态分布的期望为μ,方差为总体方差/n,标准差就是开根号,总体标准差/根号n。为什么方差要除以n呢,实际上期望和方差都要除以n,注意看上面,Y服从的正态分布的期望和方差,现在是样本均值,注意均值2字,所以在原来的基础上除以n,得到期望为μ,与总体期望一致,标准差为总体标准差/根号n。
加上一张图片,从书上看到了,拍了张照片,某些时候可以加深理解。
以下内容均为自己笔记,可能有点杂乱,内容均来自于可汗学院的统计学视频,可自行观看,比较简单
https://blog.csdn.net/weixin_45440964/article/details/103662467
最近跟着深度之眼的西瓜书训练营开始学习西瓜书,同步更新自己所学到的知识点,每天将所学到的东西,同时在博客中更新,未完待续。。。
吴恩达的机器学习课程我已经看完了,这个是入门必看课程,前面很简单,后面慢慢的才有些难度,有些不懂的地方,特别是关于PCA降维原理部分,这个课程在网易云课堂是免费的,大家可以去看看,这个课程不好的一点是没有代码,只有原理,脱离代码可能有时候觉得比较懵逼,我看了两遍那个课,现在还是忘了很多,因为没有代码,后续一段时间我会将里面的代码实现,开始实现那里面代码的时候会在这个段落添加博客链接。
放在这篇博客了,课程已通过正规渠道购买,我都是边听边学习边记载的,如果有侵权,请告知
https://blog.csdn.net/weixin_45440964/article/details/103429433
绕老绕去还是没能离开传统cv,按照老师的讲课学习一下,课程内容就不自己写了,网上很多,放两篇博客链接吧
Harris Corner Detection
https://blog.csdn.net/jia20003/article/details/16908661
结论:两个特征值都小是平坦区域,一个大一个小是边缘区域,两个都大是角区域,也是我们需要找的区域
代码详解:https://www.cnblogs.com/DOMLX/p/8763369.html
SIFT(重要,难)
https://www.cnblogs.com/cuteshongshong/archive/2012/05/25/2506374.html
上面这个链接是SIFT算法的译文,如果有心的同学还是建议看英文原文
https://blog.csdn.net/u010440456/article/details/81483145这篇博客写的也很好,这位作者搞了一个多月才明白,我们看他现成的理解起来没有那么困难。写一点自己的东西 :https://blog.csdn.net/weixin_45440964/article/details/103578987
代码链接:https://www.cnblogs.com/my-love-is-python/p/10414135.html
开始做一些上手的简单项目,图像拼接方面的,用到上面的算法提取特征点。
先看2篇硕士论文有个轮廓,泊车辅助系统快速全景图像拼接研究_汪伦,全景可视化辅助泊车系统研究_赵凯
项目过程:
最近邻域插值、双线性插值、双立方(三次卷积)插值的原理分析及其代码实现:
https://blog.csdn.net/csdnforyou/article/details/82315683
图像配准(Image registration)就是将不同时间、不同传感器(成像设备)或不同条件下(天候、照度、摄像位置和角度等)获取的两幅或多幅图像进行匹配、叠加的过程,它已经被广泛地应用于遥感数据分析、计算机视觉、图像处理等领域。
常用的图像配准算法:https://blog.csdn.net/gaoyu1253401563/article/details/80631601
https://blog.csdn.net/xuluohongshang/article/details/52886352
特征检测与特征匹配方法汇总:https://blog.csdn.net/qq_21950671/article/details/93620052
https://blog.csdn.net/Aidam_Bo/article/details/89135969
下面这个写的特别好,看完这篇博客大概就能够知道这个小项目的流程是什么了,具体细节再继续挖掘。
图像拼接和图像融合技术:https://blog.csdn.net/lla520/article/details/77488332
单应矩阵与透视变换矩阵:https://blog.csdn.net/u012948715/article/details/53885379
经典的齐次坐标理解:https://blog.csdn.net/jeffasd/article/details/77944822
单应性矩阵:https://blog.csdn.net/liubing8609/article/details/85340015
openCV中的findHomography函数分析以及RANSAC算法的详解:https://blog.csdn.net/qq_25352981/article/details/51530751
刚刚开始总是会显得很慌乱,万事开头难,几天后就会走向正轨的