我对神经网络的一点理解

为什么会写这点心得?

因为算起来,学习和接触深度学习已经4年多了,这期间更多是应用层面,调包侠,调参侠,在基础概念层面尤其是数据推理过程,都是浅尝辄止,这些课必须陆续补上,否则没有内力和心法就去闯江湖,注定被高手打死,或者只能干些边角料的活儿。

我对神经网络的理解

神经元节点的整合作用

每一层的神经元节点都是对前一层所有节点的某种汇总或整合,这是通过一系列不同的权重和偏置得到的。我们可以这样理解:我们希望通过一个节点来掌握前一层所有节点的变化和特征,而安排的节点总数就是要掌握的特征数量。节点数越多,我们就可以越全面、越细微地掌握前一层所表现出的特征。人们通过观察发现,每个节点都会掌握前一层所有节点的某一些局部特征。这告诉我们,每一层的每一个神经元节点都在尝试抓取和识别前一层计算结果的某一个局部特征。

多层神经网络的启发

这里就引出了第2个问题,为什么人们会设计出来这种“神经网络”呢?
这是由于人类大脑对我们的启发。生物学研究,特别是生物神经学,已经发现并描绘出人类大脑是由非常多的神经元构成的。神经元之间的连接方式是多对一同时一对多,非常复杂且彼此关联。这直接启发了人工智能研究中的全连接神经网络模型的发明。至于每个神经元会尝试掌握前一层的某个局部特征,这是神经网络初始发明者所没有预料到的,完全是后来才发现的,可以说是歪打正着。

特征学习的过程

每一层有多少系列的特征以及它们可以被后一层的节点学习到什么程度,我们都是未知的。这个过程都是黑盒,我们只是根据经验人为地设定每一层的节点数量,并且这个数量还受限于我们的算力和内存。假设算力和内存是无限的,那么我们每一层都可以设置无数个节点,这无数个节点就可以在无数个维度或者特征层面上,去总结、整合、提取前一层所有节点的特征。

权重和激活函数的作用

每一层的网络节点不仅要整合前一层的某些或者某一个局部特征,还要负责将整合到的信息传递给后一层网络。但是,在研究和学习的过程中发现,权重乘以输入矩阵再加偏置,这种做加法的线性计算方式传给到后一层的分类方法是非此即彼的。而实际的数据分布是非线性的,必须用曲线才能划分边界(尽管这条曲线我们是无法人为划定出来的)。因此,就需要增加一种计算,将线性的结果转化为非线性的输出,供下一层使用。这种计算没有一定之规,也没有说哪一种计算就是正确的,或者不正确的。人们还是通过不断的尝试和试验才总结出了Sigmoid、ReLU等计算方式,它们能够产生非线性的输出。同时,因为它们具有针对不同输入产生不同输出的能力,这恰恰像人类的脑神经元,对不同强度的信号输入产生不同的输出。这个过程很像对神经元的激活,所以取名叫激活函数。

个人感悟

由此,我深深感慨人类的认知和探索过程是曲折且充满实验性的。许多成果和结果并非预先设定,而是在大胆提出假设、不断发现问题、尝试解决问题以及总结意外惊喜的过程中逐渐演进和迭代,最终形成了让我们回过头去叹为观止的杰作。

对我个人而言,这一过程的启发在于要勇敢尝试、勇敢假设、勇敢试错。我们需要不断地总结、不断地迭代,而不是期望一步到位,或者在短时间内追求完美。正如神经网络的发展一样,每一次的尝试和错误都是构建更深层次理解和进步的基石。

这个过程告诉我们,无论是科学研究还是日常生活中的探索,都需要我们保持一颗开放和进取的心态。通过不断地实践、学习和调整,我们才能逐渐接近目标,实现自我成长和认知的拓展。

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

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

相关文章

宝塔面板php7.37.4版本不支持ZipArchive手工安装扩展方法

宝塔面板安装的PHP7.3和7.4默认已经不带zip扩展,要手工安装zip扩展首先需要安装libzip,方法如下: 宝塔面板php7.3版本在SSH命令行界面执行以下语句: cd /www/server/php/73/src/ext/zip/ /www/server/php/73/bin/phpize ./config…

java实现TCP交互

服务器端 import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.PriorityQueue; import java.util.Scanner;public class TCP_Serv…

【Leetcode每日一题】 递归 - 二叉树剪枝(难度⭐⭐)(50)

1. 题目解析 题目链接:814. 二叉树剪枝 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 2.算法原理 想象一下,你有一堆层层叠叠的积木,你想从底部开始,把那些标记为0的积木拿走。如…

Oracle SQL中的DECODE函数与NVL函数:区别与应用场景详析

Oracle SQL中的DECODE函数与NVL函数:区别与应用场景详析 引言1. NVL函数简介与使用示例2. DECODE函数简介与使用示例3. NVL与DECODE函数的区别4. 使用场景举例结论 引言 在Oracle数据库开发和数据分析过程中,DECODE函数和NVL函数都是非常实用且常见的工具…

C++奇迹之旅:我与类和对象相遇

文章目录 📝面向过程和面向对象初步认识🌠 类🌉类的引入🌉类的定义 🌠类的访问限定符🌠访问限定符 🌠类的两种定义方式🌉封装 🚩总结 📝面向过程和面向对象初…

spring cloud gateway openfeign 联合使用产生死锁问题

spring cloud gateway openfeign 联合使用产生死锁问题&#xff0c;应用启动的时候阻塞卡住。 spring.cloud 版本如下 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><vers…

Docker-compose部署 gitlab-server

