IELTS Writing Tips

一、总览

1.作为分为Task 1 和 Task 2 两个作文,考试时间一小时,安排在上午。Task 2占2/3的分数。

2.如果拿到题目,Task 2能在40分钟写出,那么就先完成Task 2,否则先写Task 1找感觉。小作文是客观题,大作文是议论文,主观题。

3.备课中后期,小作文不应该超过25分钟,议论文不要超过45分钟。考前一周冲刺阶段,严格按照一小时完成两篇作文。

4.学术写作特殊要求

  • 不能使用缩写形式
    缩写形式 推荐形式
    can’t cannot (连在一起)
    don’t  do not
    I’m I am
    shouldn’t should not
  • 不能所有句式都过短,在rap
  • 祈使句不能应用于学术写作
  • 学术文章不可以使用I 、 we,可能会显得过于主观。雅思可以使用。
  • 不能有强烈的感情色彩的句子
  • 不能口语化。如lots of是口语表达,作文应该用many

5.大作文要仔细审题,画重点(名词等关键词),还有关键虚词(连接词and or等、程度副词)

 

二、idea

1.雅思考试是测试用英语的说理能力,所以对idea的论证过程的要求只是reasonable符合生活常识的。

2.论点思路关键字

关键字 连接词(助记) 关键字
Skill 技能 提高 Efficiency 效率
Technology 科技 保障 Safety 安全
Right 权利 对应 Responsibility 责任
Environment 环境 影响 Health 健康
Employment 就业 获得 Money 财务
Culture 文化 带来 Fun 乐趣

 

记忆:STREEC

类似于:streak 裸奔

三、易错词

 

四、作文结构 Structure

1.tips

议论文,考官偏爱折中式。即,正反两方面都进行论证,但更倾向于其中一方。

2.作文分类

  • Report(分析解释类)

不给任何观点,只给出一种现象。要求分析这种现象的:causes原因、solutions解决方案、problems带来的问题 、factors影响因素、measures应对措施、effects影响等。

注 :出现概率占比 15%-20%

  • Argument (辩论类)

要求辩论观点,比较利弊。

3.四段式

段落 句子  备注
1 1~3句
2 1+ 6~8句 正方总论点+(各个分论点+解释+支持句)
3 1+ 4~6句 反方总论点+(各个分论点+解释+支持句)
4 1~2句

注:适用于能想到的分论点比较多,支持句(supporting  sentences)比较少的情况。

4.五段式

段落 句子  备注
1 1~3句
2 1+ 2~4句 正方分论点1+解释+支持句
3 1+ 2~4句 正方分论点2+解释+支持句
4 1+ 4~6句 反方总论点+(各个分论点+解释+支撑)
5 1~2句

注:适用于聚焦在一个分论点上,能想到比较多的支撑句。

五、衔接方法 Cohesion

分为两类:明承接(直接用连接词)、暗承接(代词或者和分论点有关的名词)

5.1 明承接

助记:果粒对比,不设下限  这8类

、举比、类

、假定义、定范围

  • 因果:As a result,  、Therefore,
  • 举例:For example, 、 such  as
  • 对比:xxx blabla, while yyy blabla 、By contract
  • 类比:For example,xxx blabla. Similarly, yyy blabla
  • 让步:xxx blabla,  although xxx  blabla
  • 假设:If 、 Without …,… would …
  • 下定义:This means that xxx 、 In other words, xxx
  • 限定范围(具体化):Specifically,xxx

注:作文总共用到其中2~4种即可

5.2 暗承接

  • 人称代词:They 等
  • 指示代词:This 、These
  • 与分论点相关的名词:xxx

六、分论点结构

Idea  —> Eplain in detail —> Example(支持句)

分论点—> 解释分论点—> 支持句

注:支持句使用上面8种中的2~4种,不要使用一样的

 

七、作文写法

1. Agree or Disagree

段落 备注
开头 简短,两句话:背景/转述我的观点(a、b折中)
二三段 论点、分论点、支撑句
结尾  简短,总结,表达观点(同开头)

 

tips:

  • 必须提出并论证自己关于这种观点的看法
  • 全文绝不能出现 Other people think that… 这样的句子
  • 开头段:1.转述背景(没有的话自己补充不补充都可),2.Some people think/ believe/ argue that …, 3.自己的观点
  • 2可以包含在3里面。Although I agree that …(一种观点), I believe that …(另一种观点的plus,也就是自己的观点)
  • 上面的另一种表述:While I agree that …, I believe that …  
  • 结尾段:In conclusion, I agree that xxx. At the same time, I believe that yyy.

