51CTO博客开发
徐海蛟教学当我们使用anaconda的时候,经常会出现 Intel MKL FATAL ERROR: Cannot load libmkl_avx.so or libmkl_def.so 这个错误,好多人是使用scikit-learnh 或者是在使用keras 时候遇到的,stackoverflow 和 github上 给出了不少解决方法,但是我这里却不 work,后来在git
徐海蛟教学Keras中提供了一个神经网络可视化的函数plot,并可以将可视化结果保存在本地。plot使用方法如下:from keras.utils.visualize_util import plot plot(model, to_file='model.png')注:笔者使用的Keras版本是1.0.6不过这项功能依赖于graphviz模块与pydot模块
徐海蛟教学在深度学习中,当数据量不够大时候,常常采用下面4中方法:1. 人工增加训练集的大小. 通过平移, 翻转, 加噪声等方法从已有数据中创造出一批"新"的数据.也就是Data Augmentation2. Regularization. 数据量比较小会导致模型过拟合, 使得训练误差很小而测试误差特别大. 通过在Loss Function 后面加上正则项可以抑制过拟
徐海蛟教学使用Keras框架(后端可选tensorflow或者theano),可以画出卷积神经网络的结构图帮助我们理解或确认自己创立的模型。问题的关键在于使用from keras.utils.visualize_util import plot中的plot函数。但是直接使用会提示缺少pydot。首先安装sudo pip3 install pydot以及sudo apt-get install gr
徐海蛟教学UNDERSTANDING CONVOLUTIONAL NEURAL NETWORKS FOR NLP卷积卷积就是对矩阵(图像)应用的滑动窗口函数。图中绿色为一个二值图像,每个值代表一个像素(0是黑,1是白)。(更典型的是像素值为0-255的灰阶图像)图中黄色的滑动窗口叫卷积核、过滤器或者特征检测器,也是一个矩阵。我们将这个大小是3x3的过滤器中的每个元素(红色小字)与图像中对应位置的值
徐海蛟教学Building a Shop with Sub-Second Page Loads: Lessons Learned利用web缓存和NoSQL系统建立一个应对高访问量的快速网上商店。用户满意度和转化率强相关(hard-wired),并直接影响利润。如何加速一个网站有三大驱动力影响网页应用的页面加载时间:后端处理:网络服务器需要时间来从数据库中加载数据和组装网页。网络延迟:每一个请求需要
徐海蛟教学Keras是基于Theano的一个深度学习框架,它的设计参考了Torch,用Python语言编写,是一个高度模块化的神经网络库,支持GPU和CPU。使用文档在这:http://keras.io/,中文文档在这:http://keras-cn.readthedocs.io/en/latest/ ,这个框架是2015年流行起来的,使用中遇到的困惑或者问题可以提交到github:https:/
徐海蛟教学Keras是一个极简和高度模块化的神经网络库,Keras由纯Python编写而成并基Tensorflow或Theano。Keras 为支持快速实验而生,能够把你的idea迅速转换为结果,学习门槛较低。Windows的版本选择,可采用Windows 7 / 10作为基础环境。python环境建设推荐使用科学计算集成python发行版Anaconda,Anaconda 是Python众多发行
徐海蛟课堂教学AlphaGo的胜利,无人驾驶的成功,模式识别的突破性进展,人工智能的的飞速发展一次又一次地挑动着我们的神经。作为人工智能的核心,机器学习也在人工智能的大步发展中备受瞩目,光辉无限。 如今,机器学习的应用已遍及人工智能的各个分支,如专家系统、自动推理、自然语言理解、模式识别、计算机视觉、智能机器人等领域。 但也许我们不曾想到的事机器学习乃至人工智能的起源,是对人本身的意识、自我、
徐海蛟 Teaching.考虑一个随机变量X,如果给出X的一系列独立同分布的观察值,那么如何由这些观察值来估计出X的密度函数P(X)?这就是密度估计问题。概率分布可分为参数分布和非参数分布。参数分布函数是由一些参数控制的,比如高斯分布中平均值和方差,用参数分布的方法去估计密度时,必须确定合适的参数。从频率论来看,可用极大似然函数来确定参数;而从贝叶斯论来看,需要引入共轭先验,它使得后验
MatLab 函数 fingpeaks 对一维数组求解局部极大和极小值徐海蛟老师课堂教学举例说明。clc; clear;% 清屏清空变量figure('Color', 'w');% 背景:白色Data = [1 -2 3 -4 5 -6 7 8 5 4 1 2 -3 -1 -5 9 7 -6 5];plot(Data, '-s', 'LineWidth',2);% 画曲线,线宽为2grid on;
Java null和数据库NULL的认识徐海蛟老师课堂教学Java是面向对象的高级语言。Java中,null表示类或对象的变量是空,不代表任何对象或实例,可以将null赋给引用类型变量,但不可以将null赋给基本类型变量;任何对象在没有进行初始化时,它默认的值都是null。没有实体的对象称为空对象;空对象不能使用,即不能让一个空对象去调用方法产生行为;大名鼎鼎的NullPointerExcepti
比较两幅图片之间的距离或者相似性,我们常以Matlab pdist函数或者pdist2函数计算。计算大规模图片数据集的两两图片之间的距离,很自然想到双重for循环完成了。不过,这很慢:function KMatrix = getL1( X, Y ) %L1距离m = size(X,1); n = size(Y,1);KMatrix = zeros(m,n);for i = 1: m %
RBF高斯径向基核函数(单值:两个点相似性)XVec表示X向量。||XVec||表示向量长度。r表示两点距离。r^2表示r的平方。k(XVec,YVec) = exp(-1/(2*sigma^2)*(r^2)) = exp(-gamma*r^2)...... 公式-1这里, gamma=1/(2*sigma^2)是参数, r=||XVec-YVec||实际上,可看作是计算2个点X与Y的
train_data是训练特征数据, train_label是分类标签。Predict_label是预测的标签。MatLab训练数据, 得到语义标签向量 Scores(概率输出)。1.逻辑回归(多项式MultiNomial logistic Regression)Factor = mnrfit(train_data, train_label);Scores = mnrval(Factor, tes
对于图片或文本,如果童鞋们需要初试分类效果,在MatLab做实验是比较简单的。例如:使用Libsvm库函数svmtrain()训练学习出一个模型Factor, 然后代入Factor,得到预测标签向量Predict_label。但是,这些都是人家的工作,假若我们加入自己的思路呢?例如:对于图片分类实验,预测标签的时候,加入K阶标签共现值呢?你或许不是仅仅得到预测标签Predict_label,而是希
徐海蛟博士环境: Windows XP, hadoop 1.2.1, jdk 1.6, myeclipse。Apache官网下载hadoop。解压。eclipse hadoop插件需要自己去编译,以实现eclipse对Map/Reduce编程模式的支持。Java源码:<hadoop-1.2.1目录>\lib\src\contrib\eclipse-plugin\。该源码实际是一个jav
徐海蛟博士归一化是要把需要处理的数据经过处理后限制在一定范围内,例如:[-1,1]或[0,1]。归一化是为了后续数据处理的方便,也使得算法程序收敛加快。在Matlab里面,归一化的方法共有3种:(1)mapminmax% 范围映射(2)mapstd% 均值与偏差(3)自定义函数在数据预处理过程中,对数据集按行或者按列(统一记为向量X)进行L1或者L2范数归一化是一种常见的处理方式。对于向量X(x1
徐海蛟博士 Teaching.1984年,莫勒尔和班格尔特合作成立了MathWorks公司,正式把MATLAB推向市场。MATLAB(矩阵实验室)是MATrix LABoratory的缩写,是一款由美国The MathWorks公司出品的商业数学软件。MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。除了矩阵运算、绘制函数/数据图像等常用功能外,MAT
徐海蛟博士真实场景下,数据的特征可能比较复杂,系统提供的4种核函数或许达不到最佳效果,那么就需要自定义核函数了。当然,有很多大牛干这个事情,我们可以拿来使用,通过自定义核方式。如何用?这时候不再把训练与测试数据文件作为输入参数了,而是使用核矩阵作为输入参数。Assume there are L training instances x1, ..., xL . ... L行训练样本Let K(x,
徐海蛟博士 Teaching.数据集如下:名称源类型 类数训练样本测试样本特征数----------------------------------------------------------------scene景色MB04a多标签61,2111,196294yeast酵母AE02a多标签141,500917103svm-train ../svm-data/scene scene.model
徐海蛟博士 Teaching.我们实验环境:libsvm 3.17, python 2.7.3, gnuplot 4.6。数据集从小到大: dna 生物dna, satp_w_picpath 卫星图像, letter 字母。数据已经下载到了svm-数据/下。我们看下数据集基本情况:名称源类型 类数训练样本测试样本特征数----------------------------------------
徐海蛟博士 Teaching.libsvm可用grid.py(grid的意思是:网格)这个网格搜索python程序帮我们自动完成参数选择。这里,给童鞋们上课说说交叉验证与网格搜索。1. 交叉验证交叉验证是一种评估统计分析、机器学习算法对独立于训练数据的数据集的泛化能力,能够避免过拟合问题。交叉验证一般要尽量满足: 1)训练集的比例要足够多,一般大于一半(>50%) 2)训练集和测试集要均匀抽
徐海蛟博士 Teaching.怎么用dos命令行使用svm-scale,svm-train,svm-predict三个程序,我们在前面博文中已经练习过了。这里给出用JAVA调用LibSVM API最简单的示例,用JAVA进行SVM分类只需要2行程序就搞定了。训练集在官网有了,是UCI breast-cancer数据,乳腺癌数据,类数:2,总样本:683,我们把前面644个样本做训练数据(breas
徐海蛟博士 Teaching.libSVM有一个tools文件夹,里面包含有四个python文件,是用来对参数优选的。其中,常用到的是easy.py和grid.py两个文件。这里,我们以Python 2.7环境为例,加以说明。需要安装python 2.7和绘图工具gnuplot 4.6(让数据可视化)。并将<python安装目录>添加于%PATH%环境变量。pythone是一种编程语言
徐海蛟博士Teaching.要判断SVM效果,以图形的方式输出的分解线是最直观的。LibSVM自带了一个可视化的程序svm-toy,用来输出类之间的分界线。他是先把样本文件载入,然后进行训练,通过对每个像素点的坐标进行判断,看属于哪一类,就附上那类的颜色,从而使类与类之间形成分割线。这个在第13课讲述过了。如何自己DIY编程输出分界线呢?分界线,其实严格说来是分界超平面。要绘分界线,就要用到训练结
徐海蛟博士 Teaching.我教学学习的libsvm版本是3.17最新版。应用3.17最新版自带的训练集heart_scale来完成第一个实验,该训练集样本数:270,特征数:13。童鞋们跟我一起玩。1. 把LibSVM包解压到相应的目录,比如 D:/lab/libsvm/。2. 在电脑“开始”的“运行”中输入cmd,进入DOS命令提示符环境。定位到d:/lab/libsvm/windows/下
徐海蛟博士 Teaching.光说不练,很难真正理解svm的妙处,也难以真正实用。所以,有必要跟着徐海蛟老师一起练习svm。svm理论和工具已经很成熟了。童鞋们并不需要手写每一行代码。一个非常好用的开发工具包是LibSVM,支持C++、Java、Matlab语言。libSVM只是众多SVM实现版本中的其中之一。LibSVM是台湾大学林智仁(Chih-Jen Lin) 教授2001年开发的一套svm
徐海蛟博士 Teaching.从 SVM的那几张图可以看出来,SVM是一种典型的两类分类器,即它只回答属于正类还是负类的问题。而现实中要解决的问题,往往是多类的问题(少部分例外,例如垃圾邮件过滤,就只需要确定“是”还是“不是”垃圾邮件),比如文本分类,比如数字识别。如何由两类分类器得到多类分类器,就是一个值得研究的问题。 还以文本分类为例,现成的方法有很多,其中一种一劳永逸的方法,就是真的一次性
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号