基础NLP | 02 深度学习基本原理

文章目录

  • 深度学习基本原理
    • 数学基础
      • 线代
      • numpy 常用操作
      • 导数, 梯度
      • 梯度下降法
        • 梯度下降代码 GradientDescent.py
        • 反向传播
        • 完整的反向传播过程
        • 权重更新方式
  • pytorch
      • 网络结构
        • 全连接层 (线性层)
          • 例子 - 手动实现模拟一个线性层 DNNforward.py
        • 激活函数
          • 激活函数-Sigmoid
          • 激活函数-tanh
          • 激活函数-relu
          • 激活函数-Gelu
          • 激活函数-Softmax
      • 损失函数
        • 均方差
        • 交叉熵
          • 例子-手动实现交叉熵-CrossEntropy.py
      • 代码 - 二分类任务

深度学习基本原理

数学基础

线代

向量运算

  • 加和
  • 内积
  • 向量夹角余旋值

矩阵

  • 加法
  • 乘法
  • 转置

向量到矩阵的互转

reshape

张量 tensor

将三个 2x2的矩阵排列在一起,就可以称之为3x2x2的张量

是神经网络的训练中最为常见的数据形式,维度相同的几个矩阵放在一起

这是2x2x2的张量
[ [ [ 1 , 2 ] , [ 3 , 4 ] ] , [ [ 5 , 6 ] , [ 7 , 8 ] ] ] \begin{bmatrix} [[1,2],\\ [3,4]],\\ [[5,6],\\ [7,8]]\end{bmatrix} [[1,2],[3,4]],[[5,6],[7,8]]
张量的常见操作

转置 x.transpose(1,2)
[ [ [ 1 , 3 ] , [ 2 , 4 ] ] , [ [ 5 , 7 ] , [ 6 , 8 ] ] ] \begin{bmatrix} [[1,3],\\ [2,4]],\\ [[5,7],\\ [6,8]]\end{bmatrix} [[1,3],[2,4]],[[5,7],[6,8]]
在上面的基础上转置 x.transpose(0,1)
[ [ [ 1 , 2 ] , [ 5 , 6 ] ] , [ [ 3 , 4 ] , [ 7 , 8 ] ] ] \begin{bmatrix} [[1,2],\\ [5,6]],\\ [[3,4],\\ [7,8]]\end{bmatrix} [[1,2],[5,6]],[[3,4],[7,8]]

numpy 常用操作

import numpy as np
import torchx = np.array([[1,2,3],[4,5,6]])print(x)
print(x.ndim)#维度  2
print(x.shape)# 获取行列维度  (2, 3)
print(x.size)#一共多少个数字  6
print(x.dtype)#类型   int64
print(np.sum(x))#矩阵内所有元素的和 21
print(np.sum(x,axis=0))#行相加 [5 7 9]
print(np.sum(x,axis=1))#列相加 [ 6 15]
print(np.reshape(x,(3,2)))#变换维度[[1 2]#[3 4]#[5 6]]#[[1.         1.41421356 1.73205081]#[2.         2.23606798 2.44948974]]
print(np.sqrt(x))#每个数字开平方#[[  2.71828183   7.3890561   20.08553692]
# [ 54.59815003 148.4131591  403.42879349]]
print(np.exp(x))#每个数求指数
print(x.transpose())#转置
print(x.flatten())#变成一维向量 [1 2 3 4 5 6]x = torch.FloatTensor(x)
print(x.shape)#torch.Size([2, 3])
#tensor([[  2.7183,   7.3891,  20.0855],# [ 54.5981, 148.4132, 403.4288]])
print(torch.exp(x))
print(torch.sum(x))#tensor(21.)
print(torch.sum(x,dim=0))#tensor([5., 7., 9.])
print(torch.sum(x,dim=1))#tensor([ 6., 15.])
'''
tensor([[1., 4.],[2., 5.],[3., 6.]])
'''
print(x.transpose(1,0))
print(x.flatten())#tensor([1., 2., 3., 4., 5., 6.])

导数, 梯度

表示函数变化的方向
f ′ ( x 0 ) = l i m Δ y Δ x = l i m f ( x 0 + Δ x ) − f ( x 0 ) Δ x f'(x_0) = lim\frac{\Delta y}{\Delta x} = lim \frac{f(x_0 + \Delta x) - f(x_0)}{\Delta x} f(x0)=limΔxΔy=limΔxf(x0+Δx)f(x0)
求导法则

  • 加法
  • 乘法
  • 除法
  • 链式求导

梯度

多元函数的导数

原函数: y = 3 x 1 2 + 4 x 2 2 + 5 x 3 2 y = 3x_1^2 + 4x_2^2 + 5x_3^2 y=3x12+4x22+5x32

导函数: y = 6 x 1 + 8 x 2 + 10 x 3 y = {6x_1 + 8x_2 + 10x_3} y=6x

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

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

相关文章

MySQL面试题及详细答案 155道(001-020)

《前后端面试题》专栏集合了前后端各个知识模块的面试题,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs&…

Ansible安装与入门

目录 Ansible ansible任务执行模式 ansible执行流程 ansible命令执行过程(背会) ansible的安装方式 ansible的程序结构(yum安装为例) ansible的配置文件查找顺序(背会) 核心配置文件 ansible的配置…

【Spring】Spring Boot启动过程源码解析

