ML | Cheney Shen | Page 3

Technology blog

Archives

Machine Learning Foundations 4: Feasibility of Learning


        这里探讨的是:机器学习是否是可行的     一开始说机器学习做不到 但是加上一些统计上的假设,譬如资料的产生方式,表现衡量方法,就可以做推论做验证,就是机器学习。         上一节主要说的是机器学习的分类 这一节首先说什么情况下机器学习做不到,在做不到情况下怎样处理可以变的做得到。         首先看个小问题:     上面三张属于 -1 类,下面三张属于 +1 类 则下面的你会判断属于哪一类         答案是非常多的,根据不同的分类方式得到的结果是不同的。         再来一个例子:     输入是一个三个维度的向量,输出还是正负1 然后给了你5笔资料,则g会是怎样的?     做法可以是: 列出所有的可能性,然后标注5比资料,然后找一条线来区分资料。(类PLA算法)         你会发现符合5个资料的结果非常多,用他们再用来预测其他,结果会完全不一样。     想一下你会发现: 我们想要的不是把已知的都答对,而是对于未来的结果答对的最多。…

Read More

Machine Learning Foundations 3: Types of Learning


    内容 根据资料输出结果不同来分类:classification,regression,structured 根据资料输出的标记不同来分类:supervised,unsupervised,simisupervised,reinforcement(增强) 根据取得资料的方法不同来分类:batch,online,active 根据资料输入的抽象不同来分类:concrete, raw, abstract         上一节讲到的是对于回答是非题,我们可以采用 PLA 来解决         先复习一下是非题:例如银行要不要给顾客发信用卡,给机器资料,机器给出答案要或者不要。 两种可能性习惯用正负1来表示。         用图来表示就是给出一堆有标识的点,机器会把区域划分成两部分分别表示正负1的区域。划分可以是直线曲线甚至其他不规则划分方式。     二元分类是最基本的问题。         那么如果我们今天不是要把问题分成两类,就是多类问题。     譬如分美元铜板,有四种。 如果我们给机器的是硬币的重量,如图所示,我们希望机器可以通过相关数据分硬币为四类。这就是 multiclass 问题。     其他例子: 手写数字分类 0-9 一张图里面是什么水果 电子邮件分类:重要的,社交的,广告的,等等     Recognition 领域有非常多的应用。      …

Read More

Machine Learning Foundations 2: Learning to Answer Yes/No


    内容:     线性可分相关处理 详细介绍了 PLA 以及变形:口袋算法         上一讲说的就是     机器学习 通过演算法A学习资料D,从H集合里面选择最符合数据D表现的G     今天讲的是怎么样的机器学习算法可以做是非题?         先来复习一下机器学习流程图     那么具体的H会长什么样?         这里给大家介绍一个模型:     每个使用者一个x是一个向量,每一个维度表示的是一个衡量值。 我们把维度综合起来算一个分数,分数总和超过一定的数值就过关,给他发信用卡。     分数 = 加权和(维度x * 维度重要性权值w)     这里我们用两个值来表示:好的(1)不好的(-1) 这样判断就可以公式化为h:sin(上面的加权和 – 门槛值) 结果就可以来判断好坏     h…

Read More

Machine Learning Foundations 1: The Learning Problem


    课程基本信息         机器学习 学习的两条路径     理论:数学之美,但是不会用 方法:直接一个一个例子使用,但是不知道该在什么情况下用什么。         这门课里面是从基础切入。 每一个学习机器学习的人都因该会的东西。 不代表简单。     想听一个故事一样听课: 从问题出发,什么时候用得上机器学习,为什么这时候会用机器学习,机器学习是怎么样做的,怎么样让机器学习的更好。         NTU课程安排:     15-17周,每周两小时。 流程图表示的是学生专业分布。     Coursear课程安排:     前八周基础,后八周另开一门课讲应用。 从黑板教学变成投影片教学。         测验小问题。         答案:XXXV         开始讲第一部分:…