Gitlab部署文档 1、配置环境变量 export GITLAB_HOME/srv/gitlab2、创建docker-compose.yml文件 修改http端口需要同步修改external_url修改ssh端口需要同步修改gitlab_rails[‘gitlab_shell_ssh_port’]volumes&#xff1a;容器数据的持久化存储&#xff0c;强烈推荐。除非你…

arm-none-eabi-addr2line和arm-none-eabi-objdump使用笔记

1. arm-none-eabi-addr2line arm-none-eabi-addr2line -ife ./nuttx/vela_ap.elf 0x0c177186arm-none-eabi-addr2line 是一个用于将地址转换为文件名和行号的工具&#xff0c;用于在嵌入式系统中调试程序时定位代码位置。命令的一般格式是&#xff1a; arm-none-eabi-addr2li…

国际数字影像产业园以数字影像技术,重构文创生活

国际数字影像产业园区&#xff0c;作为树莓集团与成都市金牛区人民政府合作的重点项目&#xff0c;于2023年3月正式在金牛区落地生根。这一园区不仅是第五代产业园区的代表&#xff0c;更是数字影像相关产业服务的特色园区&#xff0c;其独特的定位和宏大的愿景“以数字影像技术…

centos安装nvidia驱动(附各种问题)

一准备 1.1 看开显卡型号 1、Linux查看显卡信息:(ps:若找不到lspci命令,可以安装 yum install pciutils) lspci | grep -i vga 2、使用nvidia GPU可以: lspci | grep -i nvidia 3、查看显卡驱动 cat /proc/driver/nvidia/version 1.2 安装环境依赖 yum install kernel-d…

达梦关键字(如:XML,EXCHANGE,DOMAIN,link等)配置忽略

背景&#xff1a;在使用达梦数据库时&#xff0c;查询SQL中涉及XML,EXCHANGE,DOMAIN,link字段&#xff0c;在达梦中是关键字&#xff0c;SQL报关键词不能使用的错误。 解决办法&#xff1a; 配置达梦安装文件E:\MyJava\dmdbms\data\DAMENG\dm.ini 忽略这些关键词&#xff0c;…

景联文科技:为AI大模型提供高质海量训练数据

在全球AI浪潮的推动下&#xff0c;大量训练数据已成为AI算法模型发展和演进中的关键一环。 艾瑞咨询数据显示&#xff0c;包括数据采集、数据处理&#xff08;标注&#xff09;、数据存储、数据挖掘等模块在内的AI基础数据服务市场&#xff0c;将在未来数年内持续增长。 预计到…

MySQL典型示例

目录 1.使用环境 2.设计表 3.创建表 4.准备数据 5.查询 1.使用环境 数据库&#xff1a;MySQL 8.0.30 客户端&#xff1a;Navicat 15.0.12 2.设计表 假设我们已经建好了一个名为test的数据库。我们添加如下几个表&#xff1a;教师、课程、学生、班级、成绩。实体联系图设…

跨平台私人ChatGPT应用ChatGPT-Next-Web

什么是 NextChat (ChatGPT Next Web) &#xff1f; NextChat (ChatGPT Next Web) 是可以一键免费部署的跨平台私人 ChatGPT 应用, 支持 GPT3, GPT4 & Gemini Pro 模型。 准备 因为老苏没有 OpenAI Key&#xff0c;所以使用 FreeGPT35 来提供无限免费的 GPT-3.5-Turbo API …

qt调试日志文件生成

系列文章目录 第一章 qt日志文件生成功能 文章目录 系列文章目录前言一、qt日志文件生成功能二、使用步骤1.代码示例2.运行截图 前言 qt有固定的调试日志接口&#xff0c;可以通过终端去打印&#xff0c;但是仅适用在本地去调试&#xff0c;例如想长期放到测试台去检测&#…

MVCC-多版本并发控制

MVCC&#xff08;多版本并发控制&#xff09;简介 在数据库系统中&#xff0c;并发控制是一个非常重要的话题。为了提高系统的并发性能和吞吐量&#xff0c;现代数据库系统通常使用多种技术来实现对数据的安全访问&#xff0c;其中一种重要的技术就是多版本并发控制&#xff0…

springboot设置RestTemplate支持httphttps

1.添加HttpsClientRequestFactory public class HttpsClientRequestFactory extends SimpleClientHttpRequestFactory {Overrideprotected void prepareConnection(HttpURLConnection connection, String httpMethod) {try {if (!(connection instanceof HttpsURLConnection))…

如何给MySQL数据库的所有表统一加上字段

在开发过程中&#xff0c;有时候慢慢的建了很多数据库表&#xff0c;但是后来发现需要统一增加某些字段的时候&#xff0c;可以通过alter语句 ALTER TABLE 表名 ADD 列名 数据类型;比如我要给t_user表增加gmt_create与gmt_modified字段&#xff0c;用作记录新增记录时间与更新…

【机器人】PyBullet四足机器狗仿真

随着科技的迅猛发展&#xff0c;机器人技术正日益成为现实生活中的重要组成部分。而在机器人研究领域&#xff0c;仿真技术的应用扮演着不可或缺的角色。它不仅可以节约大量资源和成本&#xff0c;更为工程师和研究者提供了一个安全、高效的实验平台。在这个博客中&#xff0c;…

hanlp中文分词器(ing...)

目前的工作中需要对文本进行分词分析词性,找出热词,经过一系列的调研感觉hanlp这个库还不错,想先试用看看 介绍 HanLP&#xff08;Han Language Processing&#xff09;是一个由一系列模型与算法组成的NLP工具包&#xff0c;目标是普及自然语言处理在生产环境中的应用。HanLP…