元学习:元学习的始祖论文——《On the Optimization of a Synaptic Learning Rule》
=============================================
这个论文保持着上世纪人工智能论文的特点,与其说是计算机类论文更不如说是偏生物科学方面的论文,这也可能是因为当时的人工智能的研究更加偏向于生物启发,
有些像Biology-Inspired Engineering。
这个论文是最古老的使用并结合计算机方法来进行研究的“元学习”算法之一的论文,可以说是元学习论文的始祖。
关于“元学习”一直没有太确定的定义,不过一般认为经过对多个学习任务的学习来提高对新任务的学习能力的方式叫做元学习;这其中也就包括了通过对其他任务的学习来提高对新任务的学习速度,也就是说通过对多个学习任务的学习提高算法对新任务的学习速度,这一点比较典型的场景就是小样本学习,这里只需要较少的新任务的样本进行1次或3、5次的学习就可以得到一个不错的性能表现,这里的主要特点就是对新任务的学习速度快;还有一种定义就是通过对多个任务的学习然后提高对新任务的学习能力的泛化性,这种的定义或者说是框架或者说是表现形式更注重对新任务的最终学习性能的表现。可以说上面两种对元学习的定义是极为相似的,区别就是对新任务的性能提升是体现上快速学习上还是最终的新任务的学习泛化性上,本blog介绍的这篇论文就是后者,对新任务的性能提升体现在新任务的最终学习泛化性上。
需要说明的是,由于该论文时间久远,很多论文细节已经不可考证,并且其中很多技术都已经被淘汰/不再被常用,不过这些并不重要,重要的是这篇论文所体现的元学习的思想。
=============================================
摘要:
内容:
当时的神经网络训练很多都是采用Hebb规则进行训练,这也是MLP神经网络最原始的训练方法,当时的学术研究中类似的训练规则还有很多,其中也有当今最为常用的backward propogation,这个知识背景是preliminary。
本文的一个想法就是现有的神经网络训练都是使用单一的训练规则,如Hebb规则,作者认为不同的学习任务应该有不同的训练规则,这种不同学习任务所具备的对应的学习规则应该可以用参数进行表示,这里使用θ参数,而该学习任务的神经网络使用参数x来进行表示,也就是说对新任务的训练不仅需要对其神经网络参数进行训练并且还要对其训练规则的参数进行训练。
biologically plausible synaptic mechanisms
=============================================
=============================================
元学习中每个学习的样本instance并不是一对输入和标签,而是一个学习任务task;直白的说,元学习就是要学习一套参数,这套参数通过对多个任务的学习过程中获得,然后把这套得到的参数放到新的任务上进行重新学习,然后使新的任务的学习性能得到提升。
元学习最直观的形式就是用一个比较大的task数来进行学习,比如用1000000个task,每次从中取32个task来进行minibatch训练,而模型结构采用标准的单任务情况下的形式即可,这样只要训练的task足够多,比如甚至远大于这里的1000000个tasks,那么这样训练出来的模型自然可以在新的任务上获得很好的性能表现,这也是该论文中所提及的,但是现实问题是在实际情况中我们往往没有这样足够多的相似任务来进行训练,在该篇论文的最后实验过程中往往也都只是使用了5个task,不过要注意,随着发展在现在的deep learning中我们可以轻松构建成千上万个相似任务。
本篇论文中算法的实际流程是按照训练轮circle来进行的,这里也可以看做是一次迭代;这里假设使用5个任务tasks来进行元学习的训练,这里每次迭代开始时都采用5个相同结构的神经网络,每个task对应一个神经网络,在每次迭代开始时对这5个神经网络的参数进行随机初始化,然后每个task都单独进行训练,这里的训练规则使用的是多个Hebb类似的规则并使用θ参数进行线性组合后的更新规则,这样每个task单独进行一点次数的训练后其参数时关于θ参数的形式,这时候我们可以再对θ参数进行训练,同理,其他task也是如此的进行单独学习,先对自身神经网络参数进行训练,得到关于θ参数的神经网络参数,然后再对θ参数进行训练;最后在更新θ参数时使用这5个神经网络的θ参数更新均值。这里需要注意,在每次迭代的开始时都需要对5个task所对应的神经网络参数进行随机初始化,可以说在该文所提元学习的训练过程中5个task对应的5个神经网络的参数并不是所要计算的最终形式,这些神经网络参数只是临时使用的间接值,其目的就是为了训练更新规则中θ参数的。
通过该文所提方法训练出的θ参数可以很好的应用在新task上,在新task上这些θ参数可以作为初始值,采用元学习训练过程中的形式进行微调,即每次迭代时先使用θ参数的更新规则来更新新task的神经网络参数,然后根据更新后的关于θ参数的神经网络参数来对θ参数进行训练,采用该种方式进行对新task的训练时是不在首次迭代后对新task的神经网络参数进行初始化的。
该篇论文所提方法的一个假设就是对于不同的task应该有特定的更新规则,这样才对性能有利,从而通过对多个task的训练获得到一个θ参数的更新规则,将这个元学习训练得到的θ参数更新规则放到新的task上后可以使新task得到更好的性能表现:训练速度更快、最终泛化性能表现更优。
可以说,这篇始祖元学习论文所构建的scheme和现在的深度元学习也是相似的,并且该论文所体现的思想更贴近“元思想”,即通过对多个任务的学习获得到知识,从而对新任务有更好的性能表现。
=============================================
元学习:元学习的始祖论文——《On the Optimization of a Synaptic Learning Rule》的更多相关文章
- (转) 深度强化学习综述:从AlphaGo背后的力量到学习资源分享(附论文)
本文转自:http://mp.weixin.qq.com/s/aAHbybdbs_GtY8OyU6h5WA 专题 | 深度强化学习综述:从AlphaGo背后的力量到学习资源分享(附论文) 原创 201 ...
- 深度学习 目标检测算法 SSD 论文简介
深度学习 目标检测算法 SSD 论文简介 一.论文简介: ECCV-2016 Paper:https://arxiv.org/pdf/1512.02325v5.pdf Slides:http://w ...
- 深度学习数据特征提取:ICCV2019论文解析
深度学习数据特征提取:ICCV2019论文解析 Goal-Driven Sequential Data Abstraction 论文链接: http://openaccess.thecvf.com/c ...
- 深度信任网络的快速学习算法(Hinton的论文)
也没啥原创,就是在学习深度学习的过程中丰富一下我的博客,嘿嘿. 不喜勿喷! Hinton是深度学习方面的大牛,跟着大牛走一般不会错吧-- 来源:A fast learning algorithm fo ...
- Deep Learning(深度学习)学习笔记整理系列之(一)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-0 ...
- Deep Learning(深度学习)学习笔记整理系列之(一)(转)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-0 ...
- 从零开始一起学习SLAM | 学习SLAM到底需要学什么?
SLAM涉及的知识面很广,我简单总结了 “SLAM知识树” 如下所示: (公众号菜单栏回复 “树” 可获得清晰版) 可以看到涉及的知识面还是比较广的.这里放出一张SLAM圈子里喜闻乐见的表达悲喜交加心 ...
- 【转】Deep Learning(深度学习)学习笔记整理系列之(一)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-0 ...
- 深度学习-强化学习(RL)概述笔记
强化学习(Reinforcement Learning)简介 强化学习是机器学习中的一个领域,强调如何基于环境而行动,以取得最大化的预期利益.其灵感来源于心理学中的行为主义理论,即有机体如何在环境给予 ...
- IT人的自我导向型学习:学习的4个层次
谈起软件开发一定会想到用什么技术.采用什么框架,然而在盛行的敏捷之下,人的问题逐渐凸显出来.不少企业请人来培训敏捷开发技术,却发现并不能真正运用起来,其中一个主要原因就是大家还没有很好的学习能力.没有 ...
随机推荐
- Steam Epic 启动程序默认地址
Steam Epic 启动程(启动器)序默认地址 "D:\Games\EpicAPP\Epic Games\Launcher\Portal\Binaries\Win32\EpicGamesL ...
- 加入域 " " 时出现了以下错误
加入域 " " 时出现了以下错误: 因为文件共享不安全,所以你不能连接到文件共享.此共享需要过时的 SMB1 协议,而此协议是不安全的,可能会使你的系统遭受攻击. 你的系统需要 S ...
- Scrapy框架(七)--中间件及Selenium应用
中间件 下载中间件(Downloader Middlewares) 位于scrapy引擎和下载器之间的一层组件. 作用:批量拦截到整个工程中所有的请求和响应 - 拦截请求: - UA伪装:proces ...
- Vue学习:7.计算属性2
上一节了解的是计算属性的默认简写,只能读取,不能修改. 什么意思呢?很简单,我们知道计算属性是依赖数据动态计算一个值,那我可不可以直接this.计算属性 = xxx 来修改计算属性的结果呢?这其实是不 ...
- 判断是否有数据的sql优化
根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECT count(*)呢? 多次REVIEW代码时,发现如现现象: 业务代码中,需要根据一个或多个条 ...
- IDEA环境编译Spring源码
一.下载源码 1.官网下载 官网地址 如下图 2.github git下载 github地址 如下图 3.gitee git下载(国内推荐使用) gitee地址 如图 查看对应的gradle版本 在下 ...
- python基础-字符串str " "
字符串的定义和操作 字符串的特性: 元素数量 支持多个 元素类型 仅字符 下标索引 支持 重复元素 支持 可修改性 不支持 数据有序 是 使用场景 一串字符的记录场景 字符串的相关操作: my_str ...
- B 站和小红书又又又崩了,罪魁祸首竟然又是他。。。
大家好,我是凌晨. 今天上午10点左右,我打开B站发现无法刷新视频列表和评论区,收藏夹和弹幕也均不可用. 原以为是手机网络问题,换网络重启手机都还是不行,第一时间打开微博,果然,B站崩了的新闻荣登榜首 ...
- 【资料分享】全志科技T507工业核心板硬件说明书(上)
目 录 前言 1硬件资源 1.1CPU 1.2ROM 1.3RAM 1.4时钟系统 1.5电源 1.6LED 1.7外设资源 2引脚说明 2.1引脚排列 2.2引脚定义 2.3内部引脚使用说明 ...
- java中的基准测试框架JMH
JHM是openJDK开发的一个benchmark框架.它是一个Maven依赖,所以创建一个Maven项目,引入下面两个依赖: <dependency> <groupId>or ...