广州网站设计培训/网站点击量软件
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…...

Java学习 - Spring Boot整合 Thymeleaf 实例
什么是 Thymeleaf Thymeleaf 是新一代的 Java 模板引擎,类似于 Velocity、FreeMarker 等传统引擎,其语言和 HTML 很接近,而且扩展性更高; Thymeleaf 的主要目的是将优雅的模板引入开发工作流程中,并将 HTML 在浏览器中…...

ubuntu20.04安装终端终结者并设置为默认终端
1、安装 terminator sudo apt-get install terminator 2、Ctrl Alt T 试一下打开什么终端,我的默认启动的是terminator;如果想换换默认的终端,还需以下一步 3、安装dconf-tools,这个是设置默认终端的必须 sudo apt-get install dconf-tools…...

以Zookeeper为例 浅谈脑裂与奇数节点问题
一、脑裂现象的定义与影响 脑裂(split-brain)是指在分布式系统中,因网络分区或其他故障导致系统被切割成两个或多个相互独立的子系统,每个子系统可能独立选举出自己的领导节点。这一现象在依赖中心领导节点(如Elastic…...

最新版kubeadm搭建k8s(已成功搭建)
kubeadm搭建k8s(已成功搭建) 环境配置 主节点 k8s-master:4核8G、40GB硬盘、CentOS7.9(内网IP:10.16.64.67) 从节点 k8s-node1: 4核8G、40GB硬盘、CentOS7.9(内网IP:10…...

C++学习笔记-友元函数的定义与使用
一、引言 在C中,友元函数(Friend Function)是一个独特而强大的特性,它打破了类的封装性,允许一个或多个非成员函数访问类的私有(private)和保护(protected)成员。尽管这…...

熵、交叉熵、KL散度
这里写目录标题 熵KL散度引入交叉熵。交叉熵的二分类公式: 再次理解SoftMax函数结束 熵 熵,是一个物理上的概念,表示一个系统的不确定性程度,或者表示一个系统的混乱程序。 下边是信息熵的演示: 信息熵的公式如下&…...

THS配置keepalive(yjm)
启动完THS管理控制台和THS后,登录控制台,进入实例管理》节点管理,可以分别使用界面配置和编辑配置设置长连接。 1、界面配置 点击界面配置》集群设置,启用长连接,设置长连接数、最大请求数和超时时间。 2、编辑配置 …...

新加坡裸机云多IP服务器特性
新加坡裸机云多IP服务器是一种高性能、稳定性强,且具备多IP地址特性的服务器。它主要适用于需要高度计算性能、网络连接稳定和高安全性的业务场景,如跨境外贸等。下面将详细探讨该类型服务器的特性,rak部落为您整理发布新加坡裸机云多IP服务器…...

深入理解ADB:Android调试桥详解与使用指南
🍎个人博客:个人主页 🏆个人专栏:Android ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 1. 什么是ADB? ADB的基本原理: 2. ADB的安装与配置 安装ADB工具集: 配置ADB环境变量&am…...

PACS-医学影像信息管理系统,全影像科室PACS源码,内置包括MPR、CMPR、VR等三维处理功能
PACS系统可以覆盖医院现有放射、CT、MR、核医学、超声、内镜、病理、心电等绝大部分DICOM和非DICOM检查设备,支持从科室级、全院机、集团医院级乃至到区域PACS的平滑扩展,能够与医院HIS、集成平台的有效集成和融合,帮助医院实现了全院医学影像…...