特征函数

随机森林

落爺英雄遲暮 提交于 2020-04-06 09:37:51
0. 前言 sklearn提供了sklearn.ensemble库,其中包括随机森林模型(分类)。但之前使用这个模型的时候,要么使用默认参数,要么将调参的工作丢给调参算法(grid search等)。今天想来深究一下到底是如何选择参数,如何进行调参。 学会调参是进行集成学习工作的前提。参数可分为两种,一种是影响模型在训练集上的准确度或影响防止过拟合能力的参数;另一种不影响这两者的其他参数。模型的准确度由其在训练集上的准确度及其防止过拟合的能力所共同决定,所以在调参时,我们主要对第一种参数进行调整,最终达到的效果是:模型在训练集上的准确度和防止过拟合能力的平衡。 1. 集成学习是什么 集成学习通过构建并结合多个学习器来完成学习任务。 集成学习的一般结构:先产生一组“个体学习器”(individual learner),然后再用某种策略将它们结合起来。个体学习器通常有一个现有的学习算法从训练数据产生,此时集成中只包含同种类型的个体学习器,比如“决策树集成”,此时的集合里全部都是决策树。同质集成中的个体学习器称为 “基学习器” (base learner),相应的学习算法成为“基学习算法”(base learning algorithm)。 因为集成学习通过对多个“弱学习器”进行结合,可以获得比单一学习器更加显著的泛化性能,所以集成学习的很多理论研究是针对弱学习器的。因此“基学习器

激活函数与注意力机制?自适应参数化ReLU激活函数

