Day1 《机器学习》第一章学习笔记
《机器学习》这本书算是很好的一本了解机器学习知识的一本入门书籍吧,是南京大学周志华老师所著的鸿篇大作,很早就听闻周老师大名了,算是国内机器学习领域少数的大牛了吧,刚好研究生做这个方向相关的内容,所以今天买了一本所谓的西瓜书,准备研读,光读书记性不好,边读边做笔记练习印象深刻,接下来我就把自己的学习过程按每章节的内容整理如下:
Day1 第一章 绪论部分
本书作者周志华老师通过聊天的口吻开篇,以日常生活的小案例和场景,向读者介绍什么是机器学习,以及什么是学习算法。在这一章介绍了很多机器学习相关的术语概念。
首先,要做学习,先得有数据,我们要学习的对象记录收集起来组成的集合叫做一个“数据集(data set)”,把里面记录、对象的描述,称为一个“示例(instance)”或者“样本(sample)”,反应集合内事件或对象在某方面的表现或性质的事项,我们把它称为“属性(attribute)”或“特征(feature)”,属性张成的空间称为“属性空间(attribute space)”、 “样本空间(sample space)” 或者“输入空间”,由于空间中的每一个点对应一个坐标向量,因此我们把一个示例称为一个“特征向量(feature vector)”,这里的属性数量就是我们说的样本的“维数(dimensionality)”
上面得到了数据了,我们要从数据中学得模型的过程叫“学习(learning)”或者“训练(training)”,在这个过程执行某个学习算法来完成,训练的过程使用的数据称为“训练数据(集)(training data)”,这其中的每一个小样本叫一个“训练样本(training sample)”,训练样本构成的集合组成的集合叫做“训练集training set”,训练得到的模型对应数据的某种潜在的规律,把这种结果称为“假设(hypothesis)”,我们要用学习的结果来“预测(prediction)”,用学得模型进行预测的过程称为“测试(testing)”,被预测的样本叫“测试样本(testing sample)”。
我们要预测的是离散值,这类学习任务称为“分类(classification)”,要预测的是连续值,把这类学习任务称为“回归(regression)”,当然我们也可以对数据做“聚类(clustering)”,即把训练集中的对象分成若干组,每个组称为一个“簇(cluster)”。
我们根据训练数据是否拥有标记信息,学习任务可大致分为两大类:“监督学习(supervised learning)”和“无监督学习(unsupervised learning)”,分类和回归是前者的代表,聚类是后者的代表。
学得的模型适用于新样本的能力,称为“泛化(generation)”。
通常,我们假设样本空间中全体样本服从一个未知“分布(distribution)”,我们获得的每一个样本都是独立从这分布上采样得到的,即“独立同分布(independent and identically distributed简称i.i.d.)”。
归纳(induction)和演绎(deduction)是科学推理的两大基本手段,前者是从特殊到一般的“泛化(generation)”过程,后者是一般到特殊的“特化(specialization)”过程,如数学上由数学公理推出与之相洽的定理,这是演绎过程,而“从样本中学习”是一个归纳过程,叫做“归纳学习(inductive learning)”。
归纳学习中有归纳偏好,这里遵循奥卡姆剃刀原则。
发展历程:机器学习是人工智能(artificial intelligence)研究发展到一定阶段的必然产物。二十世纪五十年代到七十年代,人工智能研究处于“推理期”,那时的人们认为只要能赋予机器逻辑推理能力,机器就能拥有智能。二十世纪七十年代中期开始,人工智能研究进入“知识期”,这一时期大量的专家系统问世。二十世纪八十年代是机器学习成为一个独立的学科领域,各种机器学习技术百花初绽的时期。二十世纪九十年代中期,“统计学习(statistical learning)”闪亮登场并迅速占据主流舞台,代表技术是支持向量机(Support Vector Machine,简称SVM)以及更一般的“核方法(kernel methods)”。二十一世纪初,连接主义学习又卷土从来(五十年代中后期基于神经网络的“连接主义”),掀起了以“深度学习”为名的热潮,所谓深度学习,狭义地说就是“很多层”的神经网络
现在,机器学习已经发展成为一个相当大的学科领域,当今算力的提升和大数据的加持,逐步把机器学习推向高潮。
(第一章笔记到此,继续学习后续章节)
Day1 《机器学习》第一章学习笔记的更多相关文章
- Spring实战第一章学习笔记
Spring实战第一章学习笔记 Java开发的简化 为了降低Java开发的复杂性,Spring采取了以下四种策略: 基于POJO的轻量级和最小侵入性编程: 通过依赖注入和面向接口实现松耦合: 基于切面 ...
- [蛙蛙推荐]SICP第一章学习笔记-编程入门
本书简介 <计算机程序的构造与解释>这本书是MIT计算机科学学科的入门课程, 大部分学生在学这门课程前都没有接触过程序设计,也就是说这本书是针对编程新手写的. 虽然是入门课程,但起点比较高 ...
- 《Django By Example》第一章 学习笔记
首先看了下目录,在这章里 将会学到 安装Django并创建你的第一个项目 设计模型(models)并且生成模型(model)数据库迁移 给你的模型(models)创建一个管理站点 使用查询集(Quer ...
- 《Java基础教程》第一章学习笔记
Java 是什么呀! 计算机语言总的来说分成机器语言,汇编语言,高级语言.其中Java一种高级计算机语言,它是一种可以编写跨平台应用软件,完全面向对象的程序设计语言. Java划分为三个技术平台,Ja ...
- 【Python自然语言处理】第一章学习笔记——搜索文本、计数统计和字符串链表
这本书主要是基于Python和一个自然语言工具包(Natural Language Toolkit, NLTK)的开源库进行讲解 NLTK 介绍:NLTK是一个构建Python程序以处理人类语言数据的 ...
- <<学会提问>>第一章学习笔记
中国应不应该现在取消死刑? 中医是不是伪科学? 读书无用论? 集体主义和团队精神? 欧洲难民危机,你是支持接收难民,还是反对? 欧洲白左是不是幼稚圣母,抑或是右派种族歧视,顽固保守? 如何看待&quo ...
- Scala第一章学习笔记
面向对象编程是一种自顶向下的程序设计方法.用面向对象方法构造软件时,我们将代码以名词(对象)做切割,每个对象有某种形式的表示服(self/this).行为(方法).和状态(成员变量).识别出名词并且定 ...
- CSAPP:第一章学习笔记:斗之气1段
一.信息就是位+上下文:系统中的所有信息(包括磁盘文件.内存中的程序.网络上传送的数据),都是由一串比特表示,根据上下文对这些比特表示进行翻译. 二.C程序编译过程 1.源码结构 // test.c ...
- 《Linux内核设计与实现》 第一二章学习笔记
<Linux内核设计与实现> 第一二章学习笔记 第一章 Linux内核简介 1.1 Unix的历史 Unix的特点 Unix很简洁,所提供的系统调用都有很明确的设计目的. Unix中一切皆 ...
随机推荐
- Android Activity的四种经典传值方法
文/ http://blog.csdn.net/sk719887916/article/details/41723613 skay 开发中遇到多个activity的传值问题 相邻两个之间的传值 或者 ...
- FPGrowth 实现
在关联规则挖掘领域最经典的算法法是Apriori,其致命的缺点是需要多次扫描事务数据库.于是人们提出了各种裁剪(prune)数据集的方法以减少I/O开支,韩嘉炜老师的FP-Tree算法就是其中非常高效 ...
- Android特效专辑(三)——自定义不一样的Toast
Android特效专辑(三)--自定义不一样的Toast 大家都知道,Android的控件有时候很难满足我们的需求,所以我们需要自定义View.自定义的方式很多,有继承原生控件也有直接自定义View的 ...
- RHEL6.4安装nginx
RHEL6.4安装nginx 下载nginx-1.6.1.tar.gz, 解压进入目录: $ yum install pcre-devel $ ./configure --with-http_ssl_ ...
- 查询oracle数据库的数据库名、实例名、ORACLE_SID
数据库名.实例名.数据库域名.全局数据库名.服务名 , 这是几个令很多初学者容易混淆的概念.相信很多初学者都与我一样被标题上这些个概念搞得一头雾水.我们现在就来把它们弄个明白. 一.数据库名 什么是数 ...
- asp.net mvc控制器激活全分析
控制器的激活默认情况下使用反射来实现的,这其中采用了DI,单例等设计模式.对于控制器的主要涉及到如下的类:ControllerBuilder.DefaultControllerFactory.Defa ...
- 自定义ViewGroup添加布局动画
声明几个属性值: <declare-styleable name="GridImageViewGroup"> <attr name="childVert ...
- JVM学习--(二)内存模型、可见性、指令重排序
我们将根据JVM的内存模型探索java当中变量的可见性以及不同的java指令在并发时可能发生的指令重排序的情况. 内存模型 首先我们思考一下一个java线程要向另外一个线程进行通信,应该怎么做,我们再 ...
- Java不走弯路教程(6.JDBC)
6.JDBC 在上一章,我们完成了MyDb数据库的简单的客户段调用.作为产品我们还封装了驱动程序,并且提供了统一的调用接口. 大家应该知道,市面上有多种数据库产品,比如Oracle,Mysql,DB2 ...
- JS基础:基于原型的对象系统
简介: 仅从设计模式的角度讲,如果我们想要创建一个对象,一种方法是先指定它的类型,然后通过这个类来创建对象,例如传统的面向对象编程语言 "C++"."Java" ...