人工智能入门算法自述

线性回归:已知多组输入输出,ax+b=y,误差平方和对a,b求偏导,然后a,b修改即加上偏导值乘学习率
逻辑回归:已知多组输入输出,1/(1+e^(-ax))=y,误差是cost(h(a,x),y)=-ylog(h(a,x))-(1-y)log(1-h(a,x))
    注意y只取0或1,然后对一组样例的误差求和再平均,对参数a求导得偏导值,然后乘学习率
神经网络:感知机扩展版,已知输入输出,前向传导,反向修正

决策树:先求判定目标混乱度,然后求每种分支方法的混乱度,看哪个方法的混乱度下降最多
集成:    bagging:从总样本中有放回地随机抽取样本集
    random forest:样本用bagging法抽n个,再随机抽k个属性建决策树,重复上面两步骤m次,最后m棵决策树投票得到预测分类
    boosting:前一分类器被错误分类的样本下次抽到的权值增大,最后投票时误差率小的分类器话语权大
    stacking:多种分类器(例如KNN与决策树),最后投票

KNN:平面上有两类点,现给出一点问属哪类,防止过拟合与欠拟合,加权KNN,讨论K值交叉验证及选不同K值测试
K-MEANS:把平面上的点分成K类:先随机选K个点作质心,然后每个点归类于最近质心,求每个类的重心作为新质心,循环至质心不变
    优化一:数据大收敛慢,每次取部分样本
    优化二:K值难取,取不同的K用肘部原则
    优化三:对初始点敏感,多次随机取
    优化四:只能识别球形,用密度归类

贝叶斯:P(A)P(B|A)=P(B)P(A|B),把P(A)或P(B)扔到另一边就是贝叶斯
    引申就是A变成A1,A2,A3,    则P(B|A)=P(B)P(A1|B)P(A2|B)P(A3|B)/P(A1)P(A2)P(A3)
PCA:求样本的协方差矩阵,求出特征值,取最大的K个,对应的特征向量
SVM:找出划分两类点的最佳划分直线,找支持向量是关键,若不能实现则使惩罚函数值最小

CNN:    卷积层:局部感受野即5x5划分+权值共享即每个感受野卷积的权值对应相等
    池化层:max/mean/stochastic,same padding/valid padding
    全连接层:神经网络修改权值
RNN:第i隐藏层的输出 = 隐藏层激活函数(第i隐藏层偏置 + 第i隐藏层输入*权重 + 第i-1隐藏层输出*权重)
    输出层的输出 = 输出层激活函数(上一隐藏层输出*权重 + 输出层偏置)
    缺点:易出现梯度消失,改用LSTM

QLearning:先建好Reward表,即每种状态下每种行为的即时奖励,Q表初始为0,就是每种状态下每种行为的期望价值,训练是在每一个状态下,随机选择行为并更新Q表,直至走到终点,再开始下一次训练,Q(s,a)=即时奖励R(s,a)+折扣*max(Q(s',b),Q(s',c),Q(s',d)),其中s'是s执行a后转移得到,a,b,c,d是行为,s,s'是状态

Deep QLearning:就是把Q表更新的过程变成神经网络,与Q表一样输入状态,输出所选决策


 

猜你喜欢

转载自blog.csdn.net/cj1064789374/article/details/105867522