孤街醉人 提交于 2020-03-25 13:35:04
3 月,跳不动了?>>> 本文在回顾一些典型激活函数和注意力机制的基础上,解读了一种“注意力机制下的新型激活函数”,名为“自适应参数化修正线性单元”(Adaptively Parametric Rectifier Linear Unit, APReLU )。 1.激活函数 激活函数是目前人工神经网络的核心组成部分之一,其作用是进行人工神经网络的非线性化。我们首先回顾一些最为常见的激活函数,包括Sigmoid激活函数、Tanh激活函数和ReLU激活函数,分别如图所示。 Sigmoid激活函数和Tanh激活函数的梯度取值范围分别是(0,1)和(-1,1)。当层数较多时,人工神经网络可能会遭遇梯度消失的问题。ReLU激活函数的梯度要么是零,要么是一,能够很好地避免梯度消失和梯度爆炸的问题,因此在近年来得到了广泛的应用。 然而,ReLU激活函数依然存在一个缺陷。如果在人工神经网络训练的时候,遇到了特征全部小于零的情况,那么ReLU激活函数的输出就全部为零。这个时候就训练失败了。为了避免这种情况,有学者就提出了leaky ReLU激活函数,不将小于零的特征置为零,而是将小于零的特征乘以一个很小的系数,例如0.1和0.01。 在leaky ReLU中,这个系数的取值是人工设置的。但是人工设置的系数未必是最佳的,因此何恺明等人提出了Parametric ReLU激活函数(参数化ReLU激活函数

4.机器学习之逻辑回归算法

时光总嘲笑我的痴心妄想 提交于 2020-03-21 18:05:57
理论上讲线性回归模型既可以用于回归,也可以用于分类。解决回归问题,可以用于连续目标值的预测。但是针对分类问题,该方法则有点不适应,因为线性回归的输出值是不确定范围的,无法很好的一一对应到我们的若干分类中。即便是一个二分类,线性回归+阈值的方式,已经很难完成一个鲁棒性很好的分类器了。为了更好的实现分类,逻辑回归诞生了。逻辑回归(Logistic Regression)主要解决二分类问题,用来表示某件事情发生的可能性。 逻辑回归是假设数据服从Bernoulli分布的,因此LR也属于参数模型,他的目的也是寻找到最优参数。 logistic回归是一种广义线性回归(generalized linear model)。 【补充】在统计学中,参数模型通常假设总体(随机变量)服从某一个分布,该分布由一些参数确定(比如正太分布由均值和方差确定),在此基础上构建的模型称为参数模型;非参数模型对于总体的分布不做任何假设,只是知道总体是一个随机变量,其分布是存在的(分布中也可能存在参数),但是无法知道其分布的形式,更不知道分布的相关参数,只有在给定一些样本的条件下,能够依据非参数统计的方法进行推断。 首先回顾一下简单线性回归(只考虑一个输入变量,一个输出变量的线性回归)。 表示输入变量(自变量),第一部分例子中的X。 表示输出变量(因变量),第一部分例子中的Y。一对 表示一组训练样本。m个训练样本

Deep learning:一(基础知识_1)

别说谁变了你拦得住时间么 提交于 2020-03-21 16:44:19
  不多说,直接上干货! 前言:   最近打算稍微系统的学习下deep learing的一些理论知识,打算采用Andrew Ng的网页教程 UFLDL Tutorial ,据说这个教程写得浅显易懂,也不太长。不过在这这之前还是复习下machine learning的基础知识,见网页: http://openclassroom.stanford.edu/MainFolder/CoursePage.php?course=DeepLearning 。内容其实很短,每小节就那么几分钟,且讲得非常棒。 教程中的一些术语:     Model representation: 其实就是指学习到的函数的表达形式,可以用矩阵表示。     Vectorized implementation: 指定是函数表达式的矢量实现。     Feature scaling: 指是将特征的每一维都进行一个尺度变化,比如说都让其均值为0等。    Normal equations: 这里指的是多元线性回归中参数解的矩阵形式,这个解方程称为normal equations.     Optimization objective: 指的是需要优化的目标函数,比如说logistic中loss function表达式的公式推导。或者多元线性回归中带有规则性的目标函数。    Gradient Descent、Newton

概率图模型学习笔记:HMM、MEMM、CRF

孤街浪徒 提交于 2020-03-17 14:40:46
作者:Scofield 链接:https://www.zhihu.com/question/35866596/answer/236886066 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 so far till now, 我还没见到过将CRF讲的个明明白白的。一个都没。就不能不抄来抄去吗? 我打算搞一个这样的版本,无门槛理解的。 ——20170927 陆陆续续把调研学习工作完成了,虽然历时有点久,现在put上来。评论里的同学也等不及了时不时催我,所以不敢怠慢啊…… 总结的还算比较体系化,蛮长的,请读者慢慢看,肯定有收获的。 (好痛苦,这么多公式都要在知乎上重输;是在MD上写的,在知乎上没想到格式这么难看……) ——20180129 概率图模型学习笔记:HMM、MEMM、CRF 一、Preface 二、Prerequisite 2.1 概率图 2.1.1 概览 2.1.2 有向图 vs. 无向图 2.1.3 马尔科夫假设&马尔科夫性 2.2 判别式模型 vs. 生成式模型 2.3 序列建模 三、HMM 3.1 理解HMM 3.2 模型运行过程 3.2.1 学习过程 3.2.2 序列标注(解码)过程 3.2.3 序列概率过程 四、MEMM 4.1 理解MEMM 4.2 模型运行过程 4.2.1 学习过程 4.2.2 序列标注(解码)过程 4.2.3

决策树代码详解——真正地一行一行来解读

假如想象 提交于 2020-03-11 03:56:18
因为决策树代码构建有点复杂,整体贴上来会显得有点难懂,所以我们在这里将从每个函数开始一点一点进行讲解,最后把这些函数按顺序复制到程序里就能运行: 首先是第一个函数:生成数据集。 def createDataSet(): dataSet = [[1, 1, 1, 'yes'], [1, 0, 1, 'yes'], [1, 0, 2, 'no'], [0, 1, 2, 'no'], [0, 1, 2, 'no'], [1, 1, 2, 'yes'], [0, 0, 2, 'yes'], [0, 1, 0, 'no'], ] labels = ['ddddd','fffff','sssss'] #change to discrete values return dataSet, labels 这个函数没啥可说的了,就是先建立一个数据集,里面每行数据代表一个样本,每个样本的前三个数据代表三个特征,第四个数据代表样本的分类。下面的标签表示每个样本的这三个特征分别是啥。这里为了省事直接用几个字母代替了。 然后是第二个函数:计算信息熵。 # 计算信息熵 def calcShannonEnt(dataSet): numEntries = len(dataSet) # 样本数 labelCounts = {} #构建一个字典 for featVec in dataSet: # 遍历每个样本

注意力机制+ReLU激活函数=自适应参数化ReLU

家住魔仙堡 提交于 2020-03-09 13:06:50
本文首先盘点了传统的激活函数以及注意力机制,然后解读 了一种“注意力机制下的新型激活函数”,也就是自适应参数化修正线性单元 ( Adaptively Parametric Rectifier Linear Unit,APReLU )。 1. 激活函数 激活函数是现代人工神经网络的核心组成部分,其用处是进行人工神经网络的非线性化。我们首先介绍几种最为常见的激活函数,即 Sigmoid 激活函数、 Tanh 激活函数和 ReLU 激活函数,分别如下图所示。 Sigmoid 激活函数和 Tanh 激活函数的梯度取值范围分别是( 0,1 )和( -1,1 )。当层数较多时,人工神经网络可能会遭遇梯度消失的问题。 ReLU 激活函数的梯度要么是零,要么是一,能够很好地避免梯度消失和梯度爆炸的问题,因此在近年来得到了广泛的应用。 然而, ReLU 激活函数依然存在一点缺陷。如果在人工神经网络训练的时候,遇到了特征全部小于零的情况,那么 ReLU 激活函数的输出就全部为零。这个时候就训练失败了。为了避免这种情况,有学者就提出了 leaky ReLU 激活函数,不将小于零的特征置为零,而是将小于零的特征乘以一个很小的系数,例如 0.1 和 0.01 。 在 leaky ReLU 中,这个系数的取值是人工设置的。但是人工设置的系数未必是最佳的,因此何恺明等人提出了 Parametric ReLU

深度学习-卷积神经网络笔记

懵懂的女人 提交于 2020-03-04 05:25:05
卷积神经网络组成 : input--CONV--ReLU--pooling--FC 输入层--卷积层--激活函数--池化层--全连接层 在这里需要指出的是:--卷积层--激活函数--池化层--全连接层,它的组合不唯一,也可以看一下关于卷积神经网络的 概括 : 由于它们的组合可以作出相应的改变,所以使得卷积神经网络有很多不同的表达,尤其是在深度上的提高。 卷积层 卷积层一般是由3x3或5x5,甚至是11x11的卷积核与传入数据进行卷积得到的,下图是3x3Filter与绿色的图像做卷积的过程,粉红色的图是卷积之后的结果。 局部感受野 :上图中的3x3卷积核,先与图像中的左上角的 3x3局部感受野 做点积并将所有的结果进行加和才得到粉色图像中的第一个数字4,接着每移动一列进行一次内积并作加和,直到所有的 局部感受野 处理完毕为止。就得到了第一个卷积特征图。在这里面的移动步长S为1。补充一下:卷积核的行列值一般都是奇数。上图的计算过程中不难发现,输入图的矩阵的四个边只利用到了一次,如果想要充分利用边上的特征就需要扩边。在下图中就是对一个RGB图进行了边的扩充,当然RGB是三维的,所以可以利用三个卷积核对每一维进行卷积,然后将所有的卷积结果进行相加,即图中的绿色输出的第一个图的左上角数字5是由,w0三个卷积核分别对不同维度做卷积后的结果的总和。 权值共享 :在我看来

吴恩达-coursera-机器学习-week2

♀尐吖头ヾ 提交于 2020-03-03 18:30:57
四、多变量线性回归(Linear Regression with Multiple Variables) 4.1 多维特征 4.2 多变量梯度下降 4.3 梯度下降法实践1-特征缩放 4.4 梯度下降法实践2-学习率 4.5 特征和多项式回归 4.6 正规方程 4.7 正规方程及不可逆性(可选) 五、Octave教程(Octave Tutorial) 5.1 基本操作 5.2 移动数据 5.3 计算数据 5.4 绘图数据 5.5 控制语句:for,while,if语句 5.6 向量化 5.7 工作和提交的编程练习 第2周 四、多变量线性回归(Linear Regression with Multiple Variables) 4.1 多维特征 参考视频: 4 - 1 - Multiple Features (8 min).mkv 目前为止,我们探讨了单变量/特征的回归模型,现在我们对房价模型增加更多的特征,例如房间数楼层等,构成一个含有多个变量的模型,模型中的特征为 \(\left( {x_{1}},{x_{1}},...,{x_{n}} \right)\) 。 增添更多特征后,我们引入一系列新的注释: \(n\) 代表特征的数量 \({x^{\left( i \right)}}\) 代表第 \(i\) 个训练实例,是特征矩阵中的第i行,是一个向量(vector)。 比方说,上图的

马里奥AI实现方式探索 ——神经网络+增强学习

元气小坏坏 提交于 2020-02-28 08:44:28
目录 马里奥AI实现方式探索 ——神经网络+增强学习 神经网络 M-P模型 早期神经网络 深度神经网络 总结 增强学习 马尔可夫决策过程(MDP) 基于NEAT算法的马里奥AI实现 基于Deep Reinforcement Learning的马里奥AI实现 总结 马里奥AI实现方式探索 ——神经网络+增强学习 儿时我们都曾有过一个经典游戏的体验,就是马里奥(顶蘑菇^v^),这次里约奥运会闭幕式,日本作为2020年东京奥运会的东道主,安倍最后也已经典的马里奥形象出现。平时我们都是人来玩马里奥游戏,能否可以让马里奥智能的自己闯关个呢?OK,利用人工智能的相关算法来进行自动化通关一直是一个热门的话题,最近最火的相关东东就是传说中的alphaGo啦。而在游戏的自动化测试当中,这种算法也是非常实用的,可以大量的减少测试人力成本。 首先,对于实现马里奥AI当中涉及到的神经网络和增强学习的相关概念进行整理,之后对智能通关的两种方式进行阐述。(本人才疏学浅,在神经网络和增强学习方面基本门外汉,如有任何纰漏,还请大神指出,我会第一时间改正。) 神经网络 像飞机的灵感来源于鸟类,雷达的灵感来源于蝙蝠,红外线的灵盖来源于蛇,而本文要讨论的神经网络灵感来源于我们自己,人类大脑的神经元结构。从神经元结构被提出,到时下火热的无以复加的深度神经网络,发展过程也可为一波三折。我们按照时间的顺序