
机器学习
文章平均质量分 84
机器学习知识
JacksonKim
这个作者很懒,什么都没留下…
展开
-
Label Smoothing介绍及其代码实现
标签平滑(Label Smoothing)的原理其实很简单,它大部分的用处用一句话总结就是:>修改数据集的标签来增加扰动,避免模型的判断过于自信从而陷入过拟合原创 2022-06-24 22:34:34 · 1998 阅读 · 1 评论 -
机器学习:结合代码学习条件随机场( conditional random field,CRF)
HMM, MEMM, CRF转载 2022-02-21 00:43:26 · 1356 阅读 · 0 评论 -
机器学习:详细推导EM算法
EM算法可以说是一个非常经典的算法,至今仍在广泛地被使用(如强化学习领域)EM算法要解决的问题EM 算法(全称为Expectation-Maximization algorithm)是一种对含有隐变量的问题的极大似然估计算法。参数估计方法可以参考 抽样分布和参数估计(极大似然估计)。准确来说,...原创 2022-01-18 16:47:09 · 596 阅读 · 0 评论 -
机器学习: 详细推导SVM(Support Vector Machine,支持向量机)
SVM原创 2022-01-10 12:11:13 · 897 阅读 · 0 评论 -
机器学习:强化学习
一、马尔可夫决策过程(Markov Decision Process,简称MDP)1. MDP介绍马尔可夫决策过程(Markov Decision Process, MDP)是序贯决策(sequential decision)的数学模型,用于在系统状态具有马尔可夫性质的环境中模拟智能体可实现的随机性策略与回报 。MDP的得名来自于俄国数学家安德雷·马尔可夫(Андрей Андреевич Марков),以纪念其为马尔可夫链所做的研究 。MDP基于一组交互对象,即智能体和环境进行构建,所具有的要素原创 2022-01-09 13:33:04 · 1331 阅读 · 0 评论 -
半监督学习
半监督学习三种无标签数据的学习方式(1)主动学习(2)半监督学习——纯半监督学习:它假定训练数据中 的未标记样本并非待预测的数据,,纯半监督学习是基于"开放世界"假设 希望学得模型能适用 于训 练过程 未观察到的数据。(3)半监督学习——直推学习(transductive learning):假定学习 过程中所考虑的未标记样本恰是预测数据,学习的目的就是在这些未标记样本上获得泛化性能。而直推学习是基于"封闭世界"假设 仅试图对学习过程 观察到的未标记数据进行预测。生成式方法生成式方法(gen原创 2022-01-09 12:40:52 · 589 阅读 · 0 评论 -
机器学习: 简单讲极大似然估计和贝叶斯估计、最大后验估计
一、前言我在概率论:参数估计里面提到了极大似然估计,不熟悉的可以看一下,本文将从贝叶斯分类的角度看极大似然估计。在进行贝叶斯分类的时候,通常需要知道P(wi),P(x∣wi)P(w_i), P(x|w_i)P(wi),P(x∣wi)的值,这里wiw_iwi表示第i类。但是P(x∣wi)P(x|w_i)P(x∣wi)是未知的参数。因此我们需要对这个参数进行估计,这里有极大似然估计和贝叶斯估计两种方法。为了简化问题,我们认为P(x∣wi) N(ui,Σi)P(x | w_i) ~ N(原创 2021-11-30 11:13:26 · 6859 阅读 · 0 评论 -
机器学习: 线性判别分析(LDA)
线性判别分析( Linear Discriminant Analysis,简称LDA)是一种经典的线性学习方法,在二分类问题上因为最早由 Fisher,1936提出,亦称“ Fisher判别分析。原创 2021-11-28 21:37:09 · 3447 阅读 · 0 评论 -
机器学习:主成分分析(PCA)
3. 什么是主成分分析?(Principle Component Analysis,PCA)设数据X=(x1,x2,..xn)X=(x_1,x_2,..x_n)X=(x1,x2,..xn)具有n个属性(还有很多其他命名,比如分量,指标),属性值分别是x1,x2,..xnx_1,x_2,..x_nx1,x2,..xn那么主成分分析就是把原来具有相关关系的多个指标(属性)简化为少数几个新的综合指标的多元统计方法。这里的主成分就是指的是原始指标(属性)形成的几个新指标。主成分与原始变量之间的关原创 2021-11-28 12:03:38 · 1111 阅读 · 0 评论 -
机器学习:贝叶斯网络
贝叶斯网络原创 2021-11-27 14:29:03 · 16897 阅读 · 0 评论 -
人工智能:搜索策略
贪婪最佳优先搜索该算法(greedy best-first search)试图拓展距离目标最近的结点。完备性:不完备的(也就是说不一定能找到问题的解)算法复杂度:(1)时间复杂度:O(bm)O(b^m)O(bm)(2)空间复杂度:O(bm)O(b^m)O(bm)其中,b是邻居节点的最大数量,m是搜索空间的最大深度。2. A*搜索(1)启发式函数f(n) = g(n) +h(n)g(n)是从开始结点到节点n的路径代价,而h(n)是从节点n到目标结点的最小代价路径的估计值。...原创 2021-10-05 20:08:36 · 4818 阅读 · 0 评论 -
max_pooling的意义在哪?
图像中的相邻像素倾向于具有相似的值,因此通常卷积层相邻的输出像素也具有相似的值。这意味着,卷积层输出中包含的大部分信息都是冗余的。如果我们使用边缘检测滤波器并在某个位置找到强边缘,那么我们也可能会在距离这个像素1个偏移的位置找到相对较强的边缘。但是它们都一样是边缘,我们并没有找到任何新东西。池化层解决了这个问题。这个网络层所做的就是通过减小输入的大小降低输出值的数量。所以池化层的作用在于不断地从原始数据中提炼信息,最终得到占用空间较小,包含较多信息的数据表示。...转载 2021-08-30 17:23:47 · 362 阅读 · 0 评论 -
ROC曲线和AUC评价指标:为什么AUC可以表示正例预测值大于负例预测值的概率?
https://www.zhihu.com/search?type=content&q=AUC%E4%B8%BA%E4%BB%80%E4%B9%88%E5%8F%AF%E4%BB%A5%E8%A1%A8%E7%A4%BA%E9%A2%84%E6%B5%8B%E7%9A%84%E6%AD%A3%E4%BE%8B%E6%8E%92%E5%9C%A8%E8%B4%9F%E4%BE%8B%E5%89%8D%E9%9D%A2%E7%9A%84%E6%A6%82%E7%8E%87https://blog.c.原创 2021-07-18 17:09:32 · 3745 阅读 · 3 评论 -
机器学习:什么是条件熵?
转自:通俗理解条件熵前面我们总结了信息熵的概念通俗理解信息熵 - 知乎专栏,这次我们来理解一下条件熵。我们首先知道信息熵是考虑该随机变量的所有可能取值,即所有可能发生事件所带来的信息量的期望。公式如下:我们的条件熵的定义是:定义为X给定条件下,Y的条件概率分布的熵对X的数学期望这个还是比较抽象,下面我们解释一下:设有随机变量(X,Y),其联合概率分布为条件熵H(Y|X)表示在已知随机变量X的条件下随机变量Y的不确定性。随机变量X给定的条件下随机变量Y的条件熵H(Y..转载 2021-03-15 16:23:50 · 6877 阅读 · 4 评论 -
机器学习:什么是困惑度?从信息熵和交叉熵谈起
信息量和信息熵https://blog.youkuaiyun.com/hearthougan/article/details/76192381http://www.ruanyifeng.com/blog/2014/09/information-entropy.html信息熵和交叉熵有什么关系吗?https://www.cnblogs.com/kyrieng/p/8694705.html信息熵和困惑度的关系https://www.zhihu.com/question/58482430...原创 2020-12-15 12:51:29 · 3350 阅读 · 0 评论 -
机器学习:生成模型和判别模型的区别
一、名词解释生成方法由数据学习联合概率风波P(X,Y),然后求出条件概率分布P(Y|X)为预测的模型,即生成模型:P(Y∣X)=P(X,Y)P(X)P(Y|X)=\frac{P(X,Y)}{P(X)}P(Y∣X)=P(X)P(X,Y)这样的方法之所以称为生成方法,是因为模型表示了给定输入X产生输出Y的生成关系。典型的生成模型由朴素贝叶斯法和隐马尔可夫模型。判别方法由数据直接学习决策函数f(X)或者条件概率分布P(Y|X)作为预测模型,即判别模型。判别方法关心的是对给定的输入X,应该预测什么样的输出翻译 2020-10-01 22:10:31 · 7222 阅读 · 0 评论 -
机器学习:损失函数、风险函数、经验风险、期望风险、结构风险
一、损失函数和风险函数的区别理论上模型f(X)关于联合分布P(X,Y)的平均意义下的损失,称之为风险函数(risk function)或期望损失(expected loss).一句话总结就是:损失函数的平均为风险函数二、经验风险、期望风险、结构风险1. 经验风险 empirical risk经验风险就是模型f(X)在训练数据集上的平均损失(损失函数的值),也称之为经验损失。为什么叫经验风险呢?提供一个记忆的方法,由于训练数据集是我们已知的,那么就是我们的经验了,在训练集上的损失自然可以理解成经验原创 2020-10-01 21:41:25 · 5002 阅读 · 0 评论 -
机器学习:网格搜索和交叉验证
一、网格搜索1. 超参数的定义在机器学习中,超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据。比如在使用梯度下降法的神经网络中,学习率alpha就是一个超参数。通常情况下,需要对超参数进行优化,给学习机选择一组最优超参数,以提高学习的性能和效果。2.什么是网格搜索了解了超参数的定义,网格搜索就可以很容易理解。简单来讲,网格搜索是一种调参手段,一般是调超参数。它利用的是一种十分简单暴力的方法:穷举搜索。在所有候选的参数选择中,通过循环变脸,尝试每一种可能性,表现最好的参数就是原创 2020-06-20 00:22:37 · 11032 阅读 · 0 评论 -
机器学习:mAP评价指标
一、前言mAP是目标检测模型中常用的评价指标,它的英文全称是(Mean Average Precision),翻译过来就是平均精确率的平均。首先我们需要知道精确率(Precision)和召回率(Recall),也称为查准率和查全率的定义Precision衡量你的预测有多准确。也就是说,你的预测正确的百分比。Recall衡量您发现所有正例的能力。 例如,我们可以在前K个预测中找到80%的正例。下面是它们的数学定义:如果对此不太清楚,具体介绍请看精确率和召回率的介绍。接下来我们需要知道交并比Io翻译 2020-05-28 04:32:49 · 78944 阅读 · 10 评论 -
MXNet中MultiBoxDetection、MultiBoxPrior、MultiBoxTarget的使用
文章转载自:https://blog.youkuaiyun.com/XiangJiaoJun_/article/details/84679596 MXNet在目标检测提供了许多API供用户调用,灵活使用这些函数能大大降低编程难度,其中跟锚框有关的三个函数MultiBoxDetection、MultiBoxPrior、MultiBoxTarget,我也探索了一段时间,下面总结一下这三个函数的用法吧,也方便自己查阅常用函数MultiBoxPrior MultiBoxTarget MultiBoxDet..转载 2020-05-27 23:06:57 · 465 阅读 · 0 评论 -
神经网络中的激活函数及其各自的优缺点、以及如何选择激活函数
文章转载自:https://zhuanlan.zhihu.com/p/718827571.什么是激活函数?所谓激活函数(Activation Function),就是在人工神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端。激活函数对于人工神经网络模型去学习、理解非常复杂和非线性的函数来说具有十分重要的作用。它们将非线性特性引入到我们的网络中。如图,在神经元中,输入(inputs )通过加权,求和后,还被作用在一个函数上,这个函数就是激活函数。2.为什么要用激活函数?如果不转载 2020-05-12 22:12:01 · 15938 阅读 · 0 评论 -
机器学习: 神经网络中的Batch Normalization(BN)算法
aa原创 2020-05-12 21:11:19 · 3663 阅读 · 0 评论 -
机器学习:神经网络中的梯度消失和梯度爆炸
一、什么是梯度消失和梯度爆炸1. 梯度消失(gradient vanishing problem) 我们知道神经网络在进行反向传播(BP)的时候会对参数W进行更新,梯度消失就是靠后面网络层(如layer3)能够正常的得到一个合理的偏导数,但是靠近输入层的网络层,计算的到的偏导数近乎零,W几乎无法得到更新。2. 梯度爆炸(gradient exploding problem) 梯度爆炸的意思是,靠近输入层的网络层,计算的到的偏导数极其大,更新后W变成一个很大的数(爆炸)。...原创 2020-05-11 22:38:51 · 18777 阅读 · 0 评论 -
机器学习:自己动手实现朴素贝叶斯和使用skearn中的朴素贝叶斯
一、朴素贝叶斯(Naive Bayes)简介1.原理 相信大家都学过贝叶斯公式,见下: 而我们正是用这条公式来实现朴素贝叶斯。现要实现这样一个分类任务:对于一条数据,我们希望预测它属于m个类别中的哪个类别。所以我们就是要求这些条件概率, 并比较哪一个最大,那么x就属于概率最大那一类。根据贝叶斯公式,有:(式中用c代表某一类别) 该算法之所以被称为朴素贝叶斯,是因为它采用了属性条件独立性假设, 对已知类别,假设所有属性相互独立,也就是x中的所有属...原创 2020-05-10 17:23:11 · 744 阅读 · 0 评论 -
机器学习:决策树(四) —— sklearn决策树的使用及其可视化
一、简介 基于skleran的决策树使用很简单,只要是使用DecisionTreeClassifier类即可 进一步,我们希望将该树可视化出来,这是需要用到sklearn中tree.export_graphviz函数和graphviz模块. Graphviz是一个开源的图形可视化软件。图可视化是将结构信息表示为抽象图和网络图的一种方法。它在网络、生物信息学、软件工程、...原创 2020-05-03 19:26:16 · 3855 阅读 · 0 评论 -
机器学习:决策树(一) ——自己动手实现决策树和后剪枝
一、决策树(Decision Tree)介绍 什么是决策树,其实字面意思挺简单的,就是通过样本的各个维度的数据来判断该样本的类别,比如下面这个就是决策树。 图片来自周志华老师的西瓜书,这里的决策树通过西瓜的各个属性来判别是好瓜还是坏瓜。 现在的任务就是构建这样一棵决策树: (一)应该先以哪个属性做判别?(找到令数据集区分的更好的属性) ...原创 2020-05-03 19:33:31 · 3288 阅读 · 0 评论 -
机器学习:决策树(三)——决策树的可视化
一、简介 对于自己实现的决策树,我们可以使用matplotlib将其可视化,见下。 其中create_plot可以生成最终的图,其中Tree是树结构,如果你的决策树直接用字典类型存储的化,可以适当修改其中的代码,大概的思路是不变的。 retrieve_tree()函数是手工生成两棵树,以便测试查看。二、实现#%%import matplotlib.pypl...原创 2020-05-03 18:16:40 · 1592 阅读 · 0 评论 -
机器学习:决策树(二) ——对于连续值的二值化处理
一、简介 对于连续值,最简单得方法就是采用二分法对连续属性进行除了,这正是C4.5决策树算法中采用的机制。 那要取哪个值进行二分呢?简单的用中位数的方法可能会使得训练不如预期,所以我们要选择划分之后信息增益最大的划分点。对于属性a,我们有下面n-1个元素可以被选作划分点。 信息增益定义为: 其中Gain(D,a,t)是样本集D基于划分...原创 2020-05-03 18:18:18 · 1795 阅读 · 0 评论 -
机器学习:K近邻算法及其代码实现
一、K近邻算法简介 1.K近邻算法: 当输入一个测试数据,我们在训练数据集当中找到K个与输入数据最相近的,通常这个可以用欧几里得距离来衡量(当然其他距离也可以)。然后观察这K个邻居中他们的标签(类别),最多的是哪一类,最后把输入的测试数据的标签设定为投票数最多的类别即完成目标。 通常K近邻算法是用来完成分类任务的,所以它可以被是为分类算法。但是实际上该算法思想也可以用...原创 2020-04-29 23:57:35 · 675 阅读 · 0 评论 -
机器学习:逻辑回归及其代码实现
一、逻辑回归(logistic regression)介绍 逻辑回归,又称为对数几率回归,虽然它名字里面有回归二字,但是它并不像线性回归一样用来预测数值型数据,相反,它一般用来解决分类任务,特别是二分类任务。 本质上,它是一个percetron再加上一个sigmoid激活函数,如下所示: 然后逻辑回归采用的损失函数是交叉熵: ...原创 2020-04-27 22:00:47 · 839 阅读 · 0 评论 -
机器学习:梯度下降(GD),随机梯度下降(SGD), 小批量随机梯度下降(Mini-batch SGD)
一、梯度下降(Gradient Descent) 在梯度下降中,每一次迭代都需要用到所有的训练数据,一般来讲我们说的Batch Gradient Desent(即批梯度下降),跟梯度下降是一样的,这里的batch指的就是全部的训练数据。 损失函数: 训练过程: 它的实现大概就是下面这样子for epoch in range(ep...原创 2020-04-27 17:09:49 · 1461 阅读 · 1 评论 -
机器学习之keras:keras中的complie、fit、predict、save函数说明
一、模型定义 keras中模型定义十分简便,主要通过add函数来添加layers,而这些layers包含比如卷积层Conv2D、池化层Pool,全连接层Dense, 激活函数层Activation等。下面是一个浅卷积网络的例子:from keras.models import Sequentialfrom keras.layers.convolutional import Co...原创 2020-04-17 13:17:03 · 3368 阅读 · 0 评论 -
机器学习:数据预处理之LabelBinarier()
classsklearn.preprocessing.LabelBinarizer(neg_label=0,pos_label=1,sparse_output=False) fit(self,y) 设定或者初始化二进制分类器 fit_transform(self,y) 设定或者初始化二进制分类器并开始对y进行转换...原创 2020-04-17 11:27:55 · 3379 阅读 · 0 评论 -
机器学习:sklearn分类报告classification_report()中精确率, 召回率, F1等的含义
一、classification_report简介def classification_report(y_true, y_pred, labels=None, target_names=None, sample_weight=None, digits=2, output_dict=False)该函数就是在进行了分类任务之后通过输入原始真实数据(y_true)和预测数据(y_true)而得到...原创 2020-04-06 17:38:07 · 21156 阅读 · 4 评论 -
机器学习:自己动手实现神经网络,从感知机(perceptron)到多层神经网络
一、神经网络的由来1958年,感知机(Perception)模型横空出世,在上个世纪一度掀起一股AI热。感知机实际上是一个线性的模型,可以理解成只有一层的神经网络。代码实现:import numpy as npclass Perceptron: def __init__(self, N, alpha=0.1): self.W = np.random...原创 2020-04-05 20:34:41 · 855 阅读 · 0 评论 -
机器学习:正则化项为什么能够防止过拟合?防止过拟合的方法
一、出现过拟合的原因在训练数据不够多时,或者overtraining时,常常会导致overfitting(过拟合)。其直观的表现如下图所示,随着训练过程的进行,模型复杂度增加,在training data上的error渐渐减小,但是在验证集上的error却反而渐渐增大——因为训练出来的网络过拟合了训练集,对训练集外的数据却不work。避免过拟合的方法有很多:early stopping...转载 2020-04-05 00:18:45 · 5915 阅读 · 1 评论 -
机器学习:sklearn样本生成器,make_blob(), make_classification()
scikit-learn 包括各种随机样本的生成器,可以用来建立可控制的大小和复杂性人工数据集。一、分类和聚类样本生成器1.make_blob()对于中心和各簇的标准偏差提供了更好的控制,可用于演示聚类。sklearn.datasets.make_blobs(n_samples=100,n_features=2,centers=None,cluster_std=1.0,ce...原创 2020-04-04 20:33:19 · 4398 阅读 · 0 评论 -
机器学习:线性回归的mxnet实现和无框架实现
一、线性回归的数学原理二、无框架实现from sklearn.datasets import load_svmlight_filefrom sklearn.model_selection import train_test_splitimport matplotlib.pyplot as plt import numpy as npimport randomimpor...原创 2020-03-31 17:29:15 · 244 阅读 · 0 评论 -
机器学习:libsvm数据格式
一、什么是libsvmlibsvm是一种机器学习中常见的数据保存格式,它有如下特征: [label] [index1]:[value1] [index2]:[value2] … [label] [index1]:[value1] [index2]:[value2] …label目标值,就是说class(属于哪一类),就是你要分类的种类,通常是一些整数。index是有顺序...原创 2020-03-31 13:13:19 · 7227 阅读 · 2 评论