举例:

Q:有人认为吃火锅带来的快乐,大于锅爆炸承受的危险,多大程度你同意或者不同意这种观点?

  • 开头:现在有人认为吃火锅带来的快乐,大于锅爆炸承受的危险。我认为,快乐最重要,吃。(另一种:我认为,爆炸太危险了,生命最重要,不吃)
  • 二三段:火锅好,带来快乐。火锅不好,爆炸危险。
  • 结尾:
    • 结尾一:总结一下,尽管火锅可能爆炸,但是概率太低了,快乐最重要,吃。
    • 结尾二:总结一下,尽管吃火锅带来快乐,但是爆炸太危险了,那可是绳命啊,不吃。

2.D & G (Discuss both views and give your own opinion)

段落 备注
开头 简短,两句话:背景,转述两种观点
二三段 论点、分论点、支撑句
结尾  简短,给出自己的看法

 

注:开头也可以表明观点,但是官方范文多数不会给观点,而是留到结尾再给。

tips:

  • 必须要都讨论,否则就是偏题
  • 两方论述长度接近
  • 和稀泥可以接受,更偏向其中一方也可以接受
  • 开头段:转述背景(没有的话自己补充不补充都可),Some people think that …, while others believe that …转述题目给到的观点。
  • 另一种开头:转述背景(同上),People have different views about … . 这种的二段开头:Some people think that …   三段开头:Others, however, believe that… 
  • 结尾段:In my opinion, xxx would not be the best way to xxx, People should be encouraged to yyy.

举例:

Q:有人认为吃火锅好,有人认为吃火锅不好,描述这两种观点并给出你的看法。

  • 开头:现在有很多火锅店,吃火锅好与坏,人们有不同的观点。
  • 二三段:火锅好,带来快乐。火锅不好,爆炸危险。
  • 结尾:
    • 结尾一(和稀泥):我认为,一方面火锅好,可以带来快乐,另一方面,也存在着爆炸的不好,应该提高锅的制造技术(在不好里面描述是制造技术不好导致的爆炸)。
    • 结尾二:我认为,吃火锅带来的那可是快乐,爆炸,只是失去的是个生命,火锅好。
    • 结尾三:我认为,火锅不好,生命>快乐。

3.比较利弊型

提问方式:

  • Do the advantages outweigh the disadvantages?
  • Is this a postive or negative trend?

注:是和否提问

段落 备注
开头 简短,两句话:背景(就是题目的利弊),我认为,利大于弊(弊大于利)
二三段 一方面,xxx利,论述。另一方面,xxx弊,论述
结尾  (简短)总结一下,我相信xxx利大于xxx弊(xxx弊大于xxx利)。

(简短)总结一下,我相信xxx有积极意义(xxx具有消积意义)

tips:

开头段:背景(题目中认为的利弊), I believe that the advantages of this outweigh the disadvantages.

结尾段:Overall, it seems to that the benefits of xxx outweigh the drawbacks.

 

举例:

Q:现在,认为吃火锅带来的快乐大于锅爆炸承受的危险的人越来越多,这一趋势是否利大于弊?

  • 开头:现在认为吃火锅带来的快乐大于锅爆炸承受的危险的人越来越多。我认为,利大于弊(弊大于利)。
  • 二三段:一方面,这个趋势弊,火锅不好,爆炸危险。另一方面,这个趋势利大于弊,火锅好,带来快乐。
  • 结尾:
    • 结尾一:总结一下,我相信利大于弊(我相信这是积极的趋势)。
    • 结尾二:总结一下,我相信弊大于利(我相信这是消极的趋势)。

4.Report型

提问方式:

  • What are the advantage and disadvantages of this trend?

注:给定现象,分析它两个方面(产生原因、解决方法、影响、好处、弊端等)。最长出现的是:原因解决方法

必须注意好要求分析哪两个方面

 

段落 备注
开头 1.简短,两句话:背景,这种情况有几种原因和几种措施去解决它(原因和解决方法)。

2.简短,两句话:背景,是xxx导致的,yyy有很多种好处(why,what好处)。

