机器学习 0 简介
最近开始学习李宏毅老师的机器学习,以此做一些笔记,以供学习参考。更详细的案例可以参考
案例研究 Regression:Case Study
概述
所谓机器学习,就是指机器自动寻找所要解决问题的函数表达式,不同的机器学习任务取决于你想找到一个什么样子的函数表达式。
学习机器学习就要有以下几个思考
- 你想找到什么样的函数表达式;
- 怎样告诉机器你想要找什么样的表达式;
- 当需要给机器提供数据时,机器怎样的去学习;
- 怎么在众多表达式中找到你想要的表达式。
为了解决上述的四个问题,研究机器学习,就从以下三个方面入手。scenario(学习的情景)task(解决的问题)以及model(解决问题所需要的模型):
task
task就是解决的问题。你要解的问题,随着你要找的function的output的不同,所选择的任务就不同。根据output 的不同分为regression和classification。regression和classification的区别是,机器输出的东西的类型是不一样的。还有一类就是generation 生成有结构的复杂的东西(例如文句、图片 )
你想找到什么样的函数表达式,就选择相对应的task
**
-
regression
the output of the function is a scalar
此图,输出是一个数值,这中function就叫做regression
**
-
classification
在regression里机器输出的是scalar,而classification又分为两类:
1.Binary Classification(二元分类)
在binary classification里,我们要机器输出的是yes or no,是或否
2.Multi-class classification(多元分类)
在multi-class classification里,机器要做的是选择题,相当于给他数个选项,每一个选项就是一个类别,它要从数个类别里面选择正确的类别
-
generation
让机器自己去创造
scenario
scenario指的是学习的情景,通俗来说,你培养教育一个孩子你给了他什么样的生长环境,是书香门第还是军人世家,同样的去理解机器学习中的学习情景,就是你给机器创造了一个什么样的条件去让机器学习。
scenario解决的就是怎样告诉机器你心里的想法。
根据环境的不同可以分为两种情景:
- reinforcement Learning
- supervised Learning
这两者的区别:当逆想通过大量的训练数据告诉机器你想找什么样的函数表达式也就是当给机器提供label data 的情景就叫supervised Learning。做reinforcement Learning是因为我们没有data、没有办法来做supervised Learning的情况下才去做的。
有什么样的data,就决定你使用什么样的scenario
supervised Learning
supervised Learning即监督式学习
如图所示,当你输入是一只猫的图片,想让它的输入是”cat” ,那supervised Learning的过程就是你得告诉机器什么样的才叫猫,要给机器大量的 training data 。
这些training data告诉我们说,一个我们要找的function,它的input和output之间有什么样的关系。
而这种function的output,通常被叫做label(标签),提供给机器这些labeled data 的资料的学习过程就叫supervised Learning
Reinforcement Learning
Reinforcement Learning即强化学习。
我们可以理解supervised Learning 是一个训练的过程,通过大量的训练数据去告诉机器正确答案是什么,其特点是Learning from teacher。
Reinforcement Learning:我们没有告诉机器正确的答案是什么,我们只会告诉他答案对不对,至于错在哪我们并不会告诉他,需要它自己去探索。其特点是Learning from critics。
备注:Alpha Go是用supervised Learning+reinforcement Learning相结合的方式去学习的,将棋谱作为labeled data,让它做supervise learning;之后再做reinforcement Learning,机器的对手是另外一台机器,Alpha Go就是和自己下棋,然后不断的进步.
当提供了机器这些有labeled data 的资料后,机器怎么去评估这些函数的好坏的,这时就用到了函式的loss
model
机器怎样找出我们想要的模型呢,这是我们要给定函式的寻找范围,给出function的模型。而选不同的function set就是选不同的model,model又分为很多种:
-
Linear Model(线性模型).:最简单的模型
-
Non-linear Model(非线性模型):最常用的模型,包括:
- deep learning
- SVM
- decision tree
-
K-NN
Neural network :神经网络
RNN:循环卷积网络
CNN:卷积神经网络
思考:如何在函式中找到最好的一个?
本节课介绍的函数寻找方法是:Gradient dessent 梯度下降
前沿研究
在后续中会涉及到的技术
- Explainable AI:可解释的AI
- Adversarial Attack :对抗攻击
- Network Compression :网络压缩
- Unsupervised Learning (Auto-encoder):无监督学习
- Anomaly Detection:异常检测
- Transfer Learning (Domain Adversarial Learning) :迁移学习
- Meta Learning:learn to learn
- Life-long Learning:终身学习
- Reinforcement Learning:强化学习
以上都是基于CNN的 Network Architecture