从0开始学习机器学习--Day14--如何优化神经网络的代价函数

news2024/11/28 7:24:25

在上一篇文章中,解析了神经网络处理分类问题的过程,类似的,在处理多元分类问题时,神经网络会按照类型分成多个输出层的神经元来表示,如下:

处理4个分类问题时的神经网络

我们可以看到,相较于之前的分类问题y=[1,2,3,4],,这里用的输出是以向量的方式来区分行人、汽车、摩托车还有卡车四种图片,即输出四维向量与原始数据去对比是否预测成功。

神经网络的代价函数(Cost function of Neural Networks)

在学习代价函数之前,让我们先了解一些基本知识。在神经网络中,我们把L记为神经网络的层数, s_{l}则是对应层数的神经元个数。通常我们将神经网络的分类问题分为二元和多元,当学习问题是二元分类问题时,我们只有一个输出单元,其值为0或1,此时s_{L}=1,也记作K=1;如果是多元分类,则输出的是K维向量。

神经网络对分类问题的代价函数

如图,神经网络的代价函数跟之前在逻辑回归里讲的一样,采用一般形式。不同的是,由于神经网络的输出不止一个,在形式上相应地有些许改变,我们可以看到和原来的相比多了求和符号\sum_{k=1}^{K},其实这是代表了把每个输出和每个函数值的损失都加在一起,这也是这个求和符号写在了里面,就是为了说明其跟y_{k}^{i}也有关系,后面正则项的求和符号则是因为我们前文讲过的神经网络里参数项的矩阵维度发生了改变,注意这里参数的下标ji都是从1开始,这主要是为了忽略偏置单元,在逻辑回归里我们也正是这样做的。

反向传播算法(Backpropagation algorithm)

跟梯度下降一样,反向传播算法的用途也是用来优化代价函数,让我们先回顾只有一个训练样本时神经网络正常的计算过程:

神经网络正向传播时的计算过程

如图,神经网络正向传播时是从输入层开始,逐层计算知道最后输出层输出a^{(4)}

