梯度下降

机器学习算法总结(十一)——条件随机场

主宰稳场 提交于 2021-01-12 06:55:39
1、条件随机场的定义      条件随机场的定义:设X与Y是随机变量,P(Y|X)是给定条件X时Y的条件概率分布,此时若随机变量Y构成的是一个马尔科夫随机场,则称条件概率分布P(Y|X)是条件随机场。隐马尔科夫模型和隐马尔科夫随机场是属于生成模型,因为它们都有计算联合概率分布,而条件随机场是判别模型,其目标就是直接构建条件概率模型P(Y|X)。    首先定义一般的条件随机场模型 ,设X与Y是随机变量。若随机变量Y构成一个由无向图G=(V, E)表示的马尔科夫随机场。则有下面的表达式      对于上面的式子若是对所有的v都成立,则称条件概率分布P(Y|X)为条件随机场。式子中w~v表示与结点v有边连接的所有结点(也就是和结点v存在依赖关系的结点),而w≠v,则表示除了v之外的所有结点。对于一般的条件随机场来说,结点v的条件概率除了和X有关还和与之有边相连的结点有关。    再来看线性链条件随机场 ,在一般的条件随机场中并没有要求X和Y具有相同的结构,而在线性链条件随机场中要求X和Y具有相同的结构,具体结构如下图         设X = (X 1 , X 2 , ..., X n ),Y = (Y 1 , Y 2 , ..., Y n )均为线性链表示的随机变量序列,若在给定随机变量序列X的条件下,随机变量序列Y的条件概率分布P(Y|X)构成条件随机场,即满足马尔科夫性

梯度下降_机器学习-李宏毅

|▌冷眼眸甩不掉的悲伤 提交于 2021-01-10 16:51:13
梯度下降 调整学习率learning rate 学习率过大,发生震荡。学习率过小,学习效率低 较好的方法是在较平坦的地方步子迈大些,陡峭的地方步子迈小些 自适应学习率 随着迭代次数的增加,通过因子来减小学习率 刚开始,初始点距离最低点远,使用大的学习率 迭代若干次数后靠近最低点,采用小的学习率 Adagrad算法 一般梯度下降: $$ L=\sum_n(\tilde{y}^n - (b+\sum w_ix_i^n))^2 \ w^{t+1}\gets w^t-\eta^tg^t\ \eta^t=\frac{\eta}{\sqrt{t+1}} $$ Adagrad: $$ w^{t+1}\gets w^t-\frac{\eta^t}{\sigma}g^t\ g^t=\frac{\partial L(\theta^t)}{\partial w}\ \eta^t = \frac{\eta}{\sqrt{t+1}}\ \sigma^t=\sqrt{\frac{1}{t=1}\sum^t_{i=0}(g^i)^2} $$ 化简: $$ w^{t+1}\gets w^t-\frac{\eta}{\sqrt{\sum^t_{i=0}(g^i)^2}}g^t\ $$ 随机梯度下降 Stochastic Gradient Descent 常规梯度下降是将 所有训练集数据处理后才开始更新参数

[Reinforcement Learning] Policy Gradient Methods

强颜欢笑 提交于 2021-01-09 17:15:14
上一篇博文的内容整理了我们如何去近似价值函数或者是动作价值函数的方法: $$ V_{\theta}(s)\approx V^{\pi}(s) \ Q_{\theta}(s)\approx Q^{\pi}(s, a) $$ 通过机器学习的方法我们一旦近似了价值函数或者是动作价值函数就可以通过一些策略进行控制,比如 $\epsilon$-greedy。 那么我们简单回顾下 RL 的学习目标:通过 agent 与环境进行交互,获取累计回报最大化。既然我们最终要学习如何与环境交互的策略,那么我们可以直接学习策略吗,而之前先近似价值函数,再通过贪婪策略控制的思路更像是"曲线救国"。 这就是本篇文章的内容,我们如何直接来学习策略,用数学的形式表达就是: $$\pi_{\theta}(s, a) = P[a | s, \theta]$$ 这就是被称为策略梯度(Policy Gradient,简称PG)算法。 当然,本篇内容同样的是针对 model-free 的强化学习。 Value-Based vs. Policy-Based RL Value-Based: 学习价值函数 Implicit policy,比如 $\epsilon$-greedy Policy-Based: 没有价值函数 直接学习策略 Actor-Critic: 学习价值函数 学习策略 三者的关系可以形式化地表示如下: <div

推荐算法-基于模型的协同过滤

