刘知远LLM——神经网络基础

news2024/11/25 8:17:12

在这里插入图片描述

文章目录

  • 神经网络基础
    • 基本构成
    • 如何训练?
  • Word2Vec例子
    • 负采样:
  • 循环神经网络 RNN
  • 门控计算单元 GRU
  • 长短时记忆网络 LSTM
    • 遗忘门
    • 输入门
    • 输出门
    • 双向RNN
    • 卷积神经网络 CNN
    • pytorch实战

神经网络基础

基本构成

全称:人工神经网络。启发于生物神经细胞
单个神经元
在这里插入图片描述
单层神经网络
在这里插入图片描述
前向计算
在这里插入图片描述
激活函数的作用:没有激活函数的话,多层神经网络就会退化为单层
在这里插入图片描述
输出层
线性输出:回归问题
sigmoid:二分类
softmax:多分类
在这里插入图片描述
在这里插入图片描述

如何训练?

  • 训练目标:
    对回归问题:计算最小均方差
    在这里插入图片描述
    对分类问题:计算交叉熵
    在这里插入图片描述
  • 最小化损失函数:梯度下降法
    在这里插入图片描述
    求导梯度从而进行梯度下降
    在这里插入图片描述
    求微分的链式法则
    在这里插入图片描述
    计算图
    前向
    反向

Word2Vec例子

  • word2Vec可以学到词与词之间的关系
    例如:king-Queen 与 man-woman 近似于平行,这两对词的差异也类似
    在这里插入图片描述
  • 实现:两类模型
    在这里插入图片描述

滑动窗口构造训练数据:目标词target ;其他词context
CBOW根据context预测target,skip-Gram相反
在这里插入图片描述
输出词表的概率分布,最大的概率应该对应target
在这里插入图片描述
skip-Gram:预测context
在这里插入图片描述

  • 问题:词表非常大,计算量大。
  • 解决方法:负采样、分层softmax

负采样:

只采样一小部分作为负例子,词频越高采样概率越大。3/4可以保证低频词也有一定的采样概率
在这里插入图片描述
只采样四个词,其他词不参与计算
在这里插入图片描述

循环神经网络 RNN

处理序列数据时会进行顺序记忆

  • 网络结构
    -
    注意 h i h_i hi会有 h i − 1 h_{i-1} hi1部分的输入

在这里插入图片描述
在这里插入图片描述
选取概率最大的词作为下一个词
在这里插入图片描述
应用场景:序列标注、序列预测、图片描述、文本分类
优点:处理变长数据、模型大小不会随输入增大而增大、参数共享、利用历史信息
缺点:顺序计算时间慢、后面的单元很难获得较早、时间的信息、太多链式的梯度计算–梯度爆炸/消失

变体:GRU/LTSM
核心:计算时保留周围的记忆单元进行数据处理,以捕捉到长距离的依赖性

门控计算单元 GRU

门控机制:对当前信息进行筛选,决定哪些信息会传到下一层。
更新门:当前信息 x i x_i xi和过去隐藏状态 h i − 1 h_{i-1} hi1的比重问题
重置门:上一层的隐藏状态对当前状态的激活
在这里插入图片描述
重置门接近零时, h i h_i hi就和 h i − 1 h_{i-1} hi1没什么关系了

在这里插入图片描述
更新门 z i z_i zi接近零时, h i h_i hi直接由当前输入得到
在这里插入图片描述

长短时记忆网络 LSTM

网络结构
在这里插入图片描述
关键改变:增加cell state 学习长期的依赖关系
通过门控添加cell的信息
在这里插入图片描述

遗忘门

来决定上一个状态有哪些信息可以从cell中移除

在这里插入图片描述

输入门

决定当前信息有哪些可以存到cell中
在这里插入图片描述
在这里插入图片描述

输出门

在这里插入图片描述
总结:做堆叠或者网络很深时,性能很好。缓解梯度的问题

双向RNN

不仅仅取决于过去,还会取决于未来的数据
在这里插入图片描述
总结RNN类算法:顺序记忆,但存在梯度问题

卷积神经网络 CNN

图像领域,考虑结构特殊性,也可以用于NLP,如情感分类和关系分类
在这里插入图片描述
网络结构:
在这里插入图片描述
输入层:
在这里插入图片描述
滑动卷积核
在这里插入图片描述
CNN擅长提取局部特征;RNN适用于变长文本
在这里插入图片描述

pytorch实战

在这里插入图片描述

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

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

相关文章

LeetCode 0094.二叉树的中序遍历:递归/迭代(栈模拟递归)

【LetMeFly】94.二叉树的中序遍历:递归/迭代(栈模拟递归) 力扣题目链接:https://leetcode.cn/problems/binary-tree-inorder-traversal/ 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 示例 1: 输入:root […

第三百一十六回

[tod] 我们在上一章回中介绍了"如何在输入框中处理光标"相关的内容,本章回中将介绍如何添加输入框默认值.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 在项目中经常使用输入框获取用户输入的内容,有时候在输入框中反复输入相…

Modern C++ 内存篇2 - 关于relocation的思考

在上一节《Modern C 内存篇1 - std::allocator VS pmr-CSDN博客》我们详细讨论了关于如何判断用不用memmove优化的代码,结论可以总结为: 只有_Tp是trivial 且 用std::allocator 才会调用memmove。 所有case如下表格所示: No_Tpallocator typ…

Rust基础拾遗--核心功能

