迁移学习简介及用途

article/2025/9/24 4:24:21

迁移学习简介及用途

 

https://mp.weixin.qq.com/s/5_EYEJUycTtpfbxM_uGwHw

 

 

--------------------- 本文来自 mishidemudong 的CSDN 博客 
 

深度神经网络,相比于之前的传统机器学习方法,可以看成是一个全新的物种,这背后的原因,最明显的还是深度学习对机器算力的巨大需求,在深度学习入门最少需要知道什么?中介绍了深度学习所需的显卡资源,而当前大内存的机器不贵,而高性能,大显存的显卡就没那么便宜了。这使得使用深度学习去处理实际生活中遇到的问题,例如图像和语音的识别时,需要消耗大量的资源。而迁移可以改变这一切,显著的降低深度学习所需的硬件资源。

 

本文会先介绍迁移学习的定义,接着说说预先训练好的网络是什么,为什么有用?使用预训练的网络又有那两种方法?之后会通过MINST数字识别的例子,来展示该如何应用迁移学习。

 

让我们通过一个直观的例子来说明什么是迁移学习。假设你穿越到了古代,成为了太子,为了治理好国家,你需要知道的实在太多了。若是从头学起,肯定是来不及的。你要做的是找你的皇帝老爸,问问他正在做了什么,而他也希望能将他脑子的知识一股脑的转移到你脑中。这正是迁移学习。即将一个领域的已经成熟的知识应用到其他的场景中。

                                                

 

用神经网络的词语来表述,就是一层层网络中每个节点的权重从一个训练好的网络迁移到一个全新的网络里,而不是从头开始,为每特定的个任务训练一个神经网络。这样做的好处,可以从下面的例子中体现,假设你已经有了一个可以高精确度分辨猫和狗的深度神经网络,你之后想训练一个能够分别不同品种的狗的图片模型,你需要做的不是从头训练那些用来分辨直线,锐角的神经网络的前几层,而是利用训练好的网络,提取初级特征,之后只训练最后几层神经元,让其可以分辨狗的品种。

 

从上述的例子引申出来,迁移学习的理念,其实有广泛的应用。人类的语言使得代际之间的迁移学习变得可能,在语言出现之前,每一代能够教给下一代的东西极其有限,而有了语言,人类的知识得以爆炸性的增长。而随着现代科学的进步,每门学科都产生了很多术语,这些术语相当于抽象层次更高的表述,所需的学习时间也会变长,这使得童年这个文化概念得以产生。迁移学习的道理应用到现实生活中,还意味着教育和娱乐的区别。教育要有阐释,有背景,有对情境复杂性的分析,追求的是宽度,而当前娱乐式的知识传授,则只追求深度,从一个有趣的案例,一路衍生出看似深刻的道理,或者停留在事实本身,将知识变成一个个孤岛而不是网络。

 

回到技术问题。迁移学习相当于让神经网络有了语言,新一代的神经网络可以站在前人的基础上更进一步,而不必重新发明轮子。使用一个由他人预先训练好,应用在其他领域的网络,可以作为我们训练模型的起点。不论是有监督学习,无监督学习还是强化学习,迁移学习的概念都有广泛的应用。


 

举图像识别中最常见的例子,训练一个神经网络。来识别不同的品种的猫,你若是从头开始训练,你需要百万级的带标注数据,海量的显卡资源。而若是使用迁移学习,你可以使用Google发布的Inception或VGG16这样成熟的物品分类的网络,只训练最后的softmax层,你只需要几千张图片,使用普通的CPU就能完成,而且模型的准确性不差。


 

使用迁徙学习时要注意,本来预训练的神经网络,要和当前的任务差距不大,不然迁徙学习的效果会很差。例如如果你要训练一个神经网络来识别肺部X光片中是否包含肿瘤,那么使用VGG16的网络就不如使用一个已训练好的判断脑部是否包含肿瘤的神经网络。后者与当前的任务有相似的场景,很多底层的神经员可以做相同的事,而用来识别日常生活中照片的网络,则难以从X光片中提取有效的特征。

 

另一种迁移学习的方法是对整个网络进行微调,假设你已训练好了识别猫品种的神经网络,你的网络能对50种猫按品种进行分类。接下来你想对网络进行升级,让其能够识别100种猫,这时你不应该只训练网络的最后一层,而应该逐层对网络中每个节点的权重进行微调。显然,只训练最后几层,是迁移学习最简单的1.0版,而对节点权重进行微调(fine turing),就是更难的2.0版,通过将其他层的权重固定,只训练一层这样的逐层训练,可以更好的完成上述任务。

 

 

