监督学习和非监督学习

监督学习
利用标注好信息的样本,经过训练得到一个模型,可以用来预测新的样本
分类
当新来一个数据时,可以自动预测所属类型
应用
对于一幅遥感影像,对其中的部分水体,农田,建筑做好标记通过监督分类的方法得到其余水体、农田、建筑
分类相关的方法
支持向量机:寻找最大化样本间隔的边界
分类决策树
颜色 形状 状态进行分类
回归
直线拟合(最小二乘法)
通过已有的训练数据学习一个模型,当新来一个面积数据时,可以自动预测出销售价格
回归的应用
人脸好看程度评分。通过标记分数的图片得出回归模型,输入新的图片就能得出分数
线性回归
在平面上拟合线性函数
最邻近方法
使用最相似的训练样本唉预测新样本值
神经网络方法

非监督学习
所有数据没有标签,但可以发现这些数据呈现出聚群的结构,本质是一个像是的类型的会聚集在一起。
聚类
把这些没有标签的分成一个一个组,聚成一类
案例
google新闻
每天搜集大量的新闻然后把他们全部聚类
景点提取
对于游客的博客定位点进行聚类,然后自动提取出不同景点的分布位置
鸡尾酒会问题
在一个满是人的房间中,人们都在相互对话,我们记录房间中的声音,利用非监督学习算法,能够识别房间中某个人所说的话。

让人工智能学会玩游戏
让人工智能学会玩游戏是一项吸引人眼球的事情
在棋牌类游戏或者FPS类游戏中,提供一个高性能的AI能增加游戏的挑战性;
而在另一类游戏中,需要一个能够优化游戏体验的AI;

棋类游戏
从国际象棋到围棋,AI已经战胜了人类
DeepMind研发星际争霸2的AI
OpenAI研发DOTA2的AI

AI目前可以很好的掌握一些经典的小游戏,通过短时间的学习可以上手,并且获得很高的分数
甚至会利用游戏中 bug进行无线的上分

强化学习
控制一个在某个环境中的主体,通过与环境的互动来改善主体的行为。


机器学习
监督学习
标记数据
训练
预测
非监督学习
无标记数据
无训练
聚类
强化学习
决策过程
奖励反馈
行动指导

强化学习:符合学习玩游戏情形
通常游戏都是玩家控制一些角色
根据游戏画面反馈来不断调整动作
从而达到既定的目标(高分或胜利)
Flappy Bird 小游戏 AI通过强化学习学会了玩Flappy Bird

试错试学习
机关盒子
效果率
紧接着有利后果的行为更有可能再次发生
被老师称赞的工作或行为,你会继续保持
不良后果好的行为不太可能再次发生
猫的学习是经过多次的试错,刺激情景与正确反应之间形成的联结所构成的

使计算机能够像人一样通过不断试错式学习,完全自主掌握一项技能
不需要借鉴人类的经验
具有发展强人工智能的潜力

Alpha Zero
利用试错式学习思想,自己跟自己不断对弈来提升水平
用这种通过的学习方法,在围棋、国际象棋等各自领域达到强于人类

状态动作回报
强化学习的要素
主体
负责作出决策的实体
环境
主体存在环境之中,主体的行为作用于环境,并接受环境的反馈,比如一个完整的游戏程序
状态
环境的状态会不断发生变化,不同时刻的棋盘状况,游戏画面各不相同
动作
主体通过执行动作来改变环境的状态
回报
环境状态之后会返回主体一个回报,主体可以根据回报来判断动作的好坏

主体与环境不断地进行交互,产生多次尝试的经验,再利用这些经验去修改自身策略。经过大量迭代学习,最终获得最佳策略。

Flappy Bird状态
每一帧的画面都是一个状态
对画面简化,保留AI用于学习的关键信息
Flappy Bird动作
每个状态下都有两个可操作的动作(点击or不点击)
不同的动作会参生不同的状态
Flappy Bird回报
活着是1,死了是0

价值判断Q函数
策略
从状态集到动作集的一个对应关系
目标:求得最佳策略
判断状态
状态值函数V
只和状态相关,用于某个局面状态进行估值
状态动作函数Q
和状态以及该状态下采取的动作相关,用于对某个局面状态下采取某个动作进行估值。
Q-Learning
强化学习中一种常用算法
简单的Q函数(Q-Table)
Q函数表示状态,列表示动作,表中的值表示特定状态下执行某动作的评估值Q,
主体通过不断更新并查找该表,找到当前状态回报最高的动作执行
基于神经网络计算Q函数
对于复杂的状态无法用表格表示,可使用神经网络对Q函数进行建模,其输入为状态,输出为各个动作的评估值,has选取高的动作执行

总结
Q-Learning算法通过学习得到一耳光状态动作函数(Q函数)
不直接决定主体采取什么决策,而是提供一个估值参考。
如果Q函数较优,可以直接取最大价值来决定动作。

尝遍百草
从零开始
刚开始并不知道正确的策略以及Q函数应该是多少
初始化一个随机Q函数,从零开始不断学习
如何尝试
在Q函数不够准确的时候,每次尝试该如何选择动作?
涉及到探索和开发两者的平衡。
为了更好地学习最佳Q函数而尝试各种情况
也就是说,应该选择不同的其他动作
"尝遍百草"
开发
直接选择当前认为最佳的动作
再进一步修改新状态下的Q值
探索与开发
探索:随机生成一个动作
开发:根据当前的Q值计算出一个最优的动作

-greedy策略
一种简单的平衡探索与开发的策略
有 概率选取一个随机动作,剩下的情况依然选取Q值最大的动作
一般是一个很小的值,表示不断尝试的趋势
可以更改伊普西龙的值从而得到不同的探索和开发比例
开始学习是可以稍微调大(0.01) 在Q函数优化后可以调小0.001甚至可以直接设为0不再探索
孰能生巧
学习流程
初始化Q函数
不断重复每一局游戏(选择动作 得到回报 更新Q函数)
最终得到一个好的Q函数
每一局游戏都是一个动作状态序列
下一个状态之和当前的状态+动作有关(马尔可夫性质)
长期回报
除了试错式搜索之外,强化学习的另一个重要特点是回报的滞后性
当前状态下的动作所产生的回报不仅取决于下一个状态,还取决于整个序列之后的每一个状态。
某些动作参生的当前回报值比较高,但从长远来看,可能没那么高。
回报率
当前的动作对下一个状态的影响是最直接的,对后续状态影响没那么直接
因此我们用一个回报率来平衡下一个状态和更远状态回报

回报函数
每次游戏会产生不同的状态动作序列,即每一次对后续状态回报计算都不同
我们用后续状态的期望即所有之后的序列的回报平均值作为回报函数
回报函数值就是Q值
学习过程
每完成一局之后,就程序更新Q函数
完成的局数越多,更新的次数越多,结果也越准

学习率
既要利用学好的值,也要善于新的值
这两者就通过学习率,一开始学习率可以大一些,最后稳定时学习率可以小一些
孰能生巧
通过上述公式学习,在足够的尝试后会得到一个比较优的结果
再根据Q函数来选择动作,就能孰能生巧了


原文地址:https://www.cnblogs.com/liugangjiayou/p/11969688.html