Rust基础拾遗 前言1.所有权与移动1.1 所有权 2.引用3.特型与泛型简介3.1 使用特型3.2 特型对象3.3 泛型函数与类型参数 4.实用工具特型5.闭包 前言 通过Rust程序设计-第二版笔记的形式对Rust相关重点知识进行汇总,读者通读此系列文章就可以轻松的把该语言基础捡起来…

如何在 Windows 上恢复已删除的 Excel 文件

许多公司和个人在 Excel 电子表格中保存有价值的信息。当会议需要某个重要的 Excel 文件时,突然意识到您已删除或丢失该文件可能会造成严重问题。不用担心。我们将向您展示在 Windows 计算机上恢复已删除的 Excel 文件的多种方法。 如何在 Windows 上恢复已删除的 E…

JS中常用占位符使用方法详解_ |%s|%d|%f|%o|%O|%c|

在 JavaScript 中,%s 是一种字符串格式化占位符,用于将字符串插入到另一个字符串中的指定位置。这种方法基于 C 语言的 printf() 函数,但在 JavaScript 中有一些变化。 在 JavaScript 中,%s 可以接受任何类型的值,并将…

【Spring】Bean 的实例化方式

Spring 为 Bean 提供了多种实例化方式,通常包括4种方式 也就是说在 Spring 中为 Bean 对象的创建准备了多种方案,目的是:更加灵活 第一种:通过构造方法实例化 第二种:通过简单工厂模式实例化 第三种:通过…

【九章斩题录】Leetcode:判定是否互为字符重排(C/C++)

面试题 01.02. 判定是否互为字符重排 ✅ 模板:C class Solution { public:bool CheckPermutation(string s1, string s2) {} }; 「 法一 」排序 💡 思路:看到题目中说 "重新排列后能否变成另一个字符串",等等……重新…

读书笔记之《重塑大脑重塑人生》:大脑强大的可塑性

《重塑大脑重塑人生》作者是诺曼道伊奇,原作名: The Brain That Changes Itself: Stories of Personal Triumph from the Frontiers of Brain Science ,于 2015-1-20出版。 诺曼•道伊奇(Norman Doidge)是医学博士,精…

python + numpy test

1. 2. What is the correct syntax to output the type of a variable or object in Python? Syntax of the Python type() functionThe type() function 3. upper() 全大写 lower() 全小写 4. 接下来是Numpy部分 1. What is a correct syntax to check the number of di…

图(高阶数据结构)

目录 一、图的基本概念 二、图的存储结构 2.1 邻接矩阵 2.2 邻接表 三、图的遍历 3.1 广度优先遍历 3.2 深度优先遍历 四、最小生成树 4.1 Kruskal算法 4.2 Prim算法 五、最短路径 5.1 单源最短路径-Dijkstra算法 5.2 单源最短路径-Bellman-Ford算法 5.3 多源最…

一个基于 .NET 7 + Vue.js 的前后端分离的通用后台管理系统框架 - DncZeus

前言 今天给大家推荐一个基于.NET 7 Vue.js(iview-admin) 的前后端分离的通用后台权限(页面访问、操作按钮控制)管理系统框架:DncZeus。 官方项目简介 DncZeus是一个基于 .NET 7 Vue.js 的前后端分离的通用后台管理系统框架。后端使用.NET 7 Entity Framework…

Qt视频播放器项目

一.创建项目 二.设计UI 按钮与名称的对应 打开视频按钮 -> pushButton_Open 播放按钮 -> pushButton_Play 暂停按钮 -> pushButton_Pause 停止按钮 -> pushButton_Stop 音量按钮 -> pushButton_Sound设置图标 在项目目录下创建images文件夹,把图标…

计算机毕业设计SSM基于的奶茶店预约订单系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: vue mybatis Maven mysql5.7或8.0等等组成,B…

Java实现固始鹅块销售系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 鹅块类型模块2.3 固始鹅块模块2.4 鹅块订单模块2.5 评论管理模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 鹅块类型表3.2.2 鹅块表3.2.3 鹅块订单表3.2.4 鹅块评论表 四、系统展示五、核心代码5.…

13 年后,我如何用 Go 编写 HTTP 服务(译)

原文:Mat Ryer - 2024.02.09 大约六年前,我写了一篇博客文章,概述了我是如何用 Go 编写 HTTP 服务的,现在我再次告诉你,我是如何写 HTTP 服务的。 那篇原始的文章引发了一些热烈的讨论,这些讨论影响了我今…

Python静态方法和类方法的区别和应用

实际上,Python 完全支持定义类方法,甚至支持定义静态方法。Python 的类方法和静态方法很相似,它们都推荐使用类来调用(其实也可使用对象来调用)。 类方法和静态方法的区别在于,Python会自动绑定类方法的第…

【【C++类与对象(下)】】

1. 再谈构造函数 构造函数体赋值 在创建对象时,编译器会通过调用构造函数,给对象中的各个成员变量一个合适的初始值: class Date { public:// 构造函数Date(int year 0, int month 1, int day 1){_year year;_month month;_day day;}…

Acwing---836. 合并集合

合并集合 1.题目2.基本思想3.代码实现 1.题目 一共有 n n n 个数,编号是 1 ∼ n 1∼n 1∼n,最开始每个数各自在一个集合中。 现在要进行 m m m 个操作,操作共有两种: M a b,将编号为 a a a 和 b b b 的两个数所…

Netty应用(二) 之 ByteBuffer

目录 4.ByteBuffer详解 4.1 ByteBuffer为什么做成一个抽象类? 4.2 ByteBuffer是抽象类,他的主要实现类为 4.3 ByteBuffer的获取方式 4.4 核心结构(NIO的ByteBuffer底层是啥结构,以及读写模式都是根据这些核心结构进行维护的&a…