“深度”:神经网络的层数更多,每层神经元个数更多
架构:生成对抗网络:(Generative Adversarial Networks),循环神经网络(Recurrent Neural Networks),图卷积神经网络(Graph Convolutional Neural Networks )
领域:图像处理、视频分析、自然语言处理、视频监控、人脸识别、医学图像分析、人机交互、机器人设计等。
TensorFlow:是AlphaGo背后的机器学习计算框架,将数据流图作为基础,图节点代表运算,边代表张量。
CIFAR-10是一个用于识别普适物体的小型数据集,它包含了10个类别的3通道RGB彩色图片,图片尺寸为32*32,其中训练图片50000张,测试图片10000张。CIFAR-10中物体的比例和特征不尽相同,噪声大,识别难度较MNIST高。
1、 创建一个Sequential模型(空模型)
2、 根据需要,通过add()方法在模型中添加所需要的神经网络层,完成模型构建
3、 编译模型,通过compile()定义模型的训练模式(损失函数....)
4、 训练模型,通过fit()方法进行训练模型
5、 评估模型,通过evaluate()进行模型评估
6、应用模型,通过predict()进行模型预测
1、强化学习就是程序或智能体(agent)通过与环境不断地进行交互学习一个从环境到动作的映射,学习的目标就是使累计回报最大化。
2、强化学习就是一种试错学习,因其在各种状态(环境)下需要尽量尝试所有可以选择的动作,通过环境给出的反馈(即奖励)来判断动作的优劣,最终获得环境和最优动作的映射关系(即策略)
传统强化学习缺陷:真实环境中的状态数目过多,求解困难。
举例:吃豆游戏
agent:大嘴小怪物
环境:整个迷宫中的所有信息
奖励:agent每走一步,需要扣除1分,吃掉小球得10分,吃掉敌人得200分,被吃掉游戏结束。
动作:在每种状态下,agent能够采用的动作,比如上下左右移动。
策略:在每种状态下,采取最优的动作。
学习目标:获得最优的策略,以使累计奖励最大(即Score)
深度强化学习(DRL):将深度学习和强化学习结合在一起,通过深度神经网络直接学习环境(或观察)与状态动作值函数Q(s,a)之间的映射关系,简化问题的求解。
DQN:是将神经网络和Q-learning结合,利用神经网络近似模拟函数Q(s,a),输入是问题的状态(例如:图片),输出是每个动作a对应的Q值,然后依据Q值大小选择对应状态执行的动作,以完成控制。
DQN学习过程
1、状态s输入,获得所有动作对应的Q值Q(s,a)
2、选择对应Q值最大的动作a'并执行
3、执行后环境发生改变,并能够获得环境的奖励r
4、利用奖励r更新Q(s,a')--强化学习;利用新的Q(s,a')更新网络参数--监督学习
1、智能体agent根据当前对环境的观察采取动作获得环境的反馈,并使环境发生改变的循环过程。
2、有限状态state集合:s表示某个特定状态。
3、有限动作action集合:a表示某个特定动作。
4、状态转移模型:根据当前状态s和动作a预测下一个状态s,这里的Pr表示从s采取行动a转移到s'的概率。
5、R(s,a):表示agent采取某个动作后的即时奖励,它还有R(s,a,s'),R(s)等表现形式
6、Policy pai(s)->a:根据当前state来产生action,可表现为a=pai(s)或pai(a/s)=P(a/s),后者表示某种状态下执行某个动作的概率。
7、状态值函数V表示执行策略pai能得到的累计折扣奖励
8、状态动作值函数Q(s,a)表示在状态s下执行动作a能得到的累计折扣奖励。
9、最优值函数:是在最优策略下获得的值函数。
10、最优控制:在得到最优值函数之后,可以通过值函数的值得到状态s时应该采取的动作a
在现实的强化学习任务中,环境的转移概率、奖励函数往往很难得知,甚至很难得知环境中有多少状态。若学习算法不再依赖于环境建模,则成为免模型学习,蒙特卡洛强化学习就是其中的一种。
蒙特卡洛强化学习使用多次采样,然后求取平均累计奖赏作为期望累计奖赏的近似。
直接对状态动作值函数Q(s,a)进行估计,每采样一条轨迹,就根据轨迹中所有“状态-动作”利用公式对值函数进行更新。每次采样更新完所有“状态-动作”对 所对应的Q(s,a),就需要更新采样策略pai。但由于策略可能是确定性的,即一个状态对应一个动作,多次采样可能获得相同的采样轨迹,因此需要借助E贪心策略(使用E概率随机选取动作或1-E的概率根据神经网络的输出选择动作)。
缺陷:蒙特卡洛强化学习算法需要采样一个完整的轨迹来更新值函数,效率较低,此外该算法没有充分利用强化学习任务的序贯决策结构。