目录 一、启动入口 二、SpringApplication的构造过程 2.1 设置应用类型 2.2 设置初始化器(Initializer) 2.2.1 获取BootstrapRegistryInitializer对象 2.2.2 获取ApplicationContextInitializer对象 2.3 设置监听器(Listener&#xff…

CDN架构全景图

CDN架构全景图 CDN(内容分发网络)是一种通过在全球范围内部署边缘节点服务器,将内容缓存至离用户最近的位置,从而加速内容分发、降低延迟并减轻源站压力的分布式网络架构。其核心设计目标是优化互联网内容传输效率,提升…

【pytest高阶】源码的走读方法及插件hook

一、pytest源码走读方法 依赖库认知篇 📦这是理解 pytest 源码的 “前菜”,先认识 3 个超重要的小伙伴:iniconfig 📄:像个 “文件小管家”,专门负责读取 ini 配置文件(比如 pytest 的配置&#…

算法训练营day32 动态规划理论基础、509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯

今天开始动态规划的部分! 其实说白了,动态规划我感觉就是找类似递归的规律, 动态规划理论基础 动态规划,英文:Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规…

基于神经网络的手写数字识别系统

基于神经网络的手写数字识别系统 结合模板匹配和神经网络两种方法进行手写数字识别。这个系统包括图像预处理、特征提取、神经网络训练和可视化分析。 %% 基于神经网络的手写数字识别系统%% 清理工作区 clear; clc; close all;%% 加载手写数字数据集 % 使用MATLAB自带的手写数字…

机器学习?一文看懂这门热门技术

🌟 什么是机器学习?一文看懂这门热门技术在人工智能(AI)的大潮中,机器学习(Machine Learning, ML) 无疑是最耀眼的明星之一。它让计算机具备了 “自我学习” 的能力,让自动驾驶、智能…

Spring的初始化钩子

1. PostConstruct JSR-250 标准注解(不是 Spring 独有),用来标记 Bean 初始化完成后要执行的方法。会在 Bean 的构造方法执行完、依赖注入完成后执行。 使用实例: Component public class Demo {PostConstructpublic void init() …

【AI】Java生态对接大语言模型:主流框架深度解析

文章目录1. Deep Java Library (DJL)2. LangChain4j(LLM)3. HuggingFace Inference API4. OpenAI Java Client技术对比矩阵架构设计建议在人工智能浪潮下,大语言模型(LLM)已成为技术核心。Java生态通过以下框架实现高效…

【06】C#入门到精通——C# 多个 .cs文件项目 同一项目下添加多个 .cs文件

文章目录1 单个 .cs文件2 创建 多个 .cs文件2.1 添加Hero类2.1 添加ShowInfo类2.3 关于命名空间的引用2.4 所有.cs文件代码3 test3项目文件下载1 单个 .cs文件 上一讲中 描述游戏中英雄的角色 所有代码在一个.cs文件中, 如果代码很多,类很多&#xff0…

【MySQL基础篇】:MySQL常用数据类型的选择逻辑与正确使用

✨感谢您阅读本篇文章,文章内容是个人学习笔记的整理,如果哪里有误的话还请您指正噢✨ ✨ 个人主页:余辉zmh–CSDN博客 ✨ 文章所属专栏:MySQL篇–CSDN博客 文章目录数据类型1.数据类型分类2.数值类型int整形类型bit位类型float小…

三、搭建springCloudAlibaba2021.1版本分布式微服务-springcloud loadbalancer负载均衡

什么是负责均衡 Spring Cloud LoadBalancer是一个客户端负载均衡器,类似于Ribbon,但是由于Ribbon已经进入维护模式,并且Ribbon 2并不与Ribbon 1相互兼容,所以Spring Cloud全家桶在Spring Cloud Commons项目中,添加了Sp…

Oracle不完全恢复实战指南:从原理到操作详解

核心提示:当误删表、日志损坏或控制文件丢失时,Oracle的不完全恢复是DBA最后的救命稻草。掌握关键恢复技术,可在数据灾难中力挽狂澜。一、不完全恢复核心概念 1. 核心特点 必须关闭数据库:在MOUNT状态下执行重做日志恢复权限要求&…

Linux之shell脚本篇(二)

一、shell编程之if语句引言Linux在shell编程中,通常都是以自上而下运行,但是为了提高其代码严谨性,我们即引入了多条件 控制语句例如:if、for、while、case等语句,有时候针对条件我们还会结合正则表达式去运用。将这些…

如何在android framewrok dump camera data

实现dump 函数 实现1 void dumpBufferToFile(buffer_handle_t* buffer, int width, int height, int frameNum) {void* data NULL;GraphicBufferMapper::getInstance().lock(*buffer, GRALLOC_USAGE_SW_READ_OFTEN, Rect(width, height), &data);char filename[128];sprin…

机器学习中的可解释性:深入理解SHAP值及其应用

机器学习可解释性的重要性在人工智能技术快速发展的2025年,机器学习模型已经深度渗透到医疗诊断、金融风控、司法量刑等关键领域。然而,随着模型复杂度的不断提升,一个根本性矛盾日益凸显:模型预测性能的提升往往以牺牲可解释性为…

.NET9 使用 OData 协议项目实战

.NET 中 ODate 协议介绍 OData(Open Data Protocol) 是一个开放的 Web 协议,用于查询和更新数据。在 .NET 生态系统中,OData 被广泛支持和使用。 主要特性 1. 统一的数据访问方式 提供标准化的查询语法支持 CRUD 操作支持元数据描述 2. 查询能力 标…

Android 性能优化:提升应用启动速度(GC抑制)

前言 在移动应用开发领域,启动速度是用户体验的重要指标。对于Android应用而言,垃圾回收(Garbage Collection, GC)机制虽然是内存管理的核心,但在应用启动期间频繁触发GC会显著拖慢启动速度。本文将深入探讨如何通过GC…

做了一款小而美的本地校验器

需求说明 前阵子收到一则读者留言,指出:市面上AI核稿工具(ProWritingAid,WPS AI Spell Check,Writer,QuillBot,Grammarly)要么收费太高,要么让人担心文章泄露。 如下图所…