神经网络与深度学习 - 神经网络基础

1.2 神经网络基础

学习目标

  • 知道逻辑回归的算法计算输出、损失函数
  • 知道导数的计算图
  • 知道逻辑回归的梯度下降算法
  • 知道多样本的向量计算

应用

  • 应用完成向量化运算
  • 应用完成一个单神经元神经网络的结构

1.2.1 Logistic回归

逻辑回归是一个主要用于二分分类的算法。给定一个特征向量 x ,输出该样本属于类别1的预测概率 y ^ = P ( y = 1 ∣ x ) \hat{y} = P(y=1|x) y^=P(y=1∣x)

参数
  • 输入的特征向量: x ∈ R n x x \in \mathbb{R}^{n_x} xRnx
  • 用于训练的标签: y ∈ { 0 , 1 } y \in \{0,1\} y{0,1}
  • 参数:权重 w ∈ R n x w \in \mathbb{R}^{n_x} wRnx ,偏置 b ∈ R b \in \mathbb{R} bR
  • 输出预测结果: y ^ = σ ( w T x + b ) = σ ( θ T x ) \hat{y} = \sigma(w^T x + b) = \sigma(\theta^T x) y^=σ(wTx+b)=σ(θTx)
  • Sigmoid 函数: σ ( z ) = 1 1 + e − z \sigma(z) = \frac{1}{1+e^{-z}} σ(z)=1+ez1

性质

  1. 如果z的结果非常大,那么S的结果接近于1
  2. 如果z的结果较小或者是非常大的负数,那么S的结果接近于0
    在这里插入图片描述
    在这里插入图片描述
    例如:
    在这里插入图片描述

逻辑回归损失函数与代价函数

损失函数的理解

逻辑回归通常使用以下损失函数定义单个训练样本的表现:

L ( y , y ^ ) = ( y ⋅ log ⁡ ( y ^ ) − ( 1 − y ) ⋅ log ⁡ ( 1 − y ^ ) ) L(y, \hat{y}) = (y \cdot \log(\hat{y}) - (1 - y) \cdot \log(1 - \hat{y})) L(y,y^)=(ylog(y^)(1y)log(1y^))

该式子的理解如下:

  • 如果 y = 1 ,损失为 − log ⁡ ( y ^ ) -\log(\hat{y}) log(y^),那么要想损失越小, y ^ \hat{y} y^的值必须越大,即越趋近于或者等于 1。
  • 如果 y = 0 ,损失为 log ⁡ ( 1 − y ^ ) \log(1 - \hat{y}) log(1y^),那么要想损失越小, y ^ \hat{y} y^ 的值越小,即趋近于或者等于 0。

代价函数

损失函数是在单个训练样本中定义的,它衡量了模型在单个训练样本上的表现。而代价函数(cost function)衡量的是在全体训练样本上的表现,即衡量参数 ( w ) 和 ( b ) 的效果。代价函数是所有训练样本损失的平均值,定义如下:

J ( w , b ) = 1 m ∑ i = 1 m L ( y ^ ( i ) , y ( i ) ) J(w, b) = \frac{1}{m} \sum_{i=1}^{m} L(\hat{y}(i), y(i)) J(w,b)=m1i=1mL(y^(i),y(i))

其中 m 是训练样本的数量, y ^ ( i ) \hat{y}(i) y^(i)是模型预测的第 i i i个样本的输出, y ( i ) y(i) y(i)是第 i i i个样本的实际标签。

1.2.1.2 逻辑回归损失函数

