eta

机器学习之SVM支持向量机笔记

有些话、适合烂在心里 提交于 2019-11-29 02:08:13
数学理论部分 1.svm支持向量机是什么? 如下图所示,SVM的目标就是寻找一条图中的黑线,使得这条线到两个分类的距离最大,即寻找最大间隔 2.超平面:我们定义那条黑线为超平面,函数公式为 ƒ(x)= w T x + b ,当ƒ(x)= w T x + b=0时为黑线处,大于或者小于分别表示一个类别。 3.分类:根据超平面我们可以进行如下定义,完成分类 【注】我们将类别 y i 定义为正负一是为了方便计算边界条件 ,就拿1分类举例,因为y i 为1,所以 yi(w T x + b )>=1仍然成立,这个分类的边界为 yi(w T x + b)=1,我们顺利的将标签y与特征x均放入了一个公式当中。 4.距离计算: 样本点到超平面距离为 ,样本之间的间隔为 4.1推导样本点到平面距离: 方法一: , ,两个公式联立可得 ,||w||为范数,是所有元素平方和再开方,w是一个方向向量 方法二:利用中学的距离公式,点到直线的距离公式 ,现在已知直线是ƒ(x)= w T x + b,所以 4.2推导:从3中可以知道分类的边界是 yi(w T x + b)=1,而 yi=1,所以w T x + b=1,于是单边间距为 ,总间距为 5.拉格朗日乘数法:对于多元函数 ƒ(x,y)在约束条件φ(x,y)情况下求极值可以使用拉格朗日乘数法,首先加入一个拉格朗日乘数λ,构造出拉格朗日函数 ,对 x、y

机器学习排序算法:RankNet to LambdaRank to LambdaMART

守給你的承諾、 提交于 2019-11-28 23:51:31
使用机器学习排序算法LambdaMART有一段时间了,但一直没有真正弄清楚算法中的所有细节。 学习过程中细读了两篇不错的博文,推荐给大家: 梯度提升树(GBDT)原理小结 徐博From RankNet to LambdaRank to LambdaMART: An Overview 但经过一番搜寻之后发现,目前网上并没有一篇透彻讲解该算法的文章,所以希望这篇文章能够达到此目的。 本文主要参考微软研究院2010年发表的文章 From RankNet to LambdaRank to LambdaMART: An Overview 1 1,并结合自己的理解,试图将RankNet、LambdaRank和LambdaMART这三种算法的所有算法细节讲解透彻。 1. 概述 RankNet、LambdaRank和LambdaMART是三个关系非常紧密的机器学习排序算法。简而言之,RankNet是最基础,基于神经网络的排序算法;而LambdaRank在RankNet的基础上修改了梯度的计算方式,也即加入了lambda梯度;LambdaMART结合了lambda梯度和MART(另称为GBDT,梯度提升树)。这三种算法在工业界中应用广泛,在BAT等国内大厂和微软谷歌等世界互联网巨头内部都有大量应用,还曾经赢得“Yahoo!Learning To Rank Challenge(Track 1)"的冠军

纹理特征描述之自相关函数法 纹理粗糙性与自相关函数的扩展成正比 matlab代码实现

