神经网络理论(机器学习)
motivation
如果逻辑回归的特征有很多,会造出现一些列问题,比如:
-
线性假设的限制: 逻辑回归是基于线性假设的分类模型,即认为特征与输出之间的关系是线性的。如果特征非常多或者特征与输出之间的关系是非线性的,逻辑回归可能无法很好地进行分类。
-
特征间相关性: 如果特征之间高度相关,逻辑回归可能会受到多重共线性的影响,导致参数估计不稳定或难以解释。
-
非线性决策边界的需求: 在复杂的分类问题中,数据可能需要非线性的决策边界来更好地进行分类。
相比之下,神经网络有一系列的优势:
-
非线性关系建模: 神经网络能够学习复杂的非线性关系,因此在特征与输出之间存在非线性关系或需要复杂的决策边界时,神经网络通常能提供更好的性能。
-
自动特征学习: 神经网络能够通过隐藏层自动学习特征的高级表示,无需手动进行特征工程,这对于大量特征的问题尤为有利。
-
适应性强: 神经网络通常对数据中的噪声和复杂性具有一定的鲁棒性,能够更好地泛化到新的数据集。
简单人工神经网络
那么简单介绍一下神将网络:

上面是一个简单人工神经网络,x1-->x3是输入的特征,每个特征都会乘上相应的参数最后得到一个值。(这样看起来和线性回归差不多)
复杂神经网络(旧版本)
接下来介绍一个稍微复杂一点的:
首先定义一些术语:
| 第i层,第j个神经元的激活项 | |
| 从j层到j+1层的权重矩阵(注意,行从1开始,列从0开始) | |
| 激活项 | 由一个神经元接受并输出的值 |

注意:
其中g是激活函数。
这里可能不容易理解:
其实是一个矩阵:
上图其实还有一个隐藏的没有画出。就像第一个图一样,这个
是用来调节参数的。
在上图中表示:第二层的第i个神经元接受第一层的第j个特征值,形成的参数(权重)。权重乘上相应的数值得到的值(这个神经元接受前面的所有的神经元传递给他的值的和)(如上
是由前面x0,x1,x2,x3传递给第二层第一个神经元得到
,再通过激活函数g映射得到数值。)
得到结论:
一个神经网络的第j层有个单元,第(j+1)层有
个单元,那么从j到(j+1)层的权重矩阵属于
。即形状为
。
复杂神经网络(新版本)
我们再来看一下另一种解释(其实本质差不多,只不过最新的术语有些改变)
| 第i层输入出向量 | |
| 这个神经元的权重 | |

这里面x就是一个特征向量矩阵,叫做0层(layer0),与上面一个版本有所不同,上面一个版本吧输入的x叫做layer1。这里面,我们把每一个圆形叫做一个“神经元”,每个神经元都有两个参数,分别是向量和参数b。这个向量
的维度与其前一层神经元的个数有关,如果前一层神经元有n个那么这个向量
就是n维,因为这样才可以出现下面图展示的:

这里可以简化为:
注意:每一层的g函数是一样的,不同层的g函数可以不一样。为了统一,我们经常把输入层(layer0)叫做(
)
向前传播(预测)
接下来看一下如何前向传播(通俗点讲叫预测,注意不包含训练)
我们将预测图像显示的是1 or 0。
下面的一个图像是灰度像素展示,是一个1。

我们按照行,把每行首尾相连,组合成一个8*8=64维的向量,把它作为x(输入层,)。
然后我们搭建我们的神经网络:

计算过程:



向前传播在python中实现:

已知有上面的神经网络。
将这几个权重整合在一起:
w = np.array([[1, -3, 5],[2, 4, -6]
])
注意,是两行三列,
b = np.array([-1, 1, 2])
a_in = np.array([-2, 4])
接下来要创建一个函数用来搭建每一层网络。
def dense(a_in, W, b, g):units = W.shape[1] # 计算这一层有多少个单元a_out = np.zeros(units) # 初始化输出for i in range(units):w = W[:, i] # 取出W的第j列,也就是第j个单元的w向量,注意这里取出的w是1D向量z = np.dot(w, a_in) + b[i] # 这里的a_in也是1D向量a_out[i]=g(z) #g为激活函数return a_out
虽然已经有了网络,但是如何将已经有的网络连接起来呢?
还要建立一个函数:
def sequential(x):a1 = dense(x, W1, b1, g)a2 = dense(a1, W2, b2, g)a3 = dense(a2, W3, b3, g)a4 = dense(a3, W4, b4, g)f_x = a4return f_x
代码的高效实现
W = np.array([[1, -3, 5],[2, 4, -6]
]) #不变
B = np.array([[-1, 1, 2]]) #变成二维
X = np.array([[-2, 4]]) #变成二维def dense(A_in, W, B):Z = np.matmul(A_in, W) + B #这个方法不支持标量A_out = g(Z)return A_out
训练网络
对于下面网络:

我们调用tensorflow库,实现下面代码:
import tensorflow as tf
from tensorflow.keras import Sequential
from tensorflow.keras.layers import Dense
model = Sequential([Dense(units=25,activation='sigmoid')Dense(units=15,activation='sigmoid')Dense(units=1,activation='sigmoid')]
)
from tensorflow.keras.losses import BinaryCrossentropy
model.compile(loss=BinaryCrossentropy)
model.fit(X,Y,epochs=100)
注意,这里的tensorflow由于版本问题,可能不含keras,可以直接下载keras这个包。(自己搞了半天才研究出来,大哭)
注意上面的步骤:
- model = Sequential(..)
- model.compile(loss=...)
- model.fit(X,y,epochs=100)




相关文章:
神经网络理论(机器学习)
motivation 如果逻辑回归的特征有很多,会造出现一些列问题,比如: 线性假设的限制: 逻辑回归是基于线性假设的分类模型,即认为特征与输出之间的关系是线性的。如果特征非常多或者特征与输出之间的关系是非线性的&#…...
JNI回调用中不同线程的env无法找到正确的kotlin的class
不同线程都需要通过 JavaVM 获取到的 JNIEnv 指针, 如果有两个线程有两个 env。 其中一个是jni接口自己传过来的,可以正常使用,正常获取kotlin中的class。但是通过 JavaVM 新获取的env 无法找到kotlin的class 1. 确保线程已附加到 JVM 确保…...
免费HTML模板网站汇总
PS:基本上都是可以免费下载使用的,而且有一些是说明了可以用于商用和个人的。部分网站可能需要科学上网才能访问,如无法访问可留言或私信。 1、https://www.tooplate.com/free-templates 2、https://htmlrev.com/ 3、https://html5up.net/ 4、…...
大屏数据看板一般是用什么技术实现的?
我们看到过很多企业都会使用数据看板,那么大屏看板的真正意义是什么呢?难道只是为了好看?答案当然不仅仅是。 大屏看板不仅可以提升公司形象,还可以提升企业的管理层次。对于客户,体现公司实力和品牌形象,…...
在 Kubernetes 中设置 Pod 优先级及其调度策略详解
个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] 📱…...
Spring框架、02SpringAOP
SpringAOP 日志功能 基本方法 分析代码问题 目前代码存在两个问题 代码耦合性高:业务代码和日志代码耦合在了一起 代码复用性低:日志代码在每个方法都要书写一遍 问题解决方案 使用动态代理,将公共代码抽取出来 JDK动态代理 使用JDK动…...
基于python的网络爬虫爬取天气数据及可视化分析
要创建一个基于Python的网络爬虫来爬取天气数据并进行可视化分析,我们可以采用以下几个步骤来实现: 1. 选择数据源 首先,需要确定一个可靠的天气数据源。常用的有OpenWeatherMap、Weather API、Weatherstack等。这些API通常需要注册并获取一个API密钥(API Key)来使用。 …...
【WPF开发】上位机开发-串口收发
一、引言 在现代工业控制、嵌入式系统等领域,串口通信作为一种常见的通信方式,被广泛应用于各种场景。C#作为一门强大的编程语言,结合Windows Presentation Foundation(WPF)框架,可以轻松实现串口通信功能…...
ubuntu开启 远程登录 允许root远程登录
如果没有22端口服务 sudo apt update sudo apt install openssh-server sudo ufw allow.ssh sudo passwd root 修改配置文件 sudo vim /etc/ssh/sshd_config Port 22 修改为 Port 22 #PermitRootLogin prohibit-password 修改为 PermitRootLogin yes service ssh restart …...
《昇思25天学习打卡营第23天|RNN实现情感分类》
使用RNN进行情感分类:基于IMDB数据集的LSTM应用 引言 情感分析是自然语言处理(NLP)中的一个重要应用,广泛用于电影评论、社交媒体等文本数据的情感分类任务。本文将介绍如何使用递归神经网络(RNN)实现情感…...
机械设计基础B(学习笔记)
绪论 机构:是一些具备各自特点的和具有确定的相对运动的基本组合的统称。 组成机构的各个相对运动部分称为构件。构件作为运动单元,它可以是单一的整体,也可以是由几个最基本的事物(通常称为零件)组成的刚性结构。 构件…...
MybatisPlusException: Error: Method queryTotal execution error of sql 的报错解决
项目场景: 相关背景: 开发环境 开发系统时 系统页面加载正常 ,发布运行环境后运行一段时间,前端页面 突然出现 报错信息, 报错信息如下: MybatisPlusException: Error: Method queryTotal execution erro…...
人工智能领域的顶尖影响力人物(部分代表)
人工智能(AI)是模拟人类智能过程的计算机系统或机器的理论和开发。它致力于创建能够执行需要人类智能的任务的机器,如视觉感知、语音识别、决策制定和翻译之间的语言。AI领域包括机器学习、深度学习、自然语言处理等子领域,并涉及…...
Python:jsonl文件转json文件,并做字段处理
在使用LLaMA-Factory对shenzhi-wang/Llama3-8B-Chinese-Chat(https://huggingface.co/shenzhi-wang/Llama3-8B-Chinese-Chat/tree/main)进行微调时,希望使用COIG-CQIA的小红书数据集(https://huggingface.co/datasets/m-a-p/COIG-…...
安全产品在防御勒索病毒中的作用
在数字时代,网络安全威胁日益严峻,其中勒索病毒尤为猖獗,它通过加密受害者的数据并要求赎金换取解密密钥,给个人和企业带来了巨大的经济损失。然而,关于安全产品是否真正有效的问题一直存在争议。本文将通过一个模拟实…...
NVIDIA 完全过渡到开源 GPU 内核模块
目录 支持的 GPU安装程序更改将包管理器与 CUDA 元包配合使用使用 runfile使用安装帮助程序脚本包管理器详细信息apt:基于 Ubuntu 和 Debian 的发行版dnf:Red Hat Enterprise Linux、Fedora、Kylin、Amazon Linux 或 Rocky Linuxzypper:SUSE …...
learning-cxx 学习cpp 环境配置 + bug解决
学习CPP网址 https://github.com/LearningInfiniTensor/learning-cxx 安装环境 1.配置xmake的环境 xmake是c的构建工具 最简单的配置方法就是安装mcvs,然后选择必要的那两个包 查看版本,是否安装成功 gcc --version g --version2.安装xmake 我的是…...
PHP 多线程和异步编程的常见陷阱
本文由 ChatMoney团队出品 在PHP开发中,多线程和异步编程是提高应用性能和响应速度的重要手段。然而,这些技术也带来了许多挑战和陷阱,如共享状态冲突、死锁、超时、资源泄漏以及调试困难等。本文将详细探讨这些陷阱,并提供相应的…...
STL 哈希 学习总结
概述 基础概念 哈希是通过特定的算法,将任意长度的数据映射为固定长度的数据串中。该映射的结果就被称为哈希值,也可以称为散列值。 例如在存储一个10000这个数据的时候,如果使用数组的话,则需要开辟对应大小空间内存ÿ…...
vue3页面编写-导入导出excel、展开查询项等
数据保持 <router-view v-slot"{ Component, route }"><keep-alive><component :is"Component" :key"route.name" v-if"route.meta.keepAlive" /></keep-alive><component :is"Component" :key…...
Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...
从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
10-Oracle 23 ai Vector Search 概述和参数
一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...
第7篇:中间件全链路监控与 SQL 性能分析实践
7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...
从面试角度回答Android中ContentProvider启动原理
Android中ContentProvider原理的面试角度解析,分为已启动和未启动两种场景: 一、ContentProvider已启动的情况 1. 核心流程 触发条件:当其他组件(如Activity、Service)通过ContentR…...