损失函数用于衡量预测结果与真实值之间的误差。逻辑回归一般使用以下损失函数:
L ( y ^ , y ) = − ( y log ⁡ ( y ^ ) + ( 1 − y ) log ⁡ ( 1 − y ^ ) L(\hat{y}, y) = -(y \log(\hat{y}) + (1 - y) \log(1 - \hat{y}) L(y^,y)=(ylog(y^)+(1y)log(1y^)

1.2.2 梯度下降算法

目的:使损失函数的值找到最小值。

方式:梯度下降。梯度的方向指出了函数增长最快的方向,按梯度的负方向走,函数值降低得最快。

函数的梯度(gradient)指出了函数的最陡增长方向。梯度的方向走,函数增长得就越快。那么按梯度的负方向走,函数值自然就降低得最快了。模型的训练目标即是寻找合适的 w 与 b 以最小化代价函数值。假设 w 与 b 都是一维实数,那么可以得到如下的 J 关于 w 与 b 的图:

在这里插入图片描述

参数更新公式:
w : = w − α d J ( w , b ) d w w := w - \alpha \frac{dJ(w, b)}{dw} w:=wαdwdJ(w,b)
b : = b − α d J ( w , b ) d b b := b - \alpha \frac{dJ(w, b)}{db} b:=bαdbdJ(w,b)

其中 α \alpha α 表示学习速率。

注:其中 α 表示学习速率,即每次更新的 w 的步伐长度。当 w 大于最优解 w′ 时,导数大于 0,那么 w 就会向更小的方向更新。反之当 w 小于最优解 w′ 时,导数小于 0,那么 w 就会向更大的方向更新。迭代直到收敛。

通过平面来理解梯度下降过程:

在这里插入图片描述

1.2.3 导数

导数可以理解为某一点处的斜率。导数的计算可以通过导数计算图来辅助理解。

  • 各点处的导数值一样
    在这里插入图片描述
    我们看到这里有一条直线,这条直线的斜率为4。我们来计算一个例子

例:取一点为a=2,那么y的值为8,我们稍微增加a的值为a=2.001,那么y的值为8.004,也就是当a增加了0.001,随后y增加了0.004,即4倍

那么我们的这个斜率可以理解为当一个点偏移一个不可估量的小的值,所增加的为4倍。

  • 各点的导数值不全一致
    在这里插入图片描述例:取一点为a=2,那么y的值为4,我们稍微增加a的值为a=2.001,那么y的值约等于4.004(4.004001),也就是当a增加了0.001,随后y增加了4倍

取一点为a=5,那么y的值为25,我们稍微增加a的值为a=5.001,那么y的值约等于25.01(25.010001),也就是当a增加了0.001,随后y增加了10倍

可以得出该函数的导数2为2a。

  • 更多函数的导数结果
    在这里插入图片描述

1.2.3.1 导数计算图

导数计算图说明了含有多个变量的函数导数的计算流程。

那么接下来我们来看看含有多个变量的到导数流程图,假设

𝐽(𝑎,𝑏,𝑐)=3(𝑎+b𝑐)

我们以下面的流程图代替
在这里插入图片描述
这样就相当于从左到右计算出结果,然后从后往前计算出导数

1.2.3.2 逻辑回归的梯度下降

逻辑回归的梯度下降过程涉及到计算损失函数相对于参数的导数,并更新参数以最小化损失。

1.2.4 向量化编程

向量化编程避免了显式的循环,利用如Numpy这类库进行高效的数组运算。

import numpy as np
import time
a = np.random.rand(100000)
b = np.random.rand(100000)
  • 第一种方法
# 第一种for 循环
c = 0
start = time.time()
for i in range(100000):
    c += a[i]*b[i]
end = time.time()

print("计算所用时间%s " % str(1000*(end-start)) + "ms")
  • 第二种向量化方式使用np.dot
# 向量化运算
start = time.time()
c = np.dot(a, b)
end = time.time()
print("计算所用时间%s " % str(1000*(end-start)) + "ms")

Numpy能够充分的利用并行化,Numpy当中提供了很多函数使用
在这里插入图片描述

1.2.5 正向传播与反向传播

正向传播是指从输入到输出的计算过程,而反向传播是误差从输出层反向传递到输入层的过程,用于计算和更新网络中的参数。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

帝国cms批量取消文章审核-把已审核的文章改成未审核的方法

帝国cms很多人采集的时候,把文章弄成了审核过的文章,或者因为其他的原因,文章都是审核通过,为了seo又不能把全部文章放出来,所以需要把文章弄成未审核以下就是解决本问题的办法 首先来修改后台列表文件,自…

DVWA-XSS(Stored)-httponly分析

拿DVWA的XSS为例子 httponly是微软对cookie做的扩展。这个主要是解决用户的cookie可能被盗用的问题。 接DVWA的分析,发现其实Impossible的cookie都是设置的httponly1,samesite1. 这两个参数的意思参考Set-Cookie HttpOnly:阻止 JavaScript 通过 Documen…

32.768k晶振FC-135R在智能手表手环中的作用

随着智能设备的普及,智能手表和手环已经成为人们日常生活中不可或缺的科技产品。晶振在智能手表手环中的作用是通过传感器给智能手环连接提供信号频率,是很重要的核心部位,这些设备的核心在于其精准的时钟管理和低功耗特性,32.768…

k8s部署grafana beyla实现app应用服务依赖图可观测

k8s部署grafana beyla OS: Static hostname: test Icon name: computer-vm Chassis: vm Machine ID: 22349ac6f9ba406293d0541bcba7c05d Boot ID: 83bb7e5dbf27453c94ff9f1fe88d5f02 Virtualization: vmware Operating System: Ubuntu 22.04.4 LTS Kernel: Linux 5.15.0-105-g…

多物理场仿真对新能源汽车用电机优化分析 衡祖仿真

1、问题所在 为了改善空气质量,减少环境污染,减少对石油的依赖,降低能源安全风险,国家大力倡导发展新能源汽车,大量新能源车企应运而生,竞争日趋激烈。使用经济效率较高的电机对于增强企业市场竞争力非常重…

【Python】已解决:pymssql引发的MSSQLDatabaseException错误

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决:pymssql引发的MSSQLDatabaseException错误 一、分析问题背景 在Python中使用pymssql库与Microsoft SQL Server数据库交互时,有时会遇到pymssql._mss…

EndNote 21 for Mac v21.3 文献管理软件安装

Mac分享吧 文章目录 效果一、下载软件二、开始安装1、双击运行安装EndNote212、升级 三、运行1、打开软件,测试 安装完成!!! 效果 一、下载软件 下载软件 链接:http://www.macfxb.cn 二、开始安装 1、双击运行安装End…

【STM32c8t6】AHT20温湿度采集

【STM32c8t6】AHT20温湿度采集 一、探究目的二、探究原理2.1 I2C2.1. 硬件I2C2.1. 软件I2C 2.2 AHT20数据手册 三、实验过程3.1 CubeMX配置3.2 实物接线图3.3 完整代码3.4 效果展示 四、探究总结 一、探究目的 学习I2C总线通信协议,使用STM32F103完成基于I2C协议的A…

1.1 从图灵机到GPT,人工智能经历了什么?——《带你自学大语言模型》系列

《带你自学大语言模型》系列部分目录及计划,完整版目录见: 带你自学大语言模型系列 —— 前言 第一部分 走进大语言模型(科普向) 第一章 走进大语言模型 1.1 从图灵机到GPT,人工智能经历了什么?1.2 如何让…

计算机网络知识点整理1

目录 激励的话 一、计算机发展的三个阶段 二、互联网标准化工作 三、互联网的组成 边缘部分 核心部分 电路交换的主要特点 分组交换的主要特点 四、三大交换方式的主要特点 总结 激励的话 没关系的,有三分钟热度,就有三分钟收获 一、计算机…

Day8 —— 大数据技术之HBase

HBase快速入门系列 HBase的概述什么是HBase?主要特点和功能包括使用场景 HBase的架构HBase部署与启动HBase基本操作前提条件数据库操作表操作数据的CRUD操作 HBase的不足 HBase的概述 什么是HBase? HBase 是一个开源的、分布式的、面向列的 NoSQL 数据…

项目-博客驿站测试报告

测试用例设计 功能测试 该部分主要围绕对于博客系统的增删改查, 文章通过性审核, 关注功能等进行测试, 还进行了其它一些探索性的测试. 以上是作者设计的全部用例. BUG发现: 问题1: 当多端同时操作同一篇文章BUG 环境: Windows11, Edge和Chrome浏览器 复现步骤: 1.先使用Edg…

6月21日(周五)AH股总结:沪指失守3000点,恒生科技指数跌近2%,多只沪深300ETF午后量能显著放大

内容提要 沪指全天围绕3000点关口来回拉锯,收盘跌破3000点。白酒及光刻机概念集体走低,中芯国际港股跌超2%。CRO医药概念及水利股逆势走强。 A股低开低走 沪指全天围绕3000点关口来回拉锯,收盘跌破3000点,跌0.24%。深成指跌0.04…

几何内核开发-实现自己的NURBS曲线生成API

我去年有一篇帖子,介绍了NURBS曲线生成与显示的实现代码。 https://blog.csdn.net/stonewu/article/details/133387469?spm1001.2014.3001.5501文章浏览阅读323次,点赞4次,收藏2次。搞3D几何内核算法研究,必须学习NURBS样条曲线…

板凳-------unix 网络编程 卷1-1简介

unix网络编程进程通信 unpipc.h https://blog.csdn.net/u010527630/article/details/33814377?spm1001.2014.3001.5502 订阅专栏 1>解压源码unpv22e.tar.gz。 $tar zxvf unpv22e.tar.gz //这样源码就被解压到当前的目录下了 2>运行configure脚本,以生成正确…

indexedDB---掌握浏览器内建数据库的基本用法

1.认识indexedDB IndexedDB 是一个浏览器内建的数据库,它可以存放对象格式的数据,类似本地存储localstore,但是相比localStore 10MB的存储量,indexedDB可存储的数据量远超过这个数值,具体是多少呢? 默认情…

前端初学java

目录 java术语 JDK Javac Java Jdb Jhat JVM JRE JAR JDK下载 运行java文件 字面量 隐式转换 强制转换 注意 运算符 &&、||、&、| Switch 程序入口 String[] args 数组 静态初始化 动态初始化 变量初始化 Java内存 方法 重载 Final 包 …

mac苹果窗口辅助工具:Magnet for mac 2.14.0中文免激活版

Magnet 是一款针对 MacOS 系统的窗口管理工具软件。它能够帮助用户更加高效地管理和组织桌面上的窗口,通过简单的快捷键操作,可以将窗口自动调整到指定的位置和大小,实现多窗口快速布局。Magnet 还支持多显示器环境下的窗口管理,可…

模拟算法讲解

模拟算法是一种基于实际情况模拟的算法,通过模拟现实世界中的系统或过程,来研究它们的性质和行为。模拟算法可以用于解决各种问题,包括物理模拟、经济模拟、社会模拟等。 模拟算法的基本步骤包括: 定义问题:明确需要模…

禁用/屏蔽 Chrome 默认快捷键

Chrome 有一些内置的快捷键,但是它并没有像其他软件一样提供管理快捷键的界面。在某些时候,当我们因为个人需求希望禁用 Chrome 某些快捷键时,又无从下手。 好在有开发者开发了 Chrome 插件,可以禁用 Chrome 快捷键的插件&#x…