Read More

Caffe 训练自有数据


走完这个就知道怎么去完整的使用caffe训练自己的数据了。     参考: http://www.jianshu.com/p/607f1e51e3ab http://blog.csdn.net/qqlu_did/article/details/47131549     步骤:     原始数据准备 存放目录下的原始数据 首先去下载,然后将train/detect分别放在不同的文件夹里面 然后通过Matlab来生成Label文件 文件格式为:【文件名 标签】注意train的标签必须是0开始,detect的标签全为0     用于处理的中间文件生成     首先执行 来转换数据格式,得到:     然后执行 来求mean,得到:     这边要注意的是上面两个文件的编写,主要就是修改路径和文件名。     建立网络模型和运行     首先要建立学习模型,就是编写 solver.prototxt/train_val.prototxt 两个文件。 可以去如下目录运用别人的学习模型考过来直接用。 这里同样要注意的是参数和路径的修改。     最后直接运行:     .\bin\compute_image_mean.exe .\data\img_train_lmdb .\data\mean.binaryproto     此句也要注意改路径。     打日志运行:…

Read More

Caffe Notes


Caffe 文件结构:     http://blog.csdn.net/thystar/article/details/50052707     这里,最重要的三个文件夹就是include, tools, src。在源码解读中会对里面的文件代码一一介绍,这里给出src文件的结构:     src中的每个.cpp文件对应include文件中的头文件。     在编译完成后,会生成build文件夹。这个文件的目标文件指向一个debug或者release文件夹。这里建议用debug编译,这样在调试代码时可以跟到caffe的内部。只要在Makefile.config中改一下就好。             caffe的三级结构:Blobs,Layers,Nets     http://blog.csdn.net/thystar/article/details/50675076         深度网络是一个复杂的模型,caffe定义了一个层与层之间连接的网络模型。这个网络定义了从输入层到损失的所有模型。caffe使用blobs结构存储,交换和处理网络中正向和反向迭代时的数据和导数信息,blob是Caffe的标准数组结构,它提供了一个统一的内存接口。Layer是Caffe模型和计算的基本单元。Net是一系列的Layer和其连接的集合,Blob详细描述了信息是如何在Layer和net中存储和交换的。     solving:是求解方法,分别配置解耦模型和优化方法     1. Blob存储与交换     Blob是caffe中负责数据传递和处理的包,并且提供了在CPU与GPU之间同步处理的功能。从数学角度看,Blob是C语言风格的一个连续存数的N维数组。     Caffe利用Blobs存储和交换数据,Blobs提供了统一的内存接口存储某种类型的数据,如批处理的图像数据,模型参数和用与优化算法的导数。     Blobs可以根据CPU主机和GPU设备的需要,屏蔽CPU/GPU计算和混合操作中的开销,主机和设备的内存按需求分配(lazily),以提高内存利用率。     对于批处理的图片来说,Blobs常规的维度为:图像数据的个数N * 通道数K * 图像高度H *…

Read More

Use Caffe windows(Microsoft)


windows下安装使用微软版本的Caffe。     下载安装微软官方版 https://github.com/BVLC/caffe/tree/windows     按照其说明安装: 拉下源码 下载安装Cuda和cuDNN .\windows\CommonSettings.props.example 将后面的.example去掉启用配置 配置设置: 主要是改两项:python/matlab设置 还要注意的是可能会有报错,其中一个是去掉某行注释,具体问题具体搜索。 直接Build就可以成功了,libcaffe编译成功后再编译caffe,所有编译成功和运行需要的dll文件都会存储在CAFFE_ROOT\Build\x64\Release 下     然后跑例子 mnist: 这边特别注意的就是原来的 .sh 是为linux准备的,因此在windows上要费些周折 拉资源:先到data\mnist\目录下下载资源,windows上.sh不能直接跑wget,那就看代码找出其要下载的包手动下下来,或者使用windows版本的wget来下来得到如下: 然后请手动解压并注意文件名 将下载下来的mnist数据转换为lmdb格式 打开CAFFE_ROOT/windows/Caffe.sln ,生成convert_mnist_data 项目(Release,x64) 然后去examples/mnist目录下执行create_mnist.sh来生成最终的可以快速读写的文件,下图两个文件夹就是生成的结果。 注意create_mnist.sh需要做一些修改 将 BUILD=build/examples/mnist 改为 BUILD=Build/x64/Release 将 执行文件 .bat 改为 .exe 然后就可以真正执行数据训练了 在CAFFE_ROOT 下新建一个文本文件,命名为run_mnist.bat 内容如下     .\Build\x64\Release\caffe.exe train –solver=examples/mnist/lenet_solver.prototxt pause     运行 run_mnist.bat…