二三段 1.主要、次要原因是xxx,论述。有不同的解决方法可以去解决这个问题,xxx和xxx。

2.为什么。有xxx好处。

结尾  1.(简短)总结一下,这种情况有不同的原因,有不同的解决方法可以解决xxx。

2.总结一下,这种情况有不同的原因,然后xxx可以带来不同中的好处。

tips:

开头段:背景,There are several causes of this trend, but measures can be taken to address it.

开头段:背景,There are several reasons for this trend and measures need to be taken to tackle it.

结尾段:In conclusion, there are various reasons for xxx, but measures can certainly be taken to tackle this problem.

 

5.Mixed型

考的比较少,看篇范文熟悉下即可。

将全面4种揉合在一起,按问的顺序组织作文结构即可。

Q:现在越来越多的人喜欢吃火锅而不关注爆炸,火锅爆炸的原因是什么?你认为这个趋势是好的还是不好的?

开头:背景,这个有不同的原因,我认为是好(不好)的

二段:主要原因是xxx。

三段:一方面,这个趋势是好的。另一方面,xxx会引发xxx问题。

结尾:总结,有不同的原因导致这个趋势,这是好(不好)的趋势。

Networking Interview

1. What are the layers of the OSI reference model?

There are 7 OSI layers: 1) Physical Layer, 2) Data Link Layer, 3) Network Layer, 4) Transport Layer, 5) Session Layer, 6) Presentation Layer, and 7) Application Layer.

2.What is the job of the Network Layer under the OSI reference model?

The Network layer is responsible for data routing, packet switching, and control of network congestion. Routers operate under this layer.

3. What is OSI, and what role does it play in computer networks?

OSI (Open Systems Interconnect) serves as a reference model for data communication. It is made up of 7 layers, with each layer defining a particular aspect of how network devices connect and communicate with one another. One layer may deal with the physical media used, while another layer dictates how data is transmitted across the network.

 

refer:https://www.guru99.com/networking-interview-questions.html

Linux进程的五个段

名称 内容
代码段 可执行代码、字符串常量
数据段 已初始化全局变量、静态变量、常量数据
BSS段 未初始化全局变量、静态变量
局部变量、函数参数
动态分配内存

 

BSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。

数据段:数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段属于静态内存分配。

代码段:代码段(code segment/text segment)通常是指用来存放程序执行代码的一块内存区域。这部分区域的大小在程序运行前就已经确定,并且内存区域通常属于只读, 某些架构也允许代码段为可写,即允许修改程序。在代码段中,也有可能包含一些只读的常数变量,例如字符串常量等。

堆(heap):堆是用于存放进程运行中被动态分配的内存段,它的大小并不固定,可动态扩张或缩减。当进程调用malloc等函数分配内存时,新分配的内存就被动态添加到堆上(堆被扩张);当利用free等函数释放内存时,被释放的内存从堆中被剔除(堆被缩减)

栈(stack):栈又称堆栈, 是用户存放程序临时创建的局部变量,也就是说我们函数括弧“{}”中定义的变量(但不包括static声明的变量,static意味着在数据段中存放变量)。除此以外,在函数被调用时,其参数也会被压入发起调用的进程栈中,并且待到调用结束后,函数的返回值也会被存放回栈中。由于栈的先进后出特点,所以栈特别方便用来保存/恢复调用现场。从这个意义上讲,我们可以把堆栈看成一个寄存、交换临时数据的内存区。

它是由操作系统分配的,内存的申请与回收都由OS管理。

注意:

全局的未初始化变量存在于.bss段中,具体体现为一个占位符;全局的已初始化变量存于.data段中;而函数内的自动变量都在栈上分配空间。.bss是不占用可执行文件空间的,其内容由操作系统初始化(清零);而.data却需要占用,其内容由程序初始化,因此造成了上述情况。

bss段(未手动初始化的数据)并不给该段的数据分配空间,只是记录数据所需空间的大小。
data(已手动初始化的数据)段则为数据分配空间,数据保存在目标文件中。 数据段包含经过初始化的全局变量以及它们的值。BSS段的大小从可执行文件中得到 ,然后链接器得到这个大小的内存块,紧跟在数据段后面。当这个内存区进入程序的地址空间后全部清零。包含数据段和BSS段的整个区段此时通常称为数据区。

17天搞定GRE单词

1.背单词最好安排在早晨,最迟在中午,以便在12小时后的晚上的复习。每天三个小时,360个新词。

