自定义神经网络一之Tensor和神经网络

文章目录

    • 前言
    • Tensor
    • 神经网络
      • 深度神经网络DNN
      • 卷积神经网络CNN
        • 卷积神经网络有2大特点
      • 循环神经网络RNN
      • 残差网络ResNet
      • Transformer
        • 自我注意力机制
        • 并行效率
    • 总结

前言

神经网络是AI界的一个基础概念,当下火热的神经网络例如RNN循环神经网络或者CNN卷积神经网络,都是从基础的神经网络发展而来的。
本系列博客的主要目标是自定义一个神经网络,并把训练结果保存到模型文件。想要完成这个目标,了解基础的概念必不可少。
本章主要是介绍Tensor和神经网络基础概念,以及常见的神经网络特点和应用场景等。

Tensor

参考:张量(Tensor):神经网络的基本数据结构
具体的内容可以参考知乎大佬的文章,我们在自定义神经网络的时候,一般用numpy的ndarray类型即可,也就是自己定义多维数组来作为"Tensor"。 相比于Pytorch等训练框架的Tensor来说,ndarray只能在CPU侧进行运算,且没有自动微分等高级特性,不过也足够用了。
Tensor张量是可以说是神经网络运算的基石,一方面是可以代表多维的数据,例如我们常用的二维数组,三维数组,另一方面当下火热的训练框架pytorch和tensorflow都重新定义了Tensor对象,使Tensor对象可以利用GPU的并行计算能力,以及拥有自动微分等特性。

神经网络

参考:什么是神经网络? - 知乎
神经网络模型–数学建模_建立基于神经网络的数学模型-CSDN博客

现在网络上关于神经网络的文章已经很多了,大家根据参考链接学习即可。
简单来说,神经网络就是模拟人的大脑神经进行信息处理的数学模型。
单层神经网络:
image.png
多层神经网络:
image.png

深度神经网络DNN

2006年,Hinton利用预训练方法缓解了局部最优解问题,将隐含层推动到了7层(参考论文:Hinton G E, Salakhutdinov R R. Reducing the Dimensionality of Data with Neural Networks[J]. Science, 2006, 313(5786):504-507.),神经网络真正意义上有了“深度”,由此揭开了深度学习的热潮。这里的“深度”并没有固定的定义——在语音识别中4层网络就能够被认为是“较深的”,而在图像识别中20层以上的网络屡见不鲜。为了克服梯度消失,ReLU、maxout等传输函数代替了 sigmoid,形成了如今 DNN 的基本形式。单从结构上来说,全连接的DNN和上图的多层感知机是没有任何区别的。值得一提的是,今年出现的高速公路网络(highway network)和深度残差学习(deep residual learning)进一步避免了梯度弥散问题,网络层数达到了前所未有的一百多层(深度残差学习:152层)

卷积神经网络CNN

参考:
CNN笔记:通俗理解卷积神经网络_cnn卷积神经网络-CSDN博客
图解CNN:通过100张图一步步理解CNN-CSDN博客
卷积神经网络和深度神经网络的区别是什么? - 知乎

具体的看链接吧,讲的很清楚。
简单来说,CNN主要用于图像识别领域,主要解决特征提取的问题。通过卷积和池化来减少参数量。

卷积神经网络有2大特点
  • 能够有效的将大数据量的图片降维成小数据量
  • 能够有效的保留图片特征,符合图片处理的原则

循环神经网络RNN

参考:
如何理解RNN(循环神经网络),能举一些简单的例子吗? - 知乎
(新手向)能否简单易懂的介绍一下RNN(循环神经网络)? - 知乎
https://dennybritz.com/posts/wildml/recurrent-neural-networks-tutorial-part-1/
简单来说,RNN被称为循环,因为它对序列列的每个元素执行相同的任务,并且基于先前的计算进行输出。RNN的另一个优点是它具有“记忆”,它可以收集到目前为止已经计算的信息。RNN常用于NLP领域。
RNN 从始至终意图解决的都是“记忆”问题,而非 CNN 所解决的“提取”问题。两者并不冲突,甚至还可以适度融合,即组合形成 CNN+RNN 融合模型(Hybrid Model)

残差网络ResNet

参考:
对ResNet本质的一些思考
ResNet原理与性能分析:解空间与优化视角
ResNet的基础:残差块的原理
在深度学习中,为了增强模型的学习能力,网络层会变得越来越深,但是随着深度的增加,也带来了比较一些问题,主要包括:

  • 模型复杂度上升,网络训练困难;
  • 梯度消失/梯度爆炸
  • 网络退化,也就是说模型的学习能力达到了饱和,增加网络层数并不能提升精度了。

为了解决网络退化问题,何凯明大佬提出了深度残差网络来解决以上问题。 具体的可以参考链接进行学习。

Transformer

