机器学习基本概念-1

Learning algorithm

ML中的算法无疑都是学习型的算法,那么什么才是学习型算法(learning algorithm)呢? 机器学习大牛Bengio给出的解释是:

A machine learning algorithm is an algorithm that is able to learn from data.

这里的learn,Mitchell(1997)给出的定义是:

A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P , if its performance at tasks in T , as measured by P , improves with experience(实践) E.

由此我们可以看出:

学习型的算法需要有能力从给定的数据中学习出能够有效地代表此数据的特征(feature)

所以一个ML system的基本构成就是:

  1. A learning algorithm
  2. Tasks
  3. Performance measure
  4. Experience
  5. Data

Task

ML出现的基本需求就是: 需要解决的任务过难,以至于无法使用一个固定的程序来解决它

Machine learning allows us to tackle tasks that are too difficult to solve with fixed programs written and designed by human beings.

那么什么是ML中的Task呢? 首先理解什么是我们在ML中常说的特征也就是feature,通俗点来说大概就是:

特征就是从some object或者event中抽取出来的可以定量表示和衡量的数学表达.

通常使用矩阵的形式来进行表达 再来说Task,Bengio给出的解释是:

Machine learning tasks are usually described in terms of how the machine learning system should process an example. An example is a collection of features that have been quantitatively measured from some object or event that we want the machine learning system to process.

说的有点抽象,实际就是我们需要解决什么问题,比如把我们的图片进行分类或者给定数据进行聚类之类的,这就是ML中的Task. 常见的比如:

  • Classification
  • Regression
  • Transcription
  • Machine translation
  • Semantic Segemention
  • Object Detection
  • Denoising
  • ………….

非常多,就不一列举了

Performance Measure

对于不同的learning algorithm,其ability不同,所以我们需要有个能够量化的衡量措施来检验之.

比如对于常见的classification来说,我们衡量某个算法的好坏的标准就是分类的准确率或者错误率. ML中我们更加关心的是model的泛化能力(generalization),也就是对于未见过的example的能力.

we care more about the performance of the model on new, previously unseen examples

但在一个具体的ML的task中,有时会存在两种困难:

  1. difficult to choose a performance measure that corresponds well to the desired behavior of the system.
  2. we know what quantity we would ideally like to measure, but measuring it is impractical.

所以在这种困难的情况下,我们通常采用的做法是:

  • design an alternative criterion
  • design a good approximation

Experience

ML的学习型算法广义上分为两类:

  • supervised
  • unsupervised

两者之间的界限是模糊的,大部分的学习型算法需要在某个数据集(dataset)上进行experience(实践). 那什么又是dataset呢?

A dataset is a collection of many examples.

dataset就是example的集合,比如像数字集合(0-9)的mnist数据集和多用途的VOC数据集等等,在计算中通常dataset会被表示为一个大的矩阵.

unsupervised的算法和supervised的算法在不同的dataset上进行experience:

  • Unsupervised learning algorithms experience a dataset containing many features, then learn useful properties of the structure of this dataset.
  • Supervised learning algorithms experience a dataset containing features, but each example is also associated with a label or target.

就写到这吧,下篇继续

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏计算机视觉与深度学习基础

Leetcode 114 Flatten Binary Tree to Linked List

Given a binary tree, flatten it to a linked list in-place. For example, Given...

2098
来自专栏Java Edge

AbstractList源码解析1 实现的方法2 两种内部迭代器3 两种内部类3 SubList 源码分析4 RandomAccessSubList 源码:AbstractList 作为 Lis

它实现了 List 的一些位置相关操作(比如 get,set,add,remove),是第一个实现随机访问方法的集合类,但不支持添加和替换

622
来自专栏alexqdjay

HashMap 多线程下死循环分析及JDK8修复

1.1K4
来自专栏xingoo, 一个梦想做发明家的程序员

20120918-向量实现《数据结构与算法分析》

#include <iostream> #include <list> #include <string> #include <vector> #include...

1836
来自专栏刘君君

JDK8的HashMap源码学习笔记

3288
来自专栏xingoo, 一个梦想做发明家的程序员

Spark踩坑——java.lang.AbstractMethodError

百度了一下说是版本不一致导致的。于是重新检查各个jar包,发现spark-sql-kafka的版本是2.2,而spark的版本是2.3,修改spark-sql-...

1260
来自专栏拭心的安卓进阶之路

Java 集合深入理解(6):AbstractList

今天心情比天蓝,来学学 AbstractList 吧! ? 什么是 AbstractList ? AbstractList 继承自 AbstractCollec...

20810
来自专栏开发与安全

算法:AOV网(Activity on Vextex Network)与拓扑排序

在一个表示工程的有向图中,用顶点表示活动,用弧表示活动之间的优先关系,这样的有向图为顶点表示活动的网,我们称之为AOV网(Activity on Vextex ...

3977
来自专栏MelonTeam专栏

ArrayList源码完全分析

导语: 这里分析的ArrayList是使用的JDK1.8里面的类,AndroidSDK里面的ArrayList基本和这个一样。 分析的方式是逐个API进行解析 ...

4689
来自专栏desperate633

LeetCode Invert Binary Tree题目分析

Invert a binary tree. 4 / \ 2 7 / \ / \1 3 6 9 to4 / \ 7 2 / \ / \9 6 3 1 Tri...

981

扫码关注云+社区