监督学习和非监督学习

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

非监督学习
全部数据没有标签,但能够发现这些数据呈现出聚群的结构,本质是一个像是的类型的会汇集在一块儿。
聚类
把这些没有标签的分红一个一个组,聚成一类
案例
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函数较优,能够直接取最大价值来决定动做。app

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

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

回报函数
每次游戏会产生不一样的状态动做序列,即每一次对后续状态回报计算都不一样
咱们用后续状态的指望即全部以后的序列的回报平均值做为回报函数
回报函数值就是Q值
学习过程
每完成一局以后,就程序更新Q函数
完成的局数越多,更新的次数越多,结果也越准

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


机器学习