1-Introduction(介绍)
目录:
正文:
(一)機器學習就是让机器自動找函式
语音/图像识别
(二)你想找什麼樣的函式?
(2.1)Regression
找出的函数其输出是一个数值
(2.2)Classification
(2.1)Binary Classification
函数输出只有两种可能性是Y or N 或其他......
(2.2)Multi-class Classification
在multi-class classification里,机器要做的是选择题,等于给他数个选项,每一个选项就是一个类别,它要从数个类别里面选择正确的类别
比如document classification(新闻文章分类),输入是一则新闻,输出是这个新闻属于哪一个类别(选项)
(2.3)Generation
不只有Regression, Classification,还有產生有結構的複雜東西 (例如:文句、圖片)
(三)怎麼告訴機器 你想要什麼樣的函式?
你已经想清楚了你找什么样的函式,可是怎麼告訴機器,你想找什麼樣的函式尼?你的想法怎么传达给机器昵?有以下方法:
model(function set) 选择模型
在解任务的过程中,第一步是要选一个function的set,选不同的function set,会得到不同的结果;而选不同的function set就是选不同的model,model又分为很多种:
-
Linear Model(线性模型):最简单的模型
-
Non-linear Model(非线性模型):最常用的模型,包括:
-
deep learning
如alpha-go下围棋,输入是当前的棋盘格局,输出是下一步要落子的位置;由于棋盘是19*19的,因此可以把它看成是一个有19*19个选项的选择题
-
SVM
-
decision tree
-
K-NN
-
(3.1)Supervised Learning
你想输入一张猫的图片,机器输出cat(类别)。那怎么告诉机器你想要这种函式昵?所以需要给机器大量的训练资料(图片和标记-----lable),这就是监督学习。
(3.1.1)接下來機器會自動找出 Loss 最低的函式
(3.2)Reinforcement Learning
Supervised Learning:我们会告诉机器正确的答案是什么 ,其特点是Learning from teacher
- 比如训练一个聊天机器人,告诉他如果使用者说了“Hello”,你就说“Hi”;如果使用者说了“Bye bye”,你就说“Good bye”;就好像有一个家教在它的旁边手把手地教他每一件事情
Reinforcement Learning:我们没有告诉机器正确的答案是什么,机器最终得到的只有一个分数,就是它做的好还是不好,但他不知道自己到底哪里做的不好,他也没有正确的答案;很像真实社会中的学习,你没有一个正确的答案,你只知道自己是做得好还是不好。其特点是Learning from critics
- 比如训练一个聊天机器人,让它跟客人直接对话;如果客人勃然大怒把电话挂掉了,那机器就学到一件事情,刚才做错了,它不知道自己哪里做错了,必须自己回去反省检讨到底要如何改进,比如一开始不应该打招呼吗?还是中间不能骂脏话之类的
再拿下棋这件事举例,supervised Learning是说看到眼前这个棋盘,告诉机器下一步要走什么位置;而reinforcement Learning是说让机器和对手互弈,下了好几手之后赢了,机器就知道这一局棋下的不错,但是到底哪一步是赢的关键,机器是不知道的,他只知道自己是赢了还是输了。赢了就是它学习的策略方向!!!!!
其实Alpha Go是用supervised Learning+reinforcement Learning的方式去学习的,机器先是从棋谱学习,有棋谱就可以做supervised的学习;之后再做reinforcement Learning,机器的对手是另外一台机器,Alpha Go就是和自己下棋,然后不断的进步
(3.3)Unsupervised Learning
区别于supervised learning,unsupervised learning希望机器学到无师自通,在完全没有任何label的情况下,机器到底能学到什么样的知识
举例来说,如果我们给机器看大量的文章,机器看过大量的文章之后,它到底能够学到什么事情?它能不能学会每个词汇的意思?
学会每个词汇的意思可以理解为:我们要找一个function,然后把一个词汇丢进去,机器要输出告诉你说这个词汇是什么意思,也许他用一个向量来表示这个词汇的不同的特性,不同的attribute
又比如,我们带机器去逛动物园,给他看大量的动物的图片,对于unsupervised learning来说,我们的data中只有给function的输入的大量图片,没有任何的输出标注;在这种情况下,机器该怎么学会根据testing data的输入来自己生成新的图片?
(3.4)Semi-supervised Learning(半监督学习)
举例:如果想要做一个区分猫和狗的function
手头上有少量的labeled data,它们标注了图片上哪只是猫哪只是狗;同时又有大量的unlabeled data,它们仅仅只有猫和狗的图片,但没有标注去告诉机器哪只是猫哪只是狗
在Semi-supervised Learning的技术里面,这些没有labeled的data,对机器学习也是有帮助.
(3.5)Structured Learning(结构化学习)----属于监督学习
在structured Learning里,我们要机器输出的是,一个有结构性的东西
在分类的问题中,机器输出的只是一个选项;在structured类的problem里面,机器要输出的是一个复杂的物件
举例来说,在语音识别的情境下,机器的输入是一个声音信号,输出是一个句子;句子是由许多词汇拼凑而成,它是一个有结构性的object
或者说机器翻译、人脸识别(标出不同的人的名称)
比如GAN也是structured Learning的一种方法
(四)機器怎麼 找出你想要的函式?
那机器怎么实际找出你想要的函式?,第一步限制函式尋找範圍,第二部。。。。
(4.1)限制函式尋找範圍
Liner和Network Architecture 可以限制函式尋找範圍
(4.2)函式尋找方法 – Gradient Descent
限制函式尋找範圍后,那怎么找出最好的函式尼?
(五)前沿研究
(5.1)Explainable AI
如,为什么这是猫!
(5.2)Adversarial Attack
(5.3)Network Compression
网络压缩,研究压缩后放到小设备上!
(5.4)Anomaly Detection
异常探测。给出一个怪怪的东西,如何让机器知道”这东西我不知道“。因为现在机器都会将它归类成某一类,这不好!
(5.5)Transfer Learning (Domain Adversarial Learning)
训练资料和测试资料不一样时,还可以学到一些东西,如上图右边需要迁移学习
(5.6)Meta Learning
学习如何学习能力。发明自己的演算方法
(5.7)Life-long Learning
(5.8)Reinforcement Learning
总结: