翻译: 梯度下降 深度学习神经网络如何学习一

news2024/9/21 0:50:43

在这里插入图片描述

在上一节影片里我讲解了神经网络的结构 首先我们来快速回顾一下 在本节影片里,我们有两个目标 首介绍梯度下降的概念 它不仅是神经网络工作的基础 也是很多其他机器学习方法的基础 然后我们会研究一下这个特别的网络是如何工作的 以及这些隐藏的神经元层究竟在寻找什么 作为覆习 这里我们引用一个经典的例子——手写数字识别 神经网络领域的“Hello World” 这些数字书写在28乘28像素的网格上 每个网格对应一个0到1之间的灰度值。
在这里插入图片描述

这些灰度值 决定了神经网络输入层的784个神经元的激活(782=28*28) 随后每一层的各个神经元的激活值 都基于前一层的加权和 与一个被叫做偏差的常数 相加 来获得 然后你把它和一些其他函数相加
在这里插入图片描述

比如sigmoid 或者我上节视频提到的ReLu 总之我们随意给出两个具有16个神经元的层
在这里插入图片描述

每一个神经网络有 13000个可以调整的权重值和偏差 正是这些值决定了这个神经网络如何工作 那么“这个网络可以将给定数字分类”是什么意思呢
在这里插入图片描述

即最后一层10个数字中被点亮的那个数字就是输入的数字 请记住,我们使用这个分层的结构,目的是或许,第二层可以辨别出数字中的特征线段 第三层或许可以辨别出组成数字的圈和线 而最后一层可以把所有特征结合在一起 从而辨别出这个输入的数字
在这里插入图片描述

因此,在这里 我们将学习神经网络是如何学习的 我们想要的是一种可以向这个神经网络展示大量训练数据的算法 这里所说的大量训练数据是指 很多手写数字的图像以及 标明了这个图像上的数字到底是几的标签
在这里插入图片描述

它能够通过这些训练数据 来调整13000个权重值和偏差以达到 改善神经网络表现的目的 我们所期望的是 这个分层的结构可以学习 超出训练数据范围的图像的识别 我们测试的方法是 当你完成对这个网络的训练后 当你向它展示它从未见过的图像时 观察它判断的精确度
在这里插入图片描述

幸运的是 通常我们可以用来自MNIST base的数据来开始训练 MNIST base的好人们收集了数以万计带有标签的手写数字图像 当你一但真正了解它的工作原理,你会发现向机器解释学习的过程非常有挑战的一件事
在这里插入图片描述

它并不像一些疯狂的科幻 反倒是更像微积分练习 也就是说 基本上是找到某一个特定函数的最小值 请记住,

在这里插入图片描述
从概念上讲, 我们认为每一个神经元都与前一层的所有神经元相连加权求和计算中的加权值 在定义中像是一种 神经元间连接强度的参考值 而偏差值则代表了某个神经元是倾向于激活 还是不激活并关闭 如果我们将所有的权重值和偏差值初始化为随机数

在这里插入图片描述

毫无疑问,这个神经网络会表现地一塌糊涂 用一个例子来说明 当你输入一个3的图像
输出层看起来一片混乱 所以,你要做的是,定义一个成本函数 来告诉电脑,不! 你是错的! 正确的输出应该是,多数神经元激活值为0 但是对于这个神经元来说,你给我的是垃圾 用数学语言来描述, 就是你需要把每个【垃圾输出】与【你想要的正确输出】的【差的平方】相加 这就是在单个训练例子中的成本
在这里插入图片描述

注意,如果网络能很正确地辨别出图像 这个和会非常小
在这里插入图片描述

但如果这个值很大 说明这个神经网络根本不知道它在干嘛 所以你要做的就是 考虑在你所能处理的上万个训练案例中的平均成本
在这里插入图片描述

这个平均成本就是我们对该神经网络 表现好坏的衡量值
在这里插入图片描述

记住这个神经网络本质上是一个函数 它将784个像素值数字作为输入 10个数字作为输出 从某种意义上来说 是通过这些权重和偏差来参数化
在这里插入图片描述

然而成本函数的复杂性表现在 最重要的是它将13,000 左右的权重和偏差值作为输入 并输出一个数字来反应这些权重和偏差质量的好坏
它的定义,由神经网络经过上万次训练后的表现来决定 这里面有很多要思考的 不过直接告诉电脑,它的工作有多烂 它一点帮助也没有

在这里插入图片描述

你想要知道的是,如何可以调整这些权重和偏差 从而让它表现的好一点 我们用一个简单的例子来说明 (而不是费力思考一个有着13000个输入输出的函数)
在这里插入图片描述

我们想象这样一个简单的函数 它只有一个输入和一个输出 如何找到一个输入值使函数值最小 学过微积分的学生知道 有时你可以非常容易地指出一个函数的最小值
在这里插入图片描述

但对于一些非常复杂的函数来说,就不一定可行了
在这里插入图片描述

当然包括我们那个超级复杂的有着13000个自变量的成本函数

在这里插入图片描述

一个更灵活的办法是,从任意一个输入量开始,找出让函数值变小的方向 尤其是,如果你知道函数在某一点的斜率 那么,当斜率为正时,向左;
在这里插入图片描述

当斜率为负时,向右 就可以找到函数输出变小的方向
在这里插入图片描述

如果你用合适的步骤不断地重复检查每一点的斜率 你就可以找到函式的局部最小值 你可以在大脑里想象这样一幅图 一个球向山下滚落

在这里插入图片描述

值得注意的是,即使在这样一个简单的单一输入函式中,依然有可能出现很多可以滚入的山谷
在这里插入图片描述

从你随机选取的输入值开始,找到的局部最小值
根本不能保证,它就是整个函数的最小值 对于我们的神经网络的函式来说,也是一样的情况
在这里插入图片描述

另外需要注意的是,如果你的步长和斜率成比例 那么当越接近最小值时,你的步长就越小,这会帮助你避免找过头 扩展一下想象力,
在这里插入图片描述

如果一个函数有两个自变量和一个因变量 你可以想象,输入自变量空间是一个XY平面 而成本函数则是飘浮在上面的一个曲面 现在,需要考虑的不是函数的斜率 而是在输入空间的寻找前进方向 换句话说,就是让函数输出减小得最快 下山的方向是什么?

在这里插入图片描述

同样的,我们想象一个球向山下滚落 熟悉多变量微积分的人会知道函数的梯度会给你最陡峭的上升方向 也就等同于哪个方向是函数增加最快的方向
在这里插入图片描述

很自然的,用负梯度就可以找到函数下降最快的方向 而且,这个梯度向量的长度实际上是这个最陡斜坡有多陡的指标
在这里插入图片描述

如果你并不熟悉多变量微积分 并且想学习更多关于这方面的内容 你可以看一下可汗学院关于这一章节的内容
在这里插入图片描述

事实上,对于我们来说,最重要的是 原则上这个矢量是可以计算出来的

它会告诉你下山的方向以及会有多陡 知道这些知识就够了,具体的细节并不重要
在这里插入图片描述

因为如果你知道可以通过计算梯度方向来找到函数值变小的方向并向山下走出第一步 那么你就可以重复这个过程
在这里插入图片描述

这个原理在拥有13000个自变量的函式中同样适用 想象一下,把有13000个权重和偏差的神经网络
在这里插入图片描述

放入一个超大的向量中 成本函数的负梯度只是一个简单的矢量 它是一个超级大的输入变量空间中的一个方向
在这里插入图片描述

告诉你哪个方向会让成本函数最快地变小

在这里插入图片描述

当然,对于我们专门设计的成本函数而言 改变权重和偏差意味着 让神经网络对每一组训练数据的输出
在这里插入图片描述

看起来不像是十个数字中随机的一个
在这里插入图片描述

而是实际上我们想让它输出的那一个 要知道,这个成本函式是每一组训练数据效果的平均 所以如果你减小这个函数值 意味着改善了所以样本的表现
在这里插入图片描述

让这个梯度计算更有效率的算法是神经网络学习的核心 它叫做反向传播 这是我下个视频重点要讲的 其中我非常想花时间讲一讲 对于一组特定的训练数据 每一个权重和偏差到底发生了什么

参考

https://youtu.be/IHZwWFHWa-w?si=_TERPs9nz8S5lU8n

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1977521.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【RDMA项目】如何使用rdma-core进行调用开发一个实战项目

RDMA (Remote Direct Memory Access) 是一种网络协议,可以在计算节点之间实现高效的内存数据传输,而无需CPU的干预。rdma-core 是 RDMA 的一个用户空间库,提供了一些简单易用的接口来使用 RDMA 功能。 开发了一套高级 RDMA(远程直…

浅谈Trie树算法(c++)

文章目录 于是他错误的点名开始了题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示思路AC代码 01Trie求n个数两两异或的最大值AC代码 Nikitosh 和异或思路AC代码 The XOR-longest Path思路AC代码 又称字典树,用边来代表字母,而从根结…

《最终幻想14》手游版已获准在中国发行

上个月,有传言称史克威尔和腾讯正在合作开发前者大获成功的MMORPG《最终幻想14》的手机版。Niko Partners分析师丹尼尔艾哈迈德在推特上提到,中国国家新闻出版署已批准发行新一批进口游戏,其中包括《最终幻想14》的手机版,名为《最…

AI智能名片小程序:匹配法则下的粉丝经济新探索

摘要:在数字化时代,企业与消费者之间的互动方式正经历着前所未有的变革。AI智能名片小程序作为这一变革中的新兴产物,不仅重塑了传统商务交流的场景,更在匹配法则的指导下,深刻影响着品牌与粉丝关系的构建与维护。本文…

网络安全数字化转型

1. 背景介绍 在当今数字化浪潮席卷全球的背景下,推行数字化网络安全建设显得尤为迫切与重要,这主要根植于两大核心驱动力:实战挑战的严峻性与行业发展的迫切需求。 1.1. 实战难题的迫切应对 随着信息技术的飞速发展,网络…

全球汽车用粉末涂料市场规划预测:2030年市场规模将接近199亿元,未来六年CAGR为4.3%

一、引言 随着全球汽车行业的持续发展,汽车用粉末涂料作为车辆涂装的重要材料,其市场重要性日益凸显。本文旨在探索汽车用粉末涂料行业的发展趋势、潜在商机及其未来展望。 二、市场趋势 全球汽车用粉末涂料市场的增长主要受全球汽车产量增加、消费者对…

OpenCV||超详细的几何变换

2D图像几何变换的33矩阵: 图像常见的几何变换: 图像来源:《OpenCV 4.5计算机视觉开发实战:基于Python》作者:朱文伟 李建英; 1. 平移(Translation) 在OpenCV中,平移不是…

如果你感到焦虑、精神内耗,那就跑步去吧!

点击上方△腾阳 关注 转载请联系授权 你好,我是腾阳。 深夜里,你是否辗转反侧、思绪万千却难以入眠? 面对工作截止日期压力山大、心力交瘁,但总提不起神,工作效率低下? 人际交往中,被误解和…

windows 下使用MSYS2编译ffmpeg

1. 下载ffmpeg ,最新源码下载FFmpeghttps://ffmpeg.org/ 2.下载MSYS2,并安装(正常操作步骤) MSYS2Software Distribution and Building Platform for Windowshttps://www.msys2.org/3. 安装好MSYS2后,配置编译环境 打开mingw64.e

Python 进度条:告别枯燥等待,让你的程序动感十足!

在日常编程中,我们经常会遇到需要处理耗时任务的情况,例如文件下载、数据处理等等。看着程序运行,却只能干巴巴地等待,实在令人心焦。 别担心!今天就来教你如何使用 Python 创建炫酷的进度条,告别枯燥等待…

董明珠:格力正在开发“不要电”的空调!

8月2日,格力电器在河北召开“格力冰洗生活电器战略发布会”。格力电器董事长兼总裁董明珠在现场发表讲话,透露格力正在开发一个“不要电”的空调。据悉,2012年格力就开始开发这个技术。 董明珠表示,现在的光伏发电需要通过逆变器…

横屏无水印风景视频素材去哪里找啊?横屏无水印素材库分享

在进行视频创作和编辑时,拥有高质量的横屏无水印风景视频素材非常关键,尤其是当你打造旅行记录、自然纪录片或是背景视频等内容时。这类素材不仅能显著提升你的作品的视觉效果,还能加强其感染力。然而,许多创作者在寻找合适的风景…

每日学术速递8.4

1.Sparse vs Contiguous Adversarial Pixel Perturbations in Multimodal 标题: Models: An Empirical Analysis 多模态模型中的稀疏与连续对抗性像素扰动:实证分析 作者: Cristian-Alexandru Botocan, Raphael Meier, Ljiljana Dolamic 文…

eslint配置忽略目录和文件

本部分选自《基于vite构建vue3开发环境——eslint整合》。 默认配置下,咱们引入第三方的svg库js文件也会被eslint检查: 在eslint.config.js中增加配置: 注意 这里不能写成./src/assets,除了忽略整个目录,也可以通过通配…

golang命名异常 error var Xxx should have name of the form ErrFoo (ST1012) 解决方法

异常原因分析 这个提示通常发生在我们使用var 定义一个变量来接收 error异常信息时的变量名称不规范所致。 其实这里的异常信息“ error var Xxx should have name of the form ErrFoo (ST1012)” 这个提示里面也已经提醒了" 变量 Xxx 的名称格式应该为 ErrFoo ", …

网络编程相关

关于ipv4和v6 ipv4小细节-------公网和私有地址 端口 InetAddress 协议 UDP、TCP UDP通信程序 发送(单播): 接收(单播): UDP三种通信方式 单播和广播代码几乎相同,就是将: InetAddr…

第17课 Scratch入门篇:时钟

时钟 故事背景: 在一个遥远的科技星球上,时间对于居民们来说无比珍贵。这个星球上的居民们都是技术高手,他们使用先进的编程技术来管理自己的生活。然而,星球上的时间系统最近出现了故障,导致时间的流逝变得不稳定。为…

【Material-UI 组件】 Autocomplete中的 Free Solo 模式详解

文章目录 一、组件概述1.1 Free Solo 的定义1.2 适用场景 二、基础用法2.1 实现 Free Solo 模式2.2 注意事项 三、高级配置3.1 增强用户体验的设置3.2 可创建项 四、最佳实践4.1 性能优化4.2 可访问性4.3 处理非字符串选项 五、总结 Free Solo 模式允许用户输入任意值&#xff…

将本地微服务发布到docker镜像

描述 将本地springboot微服务发布到docker镜像中并启动容器 第一步 先本地idea创建一个简单的springboot服务,不需要连接数据库相关操作,只包含简单的接口功能做验证。 相关测试代码如下所示 package com.itwopqq.booting;import org.springframewor…