吴恩达机器学习笔记EP13

【推荐系统相关和强化学习】吴恩达机器学习笔记EP13(P121-P130)

从今天开始我将学习吴恩达教授的机器学习视频,下面是课程的连接1.1 欢迎来到机器学习!_哔哩哔哩_bilibili。一共有142个视频,争取都学习完成吧。


协同过滤 VS 基于内容的过滤

上一EP介绍了协同过滤的内容,协同过滤根据用户评分推荐可能该用户也会给高分的项目。

然后这里介绍一个基于内容的推荐方法,这种方法需要有足够的数据支撑。下图有用户和项目特征数据的举例。

基于内容的过滤方法主要是学习匹配。计算两个向量vu和vm的点积,这个就是预测的值,然后试图根据这个值去找到好的匹配。

Deep learning for content-based filtering

下面就介绍了vu和vm的由来,主要是训练两个神经网络,然后分别通过xu和xm计算或者说推理vu和vm

这里要注意的是,两个神经网络里面的隐藏层的神经元数量可以随便定,但是最后两个输出层的神经元数量必须要相等,这样才能做之后的点乘操作。

然后将两个神经网络合成一个,训练整个神经网络。

代价函数如下图所示,主要就是用vu和vm的点积也就是预测值减去实际值y。

应用起来,比如寻找相似电影推荐,就可以让下面这个计算举例的式子的值尽可能小。

从大目录中推荐

现实中,整个要推荐的大目录中有很多的数据,下面就是从大目录中推荐的一个示例:

生成一个大的推荐表单分为下面几个组成部分:1)使用推荐系统,用十部用户最近看的电影,找出与这十部电影相似的推荐。2)观看次数最多的三类电影,找出其中的十部。3)国内排前20的电影。

最后删除重复或者已经看过的电影。这样就组成了一个大的推荐表单内容。

接着是排名的做法:就是运用学好的模型对列表内容进行排序,然后向用户展示内容排名。

两个过程细节:

检索越多项,可获得更好的性能,但速度慢。

离线实验,时刻看加入额外的项会不会有不好的结果。

推荐系统的道德使用

推荐系统的最后一部分内容是道德使用相关的内容。

比如好的使用示例是可以给到更多用户良好的旅行体验。

反例比如说会压榨客户等等。

一个笼统的改进做法就是不接受来自剥削性企业的广告。

下图是其它问题示例和笼统的改进做法,可以自行看下图,文字不做说明。

基于内容过滤的TensorFlow实现

代码中进行说明:

#两个神经网络的构建
user_NN = tf.keras.models.Sequential([
    tf.keras.layers.Dense(256, activation = 'relu')
    tf.keras.layers.Dense(128, activation = 'relu')
    tf.keras.layers.Dense(32)
])

item_NN = tf.keras.models.Sequential([
    tf.keras.layers.Dense(256, activation = 'relu')
    tf.keras.layers.Dense(128, activation = 'relu')
    tf.keras.layers.Dense(32)
])

# 创建用户输入和分数到基础网络当中
input_user = tf.keras.layers.Input(shape=(num_user_features)) # 为用户提取输入特征
vu = user_NN(input_user)
vu = tf.linalg.l2_normalize(vu, axis=1) # 将向量vu归一化为长度1

input_item = tf.keras.layers.Input(shape=(num_user_features)) # 为用户提取输入特征
vm = item_NN(input_user)
vm = tf.linalg.l2_normalize(vu, axis=1) # 将向量vm归一化为长度1

# 结合两个神经网络,做点乘
output = tf.keras.layers.Dot(axis=1)([vu, vm])

model = Model([input_user, input_item], output) # 给模型输入和输出

cost_fn = tf.keras.losses.MeanSquareError() # loss定义

什么是强化学习

进入本课程最后的内容强化学习。

强化学习就是告诉系统什么是对的,什么是错的,但是不说怎么做,让系统自己去尝试。

针对这种方法,引入奖励函数x。就是如果系统做对,就给一点奖励;如果系统做错,就给大一点的惩罚。

火星探测器示例

下面用火星探测器作为示例。

state是每个状态下面有对映的奖励。比如说火星探测器在状态1和6上面返回好的探测照片,就给予100和40的奖励。

通过奖励决定如何采取行动,经过不断试错,找到获取奖励最大的情况。

下面是一个写法示例:(s, a, R(s), s’),代表的是(目前状态位置, 方向, 对应奖励, 新状态位置)。

The Return in reinforcement learning

强化学习中再引入一个贴现因子的概念,用来综合衡量高价值的奖励和要更新的次数,更快获得奖励会导致总回报的价值更高。

强化学习中的决策与策略制定

再来引入一个概念,π是状态策略函数,注意这里pai是个函数不是一个常数!用来告诉系统当前状态下怎么做是最好的。

强化学习的目标是找到一个策略,告诉系统每个状态下应该采取什么动作。

回顾关键概念

最后是前面介绍的相关概念的回顾和对应概念的示例。

最后介绍了强化学习的过程,也就是马尔可夫决策过程。

分为更新策略π,然后做出行为,接着与环境/世界进行实际的交互,最后更新状态,看是否给予奖励。

强化学习做的就是不断重复这个过程。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