[collect]神经网络是什么?


=Start=

缘由:

想简单学习了解一些机器学习、深度学习的内容,一方面是扩充自己的知识面(不至于被时代抛弃太远),另一方面也是想看看有没有在自己实际工作中进行相关应用的场景和可能。

这里想记录的是「神经网络」的一些概念和由来(主要是通过「神经网络浅讲:从神经元到深度学习」一文进行的学习,其中的图片也是从该文中选取而来,特别感谢原作者的无私分享,让我能对这些概念有更好的理解),以更好地帮助自己理解深度学习等相关技术。

正文:

参考解答:

神经网络是一种模拟人脑的神经网络以期能够实现类人工智能的机器学习技术。

1、神经元

对于神经元的研究由来已久,1904年生物学家就已经知晓了神经元的组成结构。

一个神经元通常具有多个树突,主要用来接受传入信息;而轴突只有一条,轴突尾端有许多轴突末梢可以给其他多个神经元传递信息。轴突末梢跟其他神经元的树突产生连接,从而传递信号。这个连接的位置在生物学上叫做“突触”。

人脑中的神经元形状可以用下图做简单的说明:

神经元模型是一个包含输入,输出与计算功能的模型。输入可以类比为神经元的树突,而输出可以类比为神经元的轴突,计算则可以类比为细胞核。

2、单层神经网络(感知器,Perceptron)

在“感知器”中,有两个层次。分别是输入层和输出层。输入层里的“输入单元”只负责传输数据,不做计算。输出层里的“输出单元”则需要对前面一层的输入进行计算。

与神经元模型不同,感知器中的权值是通过训练得到的。因此,根据以前的知识我们知道,感知器类似一个逻辑回归模型,可以做(简单的)线性分类任务。

3、两层神经网络(多层感知器)

两层神经网络除了包含一个输入层,一个输出层以外,还增加了一个中间层。此时,中间层和输出层都是计算层。

需要说明的是,在两层神经网络中,我们不再使用sgn函数作为函数g,而是使用平滑函数sigmoid作为函数g。我们把函数g也称作激活函数(active function)。

事实上,神经网络的本质就是通过参数与激活函数来拟合特征与目标之间的真实函数关系。

与单层神经网络不同。理论证明,两层神经网络可以无限逼近任意连续函数。两层神经网络通过两层的线性模型模拟了数据内真实的非线性函数。因此,多层的神经网络的本质就是复杂函数拟合。

4、多层神经网络(深度学习)

在两层神经网络的输出层后面,继续添加层次。原来的输出层变成中间层,新加的层次成为新的输出层。所以可以得到下图:

与两层层神经网络不同。多层神经网络中的层数增加了很多。

增加更多的层次有什么好处?更深入的表示特征,以及更强的函数模拟能力。

更深入的表示特征可以这样理解,随着网络的层数增加,每一层对于前一层次的抽象表示更深入。在神经网络中,每一层神经元学习到的是前一层神经元值的更抽象的表示。例如第一个隐藏层学习到的是“边缘”的特征,第二个隐藏层学习到的是由“边缘”组成的“形状”的特征,第三个隐藏层学习到的是由“形状”组成的“图案”的特征,最后的隐藏层学习到的是由“图案”组成的“目标”的特征。通过抽取更抽象的特征来对事物进行区分,从而获得更好的区分与分类能力。

在单层神经网络时,我们使用的激活函数是sgn函数。
到了两层神经网络时,我们使用的最多的是sigmoid函数。
而到了多层神经网络时,通过一系列的研究发现,ReLU函数在训练多层神经网络时,更容易收敛,并且预测性能更好。因此,目前在深度学习中,最流行的非线性函数是ReLU函数。ReLU函数不是传统的非线性函数,而是分段线性函数。其表达式非常简单,就是y=max(x,0)。简而言之,在x大于0,输出就是输入,而在x小于0时,输出就保持为0。这种函数的设计启发来自于生物神经元对于激励的线性响应,以及当低于某个阈值后就不再响应的模拟。

神经网络表现能力的变化

从单层神经网络,到两层神经网络,再到多层神经网络,随着网络层数的增加,以及激活函数的调整,神经网络所能拟合的决策分界平面的能力越来越强。

参考链接:

=END=


