首页 > 其他分享 >想理解深度学习,究竟应该降维打击 or 升维思考?

想理解深度学习,究竟应该降维打击 or 升维思考?

时间:2023-06-27 18:33:01浏览次数:34  
标签:升维 函数 导数 学习 降维 神经网络 思考 维度 ndarray


想理解深度学习,究竟应该降维打击 or 升维思考?_机器学习


题图 | Designed by Freepik

让我们从一道选择题开始今天的话题。

什么是神经网络?请选择以下描述正确的一项或多项。

A. 神经网络是一种数学函数,它接收输入并产生输出。
B. 神经网络是一种计算图,多维数组流经其中。
C. 神经网络由层组成,每层都具有「神经元」。
D. 神经网络是一种通用函数逼近器。

你的答案是________。

想理解深度学习,究竟应该降维打击 or 升维思考?_神经网络_02

正确答案是……ABCD。

是不是有点懵?对于神经网络,难道就没有唯一、统一的描述吗?

塞思·韦德曼(Seth Weidman)是前Facebook数据科学家。他曾受邀走访世界各地,为来自不同行业的人们讲授数据科学和机器学习。

想理解深度学习,究竟应该降维打击 or 升维思考?_机器学习_03


前Facebook数据科学家塞思·韦德曼

图源:sethweidman.com

在其著作《Python深度学习入门:从零构建CNN和RNN》中,韦德曼写道:

对于讲解神经网络,我发现最具挑战性的就是为「什么是神经网络」传达正确的思维模型。这主要是因为,了解神经网络需要的不是一个而是多个思维模型,每一个都说明了神经网络工作方式的不同方面(而且每个方面都必不可少)。

诚然,神经网络与深度学习是一个立体的领域,仅从数学层面或代码层面学习,难免以偏概全,无法融会贯通。正因为如此,韦德曼提出了一种全新的学习方法:同时从数学、示意图、Python代码三个维度立体地理解每一个概念,从而领略深度学习领域的全貌。

想象你要构建自己的深度学习大厦。你或许钟情于算法,又或许习惯于视觉型学习,但唯有进行「升维思考」,你才能建造出多面玲珑的建筑。

韦德曼提出以如下步骤学习导数、嵌套函数、链式法则等概念。这些基本概念就如同一块块砖,有了它们,你终将建造出属于自己的深度学习大厦。

  • 以一个或多个方程式展示数学原理。
  • 给出示意图,类似于在参加编码面试时画在白板上的图。
  • 给出对应的Python代码。

让我们一起看看用这种学习方法如何理解导数的概念。

导数是深度学习的一个非常重要的概念。总体来说,函数在某一点上的导数,可以简单地看作函数输出相对于该点输入的「变化率」。

维度1:数学

首先在数学维度上定义导数。可以使用一个数来描述极限,即当改变某个特定的输入值a 时,函数f 的输出有多大变化:

想理解深度学习,究竟应该降维打击 or 升维思考?_python_04

通过为Δ设置非常小的值(例如0.001),可以在数值上近似此极限。因此,如果Δ=0.001,就可以将导数计算为:

想理解深度学习,究竟应该降维打击 or 升维思考?_机器学习_05

虽然近似准确,但这只是完整导数思维模型的一部分。下面来从示意图的维度认识导数。

维度2:示意图

为函数曲线画出一条切线,则函数f 在点a 处的导数就是该线在点a 处的斜率。可以通过两种方式来计算这条线的斜率。第一种方式是使用微积分来实际计算极限,第二种方式是在a−0.001处和a+0.001处取连线f 的斜率,如下图所示。

想理解深度学习,究竟应该降维打击 or 升维思考?_算法_06

另一种可视化方式是将函数想象成小型工厂,并想象其输入通过一根线连接到输出。求解导数相当于回答这样一个问题:如果将函数的输入a 拉高一点,那么根据工厂的内部运作机制,输出量将以这个小数值的多少倍进行变化呢?

想理解深度学习,究竟应该降维打击 or 升维思考?_机器学习_07

对理解深度学习而言,第二种表示形式比第一种更为重要。

维度3:Python代码

可以通过编码来求解前面看到的导数的近似值:

from typing import Callable
def deriv(func: Callable[[ndarray], ndarray],
          input_: ndarray,
          delta: float = 0.001) -> ndarray:
    '''
    计算函数func在input_数组中每个元素处的导数。
    '''
    return (func(input_ + delta) - func(input_ - delta)) / (2 * delta)

当我们说P E(随机选的字母)的函数时,其实是指存在某个函数f,使得f (E) = P。或者说,有一个函数f,它接收对象E 并产生对象P。也可以说,P 是函数f 应用于E 时产生的任意函数值:

想理解深度学习,究竟应该降维打击 or 升维思考?_python_08

可以将其编码为下面这种形式。

def f(input_: ndarray) -> ndarray:
    # 一些转换
    return output
P = f(E)

想理解深度学习,究竟应该降维打击 or 升维思考?_神经网络_09


想理解深度学习,究竟应该降维打击 or 升维思考?_人工智能_10


标签:升维,函数,导数,学习,降维,神经网络,思考,维度,ndarray
From: https://blog.51cto.com/u_15767091/6564859

相关文章

  • 一本可能提升思考水平 10 倍的书
    《系统化思维导论》初版于1975年面世,此后四分之一个世纪始终畅销不衰。21世纪初,银年纪念版出版,再次掀起阅读风潮。这是一本全面介绍一般系统思维的权威指南,旨在帮助人们掌握科学的思维法则,揭开科学与技术的神秘面纱。书中通过基本的代数原理,使用大量图表、符号,乃至方程来展示探索......
  • 关于在大模型战略资源储备的不同阶段,B端开发者的行动策略的一些思考
    一、大模型产业链的终态猜想我们先定义理想状态下,大模型应该具备哪些综合性能:指令理解能力:能够理解并遵循指令,并按照指令完成相应的逻辑推理、知识抽取、概念总结、API调用等任务多语言理解能力:能够同时理解包括中文、英文等主流语言逻辑推理能力:能够将复杂任务分解为相互串......
  • h2database BTree 设计实现与查询优化思考
    h2database是使用Java编写的开源数据库,兼容ANSI-SQL89。即实现了常规基于BTree的存储引擎,又支持日志结构存储引擎。功能非常丰富(死锁检测机制、事务特性、MVCC、运维工具等),数据库学习非常好的案例。本文理论结合实践,通过BTree索引的设计和实现,更好的理解数据库索引相关的......
  • 关于reset.css的一些思考与探究
    项目多了,大家多会有自己积累的一些reset.css的经历或者自己改进的代码,其实初衷还是很简单的,达到复用,重置浏览器的一些默认样式,实现跨浏览器兼容。 1、最早关注的还是YUI的ResetCSS,  在线的压缩版本地址:http://yui.yahooapis.com/3.4.1/build/cssreset/cssreset-min.css 直接上......
  • 关于数字滚动动画的思考
    数字滚动动画的实现思路:方法一:1.设置translate2.设置替换数字方法二: 利用轮播图的实现方法纵向轮播数字最后停留于选定数字方法三:利用innerHTML来直接替换对应内容,加上定时器来循环调用回调函数中写上设定好的数字。方法三(2):innerHTML替换,利用递增来跳到对应的值的时候......
  • SolrCloud实践过程中问题思考以及处理方法
    一:数据量大后,单个集合存储量过大。问题:一方面写入过慢,另一方面:查询读取速度也过慢。解决步骤:1.按时间维度拆分集合,保证单个集合中在每个节点的shard,数据量在3000-5000万条之间。这样写入在最近时间归属的集合中操作。2.写入的时候,按数量进行批次写。(数百至千条之间,经验值)3.......
  • 思考互联网发展三阶段
    互联网经历了三个时代,门户时代、搜索/社交时代、大互联网时代,每一个时代都给中国互联网历史留下了深深的足迹,推动着中国互联网上不断的创新和发展。1.门户时代(Web1.0)网络是信息提供者,单向性的提供和单一性理解,此阶段最典型是门户网站,以百度为主的搜索引擎提高了用户获取信息的效......
  • 一些关于Research中代码能力的思考
    在Research中,代码能力有时候往往决定了复现的能力。一些优秀的idea并不会公开代码,所以你有相当出色的代码能力就可以很快的实现自己的想法。在之前的research经历中,我有接手他人工作的项目。research的代码和工业界代码无法比较,往往是杂乱无章,我承认这里面有着优秀的idea和新颖的......
  • 关于dp部分的思考
    dp部分小结背包背包主要是模型的构建。01背包选与不选,且只能选一个。for(inti=1;i<=n;i++){for(intj=mt;j>=w[i];j--)dp[j]=max(dp[j],dp[j-w[i]]+v[i]);}完全背包选与不选,可任意选。for(inti=1;i<=n;i++){for(intj=w[i];j<=mt;j++)dp[......
  • 基于PCA降维的交通标志训练和识别算法matlab仿真
    1.算法理论概述      交通标志识别一直是计算机视觉和机器学习领域的研究热点之一。PCA(PrincipalComponentAnalysis)降维算法是一种常用的特征提取方法,可以将高维数据降低到低维空间中。本文介绍一种基于PCA降维的交通标志训练和识别算法,该算法可以从交通标志图像中提取......