【深度学习入门】深度学习四板斧其二 -- 机器学习入门4

第三课
无监督学习、推荐系统和强化学习

一、无监督学习

-聚类(Clustering)
数据集只有x没有y,分析数据集把数据分类为彼此相似的集群中。
-K-means聚类算法(K-means algorithm)
思路:
1.将每个点分配给簇质心,距离哪个质心近就算哪个。
2.将每个簇质心移动到分配给它的所有点的平均值。
-优化目标(Optimization objective)
成本函数(失真函数):
J ( c ( 1 ) , . . , c ( m ) , μ 1 , . . . , μ k ) = 1 m ∑ i = 1 m ∥ x ( i ) − μ c ( i ) ∥ 2 J(c^{(1)},..,c^{(m)},\mu _{1},..., \mu _{k} ) = \frac{1}{m} \sum_{i=1}^{m} \left \|x^{(i)} - \mu _{c^{(i)}}\right \|^{2} J(c(1),..,c(m),μ1,...,μk)=m1i=1m x(i)μc(i) 2
每次更新簇质心时,也下降了成本函数;如果成本函数保持不变,说明值已经收敛了。
-初始化K-means(Initializing K-means)
随机选择数据点作为簇质心,并计算此时的成本函数;
一般重复50-100次,从而选择出最合适的集群。
-选择聚类数量(Choosing the Number of Clusters)
肘部方法(Elbow method):
增大簇的数量,成本函数逐渐减小,图片趋于平缓时的簇值,称为肘部。

