当前位置: 首页 > news >正文

吴恩达机器学习全课程笔记第七篇

目录

前言

P114-P120

推荐系统

协同过滤

均值归一化

协同过滤的tensorflow实现

查找相关项目

P121-P130

基于内容的过滤

强化学习

P131-P142

状态动作值函数定义

Bellman方程

随机环境

连续状态空间应用实例

前言

这是吴恩达机器学习笔记的第七篇,第六篇笔记请见:

吴恩达机器学习全课程笔记第六篇

完整的课程链接如下:

吴恩达机器学习教程(bilibili)

推荐网站

scikit-learn中文社区

吴恩达机器学习资料(github)

P114-P120

推荐系统

如果在上述的基础上,我们还拥有每部电影的一些特征

对于第一个用户而言,可以根据下面的方式去计算一个得分去预估他会对某些电影的评分

对于这个算法,我们接下来研究它的成本函数

通过最小化成本函数来学习、训练我们想要得到的参数

协同过滤

上述的预测是基于我们已知这些电影的某些特征的前提下,如果事先没有这些特征怎么办呢?

上面展示了如何根据参数去猜测某一部电影的特征

接下来我们根据成本函数去学习x1、x2的值,但需要注意的是:这里之所以有效是因为我们有四个用户的参数

把两种成本函数放在一起,变成协同过滤的成本函数表达式

协同过滤的梯度下降:

下面将要把上述的算法从预测数字推广到预测二进制标签上去

下面是预测二进制标签在推荐系统中的一些应用实例

从回归到分类的转换和前面的类似,可以套入一个sigmoid函数

最后,预测标签的协同过滤的成本函数如下

均值归一化

增加归一化,将帮助算法对用户做出更好的预测

在正常情况下,对于一个还没有进行任何评价的用户,刚开始假定w、b全0,因为它并不会对最后的x做出影响,但是这样的话在训练之后w、b还会一直保持0,将无法得到有帮助的结果

进行均值归一化的过程如下所示

这种方法使得用户五与其它用户对五部电影的评分平均值相同,虽然直接给用户五赋值0有利于增加推荐算法的效率,但却不能使算法表现出很好的效果

同理,如果对列进行均值归一化,适用于一部电影还没被任何人评分的预测场景中

协同过滤的tensorflow实现

tensorflow的一个好处是可以为您计算出成本函数的导数是什么,所以你只需要实现成本函数,而不需要任何微积分的知识

下面是使用tensorflow进行梯度下降的一个例子

协同过滤的实现如下

查找相关项目

如果你去一个网上购物网站,正在看一个项目,网站可能会向你展示一些类似的东西

协同过滤的缺陷

P121-P130

基于内容的过滤

第二种推荐算法是基于内容的过滤,我们让它和协同过滤做出一个比较:

在协同过滤中,我们有许多用户给不同用户的打分,相比之下在基于内容的过滤中,我们有用户的特征和用户的特征,我们想要找到一种方法,在用户和项目之间找到良好的匹配,我们要做的就是计算一些向量,用户用vu,电影用vm,然后取他们点积,试图找到好的匹配,

如何得到这两个向量,可以使用深度学习的方法

上述单独建立了两个神经网络,实际上可以把它画在一起

在得到上述的向量之后就可以找到相似的电影了

在大规模应用中,主要包含两个步骤:

强化学习

强化学习(Reinforcement learning,RL)讨论的问题是一个智能体(agent) 怎么在一个复杂不确定的 环境(environment) 里面去极大化它能获得的奖励。通过感知所处环境的 状态(state) 对 动作(action) 的 反应(reward), 来指导更好的动作,从而获得最大的 收益(return),这被称为在交互中学习,这样的学习方法就被称作强化学习

以训练直升机自动驾驶为例,很难想监督学习那样得到x和理想作用y的数据集,这就是为什么很多控制机器人的任务重监督学习方法效果不好,强化学习的关键输入是一种叫做奖励的东西,它告诉直升机什么时候做得很好

下面是强化学习的一些应用

下面是火星探测器的一个简化例子,并标出了强化学习主要研究的四个指标

在这个例子中,让我们算一下向两边走的收益(return),其中γ是折现系数,是一个小于1的值

强化学习中决策和策略决定了接下来的要执行的动作

所以强化学习的目标就是找到这个策略(π)

下面对三个例子进行总结,回顾强化学习的概念

马尔科夫决策过程

P131-P142

状态动作值函数定义

下面是强化学习中状态动作函数的定义和几个例子的计算,主要方框圈起来的是状态函数值返回值的条件,三个条件缺一不可

在进行行动决策的时候,只需要选出Q函数不同行动下的最大值对应的行动即可

Bellman方程

bellman方程可以帮助我们计算上述的状态动作值函数

随机环境

有时候命令火星探测器向左,但由于环境问题,无法向左

在随机化强化学习中,我们关注的不是最大回报,因为那是个随机数,我们感兴趣的是最大化所有可能的总奖励的平均值,这是后就引入了期望收益

由此可以更改上面学习的bellman方程为

连续状态空间应用实例

自动直升机的状态可以写成:

对于月球着陆器可以提供一些奖励供它进行强化学习

建立一个神经网络去学习状态动作函数

学习算法

强化学习的限制

相关文章:

  • 【比较mybatis、lazy、sqltoy、mybatis-flex、easy-query操作数据】操作批量新增、分页查询(三)
  • 物联网常见协议篇
  • QT tcp通信
  • 共享wifi项目如何加盟,都有哪些注意事项?
  • JDK22新特性Class-File API尝鲜
  • 1.3 卷积层的输出尺寸、参数量和计算量
  • VUE3项目学习系列--项目配置(二)
  • 行人实时动作识别
  • Maven能解决什么问题?为什么要用?
  • STM32(15)USART编程
  • 红黑树的简单介绍
  • 第十七天-反爬与反反爬-验证码识别
  • [HackMyVM]靶场 Quick3
  • 【学习心得】网站运行时间轴(爬虫逆向)
  • C# Winform画图绘制圆形
  • Docker容器管理
  • Javascripit类型转换比较那点事儿,双等号(==)
  • Material Design
  • Terraform入门 - 3. 变更基础设施
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • 从零开始的无人驾驶 1
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 工作手记之html2canvas使用概述
  • 规范化安全开发 KOA 手脚架
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 前嗅ForeSpider教程:创建模板
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 数据科学 第 3 章 11 字符串处理
  • Java总结 - String - 这篇请使劲喷我
  • RDS-Mysql 物理备份恢复到本地数据库上
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (四)图像的%2线性拉伸
  • (转)JAVA中的堆栈
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .Mobi域名介绍
  • .NETCORE 开发登录接口MFA谷歌多因子身份验证
  • .sdf和.msp文件读取
  • @Async注解的坑,小心
  • @for /l %i in (1,1,10) do md %i 批处理自动建立目录
  • [2016.7.test1] T2 偷天换日 [codevs 1163 访问艺术馆(类似)]
  • [Apio2012]dispatching 左偏树
  • [C++]Leetcode17电话号码的字母组合
  • [C++]类和对象(中)
  • [Django ]Django 的数据库操作
  • [GPT]Andrej Karpathy微软Build大会GPT演讲(上)--GPT如何训练
  • [GXYCTF2019]BabySQli1
  • [LeetCode]Balanced Binary Tree
  • [leetcode]Clone Graph
  • [MICROSAR Adaptive] --- Hello Adaptive World
  • [OpenGL(Win32)] - 3D 轮廓字体