另一种迁移学习的方式是借用网络的结构,即不是使用已训练好的网络的权重,而是使用相同的网络结构,例如多少层,每层多少节点这样的信息,然后使用随机生成的权重作为训练的起点。例如你要训练世界上第一个识别fMRI图像的神经网络,你就可以借鉴识别X光图片的神经网络。


 

和传统的方法相比,迁移学习的另一个好处其可以做多任务目标的学习,传统的模型面对不同类型的任务,需要训练多个不同的模型。而有了迁移学习,可以先去实现简单的任务,将简单任务中的得到的知识应用到更难的问题上,从而解决标注数据缺少,标注不准确等问题。

                                                        
 

接下来看一个实际的例子,大家都熟悉的MINST手写数字识别,也可以用迁移学习来做,已有的训练数据是六万张图片,已有的模型是通用的图像识别模型VGG16,看起来,我们即可以将网络的最高层重新训练,也可以训练网络的最初几层,毕竟手写数字的图片,和我们日常见到的图片即相似也有明显不同。点击阅读原文,可以查看具体的python代码。

 

总结一下,迁移学习应用广泛,尤其是在工程界,不管是语音识别中应对不同地区的口音,还是通过电子游戏的模拟画面前期训练自动驾驶汽车,迁移学习已深度学习在工业界之所以成功的最坚实支柱,而学术界对迁移学习的研究则关注以下几点,一是通过半监督学习减少对标注数据的依赖,应对标注数据的不对称性,二是用迁移学习来提高模型的稳定性和可泛化性,不至于因为一个像素的变化而改变分类结果,三是使用迁移学习来做到持续学习,让神经网络得以保留在旧任务中所学到的技能。

 

 


http://chatgpt.dhexx.cn/article/3IlIiwVV.shtml

相关文章

十大机器学习算法

初学者应该知道的十大机器学习算法 来源:https://builtin.com/data-science/tour-top-10-algorithms-machine-learning-newbies 机器学习算法被描述为学习一个目标函数 (f),它最好地将输入变量 (X) 映射到输出变量 (Y):Y f(X) 最常见的机器…

贝叶斯学习

