=============================================

这个论文保持着上世纪人工智能论文的特点,与其说是计算机类论文更不如说是偏生物科学方面的论文,这也可能是因为当时的人工智能的研究更加偏向于生物启发,

有些像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》的更多相关文章

  1. (转) 深度强化学习综述:从AlphaGo背后的力量到学习资源分享(附论文)

    本文转自:http://mp.weixin.qq.com/s/aAHbybdbs_GtY8OyU6h5WA 专题 | 深度强化学习综述:从AlphaGo背后的力量到学习资源分享(附论文) 原创 201 ...

  2. 深度学习 目标检测算法 SSD 论文简介

    深度学习 目标检测算法 SSD 论文简介 一.论文简介: ECCV-2016 Paper:https://arxiv.org/pdf/1512.02325v5.pdf  Slides:http://w ...

  3. 深度学习数据特征提取:ICCV2019论文解析

    深度学习数据特征提取:ICCV2019论文解析 Goal-Driven Sequential Data Abstraction 论文链接: http://openaccess.thecvf.com/c ...

  4. 深度信任网络的快速学习算法(Hinton的论文)

    也没啥原创,就是在学习深度学习的过程中丰富一下我的博客,嘿嘿. 不喜勿喷! Hinton是深度学习方面的大牛,跟着大牛走一般不会错吧-- 来源:A fast learning algorithm fo ...

  5. Deep Learning(深度学习)学习笔记整理系列之(一)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0  2013-0 ...

  6. Deep Learning(深度学习)学习笔记整理系列之(一)(转)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0  2013-0 ...

  7. 从零开始一起学习SLAM | 学习SLAM到底需要学什么?

    SLAM涉及的知识面很广,我简单总结了 “SLAM知识树” 如下所示: (公众号菜单栏回复 “树” 可获得清晰版) 可以看到涉及的知识面还是比较广的.这里放出一张SLAM圈子里喜闻乐见的表达悲喜交加心 ...

  8. 【转】Deep Learning(深度学习)学习笔记整理系列之(一)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0  2013-0 ...

  9. 深度学习-强化学习(RL)概述笔记

    强化学习(Reinforcement Learning)简介 强化学习是机器学习中的一个领域,强调如何基于环境而行动,以取得最大化的预期利益.其灵感来源于心理学中的行为主义理论,即有机体如何在环境给予 ...

  10. IT人的自我导向型学习:学习的4个层次

    谈起软件开发一定会想到用什么技术.采用什么框架,然而在盛行的敏捷之下,人的问题逐渐凸显出来.不少企业请人来培训敏捷开发技术,却发现并不能真正运用起来,其中一个主要原因就是大家还没有很好的学习能力.没有 ...

随机推荐

  1. 使用优启通 制作 WIN PE U盘时报BOOT.WIM 有毒的解决方法

    使用优启通 制作 WIN PE U盘时报BOOT.WIM 有毒的解决方法 1.打开"Windows Defender". 2.点击"病毒和威胁防护". 3.点击 ...

  2. Lecture4

    Smiling & Weeping ---- 行于山水之间 权且停留 无所谓风起叶落,浮光敛形 此刻   身即自由 第四章 Git 工具 Author: Martin 本章主要介绍 Git 常 ...

  3. spark高级分析2的数据集地址

    第二章 数据分析 wget https://archive.ics.uci.edu/ml/machine-learning-databases/00210/donation.zip 第三章   音乐推 ...

  4. 使用bootchart 对 高通Android 进行性能分析

    使用bootchart 对 高通Android 进行性能分析 Android版本:7.0 适用平台:高通和MTK 参考: https://blog.csdn.net/qq_19923217/artic ...

  5. FFmpeg开发笔记(三十六)Linux环境安装SRS实现视频直播推流

    ​<FFmpeg开发实战:从零基础到短视频上线>一书在第10章介绍了轻量级流媒体服务器MediaMTX,通过该工具可以测试RTSP/RTMP等流媒体协议的推拉流.不过MediaMTX的功能 ...

  6. 虚拟 DOM 实现原理?

    虚拟 DOM 的实现原理主要包括以下 3 部分: 用 JavaScript 对象模拟真实 DOM 树,对真实 DOM 进行抽象: diff 算法 - 比较两棵虚拟 DOM 树的差异: pach 算法 ...

  7. Java BigDecimal 算术运算

    算术运算 BigDecimal bignum1 = new BigDecimal("10"); BigDecimal bignum2 = new BigDecimal(" ...

  8. 使用requests库实现http请求

    1.发送请求 import requests url = 'http://www.tipdm.com/tipdm/index.html' rqq = requests.get(url) In [ ]: ...

  9. 实用!一键生成数据库文档的神器,支持MySQL/SqlServer/Oracle多种数据库

    Screw(螺丝钉)是一款简洁好用的数据库表结构文档生成工具,它的特点是:简洁.轻量.设计良好.多数据库支持.多种格式文档.灵活扩展以及支持自定义模板,对于有经常要进行数据库设计.评审.文档整理等需求 ...

  10. 微软账号密码修改后提示密码错误的解决方法(远程桌面&smb共享访问等)

    众所周知,自从微软将Microsoft账户与Windows账号强制绑定后,使用起来便一直有诸多困难,在Microsoft Support和搜索引擎长期搜索解决方案未果,今天偶然在一个佬的博客翻到了这个 ...