2.记忆周期:5分钟、30分钟、12小时,1、2、4、7、15天

3. 10个单词为一个记忆单元,背5分钟;开始下一个单元时,先复习本单元;背过6个单元后从头开始复习一遍。 晚上睡觉前复习一遍。

4. 17天后开始做题。

5. 15天的记忆周期过后,每天复习3个list(360个单词)(一个list120个单词,初次背需要一个小时的量)。

6. 对于每一次复习时遮住中文释义,想单词意思。

7. 对于没记住的单词可以在前面画星号,下次重点记忆。

8. 本方法的中间阶段,是最为关键也最为痛苦的时期,极易半途而废,请一定咬牙挺过去。如果实在坚持不下去了,就想一想:“如果放弃,前面的单词就全都白背了”。

Go基础

1. Golang 中常用的并发模型

  • 通过channel通知实现并发控制
  • 通过sync包中的WaitGroup实现并发控制

在WaitGroup里主要有三个方法:

  • Add, 可以添加或减少 goroutine的数量.
  • Done, 相当于Add(-1).
  • Wait, 执行后会堵塞主线程,直到WaitGroup 里的值减至0。

 

 

注:在 WaitGroup 第一次使用后,不能被拷贝

应用示例:


 

 

上面运行会提示所有的 goroutine 都已经睡眠了,出现了死锁。这是因为 wg 给拷贝传递到了 goroutine 中,导致只有 Add 操作,其实 Done操作是在 wg 的副本执行的。因此 Wait 就死锁了。

  • 在Go 1.7 以后引进的强大的Context上下文,实现并发控制

通常,在一些简单场景下使用 channel 和 WaitGroup 已经足够了,但是当面临一些复杂多变的网络并发场景下 channel 和 WaitGroup 显得有些力不从心了。 比如一个网络请求 Request,每个 Request 都需要开启一个 goroutine 做一些事情,这些 goroutine 又可能会开启其他的 goroutine,比如数据库和RPC服务。 所以我们需要一种可以跟踪 goroutine 的方案,才可以达到控制他们的目的,这就是Go语言为我们提供的 Context,称之为上下文非常贴切,它就是goroutine 的上下文。

2. nil slice和空slice

var slice []int     是一个nil slice,直接用会越界

slice := []int{}    是一个空slice

3. 进程、线程和协程

  • 进程

进程是系统进行资源分配和调度的一个独立单位。每个进程都有自己的独立内存空间,不同进程通过进程间通信来通信。由于进程比较重量,占据独立的内存,所以上下文进程间的切换开销(栈、寄存器、虚拟内存、文件句柄等)比较大,但相对比较稳定安全。

  • 线程

线程是进程的一个实体,是CPU调度和分派的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈)。线程间通信主要通过共享内存,上下文切换很快,资源开销较少,但相比进程不够稳定容易丢失数据。

  • 协程

协程是一种用户态的轻量级线程,协程的调度完全由用户控制。协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈,直接操作栈则基本没有内核切换的开销,可以不加锁的访问全局变量,所以上下文的切换非常快。

线程和协程的区别:

  • 线程的切换由操作系统负责调度,协程由用户自己进行调度,因此减少了上下文切换,提高了效率。
  • 线程的默认Stack大小是1M,而协程更轻量,接近1K。因此可以在相同的内存中开启更多的协程。
  • 由于在同一个线程上,因此可以避免竞争关系而使用锁。
  • 适用于被阻塞的,且需要大量并发的场景。但不适用于大量计算的多线程,遇到此种情况,更好实用线程去解决。

4. 什么是channel,为什么它可以做到线程安全

Channel是Go中的一个核心类型,可以把它看成一个管道,Channel也可以理解是一个先进先出的队列,通过管道进行通信。

Golang的Channel,发送一个数据到Channel 和 从Channel接收一个数据 都是 原子性的。而且Go的设计思想就是:不要通过共享内存来通信,而是通过通信来共享内存,前者就是传统的加锁,后者就是Channel。也就是说,设计Channel的主要目的就是在多任务间传递数据的,这当然是安全的。

解决数据竞争(Data race),也可以使用管道解决,使用管道的效率要比互斥锁Mutex高。

Go垃圾回收机制

1. 当前Golang使用的垃圾回收机制是三色标记法配合写屏障辅助GC,三色标记法是标记-清除法的一种增强版本。