Read More

Book Note – Deep Learning


http://blog.csdn.net/zouxy09/article/details/8775360     一、概述            Artificial Intelligence,也就是人工智能,就像长生不老和星际漫游一样,是人类最美好的梦想之一。虽然计算机技术已经取得了长足的进步,但是到目前为止,还没有一台电脑能产生”自我”的意识。是的,在人类和大量现成数据的帮助下,电脑可以表现的十分强大,但是离开了这两者,它甚至都不能分辨一个喵星人和一个汪星人。            图灵(图灵,大家都知道吧。计算机和人工智能的鼻祖,分别对应于其著名的”图灵机”和”图灵测试”)在 1950 年的论文里,提出图灵试验的设想,即,隔墙对话,你将不知道与你谈话的,是人还是电脑。这无疑给计算机,尤其是人工智能,预设了一个很高的期望值。但是半个世纪过去了,人工智能的进展,远远没有达到图灵试验的标准。这不仅让多年翘首以待的人们,心灰意冷,认为人工智能是忽悠,相关领域是”伪科学”。             但是自 2006 年以来,机器学习领域,取得了突破性的进展。图灵试验,至少不是那么可望而不可及了。至于技术手段,不仅仅依赖于云计算对大数据的并行处理能力,而且依赖于算法。这个算法就是,Deep Learning。借助于 Deep Learning 算法,人类终于找到了如何处理”抽象概念”这个亘古难题的方法。                2012年6月,《纽约时报》披露了Google Brain项目,吸引了公众的广泛关注。这个项目是由著名的斯坦福大学的机器学习教授Andrew Ng和在大规模计算机系统方面的世界顶尖专家JeffDean共同主导,用16000个CPU Core的并行计算平台训练一种称为”深度神经网络”(DNN,Deep Neural Networks)的机器学习模型(内部共有10亿个节点。这一网络自然是不能跟人类的神经网络相提并论的。要知道,人脑中可是有150多亿个神经元,互相连接的节点也就是突触数更是如银河沙数。曾经有人估算过,如果将一个人的大脑中所有神经细胞的轴突和树突依次连接起来,并拉成一根直线,可从地球连到月亮,再从月亮返回地球),在语音识别和图像识别等领域获得了巨大的成功。            项目负责人之一Andrew称:”我们没有像通常做的那样自己框定边界,而是直接把海量数据投放到算法中,让数据自己说话,系统会自动从数据中学习。”另外一名负责人Jeff则说:”我们在训练的时候从来不会告诉机器说:’这是一只猫。’系统其实是自己发明或者领悟了”猫”的概念。”                2012年11月,微软在中国天津的一次活动上公开演示了一个全自动的同声传译系统,讲演者用英文演讲,后台的计算机一气呵成自动完成语音识别、英中机器翻译和中文语音合成,效果非常流畅。据报道,后面支撑的关键技术也是DNN,或者深度学习(DL,DeepLearning)。            2013年1月,在百度年会上,创始人兼CEO李彦宏高调宣布要成立百度研究院,其中第一个成立的就是”深度学习研究所”(IDL,Institue of Deep Learning)。    …

Read More
Page 3 of 3123
  • Categories

  • Tags