Machine Learning (2020)_ Course Introduction
机器学习课程介绍
今天介绍的内容大概:
机器学习就是自动找函式
Supervised Learning(监督学习)
supervised learning 需要大量的training data,这些training data告诉我们说,一个我们要找的function,它的input和output之间有什么样的关系
而这种function的output,通常被叫做label(标签),也就是说,我们要使用supervised learning这样一种技术,我们需要告诉机器,function的input和output分别是什么,
而这种output通常是通过人工的方式标注出来的,因此称为人工标注的label,它的缺点是需要大量的人工effort
Regression(回归): the output of the function is a scalar
回归:函数输出的结果是数值
如输入昨天今天的PM2.5数值,预测明天的PM2.5数值
Classification(分类)
regression和classification的区别是,我们要机器输出的东西的类型是不一样的,在regression里机器输出的是scalar,而classification又分为两类:
Binary Classification(二元分类)
输出结果只有两种可能 ,yes or no,是或否
比如G-mail的spam filtering(垃圾邮件过滤器),输入是邮件,输出是该邮件是否是垃圾邮件
Muti-class Classification(多元分类)
一个输入,多个可选择的输出 ,机器要做的是选择题,等于给他数个选项,每一个选项就是一个类别,它要从数个类别里面选择正确的类别。
比如新闻文章分类,输入的是一则新闻,输出这个新闻属于哪个类别。
Generation(生成)
产生有结构的复杂的东西 (例如:文句、图片)
Model(function set)选择模型
在完成任务的过程中,第一步是要选一个function set,选不同function set,会得到不同的结果,
而选不同的function set就是选不同的model,model分为很多种:
Linear Model(线性模型):最简单的模型
Non-linearn Model(非线性模型):最常用的模型,包括:
deep learning(深度学习)
SVM(支持向量机)
decision tree (决策树)
KNN(K临近)
Unsupervised Learning(无监督学习)
unsupervised learning希望机器学到无师自通,在完全没有任何label的情况下,机器到底能学到什么样的知识。
无监督学习的数据集跟监督学习不同,没有任何标签,即没有相应的“正确答案”。比如,我们带机器去逛动物园,
给他看大量的动物的图片,对于unsupervised learning来说,我们的data中只有给function的输入的大量图片,没有任何的输出标注;
在这种情况下,机器该怎么学会根据testing data的输入来自己生成新的图片?
Reinforcement Learning(强化学习)
我们没有告诉机器正确的答案是什么,机器最终得到的只有一个分数,就是它做的好还是不好,但他不知道自己到底哪里做的不好,他也没有正确的答案;
很像真实社会中的学习,你没有一个正确的答案,你只知道自己是做得好还是不好。
Alpha Go is supervised learning + reinforcement learning.
拿下棋这件事举例,supervised Learning是说看到眼前这个棋盘,告诉机器下一步要走什么位置;而reinforcement Learning是说让机器和对手互弈,
下了好几手之后赢了,机器就知道这一局棋下的不错,但是到底哪一步是赢的关键,机器是不知道的,他只知道自己是赢了还是输了
Transfer Learning(迁移学习)
迁移学习,训练数据跟测试数据的类型不一样的,例如以黑白图片训练识别数字,测试时使用了彩色图片,如何使机器也能输出正确的结果。
Transfer Learning要解决的问题是,这一堆不相干的data可以对结果带来什么样的帮助。
Structured Learning(结构化学习)
在structured Learning里,我们要机器输出的是,一个有结构性的东西
在分类的问题中,机器输出的只是一个选项;在structured类的problem里面,机器要输出的是一个复杂的物件
举例来说,在语音识别的情境下,机器的输入是一个声音信号,输出是一个句子;句子是由许多词汇拼凑而成,它是一个有结构性的object。
Meta Learning(元学习)
Meta Learning被称作元学习,不同于Machine Learning的目标是让机器能够学习,Meta Learning则是要让机器学会如何去学习。
在传统的机器学习中通常是由人来设计一套学习算法,然后这个算法会输入一堆训练资料,通过长时间的训练得到算法里的参数,
这堆参数拟合出一个函数,然后用测试资料来测试这个函数,如果效果达标就证明机器学到了该特定任务的实现函数。而Meta Learning
做的事情与上述描述不同的地方在于,将其中由人来设计学习方法的过程,改成了由机器来设计一套学习方法。
机器怎么找出你想要的函数式
1.限制函数式寻找范围:RNN和CNN
目前的机器学习,不是要求机器凭空的产生一个较优的函数,而是给机器一个函数结构(特定函数集合),让其去学出一组较优参数。
然后机器通过这组参数所决定的函数,就可以较好的完成给定任务。SVM、线性函数、CNN和RNN等都是函数结构,函数结构决定了机器所能的搜寻的函数的范围。
2.给定函数式的寻找方法——Gradient Descent (梯度下降)
获取最佳函数典型方法-梯度下降(gradient decent)
我们希望模型(为了和其他函数区别,此处用模型代替)最佳,就是希望其损失函数(loss function)最小。梯度方向是函数值变化最快的方向,
一个多元函数对其各个变量求梯度,可以确定各个变量的变化对函数值变化的贡献,并且确定各个变量应该怎样变化,才能使函数值以最快的速率减小到最小值。
我们根据当前损失函数值,就可以计算出当前损失函数对于各个变量的梯度值,然后朝着可以让损失函数值减小的方向更新各个变量的值,就可以实现梯度下降了
(梯度值中包含了更新的幅度和方向信息)。减小损失函数值 ,就是在优化模型。