网络上关于Transformer的文章也很多,给大家推荐几篇学习的文章。
参考:
ChatGPT牛逼,是因为Transformer模型牛逼…-CSDN博客
https://jalammar.github.io/illustrated-transformer/
(六十)通俗易懂理解——Transformer原理解析
学习实战的库: https://github.com/google/trax

以下是Transformer的简介
2017年12月-Tranformer颠覆性的Tranformer架构出世了!
Googl机器翻译团队在年底的顶级会议NIPS上发表了里程碑式的论文《Attention is all you need》,提出只使用自注意力(Self Attention)机制来训练自然语言模型,并给这种架构起了个霸气的名字:Transformer。
所谓"自我注意力"机制,简单说就是只关心输入信息之间的关系,而不再关注输入和对应输出的关系。和之前大模型训练需要匹配的输入输出标注数据相比,这是一个革命性的变化。
**Transformer彻底抛弃了传统的CNN和RNN等神经网络结构。**在这篇论文发布之前,主流AI模型都基于CNN卷积神经网络和RNN循环神经网络(recurrent neural network); 而之后,便是Transformer一统天下。
它具有两点无敌的优势:

自我注意力机制

让模型训练只需使用未经标注的原始数据,而无需再进行昂贵的的人工标注(标注输入和对应输出)。
基于自我注意力机制的Transformer模型的出现是革命性的, 最最重要的一点, 它能实现自我监督学习. 所谓自我监督, 就是不需要标注的样本, 使用标准的语料或者图像, 模型就能学习了.

在Tranformer出现之前, 我们要训练一个深度学习模型, 必须使用大规模的标记好的数据集合来训练神经网络. 对数据进行标注只能人工进行, 金钱和时间成本都相当高.

并行效率

并行效率是之前的AI模型结构被一直诟病的地方。抛弃了传统CNN/RNN架构后,基于Transformer架构的大模型训练可以实现高度并行化,这大大提高了模型训练的效率;更不用说, Attention注意力机制只关注部分信息, 参数较少, 容易训练.

总结

以上简单介绍了一下神经网络的基础概念,以及目前业界常用的几种神经网络和适用的场景。详细介绍神经网络并非本博客的主要目标,本博客意在让有兴趣的同学了解一下,然后通过参考链接去进一步的学习。

接下来的几篇博客会总结一下模型的训练和推理,以及引申出的梯度的概念以及损失函数,激活函数的概念。最终目标是实现一个自定义神经网络,有体感的去训练和推理模型,达到解决实际问题的目标。

end

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

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

相关文章

GIS之深度学习03:Anaconda无法正常启动问题汇总(更新)

在安装完成anaconda后,总会出现一些问题,以下为遇到的问题及解决方案: (有问题请私信,持续更新) 01:anaconda navigator启动时一直卡在 loading applications 页面 解决: 找到anac…

抖音视频下载软件的优势|视频批量下载

抖音视频下载软件具有以下优势: 多种搜索方式:用户可以通过输入关键词进行批量视频提取,也可以通过分享链接进行单个视频的提取和下载。这样用户可以根据自己的需求选择最合适的搜索方式。 直观的界面设计:软件的界面分为五大块&…

Java集合基础梳理(集合体系+ArrayList)

目录 Java集合体系 为什么要使用集合类 ? 如何选用集合? 哪些集合类是线程安全的?哪些不安全? 快速失败(fail-fast)和安全失败(fail-safe)的区别是什么? 遍历的同时修改一个List有几种方式 ArrayList 如何进行元素的遍历操作&#x…

Neoverse S3 系统 IP:机密计算和多芯片基础设施 SoC 的基础

第三代Neoverse系统IP Neoverse S3 产品推出了我们的第三代基础设施特定系统 IP,这是下一代基础设施 SOC 的理想基础,适用于从 HPC 和机器学习到 Edge 和 DPU 的各种应用。S3 机箱专注于为我们的合作伙伴提供 Chiplet、机密计算等关键创新以及 UCIe、DD…

react-组件基础

1.目标 能够使用函数创建组件 能够使用class创建组件 能够给React元素绑定事件 能够使用state和setState() 能够处理事件中的this指向问题 能够使用受控组件方式处理表单 2.目录 React组件介绍 React组件的两种创建方式 React事件处理 有状态组件和无状态组件 组件中的state…

新加坡服务器托管:开启全球化发展之门

新加坡作为一个小国家,却在全球范围内享有极高的声誉。新加坡作为亚洲的科技中心,拥有先进的通信基础设施和成熟的机房托管市场。除了其独特的地理位置和发达的经济体系外,新加坡还以其开放的商业环境和便利的托管服务吸引着越来越多的国际公…

排序算法--堆排序

堆排序的时间复杂度是O(N*logN),优于选择排序O(N^2) 一、堆 1.堆的概念:堆一般指的是二叉堆,顾名思义,二叉堆是完全二叉树或者近似完全二 2.堆的性质:①完全二叉树 ②每…