目录 贝叶斯学习 ​贝叶斯学习的特点: 朴素贝叶斯方法: 贝叶斯学习 贝叶斯学习就是基于贝叶斯理论(Bayesian Theory)的机器学习方法。 贝叶斯法则 也称为贝叶斯理论(Bayesian Theorem,或Bayesian Rule&a…

深度强化学习

前言 深度强化学习(DRL)已成为人工智能研究的热点之一。它已被广泛应用于端到端控制、机器人控制、推荐系统、自然语言对话系统等各个领域。本文对深度RL算法及其应用进行了分类,并将现有的DRL算法分为基于模型的方法、无模型的方法和先进RL方法进行介绍。 一、无模…

有效学习的6个方法学习方法

今天看了得到 有效学习的6个方法(上) 的一些感想。 1.价值感 这个就是做这件事情的动力,没有动力的话,是不愿意去做这件事的,效果当然也不会很好。做一件事把这做这件事的意义定的越大,越有动力&#xff0…

如何成为有效学习的高手(许岑)——思维导图

总结自许岑精品课《如何成为有效学习的高手》,图片看不清的可以看下面。 最后有彩蛋! 最后有彩蛋! 最后有彩蛋! 定义 高效学习的定义:找到最适合自己的学习手法,在相对短的时间内集中注意力,以…

如何有效的学习

大一时的我,完全就是个彻头彻尾的学渣,挂科、成绩被同学吊打,每天在宿舍浑噩度日。后来靠这个方法,我能做到最长连续学习10个小时,持续了三个月,也不会觉得很累。 如果你跟之前的我一样,学5分钟…

聊一聊我们应该如何有效学习

我之前写过 关于前端学习路线的一些建议(内含自测题)和 聊一聊加班严重时要如何自我提升 两篇文章。文章内容涉及的是学习路线和时间利用,今天我们就聊聊如何做到有效学习。 这里分享一些关于有效学习的经验,希望能对你有些许帮助…

计算机组成原理-单位转换

字节、字、位、比特之间的关系: 1位1比特;1字2字节;1字节8位;1字16位。 在16位的系统中:1字 2字节(byte) 16(bit) 在32位的系统中:1字 4字节(byte)32&…

【计算机组成原理】computer data reputation数值数据表示

Overview: 1.数据表示的目的(略) 2.数值数据的表示 3.非数值数据的表示 4.数值信息的校验(重点) 1.数据表示的目的: 组织数据,方便计算机硬件使用(汇编语言也具有数据类型&…

计算机组成原理:3.7虚拟存储器

3.7虚拟存储器 思维导图 虚拟存储器的基本概念 虚拟存储器将主存或辅存的地址空间统一编址,形成一个庞大的地址空间,用户可以在里面进行自由编址,而不需要在乎实际的主存容量和程序存放的位置 虚拟地址比实际地址大 过程 CPU使用虚地址时…

计算机原理概述

目录 计算机的发展史(稍作了解即可) 从硬件方面来了解计算机 程序的存储 广义数据在内存的存储问题 CPU的基本工作原理 让我们来从以下两个方面来了解计算机: 1.从硬件角度学习计算机的基本原理————CPU的基本工作原理 2.从操作系统…

《计算机组原理》存储器(一)

4.1概述4.1.1存储器的分类4.1.2 存储器的层次结构 4.2主存储器4.2.2半导体存储芯片简介4.2.3 随机存取存储器4.2.4只读存储器4.2.5存储器与CPU的连接4.2.6 存储器的校验4.2.7提高访存速度的措施 4.1概述 4.1.1存储器的分类 4.1.2 存储器的层次结构 一般来说,高速越…

计算机原理(硬件角度—CPU)

​ 一、概述 1、关于计算机原理: (1)从硬件角度学习计算机的基本工作原理——CPU的基本工作原理。 (2)从操作系统软件角度,学习我们的程序是如何工作起来的——进程管理。 2、程序指令数据 程序算法&…

计算机组成原理——数据的表示与运用

数值与编码 进位记数制及其相互转换十进制、二进制、八进制、十六进制真值、机器数(原码、反码、补码)字符与字符串的编码(小端和大端方式存储 )数据校验奇偶校验、CRC冗余校验、海明校验 定点数的表示和运算 无符号数的表示&…

【计算机组成原理】04-计算机的计算单位

一、容量单位 字节:1Byte8bits ◆ 理论上只认识0/1两种状态 ◆ 在物理层面,高低电平记录信息 ◆ 0/1能够表示的内容太少了,需要更大的容量表示方法 1G内存,可以存储多少字节的数据?可以存储多少比特数据?…

计算机组成原理_虚拟存储器

计算机组成原理总目录 虚拟存储器 虚拟存储器主要解决的是用于解决存储数据的容量问题 例如在电脑的辅存磁盘中存放了几百GB甚至几TB的数据,包括几十个上百个程序 但我们在实际运行时,并不需要使用到所有的数据,而只需要用到其中一个或者两个…

计算机原理-数据

数据 二进制 十进制(人类use) 十六进制 (2,4,16 是权) 1011.0112^30*2^22^12^00*2^-11*2^-21*2^-3802100.250.125 27.375 七进制转十进制(权不一样) 604.01 6*7^20*7^14*7^00*7…

(一)计算机组成原理之计算机系统导论(冯诺依曼计算机以及cpu,机器字长,MAR,存储单元,MDR,存储字长等)

❤️ 知识点 1.冯诺依曼计算机的构成:运算器,控制器,存储器,输入设备和输出设备 2.计算机的硬件组成:.原始的冯诺依曼在结构上是以运算器为中心,而发展到现在,以转向以存储器为中心。&#xff…

计算机组成原理:如何衡量计算机的性能

在计算机组成原理乃至体系结构中,“性能”都是最重要的一个主题。学习和研究计算机组成原理,就是在理解计算机是怎么运作的,以及为什么要这么运作。“为什么”所要究竟的事情,很多时候就是提升“性能” 什么是性能?时…

计算机组成原理 --- 计算机性能指标

一.存储器的性能指标 1.MAR是地址寄存器,MDR是数据寄存器 2.MAR的位数能够体现最多存多少个地址,而每个地址就代表一个存储单元,所以MAR的位数能表示存储器中有多少个存储单元 3.MDR是数据寄存器,它的容纳极限 每个存储单元的…