《“[collect]神经网络是什么?”》 有 14 条评论

  1. 今天的人工智能,可以像人类一样独立思考了吗?
    http://www.kepuchina.cn/tech/ligent/201903/t20190329_1030826.shtml

    【求是】谭铁牛:人工智能的历史、现状和未来
    http://www.ia.cas.cn/xwzx/mtsm/201903/t20190311_5252250.html
    http://www.cas.cn/zjs/201902/t20190218_4679625.shtml

    谭铁牛院士:人工智能新动态 #[图1 人工智能发展历程]
    http://www.eepw.com.cn/article/201801/374092.htm

    【院士报告】谭铁牛——人工智能:天使还是魔鬼?
    https://www.sohu.com/a/235446077_453160

  2. 写给机器学习从业者的 12 条宝贵建议
    https://www.infoq.cn/article/NLTXhVkMTSlsGK_dkXgh/
    `
    1. 学习 = 表征 + 评估 + 优化
    2. 泛化很重要
    3. 仅有数据是不够的
    4. 过拟合的多种面孔
    5. 直觉在高维空间中失效
    6. 特征工程是关键
    7. 更多的数据击败更聪明的算法
    8. 学习许多模型,而不只是一个
    9. 理论并不能保证什么
    10. 简单并不意味着准确
    11. 可表征并不意味着可学习
    12. 相关性并不意味着因果关系
    `
    https://towardsml.com/2019/04/09/12-key-lessons-from-ml-researchers-and-practitioners/

  3. 十分钟理解ChatGPT的技术逻辑及演进(前世、今生)
    https://www.freebuf.com/articles/others-articles/352202.html
    `
    0、 前言
    1、什么是GPT

    2、GPT之技术演进时间线

    3、GPT之T-Transformer(2017)
    3.1、重点在好,还是重点在人?
    3.2、对不起,你是个好人
    3.3、回归正题,Transfomer是什么
    3.4、论文中对attention和Transfomer的价值描述
    3.5、Transformer机制的深远意义

    4、GPT(Generative Pre-Training)-2018年6月
    4.1、GPT模型的核心主张1-预训练(pre-training)
    4.2、GPT模型的核心主张2-生成式(Generative)
    4.3、GPT相比原版Transfomer的模型改进
    4.4、GPT模型的训练规模

    5、GPT-2(2019年2月)
    5.1、GPT-2模型相比GPT-1的核心变化
    5.2、为什么这么调整?试图解决zero-shot问题
    5.3、multitask多任务如何理解?
    5.4、GPT-2的数据和训练规模

    6、GPT-3(2020年5月)
    6.1、GPT-3的突破式效果进展
    6.2、GPT-3相比GPT-2的核心变化
    6.3、GPT-3的训练规模

    7、Instruction GPT(2022年2月)
    7.1、Instruction GPT相比GPT-3的核心变化
    7.2、Insctruction GPT的核心训练步骤
    7.3、Instruction GPT的训练规模

    8、ChatGPT(2022年11月)
    8.1、ChatGPT和Instruction GPT
    8.2、【重要,建议浏览下面推荐的视频】从人的直观理解上,补充解释一下ChatGPT的核心原理

    9、小结
    10、未来将来(GPT-4 or ?)

    部分参考资料
    ==

    GPT的全称,是Generative Pre-Trained Transformer(生成式预训练Transfomer模型)。
    `
    GPT从开始至今,其发展历程如下:

    2017年6月,Google发布论文《Attention is all you need》,首次提出Transformer模型,成为GPT发展的基础。 论文地址: https://arxiv.org/abs/1706.03762

    2018年6月,OpenAI 发布论文《Improving Language Understanding by Generative Pre-Training》(通过生成式预训练提升语言理解能力),首次提出GPT模型(Generative Pre-Training)。论文地址: https://paperswithcode.com/method/gpt

    2019年2月,OpenAI 发布论文《Language Models are Unsupervised Multitask Learners》(语言模型应该是一个无监督多任务学习者),提出GPT-2模型。论文地址: https://paperswithcode.com/method/gpt-2

    2020年5月,OpenAI 发布论文《Language Models are Few-Shot Learners》(语言模型应该是一个少量样本(few-shot)学习者,提出GPT-3模型。论文地址: https://paperswithcode.com/method/gpt-3

    2022年2月底,OpenAI 发布论文《Training language models to follow instructions with human feedback》(使用人类反馈指令流来训练语言模型),公布Instruction GPT模型。论文地址: https://arxiv.org/abs/2203.02155

    2022年11月30日,OpenAI推出ChatGPT模型,并提供试用,全网火爆。
    ==

    3.5、Transformer机制的深远意义
    Transformer问世后,迅速取代循环神经网络RNN的系列变种,成为主流的模型架构基础。

    如果说 可以并行、速度更快都是技术特征,让行外人士、普罗大众还不够直观,那么从 当前ChatGPT的震憾效果就可以窥知一二。

    **Transformer从根本上解决了两个关键障碍,其推出是变革性的、革命性的**。

    3.5.1、摆脱了人工标注数据集(大幅降低人工数量 )
    3.5.2、化顺序计算为并行计算,巨幅降低训练时间

  4. `
    下面是GPT的模型说明,GPT训练了一个12层仅decoder的解码器(decoder-only,没有encoder),从而使得模型更为简单。

    注1:google论文《Attention is all you need》原版Transformer中,包含Encoder和Decoder两部分,前者(Encoder)对应的是 翻译,后者(Decoder)对应的是 生成。

    注2:google以Encoder为核心,构建了一个BERT(Bidirectional Encoder Representations from Transformers,双向编码生成Transformer)模型。里面的双向(Bidirectional),是指BERT是同时使用上文和下文预测单词,因此 BERT 更擅长处理自然语言理解任务 (NLU)。

    注3:本小节要点,GPT基于Transformer,但是相比Transformer又简化了模型,去掉了Encoder,只保留了Decoder。同时,相比BERT的上下文预测(双向),GPT主张仅使用单词的上文预测单词(单向),从而使模型更简单、计算更快,更适合于极致的生成,并因此GPT更擅长处理自然语言生成任务 (NLG),也就是我们在AI-001-火爆全网的聊天机器人ChatGPT能做什么发现的,ChatGPT很擅长写”作文”、编瞎话。 理解本段后,本小节后面的可不看。

    注4:从模拟人类来看,GPT的机制得更像真实人类。因为人类也是根据上文(前面说的)来推测下文(即说后面的),所谓说出去的话就像泼出去的水,人类也是没办法根据后面说的话,来调整前面说的话的,即使说错了,恶语伤人心,也只能基说出去的话(上文)进行补救、解释。

    =

    GPT是单向生成,即根据上文生成下文。

    比如说有一句话:

    向GPT模型给出输入 你好,下面一个字是接你好吗?你好帅?你好高?你好美?等等,GPT会计算出一个概率,给出最高的那个概率作为回答。

    依此类推,如果给出一个指令(或称为Prompt),ChatGPT也会依据上文(prompt)进行推算下文(回答),同时选择一个最大概率的上文进行回答。

    ==

    BERT 是同时使用上文和下文预测单词,因此 BERT 更擅长处理自然语言理解任务 (NLU)。
    相比 BERT 的上下文预测(双向), GPT 主张仅使用单词的上文预测单词(单向),从而使模型更简单、计算更快,更适合于极致的生成,并因此GPT更擅长处理自然语言生成任务 (NLG),也就是ChatGPT很擅长写”作文”、编瞎话。
    `

    我让 ChatGPT 回答了知乎收藏最高的 Top 20 个问题
    https://mp.weixin.qq.com/s/49L0EThgu6PdxTlKP0VPJw
    `
    我向它请教了知乎上的收藏数 / 关注数最多的 Top 20问题,来自 https://zhuanlan.zhihu.com/p/20950442 。最终 40 个问题里,去重 + 成功回答的有 18 个。

    人生泛用型问题比如「有什么重要知识技能」类基本都能回答;但如果让推荐电影/音乐/网购类,就扑街了,因为它暂时「并没有能力浏览网页或访问数据库」的能力。

    >>> 标准开头:well, it depends

    以下摘录 10 个问答:

    一、哪些知识技能一定要掌握?
    知识技能的重要性因人而异。对于不同的人,其掌握的知识技能也可能不尽相同。但是,一般来说,掌握以下几种知识技能可能会更有益:
    1. 语言技能:掌握一种或多种语言,可以帮助您更好地了解不同文化,并与不同的人沟通。
    2. 技术技能:掌握一种或多种技术,可以帮助您在工作中更有竞争力。
    3. 商业技能:掌握商业技能,可以帮助您理解商业世界的运作方式,并在商业活动中取得成功。
    4. 思维技能:掌握思维技能,可以帮助您在复杂的情况下进行分析和解决问题。
    5. 社交技能:掌握社交技能,可以帮助您与他人建立良好的关系,并在社交活动中取得成功。

    二、如何长时间高效学习?
    学习需要许多因素的配合,包括专注力、计划性和良好的学习习惯等。要长时间高效学习,建议您遵循以下方法:
    1. 设定目标:明确学习的目标,并制定有计划的学习计划。
    2. 找到适合自己的学习方式:根据自己的特点,找到适合自己的学习方式,例如听、看、写、做等方式。
    3. 建立良好的学习环境:保持工作环境整洁,保证有足够的时间和精力进行学习。
    4. 保持专注力:避免分心,集中精力进行学习。
    5. 多与他人交流。

    三、哪些东西买了之后,会让人因生活质量和幸福感提升而感觉相见恨晚?
    这个问题的答案因人而异。对于某些人来说,买了一台洗衣机或一部手机会让他们感觉生活质量和幸福感都有提升,因为这些东西能够帮助他们更方便、更高效地工作或社交。对于其他人来说,买了一只宠物或一件珍贵的纪念品可能会让他们感觉相见恨晚,因为这些东西能够帮助他们感受到快乐和温暖。总之,对于每个人来说,什么样的东西能够提升生活质量和幸福感都是不同的。
    四、体质极差的人如何从头开始恢复身体素质?
    如果您的体质极差,可以尝试以下方法来恢复身体素质:
    1. 合理饮食:注意饮食平衡,保证身体摄入足够的营养元素。
    2. 适量运动:根据自己的身体状况,选择适合自己的运动方式,并保持适量的运动。
    3. 养成良好生活习惯:养成良好的生活习惯,如早睡早起、适量饮水、保持卫生等。
    4. 平衡工作与生活:在工作和生活中保持平衡,避免工作过度、熬夜过度等不健康的生活方式。
    5. 及时就医:如果出现健康问题,及时就医,接受专业医生的治疗。

    五、最适合在办公室吃的零食是什么?
    最适合在办公室吃的零食可能包括:
    1. 果蔬干:如葡萄干、芒果干、苹果干、草莓干等,既能满足胃口,又能提供身体所需的营养。
    2. 坚果类零食:如杏仁、核桃、碧根果、开心果等,既健康又美味,有助于提高工作效率。
    3. 健康谷物:如麦片、燕麦片、玄米饭、谷物棒等,可以满足胃口,也可以提供身体所需的营养。
    4. 低糖巧克力:如苦巧克力、低糖巧克力、无糖巧克力等,既可以满足甜食欲,又不会增加身体负担。
    5. 果汁饮料:如柠檬水、橙汁、苹果汁等,可以提供身体所需的水分,也可以满足胃口。

    六、如何系统地学习股市?
    想要系统地学习股市,可以尝试以下方法:
    1. 掌握基础知识:了解股市的基本概念和运作方式,如股票、股票指数、市场类型、交易方式等。
    2. 研究市场趋势:了解市场的近期趋势,并尝试分析其原因,以便在投资时做出更明智的决策。
    3. 了解公司业绩:研究公司的业绩报告,了解其财务状况和发展前景,并尝试分析其对股价的影响。
    4. 制定投资策略:根据自己的风险承受能力和投资目标,制定合理的投资策略。
    5. 多练习模拟交易:多练习模拟交易,以便掌握交易技巧,并在投资前熟悉交易流程。

    七、如何系统地练字?
    想要系统地练字,可以尝试以下方法:
    1. 开始练习前,先了解字的结构和构造,以便更好地掌握笔顺。
    2. 根据字的不同部位,分段练习,比如先练习笔画的左半部分,再练习右半部分,最后整体练习。
    3. 使用练字纸或模板,按照标准的字形和笔画顺序,练习写字。
    4. 定期复习所学的字,不断巩固所学知识,并不断提高练字水平。
    5. 练习写字时,注意书写格式,使字看起来美观大方。

    八、有哪些很重要又被忽视的炒菜技巧?
    有一些很重要又被忽视的炒菜技巧可以帮助您做出更美味的菜肴。具体来说,这些技巧包括:
    1. 正确选择食材:选择新鲜和优质的食材,这样才能做出美味的菜肴。
    2. 正确洗涮食材:将食材洗干净,去除残留的杂质和农药残留。
    3. 正确切菜:将食材切成大小适中的块,这样才能烹饪出最佳的口感。
    4. 正确控制火候:将油烧至适宜的温度,这样才能烹饪出最佳的口感。
    5. 正确添加调料:根据菜肴的种类和个人喜好添加适量的调料,使菜肴更加美味。
    总之,炒菜技巧很重要,要做出美味的菜肴,需要选择优质的食材,并结合正确的技巧进行。

    九、怎么花最少的钱提升出租屋的格调?
    花最少的钱提升出租屋的格调的方法有很多,具体的方法因人而异。但是,一些通用的方法包括:
    1. 利用折扣和促销活动购买装饰品,这样可以帮助您省下不少钱。
    2. 购买多功能家具,这样可以节省空间并减少购买额外家具的需求。
    3. 寻找免费或低成本的装饰材料,例如利用空瓶子、纸张或其他材料制作装饰品。
    4. 尽量避免大动静,例如不要换掉原有的地板或墙壁,而是通过添加一些小装饰品来改善整体环境。
    5. 利用自然光线,让室内更明亮,这样就不必购买额外的照明产品。
    总之,花最少的钱提升出租屋的格调需要您的创造力和努力。

    十、Excel 有哪些可能需要熟练掌握而很多人不会的技能?
    Excel 有许多可能需要熟练掌握而很多人不会的技能。其中一些技能包括:
    1. 函数和公式:例如 IF 函数、SUM 函数和 VLOOKUP 函数,这些函数可以帮助您快速和有效地进行计算。
    2. 数据透视表:可以帮助您快速汇总、排序和分析大量的数据。
    3. 宏:可以帮助您自动化常用的任务,例如对数据进行排序和格式化。
    4. 图表:可以帮助您以图形的方式展示数据,从而更容易理解和比较数据。
    `

  5. AI论文精读-1-深度学习奠基作之一AlexNet
    https://mp.weixin.qq.com/s/5iQaHh3GMj23u7eJFD4yFQ
    `
    从这篇文章尝试AI论文精读。首先,从李沐老师[1]的精读AI论文系列开始。今天是第一篇,精读AlexNet[2]。

    关于如何读论文,李沐有一个三步法:第一步,快速阅读标题、概要、结论,判断论文是否感兴趣、是否适合继续阅读;第二步,扫读法,快速过一遍论文的主要图表、实验和结论;第三步,精读论文。微博的张俊林有另一种方法,“拉马努金思维法”,即看到文章标题,明确文章探讨的问题后,尝试自己重构出一套解法,并且逐步增加阅读文章信息量来完善自己的解法,最终对比自己的方法和原作者的方法之间的差异。不得不说,第二种方法真的很难。

    AlexNet[3]是2012年由图灵奖得主之一Hinton老爷子团队提出。他被认为是揭示了深度学习的实用价值从而开启了本轮AI革命。

    值得一提的是文章的二作Ilya Sutskever,是如今当红辣子鸡chatGPT背后母公司OpenAI的联合创始人。

    1、轶闻
    李沐说当年在google实习时,有一天论文的二作Ilya Sutskever来做报告。报告的题目是三个有用的dirty trick。意思是作者做了一个东西很有用,用了三个trick:图片增强、ReLu激活函数、Dropout,效果非常好,打赢了ImageNet。但是并没有很大的理论创新,没有从理论上解释为什么这些trick效果好(后面深度学习领域的论文的一贯风风格就是如此,想到了一个idea,可能有效,数据上验证一下,确实有效就可以发表了,至于理论上是否一定有效,没法验证。很多文章都是这种情况。)这种研究范式和传统机器学习强调数学证明、理论推导不一样,所以相当长的一段时间内,机器学习界对深度学习并不感冒。李沐在CMU念书时,他们学校的机器学习系,在AlexNet出现两三年后,还是只有少数几个人做深度学习相关的研究。

    在AlexNet之前,深度学习更多的是做无监督学习,因为有监督学习打不赢传统的机器学习(e.g. SVM等)。而AlexNet证明了在有监督任务上,只要数据集足够大,模型足够深,参数足够多,深度学习一样可以打赢传统机器学习。所以AlexNet之后,DL转向了深度学习(刷榜)。以至于后来Hinton、LeCun等大佬认为这是跑偏了。不过,最近几年,随着Bert、GPT等的火爆,半监督/无监督又开始兴起了。

    曾经有人在Quora上问过,AlexNet是怎么想出来的[4],有一个回答提到,Alex有一次在读到一篇关于如何在GPU上实现矩阵乘法时,突然想到可不可以在GPU上实现LeCun提出的CNN网络LeNet[5],于是有了这篇论文。由此可见,AlexNet可以看作是原始LeNet的高效工程实现,它主要是证明了CNN网络可以做得很深,很大。

    2、标题
    这篇文章的标题有两个关键词,ImageNet和DeepCNN。ImageNet不用介绍,是当时图像识别领域的金标准数据集。第二个词为什么要特意强调Deep呢?CNN早在1998年就被发明了,且证明有效。但那只是在小数据集,网络规模小,层数浅。而AlexNet的突出特点就是“超大、超深”。CNN网络层数变深时,很容易overfiting,很难训练收敛。AlexNet通过几个trick,解决了这个问题。没想到这些trick虽然数学上不完美,但是实践中仍有一定普适性。直接掀起了深度学习的军备竞赛。

    但是,因为它在数学上是不完美的,所以这种普适性也是有一定局限性的。但是人们已经等不及了,太渴望技术革命,尤其是智能革命了。所以“暴力出奇迹”的深度学习热潮开始了。

    3、摘要
    干了什么事?训练了一个large、deep的CNN网络,可以分类ImageNet 120万图片的1000个类别。效果非常好。获得ImageNet 第一名,效果远超第二名。
    有何特点?首次训练成功如此大规模的神经网络:网络超大,600万参数,65万神经单元。
    如何做到的?利用非饱和神经元(ReLu)、dropout等避免overfitting,利用GPU实现并行卷积运算加快网络训练。

    4、结论
    本文没有标准的论文结论章节,只有一个discussion。

    5、导言
    导言第一段通常讲一个故事。

    深度学习与overfitting:当年,深度学习的主流观点是设计一个很大的模型(参数超多),但是模型大了容易过拟合,为了防止过拟合,通常采用正则。后来,又有新的观点,认为正则没有那么重要,可以通过网络设计来防止过拟合,如今,仍然有多重观点。

    当年图像分类的主流做法还不是CNN。在这之前没有用CNN是因为大的、深度的CNN不好训练,容易过拟合。

    End-to-End端到端训练:在此之前的几十年,计算机视觉研究花了很多时间做各种特征,数据预处理。AlexNet改变了这一切。它成功实现了端到端训练。输入是原始的RGB像素值,不需要任何额外的特征工程,模型直接实现了特征抽取和分类功能。文章并没有强调这一点,但是后来被证明非常重要,它是深度学习的一个重要价值。(同样,在NLP领域也发生了类似的事情。NLP研究曾经花费很多时间处理各种子任务,后来又设计很多方法抽取文本特征,包括RNN、CNN、Transformer等;但是大规模语言模型的出现,让这一切变得不重要。)
    `

  6. AI论文精读-3-打开通用人工智能大门的Transformer
    https://mp.weixin.qq.com/s/u3JLjgwItAaT_Tt5pXCQ_Q
    `
    Transformer采用encoder-decoder架构。利用attention提取序列依赖关系,摒弃了传统的RNN和CNN。能够实现模型的并行化。Transformer取得了巨大的成功,取代了RNN/LSTM/CNN等作为文本特征抽取器的主流地位。并且在CV、视频等其它多模态领域都取得很大成功。奠定了大语言模型的基础。催生了后续BERT、GPT、ChatGPT等一系列应用。

    Transofrmer是大语言模型(LLM)的基础,没有Transofrmer就没有后来的BERT和GPT,也就没有现在火出圈、被认为代表着AI希望之光的ChatGPT。

    Transofrmer使得我们可以用一个通用的基础模型,统一编码文字、图片甚至视频等所有的人类信息。基于Transformer的ChatGPT的成功被很多人乐观地认为打开了通往通用人工智能之门。

    有研究者认为Transformer是继MLP、CNN、RNN之后的第四类基础模型[1]。

    我们有必要深入研究Transofrmer。

    1、标题、摘要与结论

    文章标题很有个性,一语双关,开启了“xxx is all you need”式命名的潮流。
    文章的标题说只需要attention机制,言外之意,别的机制都不需要了。这个被摒弃的机制就是当时在序列建模占主流的RNN,所以这个标题也有一点石破天惊的味道(“我不是针对谁,我是说在座的(RNN、CNN)都是垃圾~”)。
    文章的作者很有特色,有八人之多,且专门注释说明每个人的贡献一样多。文章的几个主要思想分别由不同的作者贡献:
    * 用self-attention机制替换传统的RNN建模序列依赖性。
    * 提出Scaled dot-product attention机制、多头注意力机制multi-head attention、非参数的位置编码parameter-free position representation
    * 开源代码 tensor-to-tensor[2]

    摘要表明,文章的提出是为了解决机器翻译任务。机器翻译是一个sequence-to-sequence的序列转录模型。主流的方案是使用RNN或者CNN进行序列建模,并且采用encoder-decoder架构。但是基于RNN的序列建模无法并行化。本文提出了一个只依赖于attention进行序列建模的方案,既能够建模序列的长距离依赖关系,也能够实现并行化,在机器翻译任务中取得了非常好的成绩。

    虽然本文是从机器翻译的角度写的,但是它后来火出圈了,在图像、视频等领域都有很好的应用。

    Transofrmer真正地成为了跨领域的语言建模和知识存储的核心基础模型。

    一直以来,有一派研究人员认为要实现强人工智能需要先建模并存储人类的知识,然后在此基础上实现推理能力。人类的知识包括实体、关系等各种概念,于是他们提出通过知识图谱的方式建模并存储互联网上巨量的信息与知识,以及知识之间的关系。知识图谱的建立需要很多先验知识,很难标准化、规模化,这个方案看起来并不优雅。ChatGPT完全没有采用这一套理念。ChatGPT的成功表明Transformer似乎通过深度神经网络实现了知识图谱的知识建模、编码与存储的功能。

    Transformer或者神经网络如何通过非结构化的参数信息,就能存储结构化的知识实体信息,这是一个很有意思的话题。本文的作者显然没有意识到这一点,也没有在文中专门讨论它的重要意义。

    后续有很多研究尝试回答为什么Transformer能够存储知识,它是如何存储知识的。例如,有文章[3]指出Transformer其实是一个巨型的Key-Value store,它存储了大量的具体知识。感兴趣的朋友可以深入研究。

    顺便说一句,人类很擅长存储具体的fact类型的知识,无论是热门的知识还是长尾冷门的知识,只要记忆就行。但是,这对神经网络其实很难。既不能通过枚举死记硬背(神经网络的结构就不适合死记硬背),也很难通过泛化,举一反三“猜”出新的冷门知识。如果试用过ChatGPT会发现,它对于一些具有标准答案的,事实型的问题,尤其是涉及冷门知识的问题,很容易犯错。例如,中国古时候某个冷门朝代的都城,它很容易回答出“长安”、“洛阳”等热门的都城作为答案。一个基于统计的模型,如何避免在这些冷门的有确定答案的问题上犯错?

    2、导言

    在文章提出的年代,2017年,处理机器翻译的序列转录问题的标准做法是RNN、LSTM、GRU以及encoder-decoder架构。

    序列建模的核心是如何建模并存储序列之间的依赖关系。传统的MLP没法建模依赖关系,样本与样本是独立的。RNN与LSTM的提出就是为了解决这一问题。RNN的隐状态存储了序列的历史信息,建模了序列依赖关系。

    但是RNN有一个致命的缺点:它把输入序列从左到右一步一步串行处理,对于第t个状态h(t),依赖t时刻的输入x和上一个状态的输出h(t-1),它没法并行。而且序列的依赖关系是一步一步往后传,距离过远的依赖信息可能被丢掉。如果想要存储长距离的信息,需要大的h(t)状态,增加内存开销。

    attention机制既可以建模序列的长距离依赖关系,也可以并行。本文提出了用attention代替RNN,且只依赖attention不依赖RNN。

    3、相关工作

    进行序列建模除了用RNN也可以用CNN。CNN擅长处理二维空间结构的局部依赖关系。CNN用于一维序列建模需要做一些改造。但是归根结底还是依赖卷积核的感受野来建模距离依赖。CNN的好处是可以并行计算,缺点是难以建模长距离序列依赖关系。它需要通过多层卷积叠加才能将比较远的像素点建立联系。

    CNN还有一个好处是有多通道输出,每个通道能够提取不同的特征模式。在Transformer中借鉴了CNN的多通道输出模式提出了多头注意力机制。

    Transformer通过attention操作就能建立序列的全局依赖关系,比CNN高效得多。
    `

  7. 神经网络深度学习的原理详解 #nice
    https://mp.weixin.qq.com/s/I7JceUq0NjIuufvdUmMJzQ
    `
    最近ChatGPT很火,让更多的人意识到未来利用机器的深度学习来完成事情,做出一些决策,将会成为未来的一个趋势。基于深度学习的数据训练这些技能将成为程序员必备的专业技能之一。所以我们有理由持续的关注深度学习与机器训练这个领域,今天给大家说明白目前主流深度学习的一些基本的流程原理,以及目前深度学习的一些主流的工具。

    1: 深度学习与数据训练

    机器学习指的是–如果一个程序在任务T上,随着处理经验的E增加,效果P也可以随之增加,则称这个程序可以从经验中学习,我们就可以称为机器学习。

    传统的机器学习是准备好输入的数据,人工提取一些有明显标记的特征,对这些特征加一些权重来预测这个结果。比如条码识别,根据条码的宽度比例特征来识别这个条码代表的数据结果。

    深度学习是准备好输入的数据,提取一些最基本的特征,经过多层复杂的特征提取,然后对最后的特征做一些权重处理,来预测这个结果。这里得多层复杂特征提取,就可以通过部署多层次的神经网络结构来实现,同时通过大量的数据训练,来训练神经网络的参数,从而达到”自动多层提取特征”。参数训练出来以后,只要将输入丢入到神经网络,就可以预测到你想要的结果。深度学习中的深度,就取决于你神经网络的层次与深度。

    总结以下,在深度学习的过程中开发者主要要处理的点如下:

    (1) 准备好训练数据(原始输入数据与正确结果),准备好测试数据,最后测试。
    (2) 结合问题本身,构建基于多层神经网络的网络结构。
    (3) 机器开始大规模的数据训练,基于反向传播算法等来更新神经网络参数(自动多层特征提取)。
    (4) 训练结束后测试数据,微调神经网络的结构,反复训练达到生产环境所需的要求。

    2: 深度学习与深层神经网络主要问题与解决方案

    (1)激活函数实现去线性化

    常用的激活函数有:
    ReLU函数: f(x)=max(x, 0)
    sigmoid函数: f(x)=1/(1+e^(-x))
    tanh函数: f(x)=(1-e^(-2x))/(1+e^(-2x))

    还有很多其它的激活函数,可以根据问题的模型情况来选择符合问题的函数模型。

    (2)深层神经网络提取更高维度的特征

    解决实际问题的时候,我们可以构建多层次的深层神经网络,多层的神经网络,能够从输入的特征中提取更多维度的特征。多层次的深层神经网络有组合特征的功能,这个特性对于不容易提取特征值向量的问题(图像识别,语音识别等)有很大的帮助,所以最近深度学习在图像识别,声音识别上取得了突破性的进展。

    (3)损失函数来评定训练结果

    神经网络的训练与优化的目标需要来结果进行评定,而训练结果的好坏评定直接影响了训练的效果。我们需要定义损失函数来判定结果。比如,手写数字识别,我们把一个28×28像素的图片数据要识别成0-9的数字。我们可以构建一个这样的神经网络,把向量[784个像素的数据维度(28×28=784)], 变成10个数据的维度[a0, a1, a2, a3, a4, a5, a6, a7, a8, a9],然后来做损失判定,看看当前的数据结果与哪个数字的数据向量最接近。

    比如数字1对应的标准向量为[0, 1, 0, 0, 0, 0, 0, 0, 0, 0],我们需要定义一个函数,来描述输出向量与哪个标准的向量更接近。这样就可以预测出输入的图片是对应的哪个数字,这个函数我们叫做损失函数。在深度学习中经典的损失函数的算法是用交叉熵的算法。

    (5)动态调整学习率

    学习率指的是参数更新的速度与幅度,参数更新的幅度越大,那么可能导致参数在最优解的两侧来回移动,不会得到或接近最优解,学习率幅度过小,更容易接近最优解,但是会提升运算量,降低训练的速度。所以学习率不能过大,也不能过小需要进行动态的调整,所以一般会对学习率做一个衰减, 开始的时候我们可以快速的接近最优解范围,后面我们就会稳定收敛在最优解附近来进行训练,获得很好的效果。

    (6)样本噪声带来的过度拟合

    有时候由于样本的噪声,本来噪声点是要丢弃的,但是后期训练拟合的时候,把噪声点也拟合进去,产生过度拟合。解决这类问题我们需要在损失函数中加入刻画模型复杂度的指标权重,来解决噪声点对拟合的污染,避免产生过度拟合。

    3:主流的深度学习开源工具

    深度学习有很多开源的工具可以帮助我们快速的完成神经网络的构建与训练。其中比较著名的有:

    TensorFlow(谷歌维护);
    Microsoft Cognitive Toolkit(CNTK)(微软维护);
    PaddlePaddle(百度维护);

    目前大部分深度学习的工具都采用了TensorFlow。比如最近爆火的ChartGPT,就是使用TensorFlow训练出来的。上面提到的神经网络相关的工具完整的实现了,数据读取,神经网络的构建,神经网络的训练,以及在深度学习中要用到的函数的实现,大大的降低了我们自己做AI训练的难度。同时Tensorflow有一些经典的数据集,帮助我们来快速的学习。深度学习主要的研究领域包含如下:

    (1) 计算机视觉与图像识别
    (2) 人类语音的识别
    (3) 人类自然语言的处理
    (4) 人机对战博弈

    对于程序员而言,学会深度学习与机器训练,是未来的必备的技能之一,希望大家后续都关注这块。对于做游戏开发而言,高效的产生数字内容,是未来的一个趋势,产生数字内容的工具,往后很大一部分会被AI取代或AI制作+人为干预的模式。今天的分享就到这里,关注我们学习更多深度学习的知识。
    `

  8. 一文概览神经网络模型 #nice
    https://mp.weixin.qq.com/s/ovx_lj2rCrrTx8DeU03yjQ
    `
    一、神经网络类别
    一般的,神经网络模型基本结构按信息输入是否反馈,可以分为两种:前馈神经网络和反馈神经网络。

    1.1 前馈神经网络
    前馈神经网络(Feedforward Neural Network)中,信息从输入层开始输入,每层的神经元接收前一级输入,并输出到下一级,直至输出层。整个网络信息输入传输中无反馈(循环)。即任何层的输出都不会影响同级层,可用一个有向无环图表示。

    常见的前馈神经网络包括卷积神经网络(CNN)、全连接神经网络(FCN)、生成对抗网络(GAN)等。

    1.2 反馈神经网络
    反馈神经网络(Feedback Neural Network)中,神经元不但可以接收其他神经元的信号,而且可以接收自己的反馈信号。和前馈神经网络相比,反馈神经网络中的神经元具有记忆功能,在不同时刻具有不同的状态。反馈神经网络中的信息传播可以是单向也可以是双向传播,因此可以用一个有向循环图或者无向图来表示。

    常见的反馈神经网络包括循环神经网络(RNN)、长短期记忆网络(LSTM)、Hopfield网络和玻尔兹曼机。

    二、经典神经网络模型介绍

    全连接神经网络(FCN)
    全连接神经网络是深度学习最常见的网络结构,有三种基本类型的层: 输入层、隐藏层和输出层。当前层的每个神经元都会接入前一层每个神经元的输入信号。在每个连接过程中,来自前一层的信号被乘以一个权重,增加一个偏置,然后通过一个非线性激活函数,通过简单非线性函数的多次复合,实现输入空间到输出空间的复杂映射。

    卷积神经网络(CNN)
    图像具有非常高的维数,因此训练一个标准的前馈网络来识别图像将需要成千上万的输入神经元,除了显而易见的高计算量,还可能导致许多与神经网络中的维数灾难相关的问题。卷积神经网络提供了一个解决方案,利用卷积和池化层,来降低图像的维度。由于卷积层是可训练的,但参数明显少于标准的隐藏层,它能够突出图像的重要部分,并向前传播每个重要部分。传统的CNNs中,最后几层是隐藏层,用来处理“压缩的图像信息”。

    残差网络(ResNet)
    深层前馈神经网络有一个问题,随着网络层数的增加,网络会发生了退化(degradation)现象:随着网络层数的增多,训练集loss逐渐下降,然后趋于饱和,当再增加网络深度的话,训练集loss反而会增大。为了解决这个问题,残差网络使用跳跃连接实现信号跨层传播。

    生成对抗网络(GAN)
    生成对抗网络是一种专门设计用于生成图像的网络,由两个网络组成: 一个鉴别器和一个生成器。鉴别器的任务是区分图像是从数据集中提取的还是由生成器生成的,生成器的任务是生成足够逼真的图像,以至于鉴别器无法区分图像是否真实。随着时间的推移,在谨慎的监督下,这两个对手相互竞争,彼此都想成功地改进对方。最终的结果是一个训练有素的生成器,可以生成逼真的图像。鉴别器是一个卷积神经网络,其目标是最大限度地提高识别真假图像的准确率,而生成器是一个反卷积神经网络,其目标是最小化鉴别器的性能。

    变分自动编码器(VAE)
    自动编码器学习一个输入(可以是图像或文本序列)的压缩表示,例如,压缩输入,然后解压缩回来匹配原始输入,而变分自动编码器学习表示的数据的概率分布的参数。不仅仅是学习一个代表数据的函数,它还获得了更详细和细致的数据视图,从分布中抽样并生成新的输入数据样本。

    Transformer
    Transformer是Google Brain提出的经典网络结构,由经典的Encoder-Decoder模型组成。在上图中,整个Encoder层由6个左边Nx部分的结构组成。整个Decoder由6个右边Nx部分的框架组成,Decoder输出的结果经过一个线性层变换后,经过softmax层计算,输出最终的预测结果。

    循环神经网络 (RNN)
    循环神经网络是一种特殊类型的网络,它包含环和自重复,因此被称为“循环”。由于允许信息存储在网络中,RNNs 使用以前训练中的推理来对即将到来的事件做出更好、更明智的决定。为了做到这一点,它使用以前的预测作为“上下文信号”。由于其性质,RNNs 通常用于处理顺序任务,如逐字生成文本或预测时间序列数据(例如股票价格)。它们还可以处理任意大小的输入。

    长短期记忆网络(LSTM)
    LSTM结构是专门为解决RNN在学习长的的上下文信息出现的梯度消失、爆炸问题而设计的,结构中加入了内存块。这些模块可以看作是计算机中的内存芯片——每个模块包含几个循环连接的内存单元和三个门(输入、输出和遗忘,相当于写入、读取和重置)。信息的输入只能通过每个门与神经元进行互动,因此这些门学会智能地打开和关闭,以防止梯度爆炸或消失。

    Hopfield网络
    Hopfield神经网络是一种单层互相全连接的反馈型神经网络。每个神经元既是输入也是输出,网络中的每一个神经元都将自己的输出通过连接权传送给所有其它神经元,同时又都接收所有其它神经元传递过来的信息。
    `

  9. 用这三本书,探究 ChatGPT 的底层逻辑
    https://mp.weixin.qq.com/s/8wG5Gs7vORJpYNjvKckjWQ
    `
    最近爆火的ChatGPT能够很好地理解人类的语言,并以流畅且符合逻辑的自然语言来反馈。刚刚发布的GPT-4更是在各种学科考试(美国高考SAT、研究生入学考试GRE等)和专业考试(律师考试等)中能拿到前10%的成绩。某种程度上,智能已经接近人类的水平,这是之前人工智能系统无法想象的。

    大家可能都很好奇,人工智能是怎么做到的?究竟发生了什么?背后的原理是什么?

    ChatGPT的底层技术,其实是大规模深度神经网络,也就是深度学习。“鉴往”才能“知来”,关于这段历史,在《人工智能简史》第5章“神经网络简史”中有非常精彩的描述。简述一下:最初,神经网络出自控制论之父维纳研究团队的McCulloch和Pitts在1943年发表的论文(McCulloch是精神病学系的教授,而当时Pitts才20岁,高中辍学)。1957年,Rosenblatt发明的感知机爆红,当时连美国国防部和海军都资助了他的研究工作,Rosenblatt也一改往日的害羞,经常在媒体出镜,他开跑车,弹钢琴,到处显摆。这使得另一派的人相当不爽,Minsky坚定认为,神经网络不能解决人工智能的问题,还在书中证明单层神经网络连计算机最基础的异或问题都无法解决,在Minsky的“强大攻击”下,Rosenblatt最终遭遇不幸(1971年,Rosenblatt在生日当天划船时淹死,很多人认为他是自杀。此外有证据表明,Rosenblatt和Minsky很早就有瓜葛,两人是中学同学。而且早期,Minsky是神经网络的支持者)。到了七八十年代,只剩早期神经网络研究的“幸存者”Hinton等人在学术界边缘苦苦坚持。终于到2012年,Hinton的得意门生Ilya Sutskever通过AlexNet解决视觉识别问题,一举天下闻。而GPT系列更是Ilya在OpenAI率领一众年轻生力军几年磨一剑,通过攻破语言问题,实现人工智能有史以来最大突破。

    目前,深度学习方面有很多书,但大部分机器学习的内容比较多,偏数学、理论,不容易懂,而且很多技术细节在大模型时代也没那么重要了。要更直接、深入地理解神经网络,图灵有两本书是最适合的。一本是鱼书,一本是苹果书。

    “鱼书”即《深度学习入门:基于Python的理论与实践》,最近不少人在用它恶补深度学习基础知识
    第二本是 OpenAI 总裁兼董事长 Greg Brockman 的 AI 入门读物“苹果书”——《深入浅出神经网络与深度学习》

    步入GPT时代,相信你我都意识到了:学习 AI 基础知识,再也不是“只有研究 AI 的人需要”,我们每个人都该了解,如果你打算了解人工智能,使用人工智能,那么本文提到的三本书,都可以闭眼入!
    `

    神经网络扫盲篇
    https://mp.weixin.qq.com/s/OrtaXPIFL22e15wBuUf13g

    最通俗的神经网络入门教程
    https://mp.weixin.qq.com/s/neEciC-gVMzqvWH1163Xcw
    http://www.ruanyifeng.com/blog/2017/07/neural-network.html

    神经网络的工作原理介绍
    https://mp.weixin.qq.com/s/XnlZAXXpHwVqDc7VS2bUnw
    `
    在机器学习和相关领域,人工神经网络的计算模型灵感正是来自生物神经网络:每个神经元与其他神经元相连,当它兴奋时,就会像相邻的神经元发送化学物质,从而改变这些神经元内的电位;如果某神经元的电位超过了一个阈值,那么它就会被激活(兴奋),向其他神经元发送化学物质。人工神经网络通常呈现为按照一定的层次结构连接起来的“神经元”,它可以从输入的计算值,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。并且它也被用于估计或可以依赖于大量的输入和一般的未知近似函数,来最大化的拟合现实中的实际数据,提高机器学习预测的精度。
    `

  10. 黄仁勋对话 ChatGPT 之父:改变世界的 AI 是如何诞生的
    https://www.geekpark.net/news/316735
    `
    # 更准确的预测下一个词的背后体现出来的是——尽可能多地对世界的理解(因为文本实际上是这个世界的一个映射)

    当我们训练一个大型神经网络来准确预测互联网上许多不同文本中的下一个词时,我们正在做的其实是——正在学习一个关于世界的模型。表面上看起来,我们只是在学习文本中的统计相关性,但实际上,是通过学习文本中的统计相关性,从而把这些知识很好地压缩。

    神经网络所学习的是生成文本的过程中的一些表述,这个文本实际上是这个世界的一个映射,世界在这些文字上映射出来。因此,神经网络正在学习从越来越多的角度去看待这个世界,看待人类和社会,看人们的希望、梦想、动机、交互和所处情境。基于此,神经网络学习一个压缩的、抽象的、可用的表述。这就是从准确预测下一个词的任务中,正在学习的东西。更进一步,你对下一个词的预测越准确、还原度越高,在这个过程中你得到的世界的分辨率就越高,所以这就是预训练阶段的作用。

    在 GPT-4 的基础上构建,预测下一个单词具有更高的准确度,这是非常重要的。因为神经网络越能预测文本中的下一个词,它就越能理解文本。这种说法现在也许已经被很多人接受了。但它可能仍然不直观,或者说(人们)不知道为什么会这样。我想绕个小弯,举个例子类比一下,来说明为什么对下一个词的更准确预测会导致更多的理解,真正的理解。

    让我们举个例子,假设你读了一本侦探小说,里面有复杂的故事情节、不同的人物、许多事件、神秘的线索,但是现在还不清楚。然后在书的最后一页,侦探收集了所有的线索,召集了所有的人,并说好吧,我将揭示谁犯了罪,那个人的名字是?——请预测那个词。

    这里会有许多不同的词,但是通过越来越好地预测这些词,模型对文本的理解不断增加,GPT-4 预测下一个词的能力也变得更好。

    # 多模态的意义

    黄仁勋:多模态的 GPT-4 具备从文本和图像中学习、并能对以文本和图像作为输入的请求做响应的能力。首先,多模态学习的基础,Transformer 使得我们可以从多个模态中学习,例如把文本和图像 token 化。在这个基础上,(你可以)帮助我们理解多模态是如何增强对世界的理解的吗?

    我的理解是,当你在用多模态学习时,甚至仅仅使用文本提示词本身,就可以提升文本理解。从基础层来看,多模态为什么如此重要,重大突破是什么,以及由此产生的特征差异是什么?

    Ilya Sutskever:多模态有两个维度,或是说两个原因让它如此有趣。第一个原因有点谦虚。多模态是有用的,它对神经网络很有用,尤其是视觉,因为这个世界是非常视觉化的。人类是视觉动物,人类大脑皮层的三分之一都用于视觉,我相信由于没有视觉,神经网络的用处虽然相当大,但并没有达到它应有的那么大,所以这是一个非常简单的有用的论点。很显然,GPT-4 可以「看」得很好。

    第二个原因是,除了从文本学习外,我们还可以从图像中学习这个世界,这也是很强的论点,尽管它像看上去没有那么明确。举个例子,人类一辈子会听到十亿个词。

    同样的论点也适用于我们的神经网络。神经网络除了可以从相当多的词中学习,(如果有了「视觉」),从文本中的几十亿文字认识世界或许会变得更容易,甚至可以从数万亿的词语中学习。

    # 缘起,为什么认定深度学习会取得如此成就?

    我先来问问关于深度学习的一些问题,你对深度学习的第一直觉是什么?为什么你知道它会发挥作用?你心中就一定认为深度学习会取得如此成就吗?

    Ilya Sutskever:首先,非常感谢你的盛赞。确实,深度学习的强大能力改变了世界。我对 AI 感兴趣的原因有很多,我的出发点在于对 AI 会产生巨大影响力的直觉理解。同时,我也对「究竟什么是意识」、「究竟什么是人类体验」这样的问题充满了好奇,我觉得 AI 的发展能帮我去理解这些。

    接下来,在 2002 年 到 2003 年的那个时候,学习是一件只有人类能做的事情,但是计算机还不会学习任何东西,甚至在理论上是否可行都不太清楚。所以我想如果能在智能学习或者机器学习方面做出一些成果,将很有可能成为 AI 领域的最大进步。

    所以从那时开始,我开始在这个领域做一些探索。一开始还没有那么乐观,但幸运的是,Jeff Hinton 是我所在大学的一名教授,我找到了他。他的工作方向就是神经网络,这就是我想要的。因为神经网络的特性就在于能够学习,可以自动编程并行计算机。

    那个时候,并行计算机还很小,但是希望在于如果你弄明白学习和神经网络学习的工作原理,那你就可以从数据中去编程小的并行计算机,而它与大脑的工作原理是相似的。所以,就好像有了几个理由可以支撑我继续向前探索,尽管还不太清楚这些是如何起作用的,然而基于已有的东西,似乎表明它的前景是最光明的。

    黄仁勋:你首次开始使用深度学习和神经网络的那个时候,网络的规模是多少?计算规模是多少?

    Ilya Sutskever:有意思的是,在当时没有人意识到规模的重要性,所以人们训练的神经网络只有 50 个或 100 个,几百个神经元已经是大的神经网络了,一百万的参数会被认为很庞大。我们一般在没有优化过的 CPU 代码上跑我们的模型,我们有一群人研发,但我们不懂 BLAS,我们用 Matlab,优化过的 Matlab。

    我们做了一些实验,提出各种不同的问题,来获得有趣的观察。Jeff Hinton 当时对训练神经网络用于生成小的数字感到很兴奋。一方面是对分类任务,同时他对于如何生成那些数字也很感兴趣,所以生成模型的源头就从那里开始。但是问题在于你做的那些很酷的东西都很零散,什么才是能真正推动技术进步的牵引力?当时并不明确这就是对的问题。但事后看来,恰恰对了。

    黄仁勋:AlexNet 是在 2012 年诞生的,在那之前你和 Alex 研究 AlexNet 有一段时间了。你具体是在哪个节点上想明白要构建面向计算机视觉的神经网络?想明白 Imagenet 才是那个合适的数据集,来参加计算机视觉的竞赛?

    Ilya Sutskever:那我先介绍一些背景。大概是在我发现「监督学习」才是我们前进的方向的两年前。这不仅是直觉,我来详细解释一下。如果你的神经网络非常深并且很大,那就可以用它去解决一项有难度的任务。所以关键词就是,「深」和「大」。

    那个时候人们还没有去关注大的神经网络,人们可能正在研究神经网络的深度,但是大部分机器学习的领域根本没有去研究神经网络,他们正在研究各种贝叶斯的模型和内核方法。这些方法虽然有优雅的理论基础,但并不表示就是一个好的解决方案,无论你怎么配置它们。相比之下,大型的深度神经网络却能在面对问题求解时,给出一个好的答案。

    黄仁勋:这个观察对我来说,直接打开了下面这个问题的新世界:我要从哪里获得无监督学习的数据?因为我确实有很多数据,如果我能预测下一个字符,我知道真实结果,我知道答案是什么,我可以用它们训练神经网络模型,所以这个观察和屏蔽(masking)以及其他技术、其他方法,广开思路,以帮助我看到哪里可以获取所有无监督学习的数据。

    Ilya Sutskever:我换一种说法陈述。我会说在无监督学习中,困难的部分不在于从哪里获取数据,尽管现在也有这个问题,但更多的是关于为什么要这样做?为什么要费心做?困难的部分是:意识到训练这些神经网络以预测下一个 token 是一个值得追求的目标。

    黄仁勋:在这个过程中,你一直相信,扩大规模会改善这些模型的性能吗?更大的网络、更深的网络、更多的训练数据将使其扩展。OpenAI 写了一篇非常重要的论文,讨论了 Scaling Law(模型能力随着模型体量的上升而增强),模型大小与数据集数量之间的关系。

    当 Transformer 出现时,它给了我们合理的时间内训练非常大的模型的机会,但对于模型大小和数据之间的规律的直觉,相对于 GPT-1、2、3 的诞生,哪个先出现?你先看到 GPT-1 到 3 的发展路径吗?还是先有 Scaling Law 的直觉?

    Ilya Sutskever:直觉。我有一个很强烈的信念,更大意味着更好。在 OpenAI,我们的一个目标是弄清楚使用 Scaling Law 的正确途径。OpenAI 一开始就对扩展规模抱有很多信念,问题是如何准确地使用它,因为我现在提到的是 GPT,但是还有另外一条非常重要的工作路线,我还没有提到。

    第二个伟大的好主意,那就是强化学习。这显然也很重要。你用它做什么?

    在 OpenAI 中完成的第一个真正的大型项目是我们解决了一个实时策略游戏。实时策略游戏就像是一项竞技运动。你需要聪明,你需要更快,你需要快速反应,有团队合作。你正在与另一个团队竞争,这是非常、非常复杂的。并且这个游戏有一个完整的竞争联赛,这个游戏叫做 Dota 2。所以我们训练了一个强化学习 agent 来与自己对抗,目标是达到一定水平,以便可以与世界上最好的玩家竞争,这也是一个重大的项目。它是一个非常不同的工作方向——强化学习。

    黄仁勋:是的,我记得你们宣布这项工作。OpenAI 做了大量的工作有些看起来像是走了弯路,但事实上,正如你现在解释的那样,它们可能是弯路,看起来像是弯路,但它们真正导致了我们现在讨论的一些重要工作——ChatGPT。

    Ilya Sutskever:是的,我的意思是已经有了真正意义上的交汇:一方面,GPT 产出了技术基础设施;另一方面,从 Dota 的强化学习转变为基于人类反馈的强化学习(RLHF)。这种组合给了我们 ChatGPT。
    `

  11. GPT的背后,从命运多舛到颠覆世界,人工神经网络的跌宕80年
    https://mp.weixin.qq.com/s/2cKBmtv6RbViVZfUyeTPqQ
    `
    今天,ChatGPT等大型语言预训练神经网络模型已经成为广为人知的名字,GPT背后的算法内核——人工神经网络算法,在此之前,却曾经历了跌宕沉浮的80年,这80年间,除了少数的几个爆发时刻,大部分时候,这个理论处于沉寂、无人问津,甚至经费“毒药”的状态。

    人工神经网络的诞生,来自不羁天才皮特斯与当时已功成名就的神经生理学专家麦卡洛克的黄金组合,然而,他们的理论超越了他们那个时代的技术水平,因而没能获得广泛关注与实证验证。

    幸而,在诞生之初的二十多年里,不停地有研究者进来添砖加瓦,人工神经网络领域从最初最简单的神经元数学模型和学习算法进化到了具有学习能力的感知机模型,然而,来自其他研究者的质疑与“感知机”创始人之一罗森布拉特在航行中陨难共同袭来,在那之后,这个领域陷入了二十多年的寒冬,直到反向传播算法被引入人工神经网络的训练过程中。

    在那之后,经历了沉寂的20年,人工神经网络方面的研究才终于又获得重启,蓄力的近20年中,卷积神经网络与递归神经网络依次登场。

    但该领域在学术界与产业界的飞速发展还是要等到17年前,硬件方面的突破——通用计算GPU芯片的出现,于是,才有了今天,随着ChatGPT等大型语言预训练神经网络模型,成为广为人知的名字。

    从一定意义上,人工神经网络的成功是一种幸运,因为,不是所有的研究,都能等到核心的关键突破,等到万事齐备。在更多的领域,技术的突破出现得太早或是太晚,导致只能慢慢消亡。然而,这幸运中,不能被忽略地是那些身处其中的研究者们的坚定与执着,靠着这些研究者们的理想主义,人工神经网络才走过了它跌宕沉浮的80年,终得正果。

    # 麦卡洛克-皮特斯神经元

    1943年,麦卡洛克和皮特斯提出了最早的人工神经网络模型:麦卡洛克-皮特斯神经元(McCulloch-Pitts Neuron)模型[1]。该模型旨在用二进制开关的“开”与“关”的机制来模拟神经元的工作原理。该模型的主要组成部分为:接收信号的输入节点,通过预设阈值处理输入信号的中间节点,以及生成输出信号的输出节点。在论文中,麦卡洛克与皮特斯证明了该简化模型可以用于实现基础逻辑(如“与”、“或”、“非”)运算。除此以外,该模型还可以用于解决简单问题,如模式识别与图像处理。

    # 赫布式学习(Hebbian Learning)

    1949年,加拿大心理学家唐纳德·赫布(Donald Hebb)出版了一本题为《行为的组织(The Organization of Behavior)》,并在书中提出了著名的赫布式学习(Hebbian Learning)理论[2]。该理论认为“共同激活的神经元往往是相互连接的(Cells that fire together, wire together)”,也就是神经元具有突触可塑性(synaptic plasticity, 突触是神经元之间相互连接进行信息传递的关键部位),并认为突触可塑性是大脑学习与记忆功能的基础。

    赫布更新算法为利用人工神经网络来模仿大脑神经网络的行为提供了理论基础。赫布式学习模型是一种无监督学习模型——该模型通过调节其感知到的输入数据之间联系程度的强弱来实现学习目的。也正因为如此,赫布式学习模型在对输入数据中的子类别聚类分析尤其擅长。随着神经网络的研究逐渐加深,赫布式学习模型后来也被发现适用于强化学习等其他多个细分领域。

    # 感知机 (Perceptron)

    1957年,美国心理学家弗兰克·罗森布拉特(Frank Rosenblatt)首次提出感知机(Perceptron)模型,并且首次使用了感知机更新算法[3]。感知机更新算法延伸了赫布更新算法的基础,通过利用迭代、试错过程来进行模型训练。在模型训练时,感知机模型对于每一个新的数据,计算出模型预测的该数据输出值与实际测得的该数据输出值的差值,然后使用该差值更新模型中的系数。具体方程如下:Δw = η x (t – y) x x。在提出最初的感知机模型后,罗森布拉特继续深入探讨、发展感知机相关理论。1959年,罗森布拉特成功研发出一台使用感知机模型识别英文字母的神经计算机Mark1。

    # 反向传播算法

    多层神经网络能够解决单层神经网络无法解决的问题,但它带来了新的问题:更新多层神经网络模型的每一层神经元的权重涉及到大量精确计算,而普通的计算方法费时费力,使得神经网络学习过程变得非常缓慢,实用性很差。

    为了解决这个问题,美国社会学家、机器学习工程师保罗·韦伯(Paul Werbos)在1974年的哈佛大学的博士论文《Beyond Regression: New Tools for Prediction and Analysis in the Behavioral Sciences》中提出了反向传播算法(backpropagation)[6]。该算法的基本思想是通过将预测到的输出值与实际输出值之间的误差从输出层反向传播,从而调整神经网络各个神经元的权重。这个算法的本质是根据微积分中常用的链式法则从输出层到输入层反向(沿着负梯度方向)实现对由多层感知机组成的神经网络的训练。

    令人感到遗憾的是,韦伯的论文在发表后很长一段时间内都没有得到足够的关注。直到1985年,加州大学圣地亚哥分校的心理学家大卫·鲁梅尔哈特(David Rumelhart)、认知心理学家与计算机学家杰弗里·辛顿(Geoffrey Hinton),以及计算机学家罗纳德·威廉姆斯(Ronald Williams)合作发表了一篇关于反向传播算法在神经网络中的应用的论文[7]。这篇论文在人工智能领域获得了很大的反响。鲁梅尔哈特等人的想法与韦伯的想法本质上是相似的,但鲁梅尔哈特他们没有引用韦伯的论文,这一点近来常常为人诟病。

    反向传播算法在人工神经网络的发展中起着关键作用,并使得深度学习模型的训练成为可能。自从反向传播算法于八十年代重新受到人们的重视以来,它被广泛应用于训练多种神经网络网络。除了最初的多层感知机神经网络以外,反向传播算法还适用于卷积神经网络、循环神经网络等。由于反向传播算法的重要地位,韦伯与鲁梅尔哈特等人被认为是神经网络领域的先驱之一。

    # 卷积神经网络(Convolutional Neural Network, CNN)

    如果把麦卡洛克·皮特斯神经元作为人工智能诞生的标志,那么美国可以说是人工神经网络的发源地。人工神经网络诞生后的三十年里,美国在人工智能领域一直扮演着主角,孕育了感知机、反向传播算法等关键技术。但在第一个人工智能的”寒冬”中,包括政府、学术界在内的美国各方人士对人工神经网络的潜能失去了信心,大大放缓了对神经网络技术迭代的支持与投入。也因为如此,在这个席卷美国的”寒冬“中,其他国家的人工神经网络的研究走到了历史发展的聚光灯之下。卷积神经网络与递归神经网络就是在这样的背景下出场的。

    # 递归神经网络(Recursive Neural Network, RNN)

    与卷积神经网络一样,递归神经网络也是一类具有独特结构特征的神经网络。该类神经网络的主要结构特征在于各层级间具有递归关系,而不是顺序关系。由于以上这些特殊结构特征,递归神经网络特别适于处理自然语言以及其他文本类的数据。

    1990年,美国认知科学家、心理语言学家杰弗里·艾尔曼(Jeffrey Elman)提出了艾尔曼网络模型(又称为简化递归网络)[10]。艾尔曼网络模型是首个递归神经网络。艾尔曼利用该模型证明了递归神经网络能够在训练时维持数据本身的先后顺序性质,为日后该类模型在自然语言处理领域的应用奠定了基础。

    # 通用计算GPU芯片

    在通用GPU出现之前,人工神经网络的发展长期受到传统的CPU有限计算能力的限制。这种限制包括了对于理论研究的创新以及对现有模型的产品化、产业化的应用。而GPU的出现,让这两方面的掣肘被大大削弱了。

    2010年,施密德胡伯团队中的博士后研究员丹·奇雷尚(Dan Ciresan)利用GPU实现了对卷积神经网络训练的显著加速[12]。但GPU真正在人工神经网络领域里声名大噪是在2012年。那一年,加拿大计算机科学家亚历克斯·克里泽夫斯基(Alex Krizhevsky)、伊利亚·苏茨克维(Ilya Sutskever)以及前文提到过的杰弗里·辛顿提出了亚历克斯网络模型(AlexNet)[13]。亚历克斯网络模型本质上是一类卷积网络模型。克里泽夫斯基等人在训练模型时使用了GPU,并用该模型参加了一个国际著名的图像分类与标记的竞赛(ImageNet ILSVRC)。令人意外的是,该模型最后竟以大比分的优势获得了冠军。亚历克斯网络模型的成功极大地激发了各界对于人工神经网络在计算机视觉领域应用的兴趣与关注。

    # 生成式神经网络与大型语言模型

    递归神经网络可以逐字连续生成文本序列,因此常常被认为是早期的生成式神经网络模型。然而,尽管递归神经网络善于处理、生成自然语言数据,但它对于长序列数据一直无法有效捕捉全局信息(对于距离较远的信息无法进行有效联系)。

    2017年,美国谷歌公司的研究员阿希瑟·瓦斯瓦尼(Ashish Vaswani)等人提出了变压器模型(Transformer)[14]。该大型神经网络分为编码器与解码器两个主要部分。编码器对输入序列进行编码处理,通过自注意力层等来进一步处理编码后的信息。此后,信息传至解码器,并经过解码器部分的自注意力层等网络结构来生成输出序列。该模型的重要创新在于自注意力层(self-attention)。自注意力层使得神经网络模型能摆脱顺序处理文本的局限性,而是直接去文本中的不同位置抓取信息并捕捉各处信息之间的依赖关系,并且并行化计算不同位置之间在语义上的相关性。变压器模型的横空出世对自然语言处理领域乃至整个人工智能领域产生了巨大影响。在短短的几年里,变压器模型已经被广泛用在各类人工智能大模型中。

    在层出不穷基于变压器结构的大型语言模型中,OpenAI公司推出的聊天机器人ChatGPT最为出名。ChatGPT所基于的语言模型为GPT-3.5(生成式预训练变压器模型-3.5)。OpenAI公司在训练该模型时用了大量的语料库数据,使其最终具备了广泛的语言理解能力与生成能力,包括提供信息、交流,文本创作、完成软件代码写作、以及轻松胜任各类涉及语言理解相关的考试。

    # 尾声

    几周前,我去参加一个中学生与科研人员共进午餐的志愿者活动。活动上,我与几名十五六岁的中学生聊天。很自然的我们就聊到了ChatGPT。我问他们:”你们用ChatGPT吗?你们可以跟我说实话,我不会告诉你们的老师的。”其中一位男生腼腆的笑了笑,说他现在已经离不开ChatGPT了。

    80年前,四处流浪的皮特斯只能想象着那能够模拟大脑功能的数学模型。而在今天年轻人的世界里,神经网络不再仅是虚幻的数学公式,而变得无时无出不在。下一个80年会发生什么?人工神经网络中会像人类的神经网络一样产生意识吗?碳基大脑会持续主宰硅基大脑吗?还是会被硅基大脑主宰?
    `

  12. 终于有人把生成对抗网络(GAN)讲明白了
    https://mp.weixin.qq.com/s/JWytA-S6jA9VNf09GUZyGw
    `
    机器学习是一种实现人工智能的方法,深度学习是一种实现机器学习的技术,而本文的主角——生成对抗网络则是深度学习中的一种分类。

    人工智能 -> 机器学习 -> 深度学习 -> 生成对抗网络

    # 01 从机器感知到机器创造

    从机器学习到深度学习的不断发展过程中,机器一直在不停地模仿人类的思维方式,希望能像人一样思考,但仅仅具备感知能力似乎是不够的,人类思维能力的迷人之处更在于它的创造能力,我们希望计算机能够自己创作艺术作品,如写诗、谱曲、作画等。

    越来越多的研究者将自己的研究方向从机器感知转向了机器创造,希望通过生成技术能够让计算机具备生成新事物的能力。在生成技术的研究中,本文的主角——生成对抗网络应运而生,它打破了人们对传统生成模型的理解,并取得了非常令人满意的效果。

    Ian发明生成对抗网络是出于一个偶然的灵感,当时他正在蒙特利尔大学和其他博士生一起进行生成模型的研究,**他们想通过该生成模型让计算机自动生成照片**。

    当时他们的想法还是希望使用传统的神经网络方法,希望通过模拟人的大脑思考方式来进行图片的生成。但是生成的图像质量始终不理想,如果继续对现在的模型进行优化,需要非常大量的训练数据集,而且最终的可行性也不得而知。

    当时的Ian对使用传统神经网络的方式产生了怀疑,他认为也许这并非最理想的解决方案。一天晚上,他突然想到一种全新的思路,如果不是只用一个神经网络,而是同时使用两个神经网络,会不会有更好的效果呢?

    这一想法为他打开了一种全新的思路,在Ian的构思中,**两个神经网络并非合作关系,而是一种博弈与对抗的关系,这就是生成对抗网络最初的思想**。

    # 02 什么是生成对抗网络

    让我们先用一个小例子来认识一下生成对抗网络。首先来认识一下生成对抗网络的两方——生成器与判别器,在训练过程中两者的配合非常重要。

    我们可以把生成器想象成一个古董赝品制作者(虽然这一比喻可能不太合适),其成长过程是从一个零基础的“小白”慢慢成长为一个“仿制品艺术家”。

    而鉴别器担任的则是一个古董鉴别专家的角色,它一开始也许仅仅是一个普通等级的“鉴别师”,在与赝品制作者的博弈中它逐渐成长为一个技术超群的鉴别专家。

    如图1-21所示,下面我们就以赝品制作与鉴别为例来说明生成对抗网络的工作原理。让我们来看一下最初的情况是怎样的:赝品制作者还是个什么都不懂的“小白”,也不懂真实的古董到底应该是什么样子,完全凭借自己的心意随意制作产品。

    面对简单易分辨的仿制品,初级鉴别者即便功力不深也能够一眼分辨出真假。在分辨完成的同时,鉴别者会将自己的判断结果写成报告,比如做工不精细、颜色不协调等。第一次对抗就这样完成了,似乎离我们期待的目标还非常远,但是没关系,这才刚刚开始。

    现在进入第二阶段,**仿造者通过一些渠道,拿到了鉴别者的判断报告,他认真研读了里面的每一条信息,根据这些信息重新制作赝品,虽然他依然不知道真实古董到底是什么样子,但他希望改进后的赝品能够骗过鉴别者**。

    这一次创作的赝品比之前的确实要成熟不少。到了鉴别者这边,当他再次拿到赝品和真品时,要重新判断作品的真假。这一次他也发现赝品制作者的能力有所提升,为了区分真假作品,他需要花时间去寻找一些更深入的区别点。

    当然,一番努力过后,鉴别师顺利完成了任务,同时他也如第一次一样,将他区分真假的理由写成报告(之后依然会流出到赝品制作者手里)。第二次对抗到这里也完成了。

    当然,对抗远远没有结束,如同上述的故事一直持续了很多很多次……

    在经历了N次的互相博弈以后,两者在整个训练过程中都变得非常强,其中的仿造者几乎能制作出以假乱真的作品,而鉴别者也早已是“火眼金睛”的鉴别专家了。

    最后一次博弈是这样的:**赝品制作者已经完全摸透了鉴别师的心理,虽然他还是没有见过真的古董是什么样子,但是对古董应该具备什么样的特性已经十拿九稳,对于可能的鉴别过程也都了然于心**。

    对于如此以假乱真的赝品,虽然鉴别者拥有“火眼金睛”,但已然是无能为力了,他可以做的只能是凭运气猜测是真是假,而无法用确定的理由进行判断。

    这也就是生成对抗网络最终的目的,而我们所需要做的就是**培养出这个能够以假乱真的生成器**。
    `

回复 hi 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注