吴恩达机器学习
学习视频参考b站:吴恩达机器学习
本文是参照视频学习的随手笔记,便于后续回顾。
推荐系统(Recommender System)
提出建议
预测电影评分示例
用户给电影打1-5星,没看过不打分
n表示数量,r表示是否打分,y表示分数
使用每个特征
电影特征,例如更倾向于爱情电影还是动作电影
wx+b是某个用户对某个电影评分的预测(用户并没给出评分),像是下图的4.95是Alice对Cute puppies of love的预测
电影预测代价函数
只对用户给出评分的使用代价函数
m(j)是用户评分电影的数量,不加影响也不大
通过代价函数最小化得到参数w,b,就可以进行很好地评分预测了
协同过滤算法(Collaborative filtering algorithm)
如果没有电影特征值
假设已经拥有了这些参数w,b,通过这些参数来预测x(线性代数)
如果只有一个用户(一维)无法预测特征值(二维)
特征值代价函数
协同过滤
将上面两个代价函数放在一起
通过用户已给出的评分预测没有给出的电影评分
梯度下降
二进制标签
1表示喜欢0表示不喜欢
一些标签的示例
回归解决二进制分类问题
类似逻辑回归
代价函数
均值归一化(Mean normalization)
但对于没有进行预测的用户,如何更好的预测->均值归一化
求每个电影的平均评分:总分/评分人数
将每个评分值减去μ,线性函数上加上μ,然后计算参数w,b,这样会使未评分的用户评分初始值赋为平均值
如果只有一个或几个人给电影评分(新电影),就推荐给别人这样不好,平均值可能极高或极低
TensorFlow实现(实现协同过滤算法)
使用一个简单的代价函数作为示例b=0,y=1
TensorFlow的强大功能Auto Diff、Auto Grad(自动获取导数这些东西)
下图实现梯度下降
下图实现协同过滤
附带过滤算法和成本函数不能很好地适用密集层(dense layer)
寻找相似特征
给定特征x,寻找相似的x值
如何对新电影或评价少的电影进行相关操作?(冷启动问题)
使用其他边信息(side information) 进行推测
协同过滤与基于内容过滤对比(Collaborative filtering VS Content-based filtering)
协同过滤:
根据相关用户评分进行推测
基于内容过滤:
根据用户的特点进行推荐(也会继续使用r用户是否评分和y评分值)
用户特征和电影特征
x可能长度不同,但是v必须相同,因为要点积
那么如何计算v呢?通过神经网络->下节↓
基于内容过滤的深度学习方法
不同的输入,固定的输出
可以使用sigmoid函数预测点积(用户和电影)是否相关
如何训练这么多参数->通过代价函数J
通过计算相关v之间的距离来判断是否相似
从大型目录中推荐(Recommending from a large catalogue)
不可能每次用户使用时都计算百万次来进行相关推荐
损失尺度推荐系统(lost scale recommended system)两步实现:
检索(Retrieval)和排名(Ranking)
先通过某些方式检索出一部分数据放入列表,然后通过神经网络给他们排名匹配预测
检索数量越多系统越慢,选择合适的检索数量
推荐系统中的伦理
基于内容过滤的TensorFlow实现
选修(也重要)
降低特征数量(Reducing the number of features)
如图X2的变化对汽车测量影响不大,PCA算法就会自动舍弃X2,只取X1
如下图舍弃X2轮胎直径,只取X1
PCA做的是找到一个或多个新轴,像是下图Z(并不是三维,一个平面),取了一个新的特征Size来衡量length和height
PCA可以把很多特征变为几个特征
国家特征示例:
PCA算法
首先特征值归一化
PCA步骤:
1.选择一个轴,将数据投影(垂直)到上面
2.选择最好的那个
下图看起来投影后的点距离太远,方差大,不好
下图看起来投影后的点距离过近,挤在一起了,方差小,并不好
下图这个看起来比较好,PCA会选择这个
通过点积求投影
前提:已经选好Z轴(并不一定是最终的)
PCA不是线性回归,区别:
线性回归是通过x预测y,代价是y到线的距离
PCA是尽可能平均方差,让更多点到主成分的距离小
如果只有Z的值,可不可以重建X1和X2?
只能模糊计算,通过点积轴
PCA算法代码实现
fit会自动归一化处理
一个主成分示例:
两个主成分示例:
PCA用途:
1.可视化
2.数据压缩
3.加速监督学习模型训练速度
Summary
本周主要学了以下内容
1.推荐系统的符号表示(提出建议),特征值使用,
2.用户的代价函数和电影特征的代价函数,协同过滤算法、代价函数及梯度下降
3.回归解决二进制分类问题,均值归一化,TensorFlow实现协同过滤
4.寻找相似特征,协同过滤与内容过滤的对比,基于内容过滤的深度学习
5.大型目录中的推荐系统,推荐系统中的伦理,基于内容过滤的TensorFlow实现
6.使用PCA降低特征数量及代码实现