白话深度学习与TensorFlow(一)

第一章 机器学习是什么

机器学习种类

  • 从学习的种类来说,最常见的我们习惯分为两种:
    • 无监督学习(unsupervised learning)
    • 有监督学习(supervised learning)
  • 此外还有:
    • 半监督学习(semisupervised learning)
    • 强化学习(reinforcement learning)
    • 等等

聚类(clustering)

聚类是一种典型的“无监督学习”,是把物理对象或抽象对象的集合分组为由彼此类似的对象组成的多个类的分析过程。

简单来讲,就是一个归类的过程,我们在动物园看到的金丝猴、猕猴、长鼻猴等,它们都属于猴子类。马路上看到的各种小轿车、卡车、跑车等等,它们都属于汽车类。

比较常用的聚类算法:

  • K-Means
  • DBSCAN

基本思路都是利用每个向量之间的“距离”--空间中的欧氏距离或者曼哈顿距离,从远近判断是否从属于同一类别。

image

在用机器做聚类学习的时候,我们每种算法都对应有相应的计算原则,可以把输入的各种看上去彼此“相近”的向量分在同一个群组中。

回归(regression)

回归是一种解题方法,或者说“学习方法”,也是机器学习中比较重要的内容。 简单来讲,就是“由果索因”的过程,是一种归纳的思想--通过大量的样本,推测出其中蕴含的某种关系。

最常用的回归有两大类:

  • 线性回归
    • y = f(x) = wx + b

    这里的w和x分别是1×n(1行n列)和n×1(n行1列)的矩阵。

image 那么把每一个患者的(年龄、身高、体重、血压、血脂)具体向量值带入,并把血糖程度y值也代入。至此形成一个六元一次方程组,其中未知数是w1-w5和b,即我们需要通过大量训练所求的“合适”的解。

  • 如何验证呢?

image 其中wx + b是我们推测的血糖值,y是真实样本的血糖值,它们两者之间差值的绝对值即是误差,Loss求的是所有误差的和,Loss越小说明这个映射关系描述越精确。 Loss = f(w, b) 再使用相应的方法找出保证Loss尽可能小的w和b的取值,就算大功告成了。

  • 数据集分为训练集和验证集

训练集用作训练、归纳关系,验证集数据用来验证,避免拟合现象(后续会讲拟合),训练集和验证集一般比例为7:3或8:2。

  • 非线性回归
    • 逻辑回归

image

image 横轴是z,纵轴是y,一个多维的x经过这样两次投射在y上是一个取值只有1和0二项分布。

分类

分类是机器学习中使用的最多的一大类算法,我们通常也喜欢把分类算法叫做“分类器”。 我们在编写代码教会分类器怎么学习的时候,其实是在教它如何建立一种输入到输出的映射逻辑,以及让它自己调整这种逻辑关系,使得逻辑更为合理。而合理与否的判断也非常明确,那就是召回率和精确率两个指标--召回率指的是检索出的相关样本和样本库中所有相关样本的比率,衡量的是分类器的查全率。精确率是检索出的相关样本数与检索出的样本数的比率,衡量的是分类器的查准率。 具体例子: 有一个1000样本的训练集,1000张照片,200张猫,200张狗,600张兔子。经过分类器分类:

  • 200张猫中180张正确,20张识别为狗
  • 200张狗全部正确
  • 600张兔子中550张正确,30张识别为猫,20张识别为狗

image

综合应用

  • 垃圾邮件分拣
  • 新闻自动分类
  • 摄像头对车牌号OCR识别
  • 使用卷积神经网络对照片进行风格处理(普通照片生成艺术图片)
  • 语音识别
  • 学术领域:“对坑学习”
  • 无人驾驶

小结

一言蔽之,机器学习就是人类定义一定的计算机算法,让计算机根据输入的样本和一些人类的干预来总结并归纳其特征与特点,并用这些特征和特点与一定的学习目标形成映射关系,进而自动化地做出相应反应的过程。 作者认为,机器学习是大数据的一个子范畴。 机器学习也分为:

  • 传统的机器学习
  • 深度学习

其主要区别:传统的机器学习通常需要人提前做特征提取,把提取的特征向量化在丢给模型去训练,需要人做前置工作。而深度学习通常可以采用End-to-End的学习方式,输入的内容只需要做很少的一些归-化(normalization)、白化(whitening)等处理就可以丢给模型去训练,通常不需要人来做特征提取工作。

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏MelonTeam专栏

ArrayList源码完全分析

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

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

Java 集合深入理解(12):古老的 Vector

今天刮台风,躲屋里看看 Vector ! 都说 Vector 是线程安全的 ArrayList,今天来根据源码看看是不是这么相...

2437
来自专栏Java Edge

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

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

422
来自专栏java闲聊

JDK1.8 ArrayList 源码解析

当运行 ArrayList<Integer> list = new ArrayList<>() ; ,因为它没有指定初始容量,所以它调用的是它的无参构造

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

AOE关键路径

这个算法来求关键路径,其实就是利用拓扑排序,首先求出,每个节点最晚开始时间,再倒退求每个最早开始的时间。 从而算出活动最早开始的时间和最晚开始的时间,如果这两个...

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

Spark踩坑——java.lang.AbstractMethodError

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

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

Leetcode 114 Flatten Binary Tree to Linked List

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

1938
来自专栏赵俊的Java专栏

从源码上分析 ArrayList

1171
来自专栏Hongten

ArrayList VS Vector(ArrayList和Vector的区别)_面试的时候经常出现

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

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

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

19110

扫码关注云+社区