2. 从root根出发扫描所有根对象,将他们引用的对象标记为灰色,将灰色对象置为黑色,将灰色对象引用的对象再置为灰色;以此循环,知道灰色对象队列为空。此时白色对象即为垃圾。

注:root区域主要是程序运行到当前时刻的栈和全局数据区域。

3. GC优化思路

通常小对象过多会导致GC三色法消耗过多的GPU。优化思路是,减少对象分配。

a.避免string与[]byte转化;

两者发生转换的时候,底层数据结结构会进行复制,因此导致 gc 效率会变低。

b.对于string的连接操作,少量小文本拼接,用 “+” ;大量小文本拼接,用 strings.Join;大量大文本拼接,用 bytes.Buffer。

 

4. GC触发条件

a. 超过内存大小阈值

b. 达到定时时间,阈值是由一个gcpercent的变量控制的,当新分配的内存占已在使用中的内存的比例超过gcprecent时就会触发。

c. 调用runtime.GC()时,主动触发,如果GC已经启动则跳过。

比如一次回收完毕后,内存的使用量为5M,那么下次回收的时机则是内存分配达到10M的时候。也就是说,并不是内存分配越多,垃圾回收频率越高。 如果一直达不到内存大小的阈值呢?这个时候GC就会被定时时间触发,比如一直达不到10M,那就定时(默认2min触发一次)触发一次GC保证资源的回收。

原文:https://juejin.im/post/6844903917650722829

Mysql join操作

1.left join 会以左表为全量数据,然后on匹配右表的,所以left join里面对左表的on条件无效。right join同理。

2.left join和right join的on和where区别:on作为连接的条件(左连接时,on左表的条件无效,on右表的条件使得右表对应不满足条件的行为NULL,行数和没有条件还是一样),on先生成临时表,where再在临时表中筛选。

3.左连接时,尽量选择数据量小的表作为左表,可以减少筛选次数。右连接同理。

4.inner join的on和where作用相同,但是inner join只是自己判断选择哪个表作为左表,临时表的数据量不会变小。

 

5.在使用left join时,on和where条件的区别如下:

a. on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。

b.where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。

CPU缓存一致性协议(MESI Protocol)

  • 通过 MESI protocol,任何一个 CPU 要写入资料前,首先会给其它CPU发送Invalid消息,在其它 CPU 回 invalidate ack后, 才能将资料到自己的 cache,并在稍后将资料写回 memory。但是因为其他CPU可能回ack慢,所以该CPU会不等ack,先写入store buffer,然后继续做事,之后收到ack再更新cache的状态。所以CPU 读资料的顺序: store buffer → cache → memory。
  • 其他CPU 收到invalid消息后会先记录到invalidate queue里然后立即回 invalidate ack,稍后再处理 invalidate。

原文:https://medium.com/fcamels-notes/%E5%BE%9E%E7%A1%AC%E9%AB%94%E8%A7%80%E9%BB%9E%E4%BA%86%E8%A7%A3-memry-barrier-%E7%9A%84%E5%AF%A6%E4%BD%9C%E5%92%8C%E6%95%88%E6%9E%9C-416ff0a64fc1

Golang细节

1. 复数

 

结果:

2.

机器学习 – machine learning | ML

总结:

  • 什么是机器学习

把现实生活中的问题抽象成数学模型,然后利用数学方法对这个数学模型进行求解,从而解决现实生活中的问题。

  • 机器学习原理

通过训练集,不断识别特征,不断建模,最后形成有效的模型,这个过程就叫“机器学习”

  • 机器学习训练方法
  1. 监督学习:给算法一个数据集,并且给定正确答案。机器通过数据来学习正确答案的计算方法。
  2. 非监督学习:给定的数据集没有“正确答案”,无监督学习的任务是从给定的数据集中,挖掘出潜在的结构。
  3. 强化学习:它关注的是智能体如何在环境中采取一系列行为,从而获得最大的累积回报。通过强化学习,一个智能体应该知道在什么状态下应该采取什么行为。比如:机器学习玩游戏
  • 机器学习的七个步骤

收集数据—>数据准备—>选择一个模型—>训练—>评估—>参数调整—>预测(开始使用)

机器学习、人工智能、深度学习是什么关系?

1956 年提出 AI 概念,短短3年后(1959) Arthur Samuel 就提出了机器学习的概念:

Field of study that gives computers the ability to learn without being explicitly programmed.

机器学习研究和构建的是一种特殊算法(而非某一个特定的算法),能够让计算机自己在数据中学习从而进行预测。

所以,机器学习不是某种具体的算法,而是很多算法的统称。

机器学习包含了很多种不同的算法,深度学习就是其中之一,其他方法包括决策树,聚类,贝叶斯等。

深度学习的灵感来自大脑的结构和功能,即许多神经元的互连。人工神经网络(ANN)是模拟大脑生物结构的算法。

不管是机器学习还是深度学习,都属于人工智能(AI)的范畴。所以人工智能、机器学习、深度学习可以用下面的图来表示:能、机器学习、深度学习的关系

详细了解人工智能:《「2019更新」什么是人工智能?(AI的本质+发展史+局限性)

详细了解深度学习:《一文看懂深度学习(白话解释+8个优缺点+4个典型算法)

 

什么是机器学习?

在解释机器学习的原理之前,先把最精髓的基本思路介绍给大家,理解了机器学习最本质的东西,就能更好的利用机器学习,同时这个解决问题的思维还可以用到工作和生活中。

机器学习的基本思路

  1. 把现实生活中的问题抽象成数学模型,并且很清楚模型中不同参数的作用
  2. 利用数学方法对这个数学模型进行求解,从而解决现实生活中的问题
  3. 评估这个数学模型,是否真正的解决了现实生活中的问题,解决的如何?

无论使用什么算法,使用什么样的数据,最根本的思路都逃不出上面的3步!

机器学习的基本思路

当我们理解了这个基本思路,我们就能发现:

不是所有问题都可以转换成数学问题的。那些没有办法转换的现实问题 AI 就没有办法解决。同时最难的部分也就是把现实问题转换为数学问题这一步。

 

机器学习的原理

下面以监督学习为例,给大家讲解一下机器学习的实现原理。

假如我们正在教小朋友识字(一、二、三)。我们首先会拿出3张卡片,然后便让小朋友看卡片,一边说“一条横线的是一、两条横线的是二、三条横线的是三”。

不断重复上面的过程,小朋友的大脑就在不停的学习。

当重复的次数足够多时,小朋友就学会了一个新技能——认识汉字:一、二、三。

我们用上面人类的学习过程来类比机器学习。机器学习跟上面提到的人类学习过程很相似。

  • 上面提到的认字的卡片在机器学习中叫——训练集
  • 上面提到的“一条横线,两条横线”这种区分不同汉字的属性叫——特征
  • 小朋友不断学习的过程叫——建模
  • 学会了识字后总结出来的规律叫——模型

通过训练集,不断识别特征,不断建模,最后形成有效的模型,这个过程就叫“机器学习”!

 

监督学习、非监督学习、强化学习

机器学习根据训练方法大致可以分为3大类:

  1. 监督学习
  2. 非监督学习
  3. 强化学习

除此之外,大家可能还听过“半监督学习”之类的说法,但是那些都是基于上面3类的变种,本质没有改变。

 

监督学习

监督学习是指我们给算法一个数据集,并且给定正确答案。机器通过数据来学习正确答案的计算方法。

举个栗子:

我们准备了一大堆猫和狗的照片,我们想让机器学会如何识别猫和狗。当我们使用监督学习的时候,我们需要给这些照片打上标签。

将打好标签的照片用来训练

我们给照片打的标签就是“正确答案”,机器通过大量学习,就可以学会在新照片中认出猫和狗。

当机器遇到新的小狗照片时就能认出他

这种通过大量人工打标签来帮助机器学习的方式就是监督学习。这种学习方式效果非常好,但是成本也非常高。


非监督学习

非监督学习中,给定的数据集没有“正确答案”,所有的数据都是一样的。无监督学习的任务是从给定的数据集中,挖掘出潜在的结构。

举个栗子:

我们把一堆猫和狗的照片给机器,不给这些照片打任何标签,但是我们希望机器能够将这些照片分分类。

将不打标签的照片给机器

通过学习,机器会把这些照片分为2类,一类都是猫的照片,一类都是狗的照片。虽然跟上面的监督学习看上去结果差不多,但是有着本质的差别:

非监督学习中,虽然照片分为了猫和狗,但是机器并不知道哪个是猫,哪个是狗。对于机器来说,相当于分成了 A、B 两类。