UE5 C++ 单播 多播代理 动态多播代理

一. 代理机制,代理也叫做委托,其作用就是提供一种消息机制。 发送方 ,接收方 分别叫做 触发点和执行点。就是软件中的观察者模式的原理。 创建一个C Actor作为练习 二.单播代理 创建一个C Actor MyDeligateActor作为练习 在MyDeligateAc…

智慧餐饮系统架构的设计与实现

随着科技的不断发展,智慧餐饮系统在餐饮行业中扮演着越来越重要的角色。智慧餐饮系统整合了信息技术,以提高餐饮企业的管理效率、客户服务质量和市场竞争力。本文将探讨智慧餐饮系统架构的设计与实现,并探讨其在餐饮行业中的应用前景。 架构…

2024年2月国内如何快速注册OnlyFans最新小白教学

前言 onlyface软件是一个创立于2016年的订阅式社交媒体平台,创作者可以在自己的账号发布原创的照片或视频,并将其设置成付费模式,若用户想查看则需要每月交费订阅。 需要注意的是,网络上可能存在非法或不道德的应用程序&#xff…

k8s1.23.15集群二进制部署

一、前言 二进制部署1.23.15版本k8s集群,etcd集群部署与k8s集群节点复用,手动颁发集群证书 主机信息如下 主机名称ip地址服务k8s-master0110.1.60.125docker、etcd、kube-apiserver、kube-schduler、kube-controller-manage、kubelet、kube-proxyk8s-no…

Unity(第十部)时间函数和文件函数

时间函数 using System.Collections; using System.Collections.Generic; using UnityEngine;public class game : MonoBehaviour {// Start is called before the first frame updatefloat timer 0;void Start(){//游戏开始到现在所花的时间Debug.Log(Time.time);//时间缩放值…

AI不离谱,大语言模型ChatMusician可以理解曲谱生成AI音乐

虽然大型语言模型在文本生成AI音乐方面已经表现得相当出色,但它们在音乐这一人类创造性领域的表现却还有待提高。然而,近日推出的ChatMusician打破了这一局面,成为了一个集成了内在音乐能力的开源大型语言模型。 ChatMusician论文地址&#x…

【JSON2WEB】06 JSON2WEB前端框架搭建

【JSON2WEB】01 WEB管理信息系统架构设计 【JSON2WEB】02 JSON2WEB初步UI设计 【JSON2WEB】03 go的模板包html/template的使用 【JSON2WEB】04 amis低代码前端框架介绍 【JSON2WEB】05 前端开发三件套 HTML CSS JavaScript 速成 前端技术路线太多了,知识点更多&…

【C语言】学生宿舍信息管理系统

目录 项目说明 1. 数据结构设计 2. 功能实现 3. 主菜单设计 4. 文件操作 5. 系统使用 项目展示 1.主菜单功能界面 ​编辑 2.添加信息 3.查询信息 4.修改信息 5.删除信息 6.退出程序 项目完整代码 结语 在这篇博客中,我们将探讨如何使用C语言来开发…

斯元Z-ONE-China Cybersecurity Tech Landscape·中国网络安全全景图-百度网盘下载

面向全球,斯元Z-ONE正式发布首版「China Cybersecurity Tech Landscape中国网络安全全景图」。 为了提升海外市场对中国网络安全行业的全局认识,方便国际客户及合作伙伴了解中国网络安全科技的赛道分布和国内外厂商对标,助力中国网安厂商出海…

java springmvc/springboot 项目通过HttpServletRequest对象获取请求体body工具类

请求 测试接口 获取到的 获取到打印出的json字符串里有空格这些,在json解析的时候正常解析为json对象了。 工具类代码 import lombok.extern.slf4j.Slf4j; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.we…

FL Studio 21.2.3.3586 for Mac中文版新功能介绍及2024年最新更新日志

如果你正计划学习音乐制作,一款强大且易学的音乐制作软件是必不可少的。由于很多小伙伴对音乐制作软件没有实际体验过,到底选择哪一款软件最合适成为当下最纠结的问题。 这里为大家推荐一款功能强大且适合新手小伙伴的音乐编曲软件—FL Studio 21.2.3.35…

雾锁王国服务器配置怎么选择?阿里云和腾讯云

雾锁王国/Enshrouded服务器CPU内存配置如何选择?阿里云服务器网aliyunfuwuqi.com建议选择8核32G配置,支持4人玩家畅玩,自带10M公网带宽,1个月90元,3个月271元,幻兽帕鲁服务器申请页面 https://t.aliyun.com…

MySQL数据库下载及安装教程

MySQL数据库下载及安装教程 一、MySQL数据库下载及安装教程1.MySQL数据库下载1.1 MySQL官网1.2 MySQL官网下载页(表面上的)1.3 MySQL官网下载页(真正的下载地址)1.4 下载教程 2.MySQL数据库安装教程2.1 MySQL数据库安装版配置安装…
最新文章