人工智能
极大极小的算法实现的伪代码
(9条消息) 最清晰易懂的MinMax算法和Alpha-Beta剪枝详解Bug_Programmer的博客-CSDN博客minmax算法
三个`加上Java,再敲一下空格就是代码的形式
一个>加上空格就是引用,外界又叫做区块。
伪代码实现
function minimax(node, depth) // 指定当前节点和搜索深度
// 如果能得到确定的结果或者深度为零,使用评估函数返回局面得分
if node is a terminal node or depth = 0
return the heuristic value of node
// 如果轮到对手走棋,是极小节点,选择一个得分最小的走法
if the adversary is to play at node
let α := +∞
foreach child of node
α := min(α, minimax(child, depth-1))
// 如果轮到我们走棋,是极大节点,选择一个得分最大的走法
else {we are to play at node}
let α := -∞
foreach child of node
α := max(α, minimax(child, depth-1))
return α;
##模糊逻辑和概率论的不同
概率逻辑和模糊逻辑有什么区别? 学习小本子 (xiaobenzi.com)
机器学习
监督学习和无监督学习
(9条消息) 【机器学习】无监督学习中的协同过滤算法(推荐系统)_晓亮.的博客-CSDN博客
淘宝,抖音推送给我们相似的内容时i,会用到推荐算法中的协同过滤算法,这属于是无监督学习。
监督和无监督就看训练集是否有人为介入贴上标签(起名字,人为的分类)
模糊隶属度函数的基本形式
模糊数学笔记:三、模糊隶属度函数的确定及常用隶属度函数 - 知乎 (zhihu.com)
这个具体参数的设定标准好像是比较主观,自己设定即可,因为毕竟是模糊函数。
吴恩达老师的机器学习和深度学习课程笔记打印版-公布源文件 - 知乎 (zhihu.com)
零基础"机器学习"自学笔记|Note7:逻辑回归 - 知乎 (zhihu.com)
【机器学习】逻辑回归的代价函数及其梯度下降公式推导-转载 - 秦羽纶 - 博客园 (cnblogs.com)
支持向量机
【【数之道】支持向量机SVM是什么,八分钟直觉理解其本质】 https://www.bilibili.com/video/BV16T4y1y7qj/?share_source=copy_web&vd_source=ad39a8aca87fca167c4b8b12190c48f8
损失因子
蓝线的解释了汇聚层存在的意义。为啥要汇聚层,因为你的数量是从上一层的M。L变成了啥呢?变成了M L减K加一个嘛,是吧ok了吧,这没基本上没少。输入的和输出的基本上是持平的。
线性回归(两种算法:线性回归和正规方程)
特征缩放(标准化)X0不变,还是1
每一步更新方向都是沿着等高线垂直的方向,你们可以比划一下试试,越圆的越容易往中间走
这是我们特征缩放的目标结果就是基本上所有的特征在-1和1之间。
这是算法
正规方程(用正规方程就是最小二乘问题)【[manim]最小二乘法的线性代数证明】 https://www.bilibili.com/video/BV1n7411s7Zq/?share_source=copy_web&vd_source=ad39a8aca87fca167c4b8b12190c48f8
正解:n代表特征量 m代表样本个数 由于偏置存在 ,所以n+1,
注意看这里面的样本的表示方法,一个样本的多个特征值的下标表示。
记住X.TX一定要是方阵才能有逆矩阵,这就要求X的行向量 不能大于列向量,另外X.TX不能为0,这就是最小二乘的局限性
与梯度下降法的对比优缺点。
正规方程没办法在用在其他的更复杂的算法了,但是梯度下降法是很多更复杂的算法的基础和祖宗。
逻辑回归
决策边界(就是θ转置乘X=0的那条线)
决策边界的性质在于他的参数theta,决策边界中x的阶数越高,那么我们得到的边界越奇形怪状
代价函数
由于sigmoid函数的非线性这使得我们的cost函数不是一个convex函数,如果使用梯度下降的话,我们很难找得到全局的最小值,往往会陷入在局部的最小值,所以我们需要重新定义一个新的cost函数
这样定义的cost函数,会使得我们的cost函数是一个正经的convex的函数,这样就能用梯度下降法来求取最小值了。
简化cost函数的写法
h(θx)就是我们的预测值,
这是求我们的梯度下降法的公式形式上和线性回归的梯度下降的形式是一样的,而且,我们的逻辑回归的样本也可以进行特征上特征缩放,来达到让梯度下降速度变快的效果
多分类(前提是知道要分几种)
就是先按01这种,最后要分成N种就是进行N次二分类的逻辑回归,得到N个二分类的决策边界,也就是分类的sigmoid 函数中的theta的参数值,然后把我们的预测的数值输入这N个sigmoid函数中,哪一个预测出的值最大,就算是哪一类的。因为在逻辑回归当中,我们的假设函数,或者叫预测函数h(θx)函数的值就是代表一种这个数据点应该隶属于该种分类的概率。
正则化(通过在代价函数中加入惩罚项和正则化参数来实现改善或减小我们算法中的过拟合问题)
模型欠拟合=>高偏差; 模型过拟合=>高方差
过拟合就是过于适合训练集中的数据,这导致我们的拟合曲线泛化能力变差了。
泛化能力是指一个样本应用到新的样本中的能力
解决方法
-
就是减少变量的个数,也就是特征值得选取,处理掉一些相关性强的变量,可以用到主成分分析的方法。但是需要强调这种方法不是一种好方法不是很推荐
-
正则化
由于不知道减少哪些特征的系数,就只好全部加在我们的惩罚项中(找不到说话的,全班背锅罚写作业的差不多)
正则化系数需要平衡两个目标
-
第一个是我们的曲线要比较好的拟合我们的训练集
-
第二个就是我们要让选取得到的theta值都尽可能的小一点
这个时候需要设定我们的正则化系数来达成和兼顾。
入是来平衡这两个目标的,减少theta参数权重只是目标2,两个目标简化模型和拟合数据是冲突的。
注意这个红字,(其实假如theta0也无伤大雅)
P41,42
线性回归的正则化
我们加入正则项的作用结果,就是把这个theta的梯度下降的系数由一变成了1-theta*lamada/m
正规方程的正则化
逻辑回归的正则化
支持向量机(最重要的两个点就是一个关键的洞察,一个就是简洁的技巧)
一.关键的洞察
【[中英字幕]吴恩达机器学习系列课程】 https://www.bilibili.com/video/BV164411b7dx/?p=72&share_source=copy_web&vd_source=ad39a8aca87fca167c4b8b12190c48f8这个讲解了我们为何需要θ乘X要大于一个常数,比如说1,而不再是0。这个就是大间距的可视化的原理。
就是我们注意到支持向量的重要性,我们把距离决策边界最近的几个样本点称作支持向量,这是因为,他们像断后一样,支持住了决策边界的前进,由于样本点都是坐标,可以看成是由原点为起点的向量,所以叫做支持向量。
二.简洁的技巧
就是我们可以通过核函数来升维,将低维而且不能线性分类的数据升到高维,从而进行线性的数据分类。
(10条消息) 逻辑回归(LR)与支持向量机(SVM)之间的异同yangdeshun888的博客-CSDN博客逻辑回归和支持向量机的区别
支持向量机的特点(相对于逻辑回归来说)
首先,代价函数的改变,支持向量机的代价函数脱胎于逻辑回归,但是他的cost函数不再是严格的sigmoid函数了,而是经过近似的函数,还有系数上的改变,见下图,需要强调一下,C不严格的等于lamda分之一,但是可以直接看成正则化参数lambda分之一,如果相等的话,那两个的代价函数的最小化结果应该得到基本相等的theta值。
C代表了A项的权重,大于一时A的权重大于B,相反B权重大。
权重越大,那么预测后的值就越接近于零,也就越小。
还有支持向量机的假设函数只有零和一,大于零为一,小于零为0不在像逻辑函数一样代表概率了,要么是要么不是。
核函数
c太大会造成过拟合,我的理解是相当于lamda太小,也就是正则化参数太小,这会导致过拟合。
高斯核函数
landmark的选取
高斯核函数,也是一种相似度函数,代表了样本和选定的landmark的点之间的距离大小,也就是相似程度。
高斯核函数的分解形式,并通过规定landmark来创造新的特征值,我们在使用高斯核函数的时候,靠近标记点,值越接近一,反之越接近零。
这张图表示了选择的参数西格玛的平方对于图形的下降趋势的影响,西格玛越小,下降速度越快,反之越快。但是我们的值域没有改变,仍然是零到一。
手绘的两条线其实就是代表了实际应用时的靠近程度,以landmark为中心成钟型曲线两边收敛,如下图我们只是抽出来样本中的X,其实就是一个数轴上看远近,算出的结果画出来就是上图的手绘曲线。
l----->landmark,f------------>function
聚类
神经网络的训练过程
(10条消息) 神经网络——最易懂最清晰的一篇文章illikang的博客-CSDN博客神经网络
通俗的理解就是我们玩过的弹弹堂。
我们通过调整角度和力度来发射炮弹去击中目标,假设没有风力其他外界因素的影响。
我们第一次发射之后打偏了打在了目标前方,在第二次的时候我们就会适当加大力度、向下调整角度,反复几次之后我们就会掌握到合适的力度和角度。
-
每次的击中点和目标的差距就是误差,可以用一个损失函数来表示。
-
每一次发射之后查看击中点的位置,然后进行力度及角度的调整,这个过程就是反向传播。
监督学习的思想就是在已知答案的标注数据集上,模型给出的结果要尽量接近真实的答案。通过调整神经网络中的参数 对训练数据进行拟合,使得模型对未知的样本提供预测能力(其实类似于我们的高中的刷题,先做题,然后看答案修改自己的思路。)
事实上,神经网络的本质就是通过参数与激活函数来拟合特征与目标之间的真实函数关系。初学者可能认为画神经网络的结构图是为了在程序中实现这些圆圈与线,但在一个神经网络的程序中,既没有“线”这个对象,也没有“单元”这个对象。实现一个神经网络最需要的是线性代数库。
因为前向传播算法就是从一组输入开始套公式的过程就是
反向传播算法就是把这一层一层的皮一层一层的扒下来,一点一点算出来每一项的导数,这些单项就是链式法则的单项,最后乘在一起就是整个链式法则
博弈树搜索
53. 博弈树搜索哔哩哔哩bilibili
我们关注的一方叫做正方。**我们的评估都是站在我是正方,我要赢的想法上的所以max节点是我选的最有利于我的,相反就是反方我的对手,他就是不要我赢,疯狂招不利于我的局面,他动作的结果就是MIN节点。**
此处可想象两个人下中国象棋
剪枝法
(是博弈搜索的升级精简版,也是从下至上的搜索,只不过减除了一些没有必要遍历的枝条)
-
α代表的是你的收益将不小于α
-
β代表的是你的收益将不大于β 当α大于β时表示此时的收益将比α大,比β小,明显是个空集。所以这个时候进行剪枝
*其实是α就是代表了max层,我方动作后的最差的收益情况,β代表了,主动权在敌方手中的时候,敌方动作后我们的最好的收益情况,当我方第一步先动作之后,其实是希望收益的情况越来越好,当我们的最坏的收益情况都是大于或者等于下一步的最好的情况,也就是β小于等于α的话,这就说明收益在走下坡路啊(类似于生孩子一代不如一代,上一代的混的最差的,是下一代的天花板人物了),所以就果断的舍弃。
其实遵循的原则就是两个人都很理性人,我是正方,一定会选有利于我的,相反敌方一定会选最不利于我的。
标签:复习,人工智能,笔记,正则,向量,拟合,我们,就是,函数 From: https://www.cnblogs.com/xpy-2000/p/17063431.html