2020年02月21号更新:
----------------------------------------------------------------------------------------------
2020年02月23号更新:
为了便于在二维平面上展示代价函数,用下面的轮廓图来代表上面的三维立体图
2020年02月27号更新:
2020年03月9号更新:
注:学习率小的时候需要收敛慢,需要增大迭代次数!!!!!!!!
2020年03月10号更新:
2020年03月11号更新:
2020年03月12号更新:
注:YOLO里面的分类损失函数好像就是方差函数啊!!???????
下面这个是标签y=1时候的代价函数
下面这个是标签y=0时候的代价函数:
注:三个二分类器,预测时候 然后选最大概率的那个类别
----------------------------------------------------------------------------------------------------------------
2020年03月13号更新:
注:下图是直观上的理解,但在实际中是没办法准确确定哪几个参数变小或者去掉
2020年03月15号更新:
注:这个时候还没用卷积,就已经可以多分类了
----------------------------------------------------------------------------------------------------------------
2020年03月18号更新:
注:其中K是预测类别数,即网络输出单元数;l 表示神经网络的第几层
注:可以看到,偏置项只在输入端,下一层的偏置项与上一层的结点没有一点点关系
在进行梯度下降法学习之前,先进行梯度检查,确保反向传播法计算出来的对参数的梯度和这个数值法求导出来的梯度大约是相等的!!
(反向传播法计算代价函数J对theta的导数是非常高效的,而数值法非常慢)
注:这个反向传播法直接求梯度法的数值法是吴恩达老师这个课我才接触到的!!
2020年03月21号更新:
注:欠拟合又称高偏差 过拟合又称高方差
欠拟合时训练误差和验证误差都很大
过拟合时训练误差大 ,但验证误差小
当模型处于合适状态时
注:横坐标是训练样本数量
当模型处于高偏差状态时:
注:最终训练和验证误差都很高,而且继续加大训练数据量也于事无补
高方差情况下的学习曲线图:
可以看到俩方差有个很大的gap,但这时候继续增大数据量是可以减小两者的差距,可以接着提高模型性能
----------------------------------------------------------------------------------------------------------------
2020年03月23号更新:
先有个简单的baseline,然后在验证集里看看到底哪些被错误分类了,这叫error analysis
就是说:你预测的正确率是99%看似很好,但是癌症率只有0.5%,那你的这个预测就有问题了。
当出现skewed classes时,其实是分类的评价指标accuracy不管用了,这时候可以用查准率P和召回率(R)来评估这个算法
----------------------------------------------------------------------------------------------------------------
2020年03月28号更新:
由下表知,评估模型性能时有俩指标(查准率 和 召回率) 有一个高 有一个低 这样不知道到底哪个模型最好,所以需要统一一下这俩指标,
注:这个指标是针对某个类别的
由逻辑回归演化而来,代价函数上有点点区别
向量点积的意义:A向量在B向量的投影乘以B向量的模
注:决策边界与参数theta的向量互相垂直
背后的原理简单来说就是:想要theta的二范数最小,又要满足约束条件时,那样本在这个参数theta的向量应该投影比较大,投影比较的大时候自然就最大间距了
2020年03月29号更新:
核函数与相似性函数 以及三个Landmark的选取 从而造出了新的特征变量(x1 x2的组合), 能够训练非线性的边界
那该如何选取这些Landmarks呢??
由下图知:只有在这个红色曲线边界内,才会f1 f2 f3约等于0 才会预测为1
其实是直接为每一个训练样本把它当做landmark 然后训练
不用核函数时候也叫 Linear kernel ,当 特征比较多 但训练样本比较少时 用这个比较好
高斯核函数:当特征比较少,训练样本比较多时 ,可以用这个来得出一个很强的非线性边界
注:神经网络不管N, M 多大多小 都能work ,就是训练速度和预测速度可能比不上SVM 而且SVM 有许多的数值优化技巧
2020年03月30号更新:
注:随机初始化K个聚类中心 ;然后为每个样本计算它属于哪个簇;最后计算新的簇的中心;不断迭代,直至收敛。
1、不怎么常用的elbow算法(因为出现右图情况时,没有一个清晰的拐点)
2、根据后续的算法的性能评价标准来确定K的值
2020年03月31号更新:
注:找到由K个向量组成的线性子空间,然后将原来的数据投影到这个子空间内(即降维了) ,使得投影距离最小,这样的话重建时损失也最小
从N维降到K维
对U取前K列,然后转置乘以特征向量X,最终得出K维向量Z
注:K是指从N维特征 降维至K维特征的K,下面是这个指标(0.01)表示数据的99%信息还在
选K 值的一个简便方法:
用正则化来防止过拟合,因为使用正则化时候用到的标签信息,而PCA降维时候是一种无监督方法,没有用标签信息,会损失信息
尽量先用原始数据进行训练,如果真有需要再用pca,不要一上来就pca
2020年04月2号更新:
注:即使这些特征相互之间不独立,在实际操作中也可以把他们当做是独立的,也可以达到很好的效果
注:训练集没有用异常数据进行训练
异常检测算法本身是一个无监督算法,但评估这个算法时候可以用标签
注:可以通过画出样本里这个特征的直方图 来大致看一下这个特征是否为高斯分布
非高斯特征:可以去对数 可以加个幂
当有几个变量不独立时候:
注:就是考虑到了多个变量之间的联系,当某个样本不满足这种联系时 也要被当做异常值,但是这个分布也可以表示变量之间相互独立时候的分布,独立时候sigma的非对角线元素为0
例子:不同方差下的二元高斯分布
副对角线上的元素代表两个变量之间的联系紧密,绝对值越大越紧密
注:mu和sigma参数的估计
当变量相互独立时,sigma的非对角线元素为0
2020年04月3号更新:
注:3维的theta是利用算法学习出来的,为每一个用户学一个theta参数矩阵,然后将theta与这步电影的特征矩阵相乘即得到一个数(电影评分)
注意: 这就很像全连接,都没有用到权重共享的卷积矩阵,CNN更多是用在图形,这里是推荐系统
优化目标变为:求这些特征
由下图知:协同滤波算法就是在学习特征x与参数theta之间互相转换,这样既可以学到特征,又可以学到参数!!!!!!!!!!!
下面是将关于x和theta的两个优化目标函数进行合并,两个一起进行优化,就叫协同滤波??
协同滤波算法流程:
训练时候:求出均值并减去均值,然后拿这样的数据去学习x和theta
注意:这里是对行求均值,因为是考虑到某个user没有评价过任何一部电影,当某个电影没有被任何人评价过时,可以采取对列求均值
2020年04月4号更新:
SGD每次更新参数是根据的单个样本,而批量梯度下降更新参数是根据的所有的样本,
所以SGD需要刚开始打乱数据集,因为相似的数据对参数的影响是类似的,这也是为啥Batch size尽可能大的原因
终于知道为什么叫mini-batch 了 因为Batch是指用全部的训练数据。。。
如下图:当曲线波动比较大时,让batch大一些或者统计好5000个(大一点)样本的误差时候再BP进行参数的更新
2020年04月4号更新:
注:差不多就是多个机器一起训练的意思
(1)可以将目标粘贴到不同背景下
注:大致意思就是给某个部分标签信息,看看整体性能提升多少,然后看哪个提升最多,就知道哪个部分应该花更多时间来做提升!!
终于结束了!!!!!!!!