我的梦境 提交于 2019-11-28 20:30:55
图像中通常采用自相关函数作为纹理测度 自相关函数的定义为: ​ 调用自定义函数 zxcor()对砖墙面和大理石面纹理进行分析: 自定义函数 zxcor(): function [epsilon,eta,C] = zxcor( f,D,m,n ) % 自相关函数zxcor(),f为读入的图像数据,D为偏移距离,[m,n]是图像的尺寸数据,返回图像相关函数C的值 % epsilon和eta是自相关函数C的偏移变量 for epsilon=1:D for eta=1:D temp = 0; fp = 0; for x=1:m for y=1:n if(x+epsilon-1)>m | (y+eta-1)>n f1=0; else f1 = f(x,y)*f(x+epsilon-1,y+eta-1); end temp = f1+temp; fp = f(x,y)*f(x,y)+fp; end end f2(epsilon,eta)=temp; f3(epsilon,eta)=fp; C(epsilon,eta) = f2(epsilon,eta)/f3(epsilon,eta); end end epsilon = 0:(D-1); eta = 0:(D-1); end 调用函数的测试代码如下: close all;clear all;clc; f11 = imread(

神经网络中的反向传播法

孤街浪徒 提交于 2019-11-28 19:30:26
直观理解反向传播法 反向传播算法其实就是 链式求导法则 的应用。按照机器学习的通用套路,我们先确定神经网络的目标函数,然后用 随机梯度下降优化算法 去求目标函数最小值时的参数值。 反向传播算法 损失函数与正则化项 假设我们有一个固定样本集 \(\{(x^{(1)},y^{(1)}),···,(x^{(m)},y^{(m)})\}\) 它包含m个样本。我们可以用批量梯度下降法来求解神经网络。具体来讲,对于单个样例(x,y),其代价函数为: \[J(W,b;x,y)=\frac{1}{2}||h_{W,b}{(x)}-y||^2\] 这是一个 平方误差损失函数 。(这里的 \(\frac{1}{2}\) 是当求导时,平方会产生一个2, \(\frac{1}{2}*2=1\) 进行平均不让2累积) 对于包含m个样本的数据集,我们可以定义整体的损失函数为: \[J\left(W,b\right)=\left[\frac{1}{m}\sum_{i=1}^m{J\left(W,b;x^{\left(i\right)},y^{\left(j\right)}\right)}\right]+\frac{\lambda}{2}\sum_{l=1}^{n_l-1}{\sum_{i=1}^{s_l}{\sum_{j=1}^{s_{l+1}}{\left(W_{ji}^{\left(l\right)}

ETA:

纵饮孤独 提交于 2019-11-28 15:39:22
Route-based models - Simple Additive Model - Data-driven Model Path-free models - MURAT Model Chun-Hsin et al. Travel-time prediction with support vector regression. IEEE Trans. ITS 2004. Yanjie Duan et al. Travel time prediction with LSTM neural network. ITSC 2016. Hongjian Wang et al. A simple baseline for travel time estimation using large-scale trip data. SIGSPATIAL 2016. Dong Wang, et al. When Will You Arrive? Estimating Travel Time Based on Deep Neural Networks. AAAI 2018. Zheng Wang et al. Learning to Estimate the Travel Time, KDD 2018. [19]Hongjian Wang, Yu-Hsuan Kuo, Daniel Kifer, and

3.梯度下降法

对着背影说爱祢 提交于 2019-11-28 07:10:03
(一)什么是梯度下降法 梯度下降法 和之前介绍的k近邻算法和线性回归法不同,梯度下降法不是一个机器学习算法。它既不能解决分类问题也不能解决回归问题,那梯度下降是什么呢?以及它的作用又是什么呢? 其实,梯度下降法是一种基于搜索的最优化方法。 作用就是最小化一个损失函数,或者最大化一个效用函数,当然最大化一个效用函数就不是梯度下降了,而是梯度上升,但是本质都是一样的。 为什么会有梯度下降 我们在线性回归中,我们可以求出最小化一个函数所对应的参数的解。但是后面我们会看到,很多算法我们是没办法直接求到解的。那么基于这样的模型,我们就需要使用搜索的策略,来找到这个最优解。那么梯度下降法就是在机器学习领域,最小化损失函数的一个最常用的方法。 图解梯度下降 图中描述了损失函数J和参数θ之间的变化关系,图像上每一个点都会对应一个切线,或者说是导数。由于我们这里是一维的,所以就用导数来描述了,如果是多维的,那么就要对每一个维度上进行求导,组合起来就叫做梯度。 我们发现当蓝色的点在左边的时候,那么随着θ的减小,J对应的取值就会变大。θ增大,J对应的取值就会减少。而我们的目的,是希望找到一个合适的θ,使得J能取到最小值。首先我们要知道,梯度(这里是导数)代表方向,代表J增大的方向,所以我们要沿着梯度的反方向(所以才叫梯度下降啊,如果是梯度上升,那么这里的函数就是效用函数),才能找到一个最小值

如何选择神经网络的超参数

房东的猫 提交于 2019-11-28 05:17:50
原 十、如何选择神经网络的超参数 2017年08月18日 10:33:06 独孤呆博 阅读数 21041 版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/dugudaibo/article/details/77366245 本博客主要内容为图书 《神经网络与深度学习》 和National Taiwan University (NTU)林轩田老师的 《Machine Learning》 的学习笔记,因此在全文中对它们多次引用。初出茅庐,学艺不精,有不足之处还望大家不吝赐教。   在之前的部分,采用梯度下降或者随机梯度下降等方法优化神经网络时,其中许多的超参数都已经给定了某一个值,在这一节中将讨论如何选择神经网络的超参数。 1. 神经网络的超参数分类   神经网路中的超参数主要包括1. 学习率 η ,2. 正则化参数 λ ,3. 神经网络的层数 L ,4. 每一个隐层中神经元的个数 j ,5. 学习的回合数 E p o c h ,6. 小批量数据 m i n i b a t c h 的大小,7. 输出神经元的编码方式,8. 代价函数的选择,9. 权重初始化的方法,10. 神经元激活函数的种类,11.参加训练模型数据的规模 这十一类超参数。  

Keras学习笔记——Hello Keras

旧时模样 提交于 2019-11-28 02:25:34
最近几年,随着AlphaGo的崛起,深度学习开始出现在各个领域,比如无人车、图像识别、物体检测、推荐系统、语音识别、聊天问答等等。因此具备深度学习的知识并能应用实践,已经成为很多开发者包括博主本人的下一个目标了。 目前最流行的框架莫过于Tensorflow了,但是只要接触过它的人,就知道它使用起来是多么让人恐惧。Tensorflow对我们来说,仿佛是一门高深的Deep Learning学习语言,需要具备很深的机器学习和深度学习功底,才能玩得转。 Keras正是在这种背景下应运而生的,它是一个对开发者很友好的框架,底层可以基于TensorFlow和Theano,使用起来仿佛是在搭积木。只要不停的添加已有的“层”,就可以实现各种复杂的深度网络模型。 因此,开发者需要熟悉的不过是两点:如何搭建积木?都有什么积木可以用? 安装 安装的步骤直接按照官方文档来就行了,我笔记本的环境已经杂乱不堪,没有办法一步一步记录安装配置了。主要是安装python3.6,然后各种pip install就行了。 参考文档: http://keras-cn.readthedocs.io/en/latest/for_beginners/keras_linux/ 基础概念 在使用Keras前,首先要了解Keras里面关于模型如何创建。在上面可爱的小盆友的图片中,想要把积木罗列在一起,需要一个中心的木棍

Psy148a Homework

左心房为你撑大大i 提交于 2019-11-27 00:14:35
Psy148a Homework #9 your name due by 23:50 Sunday, 8/4/2019 Note (HW#9 total points 137 points): Make sure to update homework #9 .Rmd file name with ‘yourInitials’ replaced by your own initials. Remember to change author ‘your name’ in this file (see line 3 above) to your own name. This assignment is due by 11:50pm of Sunday 8/4, see course syllabus for late policy. [4 points] You should submit four documents: (1) your R Markdown (.Rmd) file; (2) the HTML file based on your .Rmd file, (3) the ‘hw09_yourInitial.txt’ file (make sure to change ‘yourInitial’ in the file name to your own initials),

主成分分析法

房东的猫 提交于 2019-11-26 19:41:53
目录 主成分分析法 一、主成分分析的理解 二、使用梯度上升法求解PCA 三、求数据的前n个主成分 四、将高维数据向低维数据映射 五、scikit-learn中的PCA 六、对真实数据集MNIST使用PCA 七、使用PCA降噪 八、PCA与人脸识别 我是尾巴: 主成分分析法 主成分分析法:(Principle Component Analysis, PCA),是一个非监督机器学习算法,主要用于数据降维,通过降维,可以发现便于人们理解的特征,其他应用:可视化和去噪等。 一、主成分分析的理解 ​ 先假设用数据的两个特征画出散点图,如果我们只保留特征1或者只保留特征2。那么此时就有一个问题,留个哪个特征比较好呢? ​ 通过上面对两个特征的映射结果可以发现保留特征1比较好,因为保留特征1,当把所有的点映射到x轴上以后,点和点之间的距离相对较大,也就是说,拥有更高的可区分度,同时还保留着部分映射之前的空间信息。那么如果把点都映射到y轴上,发现点与点距离更近了,这不符合数据原来的空间分布。所以保留特征1相比保留特征2更加合适,但是这是最好的方案吗? ​ 也就是说,我们需要找到让这个样本间距最大的轴?那么如何定义样本之间的间距呢?一般我们会使用方差(Variance),Var(x)=\frac{1}{m}\sum_{i=1}^m(x_{i}-\overline{x})^2,找到一个轴