文章目录
- 一、引言
- 二、单变量线性回归
- 三、线性代数回顾
- 四、多变量线性回归
- 1、根据下式:卷积就是当N为9的时候,x1、x2、...xn在卷积里就是feature map上相邻的9个数(这9个数的形状是卷积核的形状),而卷积核的参数就是四二塔1、四二塔2.。。。
- 2、如何更好的运用梯度下降法之feature scaling
- 3、减均值然后除以范围(最大值减去最小值)或者除以标准差,这个好像也叫feature scaling,这个应该是针对每个特征值来做的,即图像中的每个像素点,那为啥图像均值会只有三个数??
- 4、如何更好的运用梯度下降法之学习率的选取
- 5、3倍法选取学习率
- 6、多项式回归,这里的多元特征可以是同一个特征的不同次方,例如房子的大小,那房子的价格有可能是如下那个假设
- 7、特征选择之特征合并:如有 两个特征:一个是长 一个是宽 那就可以合并这俩特征为他俩的乘积:面积
- 8、线性回归的解析解法(不用梯度下降的迭代解法)---标准方程法
- 9、两种方法的比较,特征数量小于10000时可以选择标准方程解法(这是指在线性回归算法 里面,如果在别的算法里面如果分类算法 逻辑回归等 是**只能用**梯度下降法的)
- 10、标准方程里的如果那个矩阵不可逆??
- 11、什么情况下会不可逆??(特征冗余或者特征太多(训练集太少))
- 五、Octave教程
- 六、逻辑回归
- 七、正则化
- 八、神经网络、表述
- 九、神经网络的学习
- 十、应用机器学习的建议
- 十一、机器学习系统的设计
- 十二、支持矢量机(SVM)
- 十三、聚类
- 十四、降维
- 十五、异常检测
- 十六、推荐系统
- 十七、大规模的机器学习
- 十八、应用实例:图片文字识别
- 十九、总结
2020年02月21号更新:
一、引言
1、回归就是预测一系列连续的值?是具体值
2、无监督学习:鸡尾酒算法?
二、单变量线性回归
1、代价函数(平方差是回归问题里常用的代价函数)
----------------------------------------------------------------------------------------------
2020年02月23号更新:
2、回归求解出来的函数与代价函数的不同(一个是x的函数 一个是斜塔的函数)
3、
为了便于在二维平面上展示代价函数,用下面的轮廓图来代表上面的三维立体图
4、同步的梯度下降法
5、学习率固定的情况下其实也可能会收敛到极小值
2020年02月27号更新:
6、
三、线性代数回顾
1、
2020年03月9号更新:
四、多变量线性回归
1、根据下式:卷积就是当N为9的时候,x1、x2、…xn在卷积里就是feature map上相邻的9个数(这9个数的形状是卷积核的形状),而卷积核的参数就是四二塔1、四二塔2.。。。
2、如何更好的运用梯度下降法之feature scaling
3、减均值然后除以范围(最大值减去最小值)或者除以标准差,这个好像也叫feature scaling,这个应该是针对每个特征值来做的,即图像中的每个像素点,那为啥图像均值会只有三个数??
4、如何更好的运用梯度下降法之学习率的选取
注:学习率小的时候需要收敛慢,需要增大迭代次数!!!!!!!!
5、3倍法选取学习率
2020年03月10号更新:
6、多项式回归,这里的多元特征可以是同一个特征的不同次方,例如房子的大小,那房子的价格有可能是如下那个假设
7、特征选择之特征合并:如有 两个特征:一个是长 一个是宽 那就可以合并这俩特征为他俩的乘积:面积
8、线性回归的解析解法(不用梯度下降的迭代解法)—标准方程法
注:是不需要feature scaling的
9、两种方法的比较,特征数量小于10000时可以选择标准方程解法(这是指在线性回归算法 里面,如果在别的算法里面如果分类算法 逻辑回归等 是只能用梯度下降法的)
10、标准方程里的如果那个矩阵不可逆??
11、什么情况下会不可逆??(特征冗余或者特征太多(训练集太少))
训练集太少:即m<n,这个就是线性代数里的方程个数小于变量个数,也就是矩阵的秩小于N,这个小训练集的时候可以用正则化来训练,这样用多个特征进行学习,但最后只挑选几个有用的特征,正则化虽然是对参数的,但是参数为零其实也就是它对应的那部分特征不要了**
2020年03月11号更新:
五、Octave教程
1、可视化矩阵
2、代码实现时的向量化
2020年03月12号更新:
六、逻辑回归
1、逻辑回归是一种分类算法
2、sigmoid和逻辑函数时等价的
3、这个是固定了一组参数theta之后的决策边界
4、非线性决策边界,可以对特征x加多项式
5、逻辑回归里如果还用方差作为代价函数的话,那它会是个非凸函数:non-convex
注:YOLO里面的分类损失函数好像就是方差函数啊!!???????
6、逻辑回归的真正代价函数应该是这样的
下面这个是标签y=1时候的代价函数
下面这个是标签y=0时候的代价函数:
7、简化版的代价函数
8、线性回归与逻辑回归在梯度反传时的形式上是很像的,但内容不一样,所以是两个不同的算法,不同点在于逻辑回归的H(x) 与 线性回归的H(x)
9、逻辑回归–>>多分类
注:三个二分类器,预测时候 然后选最大概率的那个类别
----------------------------------------------------------------------------------------------------------------
2020年03月13号更新:
七、正则化
1、欠拟合与过拟合
逻辑回归的例子:
2、代价函数加上正则化项(对参数theta的)
注:下图是直观上的理解,但在实际中是没办法准确确定哪几个参数变小或者去掉
3、从下图可以看到,加入正则化之后,每次更新参数theta的时候,相当于在原来基础上衰减了一点点
4、线性规划的解法二:正规方程的正则化解
2020年03月15号更新:
八、神经网络、表述
1、注:偏置项是在激活函数之前加的
2、注:盖住最左面的输入特征x1 x2 x3,可以发现后面两层就是逻辑回归!!!!!!1
3、异或时候已经需要有隐层才能完成了,不能只是一层输入了
4、多分类情况
注:这个时候还没用卷积,就已经可以多分类了
----------------------------------------------------------------------------------------------------------------
2020年03月18号更新:
九、神经网络的学习
1、分类神经网络与逻辑回归算法的代价函数对比
注:其中K是预测类别数,即网络输出单元数;l 表示神经网络的第几层
2、BP算法用于神经网络参数梯度的计算
3、注意观察下图的偏置项
注:可以看到,偏置项只在输入端,下一层的偏置项与上一层的结点没有一点点关系
4、梯度检查
在进行梯度下降法学习之前,先进行梯度检查,确保反向传播法计算出来的对参数的梯度和这个数值法求导出来的梯度大约是相等的!!
(反向传播法计算代价函数J对theta的导数是非常高效的,而数值法非常慢)
注:这个反向传播法直接求梯度法的数值法是吴恩达老师这个课我才接触到的!!
问题来了:那我以前是怎么学的BP算法??
5、训练一个神经网络的完整流程
2020年03月21号更新:
十、应用机器学习的建议
1、当某个算法模型效果不好时:
注:这是以预测房价(线性回归模型为例)
2、如何判断模型处于欠拟合还是过拟合??
注:欠拟合又称高偏差 过拟合又称高方差
欠拟合时训练误差和验证误差都很大
过拟合时训练误差大 ,但验证误差小
3、注意J和Jtrain、Jcv、Jtest的区别,只有J加了正则化
4、正则化纳姆达的值与训练曲线及验证曲线的关系
5、学习曲线与高偏差、高方差之间的关系
当模型处于合适状态时
注:横坐标是训练样本数量
当模型处于高偏差状态时:
注:最终训练和验证误差都很高,而且继续加大训练数据量也于事无补
高方差情况下的学习曲线图:
可以看到俩方差有个很大的gap,但这时候继续增大数据量是可以减小两者的差距,可以接着提高模型性能
----------------------------------------------------------------------------------------------------------------
2020年03月23号更新:
十一、机器学习系统的设计
1、如何提高算法性能
先有个简单的baseline,然后在验证集里看看到底哪些被错误分类了,这叫error analysis
2、skewed classes
就是说:你预测的正确率是99%看似很好,但是癌症率只有0.5%,那你的这个预测就有问题了。
3、Precision(查准率)和Recall(召回率)出场!!
当出现skewed classes时,其实是分类的评价指标accuracy不管用了,这时候可以用查准率P和召回率(R)来评估这个算法
4、P-R曲线的由来
----------------------------------------------------------------------------------------------------------------
2020年03月28号更新:
5、F1-Score的由来
由下表知,评估模型性能时有俩指标(查准率 和 召回率) 有一个高 有一个低 这样不知道到底哪个模型最好,所以需要统一一下这俩指标,
注:这个指标是针对某个类别的
十二、支持矢量机(SVM)
1、从另一个角度看逻辑回归
2、SVM的优化目标
由逻辑回归演化而来,代价函数上有点点区别
代价函数的直观解释:
3、SVM—最大间距分类器
4、SVM最大分类间距背后的原理
向量点积的意义:A向量在B向量的投影乘以B向量的模
注:决策边界与参数theta的向量互相垂直
背后的原理简单来说就是:想要theta的二范数最小,又要满足约束条件时,那样本在这个参数theta的向量应该投影比较大,投影比较的大时候自然就最大间距了
2020年03月29号更新:
5、核函数
这里用的高斯核函数,用来衡量两个向量的相似性
注意:这是一个三维图
6、核函数如何训练非线性边界
核函数与相似性函数 以及三个Landmark的选取 从而造出了新的特征变量(x1 x2的组合), 能够训练非线性的边界
那该如何选取这些Landmarks呢??
由下图知:只有在这个红色曲线边界内,才会f1 f2 f3约等于0 才会预测为1
7、landmarks如何选择
其实是直接为每一个训练样本把它当做landmark 然后训练
8、SVM中的几个参数
9、使用SVM
不用核函数时候也叫 Linear kernel ,当 特征比较多 但训练样本比较少时 用这个比较好
高斯核函数:当特征比较少,训练样本比较多时 ,可以用这个来得出一个很强的非线性边界
10、使用高斯核函数之前记得特征归一化
11、满足莫塞尔定理的相似性函数才能成为核函数
12、什么时候用逻辑回顾,什么时候用SVM
注:根据训练样本数量M 和 特征数量N
注:神经网络不管N, M 多大多小 都能work ,就是训练速度和预测速度可能比不上SVM 而且SVM 有许多的数值优化技巧
2020年03月30号更新:
十三、聚类
1、K-means 聚类算法
注:随机初始化K个聚类中心 ;然后为每个样本计算它属于哪个簇;最后计算新的簇的中心;不断迭代,直至收敛。
2、k-means的优化函数
3、如何确定K的值
1、不怎么常用的elbow算法(因为出现右图情况时,没有一个清晰的拐点)
2、根据后续的算法的性能评价标准来确定K的值
2020年03月31号更新:
十四、降维
1、PCA算法概念
注:找到由K个向量组成的线性子空间,然后将原来的数据投影到这个子空间内(即降维了) ,使得投影距离最小,这样的话重建时损失也最小
2、PCA和线性回归完全不同
3、PCA算法的具体过程
从N维降到K维
求N维特征向量的协方差矩阵 ,然后对其使用SVD
对U取前K列,然后转置乘以特征向量X,最终得出K维向量Z
4、K值如何选取
注:K是指从N维特征 降维至K维特征的K,下面是这个指标(0.01)表示数据的99%信息还在
选K 值的一个简便方法:
根绝SVD奇异值分解出来的结果中的s
5、PCA用于监督学习时的注意事项
注:pca定义只在训练集
6、不要用PCA来防止过拟合
用正则化来防止过拟合,因为使用正则化时候用到的标签信息,而PCA降维时候是一种无监督方法,没有用标签信息,会损失信息
尽量先用原始数据进行训练,如果真有需要再用pca,不要一上来就pca
2020年04月2号更新:
十五、异常检测
1、高斯分布example
注:方差越小,概率密度曲线越瘦高
2、异常检测算法具体流程
注:即使这些特征相互之间不独立,在实际操作中也可以把他们当做是独立的,也可以达到很好的效果
3、如何评价一个异常检测算法
注:训练集没有用异常数据进行训练
异常检测算法本身是一个无监督算法,但评估这个算法时候可以用标签
4、什么时候用异常检测,什么时候用监督学习
5、非高斯分布的特征的处理
注:可以通过画出样本里这个特征的直方图 来大致看一下这个特征是否为高斯分布
非高斯特征:可以去对数 可以加个幂
6、异常检测算法进阶–多变量的高斯分布
当有几个变量不独立时候:
注:就是考虑到了多个变量之间的联系,当某个样本不满足这种联系时 也要被当做异常值,但是这个分布也可以表示变量之间相互独立时候的分布,独立时候sigma的非对角线元素为0
例子:不同方差下的二元高斯分布
副对角线上的元素代表两个变量之间的联系紧密,绝对值越大越紧密
7、多元高斯分布表达式
注:mu和sigma参数的估计
当变量相互独立时,sigma的非对角线元素为0
8、原始模型与多元高斯分布模型的对比
m为样本数量
注:当n比较小时,用多元分布模型比较划算
2020年04月3号更新:
十六、推荐系统
1、一个预测电影评分的例子
2、预测的具体过程(基于内容的推荐算法)
注:3维的theta是利用算法学习出来的,为每一个用户学一个theta参数矩阵,然后将theta与这步电影的特征矩阵相乘即得到一个数(电影评分)
注意: 这就很像全连接,都没有用到权重共享的卷积矩阵,CNN更多是用在图形,这里是推荐系统
3、电影评分预测类似线性回归
优化目标与梯度下降:
4、推荐算法:协同滤波
优化目标变为:求这些特征
由下图知:协同滤波算法就是在学习特征x与参数theta之间互相转换,这样既可以学到特征,又可以学到参数!!!!!!!!!!!
下面是将关于x和theta的两个优化目标函数进行合并,两个一起进行优化,就叫协同滤波??
协同滤波算法流程:
5、均值归一化
训练时候:求出均值并减去均值,然后拿这样的数据去学习x和theta
注意:这里是对行求均值,因为是考虑到某个user没有评价过任何一部电影,当某个电影没有被任何人评价过时,可以采取对列求均值
预测时候:对应着加上均值
和图像cnn的预处理很相似
2020年04月4号更新:
十七、大规模的机器学习
1、批量梯度下降与随机梯度下降的区别
SGD每次更新参数是根据的单个样本,而批量梯度下降更新参数是根据的所有的样本,
所以SGD需要刚开始打乱数据集,因为相似的数据对参数的影响是类似的,这也是为啥Batch size尽可能大的原因
这也导致SGD往最小值移动时是迂回前进。。。
2、mini-batch梯度下降出来了!!
终于知道为什么叫mini-batch 了 因为Batch是指用全部的训练数据。。。
3、随机梯度下降画loss图看是否收敛
如下图:当曲线波动比较大时,让batch大一些或者统计好5000个(大一点)样本的误差时候再BP进行参数的更新
2020年04月4号更新:
4、Map reduce
注:差不多就是多个机器一起训练的意思
十八、应用实例:图片文字识别
1、Photo OCR
2、生成训练数据
(1)可以将目标粘贴到不同背景下
(2)可以将目标形变,扭曲
3、关于数据增强的几个建议
4、上限分析
注:大致意思就是给某个部分标签信息,看看整体性能提升多少,然后看哪个提升最多,就知道哪个部分应该花更多时间来做提升!!
十九、总结
终于结束了!!!!!!!!