-发现异常事件(Finding unusual events)
如果一个数据明显偏离于其他数据,那么这个数据就有可能有问题。
-高斯正态分布(Gaussian (Normal)Distribution)
p ( x ) = 1 2 π σ e − ( x − μ ) 2 2 σ 2 p(x)=\frac{1}{\sqrt{2\pi } \sigma } e^{\frac{-(x-\mu )^{2} }{2\sigma ^{2} } } p(x)=2π σ1e2σ2(xμ)2
-异常检测算法
μ j = 1 m ∑ i = 1 m x j ( i ) \mu _{j} =\frac{1}{m} \sum_{i=1}^{m} x_{j}^{(i)} μj=m1i=1mxj(i)
σ j 2 = 1 m ∑ i = 1 m ( x j ( i ) − μ j ) 2 \sigma _{j}^{2} = \frac{1}{m} \sum_{i=1}^{m} (x _{j}^{(i)}-\mu _{j} )^{2} σj2=m1i=1m(xj(i)μj)2
p ( x ) = ∏ j = 1 n p ( x j ; μ j , σ j 2 ) p(x) = \prod_{j=1}^{n} p(x_{j};\mu _{j},\sigma _{j}^{2} ) p(x)=j=1np(xj;μj,σj2)
如果p(x) <ε,则将数据标记为异常。
-开发与评估异常检测系统(Developing and evaluating an anomaly detection system)
y = { 1  if  p ( x ) < ε ( a n o m a l y ) 0  if  p ( x ) ≥ ε ( n o r m a l ) y=\begin{cases} 1 & \text{ if } p(x)<\varepsilon (anomaly) \\ 0 & \text{ if } p(x)\ge \varepsilon (normal) \end{cases} y={10 if p(x)<ε(anomaly) if p(x)ε(normal)
由于异常数据例和正常例比例差距过大,所有可以采用倾斜数据集等分析方式来处理数据。
-异常检测vs监督学习(Anomaly detection vs. supervised learning)
正例特别少时,异常检测更好;正例与反例数量相当,监督学习更合适。
异常检测用于:判断金融欺诈、检测设备未知故障、防黑客骇入…
监督学习用于:判断垃圾邮件、检测设备已知故障、天气预报、病情监测…
-选择使用什么特征(Choosing what features to use)
选择合适的特征对于异常检测来说更重要。
特征尽量符合高斯分布,如果不符合,通过变化使其尽量满足高斯分布。

二、推荐系统

-成本函数
J ( w ( 1 ) , . . . , w ( n u ) b ( 1 ) , . . . , b ( n u ) ) = 1 2 ∑ j = 1 n u ∑ i : r ( i , j ) = 1 ( w ( j ) ⋅ x ( i ) + b ( j ) − y ( i , j ) ) 2 + λ 2 ∑ j = 1 n u ∑ k = 1 n ( w k ( j ) ) 2 J\begin{pmatrix}w^{(1)},..., w^{(n_{u} )} \\b^{(1)},..., b^{(n_{u} )} \end{pmatrix}=\frac{1}{2} \sum_{j=1}^{n_{u}} \sum_{i:r(i,j)=1}^{} (w^{(j)}\cdot x^{(i)} + b^{(j)} -y^{(i,j)})^{2} +\frac{\lambda }{2} \sum_{j=1}^{n_{u} } \sum_{k=1}^{n}(w_{k}^{(j)} ) ^{2} J(w(1),...,w(nu)b(1),...,b(nu))=21j=1nui:r(i,j)=1(w(j)x(i)+b(j)y(i,j))2+2λj=1nuk=1n(wk(j))2
-协同过滤(collaborative filtering)
m i n w ( 1 ) , . . . , w ( n u ) b ( 1 ) , . . . , b ( n u ) x ( 1 ) , . . . , x ( n m ) J ( w , b , x ) = 1 2 ∑ ( i , j ) : r ( i , j ) = 1 ( w ( j ) ⋅ x ( i ) + b ( j ) − y ( i , j ) ) 2 + λ 2 ∑ j = 1 n u ∑ k = 1 n ( w k ( j ) ) 2 + λ 2 ∑ i = 1 n m ∑ k = 1 n ( x k ( i ) ) 2 \begin{matrix}min \\w^{(1)} ,...,w^{(n_{u} )} \\b^{(1)} ,...,b^{(n_{u} )} \\x^{(1)} ,...,x^{(n_{m} )} \end{matrix}J(w,b,x)=\frac{1}{2} \sum_{(i,j):r(i,j)=1}^{} (w^{(j)}\cdot x^{(i)} + b^{(j)} -y^{(i,j)})^{2} +\frac{\lambda }{2} \sum_{j=1}^{n_{u} } \sum_{k=1}^{n}(w_{k}^{(j)} ) ^{2} +\frac{\lambda }{2} \sum_{i=1}^{n_{m} } \sum_{k=1}^{n}(x_{k}^{(i)} ) ^{2} minw(1),...,w(nu)b(1),...,b(nu)x(1),...,x(nm)J(w,b,x)=21(i,j):r(i,j)=1(w(j)x(i)+b(j)y(i,j))2+2λj=1nuk=1n(wk(j))2+2λi=1nmk=1n(xk(i))2
进行梯度下降:
{ w i ( j ) = w i ( j ) − α ∂ ∂ w i ( j ) J ( w , b , x ) b ( j ) = b ( j ) − α ∂ ∂ b ( j ) J ( w , b , x ) x k ( i ) = x k ( i ) − α ∂ ∂ x k ( i ) J ( w , b , x ) \left\{\begin{matrix}w_{i}^{(j)} =w_{i}^{(j)}-\alpha \frac{\partial }{\partial w_{i}^{(j)}} J(w,b,x) \\b_{}^{(j)} =b_{}^{(j)}-\alpha \frac{\partial }{\partial b_{}^{(j)}} J(w,b,x) \\x_{k}^{(i)} =x_{k}^{(i)}-\alpha \frac{\partial }{\partial x_{k}^{(i)}} J(w,b,x) \end{matrix}\right. wi(j)=wi(j)αwi(j)J(w,b,x)b(j)=b(j)αb(j)J(w,b,x)xk(i)=xk(i)αxk(i)J(w,b,x)

-均值归一化(Mean normalization)
加快算法运行速度,当用户评价很少时,可以使算法给出更好、更合理的预测。
-寻找相关特征(Finding related items)
通过特征值之间的距离,来查找相似的数据,进行相似电影的推荐。
∑ l = 1 n ( x l ( k ) − x l ( i ) ) 2 \sum_{l=1}^{n} (x_{l}^{(k)} -x_{l}^{(i)})^{2} l=1n(xl(k)xl(i))2
-协同过滤的局限性

  • 对于新项目,无法进行合理预测。
  • 分析哪些特征进行预测也是一个需要考虑的问题。

-协同过滤vs基于内容过滤(Collaborative filtering vs Content-based filtering)
协同过滤:根据用户已给出的评价来推荐项目
基于内容过滤:在用户特征和项目特征寻找匹配来推荐
-基于内容过滤的深度学习方法(Deep learning for content-based filtering)
对于用户特征和项目特征,一般情况下它们维度不同,因此先进行神经网络将其转化为同维度,算出两者的点积,则为评分。
-从大型目录中推荐(Recommending from a large catalogue)

  • 检索(Retrieval):生成大量可能的项目候选者列表。
  • 排名(ranking):将上一个步骤的项目通过学习模型进行排名,从而推荐给用户。

-推荐系统中的伦理
传播正能量,文明你我他!

-降低特征向量(Reducing the number of features)
PCA:如果有大量的特征,经过处理(把多个特征合并为一个)得到2-3个特征,从而可以进行绘图和可视化。
-PCA算法(PCA Algorithm)
执行PCA之前,先进行特征缩放;添加z轴,其他数据分别投影到z轴上,数据在z轴上要尽量分散。
PCA可以通过重建,近似地反推出原数据的特征值。

三、强化学习

-什么是强化学习(What is Reinforcement Learning?)
强化学习就像训狗,告诉它做什么好,而不是应该做什么好,让它根据情况自己做出判断。
-强化学习的回报(The Return in reinforcement learning)
R e t u r n = R 1 + r R 2 + r 2 R 3 + . . . , r = 0.9 Return = R_{1} + rR_{2} + r^{2} R_{3} + ... ,r = 0.9 Return=R1+rR2+r2R3+...,r=0.9
强化学习的目标是找到一个策略,告诉你在每个状态下采取什么行动以最大化回报。
-审查关键概念(Review of key concepts)
状态(states)、动作(actions)、奖励(rewards)、折扣因子(discount factor)、回报(return)、决策(policy)。
马尔可夫决策过程MDP(Markov Decision Process):未来仅取决于当前状态,而不取决于达到当前状态之前发生的任何事情。

-状态-动作价值函数定义(State-action value function definition)
Q(s,a) =
1.从状态s开始
2.执行一次a动作
3.执行动作后,计算最大回报
-贝尔曼方程(Bellman Equation)
Q ( s , a ) = R ( s ) + γ m a x a ′ Q ( s ′ , a ′ ) Q(s,a)=R(s)+\gamma \underset{{a}' }{max} Q({s}',{a}') Q(s,a)=R(s)+γamaxQ(s,a)
-随机环境(random stochastic environment)
Q ( s , a ) = R ( s ) + γ E ( m a x a ′ Q ( s ′ , a ′ ) ) Q(s,a)=R(s)+\gamma E(\underset{{a}' }{max} Q({s}',{a}')) Q(s,a)=R(s)+γE(amaxQ(s,a))

-示例:连续状态空间应用(Example of continuous state applications)
s = [ x y θ x ˙ y ˙ θ ˙ ] s=\begin{bmatrix}x \\y \\\theta \\\dot{x} \\\dot{y} \\\dot{\theta} \end{bmatrix} s= xyθx˙y˙θ˙
-状态值函数(Learning the state-value function)
DQN(DeepQ-Network)算法:使用深度学习和神经网络来训练模型从而学习Q函数。
原理:先假设出Q函数,然后得出结果(x,y)(其中y = Q(s,a)),导入神经网络进行验证,一步步修改神经网络使其逐渐拟合。
-算法改进:改进的神经网络架构(Algorithm refinement:Improved neural network architecture)
修改神经网络单个输出为多个输出。
-算法改进:ε-贪婪策略(Algorithm refinement:ε-greedy policy)
思路:大概率(0.95)情况下,采取最大化Q(s,a),执行最合适的动作;小概率(ε=0.05)情况下,执行随机动作;使神经网络能够克服它自己的先入为主。
-算法改进:小批量和软更新(Algorithm refinement:Mini-batch and soft update)
小批量:当数据集过大时,我们选取它的子集来训练神经网络。
软更新:W = 0.01Wnew + 0.99W、B = 0.01Bnew + 0.99B。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值