而反向传播算法,顾名思义,就是从输出层逐层往前计算。不同的是,这里计算的是每个神经元的误差\delta_{j}^{l}。初始的误差\delta_{j}^{4}=a_{j}^{4}-y_{j},后续第三、第二层的误差为\delta_{3}=(\theta^{3})^{T}\delta^{(4)}.*g^{'}(z^{(3)})\delta_{2}=(\theta^{2})^{T}\delta^{(3)}.*g^{'}(z^{(2)}),这里的g^{'}(z^{(3)})其实等于a^{(3)}(1-a^{(3)})。之所以没有计算第一层的误差是因为第一层是输入层,是神经网络观察训练集得出的直观数据。而如果忽略正则项,那么对代价函数求偏导的式子则可以写成(\frac{\partial}{\partial \theta_{ij}^{l}})J(\theta)=a_{j}^{l}\delta_{i}^{l+1},联系到之前所说对g函数求偏导的变形,其实能看出这里的式子就是将几个式子做了联立而已。

而对于有m个数据的训练集,神经网络将两个算法结合起来计算就是:

神经网络结合两个算法的计算过程

如图,我们可以看到,对于一般的数据集,神经网络先是走正向传播算法,计算出输出层的每个神经元的激活项a^{(l)}(注意,这里的\triangle实际上就是上幅图提到的\delta,只是写成了大写,i从1开始则是因为不计算偏置单元),然后再走反向传播算法,将每个神经元的误差\delta^{(L)}计算出来,乘在一起后再加上正则项,就形成了我们的:D_{ij}^{(l)}

学习内容来自于b站吴恩达大佬课程:https://www.bilibili.com/video/BV1By4y1J7A5?spm_id_from=333.788.player.switch&vd_source=867b8ecbd62561f6cb9b4a83a368f691&p=1

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

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

相关文章

LINUX下的Myql:库的操作

目录 1.库的创建 2.字符集和校验集 1.查看db1默认的字符集合校验集 2.设置字符集和校验集 3.库的查看 4.数据库的修改 5.数据库的删除 6.数据库的备份 1.库的创建 create database db1; 创建一个名为db1的数据库,LINUX会创建一个名为db1的文件夹。 show data…

Java多线程详解⑤(全程干货!!!)线程安全问题 || 锁 || synchronized

这里是Themberfue 在上一节的最后,我们讨论两个线程同时对一个变量累加所产生的现象 在这一节中,我们将更加详细地解释这个现象背后发生的原因以及该如何解决这样类似的现象 线程安全问题 public class Demo15 {private static int count 0;public …

【taro react】 ---- 常用自定义 React Hooks 的实现【六】之类渐入动画效果的轮播

1. 效果 2. 场景 css 效果实现:可以看到效果图中就是一个图片从小到大的切换动画效果,这个效果很简单,使用 css 的 transform 的 scale 来实现图片的从小到大的效果,切换就更加简单了,不管是 opacity 还是 visibility 都可以实现图片的隐藏和显示的切换。React.Children.m…

杨辉三角,洗牌算法

杨辉三角 给定一个非负整数numRows&#xff0c;生成杨辉三角的前numRows行。 在杨辉三角中&#xff0c;每个数是它的左上方和右上方的数的和。 public List<List<Integer>> generate(int numRows){List<List<Integer>> ret new ArrayList<>();…

ssm068海鲜自助餐厅系统+vue(论文+源码)_kaic

设计题目&#xff1a;海鲜自助餐厅系统的设计与实现 摘 要 网络技术和计算机技术发展至今&#xff0c;已经拥有了深厚的理论基础&#xff0c;并在现实中进行了充分运用&#xff0c;尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代&#xff0c;所…

ENSP ISOLATE隔离区域

如果用户想进行二层隔离&#xff0c;用户可以将不同的端口加入不同的VLAN&#xff0c;但这样会浪费有限的VLAN资源。采用端口隔离功能&#xff0c;可以实现同一VLAN内端口之间的隔离。用户只需要将端口加入到隔离组中&#xff0c;就可以实现隔离组内端口之间二层数据的隔离。端…

自攻螺钉的世纪演变:探索关键设计与应用

自攻螺钉作为现代工业和建筑中的不可或缺的标准部件&#xff0c;经过了超过100年的发展和创新。从1914年最早的铁螺钉设计到今天的自钻自攻螺钉&#xff0c;自攻螺钉的设计不断优化&#xff0c;以适应更复杂的应用需求。本文将回顾自攻螺钉的演变历程&#xff0c;分析其设计原理…

KTHREAD结构-->ApcState

1. ApcListHead[2] 2. KernelApcInProgress

深入浅出 Spring Boot 与 Shiro:构建安全认证与权限管理框架

一、Shiro框架概念 &#xff08;一&#xff09;Shiro框架概念 1.概念&#xff1a; Shiro是apache旗下一个开源安全框架&#xff0c;它对软件系统中的安全认证相关功能进行了封装&#xff0c;实现了用户身份认证&#xff0c;权限授权、加密、会话管理等功能&#xff0c;组成一…

魅力标签云,奇幻词云图 —— 数据可视化新境界

目录 目的原理详解建议 标签云&#xff1a;用于汇总生成的标签&#xff0c;一般是独立词汇运行前的准备代码示例 词云&#xff1a;对本文中出现频率较高的词&#xff0c;视觉上突出显示总结 目的 掌握文本与文档可视化&#xff1a;使用特定软件或编程语言&#xff08;如Python…

正则表达式在Kotlin中的应用:提取图片链接

在现代的Web开发中&#xff0c;经常需要从网页内容中提取特定的数据&#xff0c;例如图片链接。Kotlin作为一种现代的编程语言&#xff0c;提供了强大的网络请求和文本处理能力。本文将介绍如何使用Kotlin结合正则表达式来提取网页中的图片链接。 正则表达式基础 正则表达式是…

鉴源实验室·加密技术在汽车系统中的应用

随着汽车技术的快速发展&#xff0c;现代汽车已经不再是简单的交通工具&#xff0c;而是融合了多种智能功能的移动终端。无论是自动驾驶、车联网&#xff08;V2X&#xff09;&#xff0c;还是车内娱乐系统&#xff0c;数据传输和存储已经成为汽车生态系统中的关键环节。然而&am…

UE5.1 控制台设置帧率

仅个人记录&#xff0c;未经过严格验证。 也可通过控制台命令蓝图节点&#xff0c;在运行时执行 锁帧&#xff1a; 0->120帧 1-》60帧

SpringCloud Sentinel 服务治理详解

雪崩问题 微服务调用链路中的某个服务故障&#xff0c;引起整个链路中的所有微服务都不可用&#xff0c;这就是雪崩。 雪崩问题产生的原因&#xff1a; 微服务相互调用&#xff0c;服务提供者出现故障或阻塞。服务调用者没有做好异常处理&#xff0c;导致自身故障。调用链中的…

前端基础-html-注册界面

&#xff08;200粉啦&#xff0c;感谢大家的关注~ 一起加油吧~&#xff09; 浅浅分享下作业&#xff0c;大佬轻喷~ 网页最终效果&#xff1a; 详细代码&#xff1a; ​ <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"…

《TCP/IP网络编程》学习笔记 | Chapter 4:基于TCP的服务器端/客户端(2)

《TCP/IP网络编程》学习笔记 | Chapter 4&#xff1a;基于TCP的服务器端/客户端&#xff08;2&#xff09; 《TCP/IP网络编程》学习笔记 | Chapter 4&#xff1a;基于TCP的服务器端/客户端&#xff08;2&#xff09;回声客户端的完美实现回声客户端的问题回声客户端问题的解决方…

使用 FFmpeg 进行音视频转换的相关命令行参数解释

FFmpeg 是一个强大的多媒体框架&#xff0c;能够解码、编码、转码、录制、播放以及流化几乎所有类型的音频和视频。它广泛应用于音视频处理任务中&#xff0c;包括格式转换、剪辑、合并、水印添加等。本文中简鹿办公将介绍如何使用 FFmpeg 进行一些常见的音视频转换任务。 安装…

ctfshow(316)--XSS漏洞--反射性XSS

Web316 进入界面&#xff1a; 审计 显示是关于反射性XSS的题目。 思路 首先想到利用XSS平台解题&#xff0c;看其他师傅的wp提示flag是在cookie中。 当前页面的cookie是flagyou%20are%20not%20admin%20no%20flag。 但是这里我使用XSS平台&#xff0c;显示的cookie还是这样…

从0开始学习Linux——网络配置

往期目录&#xff1a; 从0开始学习Linux——简介&安装 从0开始学习Linux——搭建属于自己的Linux虚拟机 从0开始学习Linux——文本编辑器 从0开始学习Linux——Yum工具 从0开始学习Linux——远程连接工具 从0开始学习Linux——文件目录 上一个教程中&#xff0c;我们了解了…

python在word中插入图片

本文讲解python如何在word文档中插入图片&#xff0c;以及指定插入图片的段落。 1、在新建的word文档中插入图片 import win32com.client as win32 from win32com.client import constants # 1&#xff09;打开word应用程序 doc_app win32.gencache.EnsureDispatch(Word.App…