若如初见. 提交于 2021-01-09 01:51:27
模型的建立相当于从 行为数据 中提取 特征 ,给用户和物品同时打上“标签” 有显性特征时,我们可以直接匹配做出推荐 没有时,可以根据已有的偏好数据,去发掘出隐藏的特征,这需要用到 隐语义模型(LFM) 一、隐语义模型(LFM Latent Factor Mode) 基于样本的用户偏好信息,训练一个推荐模型,然后根据实时的用户喜好信息进行预测新物品的得分,计算推荐 目标:揭示隐藏特征【 使用偏好数据训练模型,找到内在规律,再用模型来做预测(类似回归) 】 方法:矩阵分解进行降维分析【 分解之后的矩阵代表了用户和物品的隐藏特征 】 1、LFM降维方法-矩阵因子分解 想要发现K个隐类,就是找到两个矩阵P和Q,使得两个矩阵的乘积近似等于R 找到影响用户打分的隐藏因子-》 预测评分矩阵 2、模型的求解-损失函数 目标:找到最好的分解方式,让分解之后的预测评分矩阵误差最小 选择平方损失函数,并且加入正则化项,以防止过拟合 3、最小化过程的求解: 随机梯度下降算法: 模型求解算法- 交替最小二乘法 (ALS Alternating Least Square) 思想:由于两个矩阵P和Q都是未知,且通过矩阵乘法耦合再一起,为了使它们解耦, 可以先固定Q,把P当作变量,通过损失函数最小化求出P,再反过来固定P,把Q当作变量,求解出Q,如此交替执行,直到误差满足阈值条件,或者到达迭代上限。 来源:

线性回归——lasso回归和岭回归(ridge regression)

戏子无情 提交于 2021-01-08 08:23:24
[toc] 线性回归很简单,用线性函数拟合数据,用 mean square error (mse) 计算损失(cost),然后用梯度下降法找到一组使 mse 最小的权重。 lasso 回归和岭回归(ridge regression)其实就是在标准线性回归的基础上分别加入 L1 和 L2 正则化(regularization)。 本文的重点是解释为什么 L1 正则化会比 L2 正则化让线性回归的权重更加稀疏,即使得线性回归中很多权重为 0,而不是接近 0。或者说,为什么 L1 正则化(lasso)可以进行 feature selection,而 L2 正则化(ridge)不行。 线性回归——最小二乘 线性回归(linear regression),就是用线性函数 $f(\bm x) = \bm w^{\top} \bm x + b$ 去拟合一组数据 $D = {(\bm x_1, y_1), (\bm x_2, y_2), ..., (\bm x_n, y_n)}$ 并使得损失 $J = \frac{1}{n}\sum_{i = 1}^n (f(\bm x_i) - y_i)^2$ 最小。线性回归的目标就是找到一组 $(\bm w^ , b^ )$,使得损失 $J$ 最小。 线性回归的拟合函数(或 hypothesis)为: $$ f(\bm x) = \bm w^{\top}

【机器学习】正则化的线性回归 —— 岭回归与Lasso回归

南笙酒味 提交于 2021-01-08 07:52:18
注 :正则化是用来防止过拟合的方法。在最开始学习机器学习的课程时,只是觉得这个方法就像某种魔法一样非常神奇的改变了模型的参数。但是一直也无法对其基本原理有一个透彻、直观的理解。直到最近再次接触到这个概念,经过一番苦思冥想后终于有了我自己的理解。 0. 正则化(Regularization ) 前面使用多项式回归,如果多项式最高次项比较大,模型就容易出现过拟合。正则化是一种常见的防止过拟合的方法,一般原理是在代价函数后面加上一个对参数的约束项,这个约束项被叫做 正则化项 (regularizer)。在线性回归模型中,通常有两种不同的正则化项: 加上所有参数(不包括$\theta_0$)的绝对值之和,即$l1$范数,此时叫做Lasso回归; 加上所有参数(不包括$\theta_0$)的平方和,即$l2$范数,此时叫做岭回归. 看过不少关于正则化原理的解释,但是都没有获得一个比较直观的理解。下面用代价函数的图像以及正则化项的图像来帮助解释正则化之所以起作用的原因。 0.1 代价函数的图像 为了可视化,选择直线方程进行优化。假设一个直线方程以及代价函数如下: $\hat{h}_{\theta} = \theta_0 + \theta_1 x$,该方程只有一个特征$x$,两个参数$\theta_0$和$\theta_1$ $J(\theta) = \frac{1}{m} \sum_{i=1}

吴恩达的机器学习教程真的很赞

本秂侑毒 提交于 2021-01-05 13:02:44
这几天公众号都没更新,因为最近长沙一直在降雪,天冷了人也会变的懒的。好久没有玩自己的大疆,今天给大家看看雪后中南大学的雪景,这是大邓拍摄,我师兄kimmko剪的。 https://v.qq.com/x/page/g0540rpp9pz.html 前天在哔哩哔哩上看到有全套的吴恩达的机器学习教程,没看几集就被吴恩达博士渊博的知识所吸引。虽然大邓一直在学python,但都是低水平重复学习,理论要跟实际结合。学python还是为了要去应用,个人觉得机器学习是一个有用且有趣的应用场景。 学python不只是为了爬数据,更是想从数据中洞察一些知识和规律。之前大邓也买了一些机器学习、人工智能的书,学习的时间不够集中,碎片化导致大邓没坚持下来。当然内容不够浅显易懂是一个很重要的因素,没有将机器学习的脉络理清楚,概念之间关系不够清晰,感觉机器学习是一门炼金术式的玄学。 最近我时间比较闲,今天心血来潮就看了看吴恩达的机器学习教程,突然发现吴恩达教程不同于现在市面上的教程。吴恩达讲解的内容通俗易懂,连贯而又系统。比如市面上教程中总会出现的损失函数、梯度下降、线性回归,几个概念单独拎出来讲解的都没问题,但是学完了,对于这几个概念之间是怎么衔接还是有点模糊。个人觉得如果想从0开始接触机器学习,还是先跟着吴恩达的教程开始入门。 教程资源可以直接在哔哩哔哩直接搜索吴恩达机器学习 来源: oschina 链接:

在神经网络中weight decay

旧城冷巷雨未停 提交于 2021-01-03 14:16:32
weight decay(权值衰减)的最终目的是防止过拟合。在损失函数中,weight decay是放在正则项(regularization)前面的一个系数,正则项一般指示模型的复杂度,所以weight decay的作用是调节模型复杂度对损失函数的影响,若weight decay很大,则复杂的模型损失函数的值也就大。 momentum是梯度下降法中一种常用的加速技术。对于一般的SGD,其表达式为 , 沿负梯度方向下降。而带momentum项的SGD则写生如下形式: 其中 即momentum系数,通俗的理解上面式子就是,如果上一次的momentum(即 )与这一次的负梯度方向是相同的,那这次下降的幅度就会加大,所以这样做能够达到加速收敛的过程。 三、normalization。如果我没有理解错的话,题主的意思应该是batch normalization吧。batch normalization的是指在神经网络中激活函数的前面,将 按照特征进行normalization,这样做的好处有三点: 1、提高梯度在网络中的流动。Normalization能够使特征全部缩放到[0,1],这样在反向传播时候的梯度都是在1左右,避免了梯度消失现象。 2、提升学习速率。归一化后的数据能够快速的达到收敛。 3、减少模型训练对初始化的依赖。 作者:陈永志 链接:https://www.zhihu.com

如何手动优化神经网络模型(附链接)

。_饼干妹妹 提交于 2021-01-02 03:00:38
翻译:陈丹 校对:车前子 本文 约5400字 ,建议阅读 15 分钟 本文是一个教授如何优化神经网络模型的基础教程,提供了具体的实战代码供读者学习和实践。 深度学习的神经网络是采用随机梯度下降优化算法对训练数据进行拟合。 利用误差反向传播算法对模型的权值进行更新。优化和权值更新算法的组合是经过仔细挑选的,是目前已知的最有效的拟合神经网络的方法。 然而,也可以使用交替优化算法将神经网络模型拟合到训练数据集。这是一个有用的练习,可以了解更多关于神经网络的是如何运转的,以及应用机器学习时优化的中心性。具有非常规模型结构和不可微分传递函数的神经网络,也可能需要它。 在本教程中,您将了解如何手动优化神经网络模型的权重。 完成本教程后,您将知道: 如何从头开始开发神经网络模型的正向推理通路。 如何优化二值分类感知器模型的权值。 如何利用随机爬山算法优化多层感知器模型的权值。 我们开始吧。 图源土地管理局,权利归其所有 教程概述 本教程分为三个部分:它们是: 优化神经网络 优化感知器模型 优化多层感知器 优化神经网络 深度学习或神经网络是一种灵活的机器学习。 它们是受大脑结构和功能的启发而来的,由节点和层次组成的模型。神经网络模型的工作原理是将给定的输入向量传播到一个或多个层,以产生可用于分类或回归预测建模的数值输出。 通过反复将模型暴露在输入和输出示例中

独家 | 如何手动优化神经网络模型(附链接)

我怕爱的太早我们不能终老 提交于 2020-12-30 16:57:37
翻译:陈丹 校对:车前子 本文 约5400字 ,建议阅读 15 分钟 本文是一个教授如何优化神经网络模型的基础教程,提供了具体的实战代码供读者学习和实践。 标签:神经网络优化 深度学习的神经网络是采用随机梯度下降优化算法对训练数据进行拟合。 利用误差反向传播算法对模型的权值进行更新。优化和权值更新算法的组合是经过仔细挑选的,是目前已知的最有效的拟合神经网络的方法。 然而,也可以使用交替优化算法将神经网络模型拟合到训练数据集。这是一个有用的练习,可以了解更多关于神经网络的是如何运转的,以及应用机器学习时优化的中心性。具有非常规模型结构和不可微分传递函数的神经网络,也可能需要它。 在本教程中,您将了解如何手动优化神经网络模型的权重。 完成本教程后,您将知道: 如何从头开始开发神经网络模型的正向推理通路。 如何优化二值分类感知器模型的权值。 如何利用随机爬山算法优化多层感知器模型的权值。 我们开始吧。 图源土地管理局,权利归其所有 教程概述 本教程分为三个部分:它们是: 优化神经网络 优化感知器模型 优化多层感知器 优化神经网络 深度学习或神经网络是一种灵活的机器学习。 它们是受大脑结构和功能的启发而来的,由节点和层次组成的模型。神经网络模型的工作原理是将给定的输入向量传播到一个或多个层,以产生可用于分类或回归预测建模的数值输出。 通过反复将模型暴露在输入和输出示例中