机器可以将猫和狗分开,但是并不知道哪个是猫,哪个是狗


强化学习

强化学习更接近生物学习的本质,因此有望获得更高的智能。它关注的是智能体如何在环境中采取一系列行为,从而获得最大的累积回报。通过强化学习,一个智能体应该知道在什么状态下应该采取什么行为。

最典型的场景就是打游戏。

2019年1月25日,AlphaStar(Google 研发的人工智能程序,采用了强化学习的训练方式) 完虐星际争霸的职业选手职业选手“TLO”和“MANA”。

 

机器学习实操的7个步骤

通过上面的内容,我们对机器学习已经有一些模糊的概念了,这个时候肯定会特别好奇:到底怎么使用机器学习?

机器学习在实际操作层面一共分为7步:

  1. 收集数据
  2. 数据准备
  3. 选择一个模型
  4. 训练
  5. 评估
  6. 参数调整
  7. 预测(开始使用)
机器学习的7个步骤

假设我们的任务是通过酒精度和颜色来区分红酒和啤酒,下面详细介绍一下机器学习中每一个步骤是如何工作的。

案例目标:区分红酒和啤酒

 

步骤1:收集数据

我们在超市买来一堆不同种类的啤酒和红酒,然后再买来测量颜色的光谱仪和用于测量酒精度的设备。

这个时候,我们把买来的所有酒都标记出他的颜色和酒精度,会形成下面这张表格。

颜色 酒精度 种类
610 5 啤酒
599 13 红酒
693 14 红酒

这一步非常重要,因为数据的数量和质量直接决定了预测模型的好坏。

 

步骤2:数据准备

在这个例子中,我们的数据是很工整的,但是在实际情况中,我们收集到的数据会有很多问题,所以会涉及到数据清洗等工作。

当数据本身没有什么问题后,我们将数据分成3个部分:训练集(60%)、验证集(20%)、测试集(20%),用于后面的验证和评估工作。

数据要分为3个部分:训练集、验证集、测试集

关于数据准备部分,还有非常多的技巧,感兴趣的可以看看《AI 数据集最常见的6大问题(附解决方案)

 

步骤3:选择一个模型

研究人员和数据科学家多年来创造了许多模型。有些非常适合图像数据,有些非常适合于序列(如文本或音乐),有些用于数字数据,有些用于基于文本的数据。

在我们的例子中,由于我们只有2个特征,颜色和酒精度,我们可以使用一个小的线性模型,这是一个相当简单的模型。

 

步骤4:训练

大部分人都认为这个是最重要的部分,其实并非如此~ 数据数量和质量、还有模型的选择比训练本身重要更多(训练知识台上的3分钟,更重要的是台下的10年功)。

这个过程就不需要人来参与的,机器独立就可以完成,整个过程就好像是在做算术题。因为机器学习的本质就是将问题转化为数学问题,然后解答数学题的过程

 

步骤5:评估

一旦训练完成,就可以评估模型是否有用。这是我们之前预留的验证集和测试集发挥作用的地方。评估的指标主要有 准确率、召回率、F值。

这个过程可以让我们看到模型如何对尚未看到的数是如何做预测的。这意味着代表模型在现实世界中的表现。

 

步骤6:参数调整

完成评估后,您可能希望了解是否可以以任何方式进一步改进训练。我们可以通过调整参数来做到这一点。当我们进行训练时,我们隐含地假设了一些参数,我们可以通过认为的调整这些参数让模型表现的更出色。

 

步骤7:预测

我们上面的6个步骤都是为了这一步来服务的。这也是机器学习的价值。这个时候,当我们买来一瓶新的酒,只要告诉机器他的颜色和酒精度,他就会告诉你,这时啤酒还是红酒了。

15种经典机器学习算法

ner“>

算法 训练方式
线性回归 监督学习
逻辑回归 监督学习
线性判别分析 监督学习
决策树 监督学习
朴素贝叶斯 监督学习
K邻近 监督学习
学习向量量化 监督学习
支持向量机 监督学习
随机森林 监督学习
AdaBoost 监督学习
高斯混合模型 非监督学习
限制波尔兹曼机 非监督学习
K-means 聚类 非监督学习
最大期望算法 非监督学习

 

 

原文:https://easyai.tech/ai-definition/machine-learning/