线性神经网络

线性神经网络

我们应该从线性神经网络开始,去逐步了解深度神经网络(深度学习)的各种复杂结构和底层原理。

1. 线性回归

用一个线性的模型来拟合数据与它们的标签之间的映射,用于回归问题。

1.1 构造线性模型:

y = ω ^ T x (1-1) y=\widehat{\omega}^Tx\tag{1-1} y=ω Tx(1-1)
请添加图片描述
图1 线性回归与神经网络的关系

由(1-1)不难发现,线性回归其实就是单层线性神经网络。

1.2 最小二乘损失函数:

可以证明,让线性回归偏差的L2范数(均方误差)最小 等价于 对线性模型的极大似然估计…
L ( ω ^ ) = ∑ i = 1 N ∣ ∣ ω ^ T x i − y i ∣ ∣ 2 2 (1-2) L(\widehat{\omega})=\sum_{i=1}^N||\widehat{\omega}^Tx_i-y_i||^2_2\tag{1-2} L(ω )=i=1N∣∣ω Txiyi22(1-2)

1.3 求解:

(1-2)是一个凸优化问题,而且比较简单,可以求得解析解。所以可以令求导=0的方式对其求解析解:
ω ^ = ( X T X ) − 1 X T Y (1-3) \widehat{\omega}=(X^TX)^{-1}X^TY\tag{1-3} ω =(XTX)1XTY(1-3)
当然梯度下降应该能求出非常接近解析的效果…

1.4 预测:

求解出参数向量之后把x代入线性模型即可预测。

1.5 小节:

不难理解吧?最经典、古老、简单的模型了吧…

2. 线性分类

线性分类就要是把线性回归设法用于分类问题。相对于回归问题来说,变化有以下几点:

2.1 多输出

最直观的改动应该是一个输出变成多个了。我们期望用多个输出神经元来达到估计每个类别分布的目的。
请添加图片描述
图2 线性分类与神经网络的关系

2.2 输出层

搞清楚多输出的网络结构之后,输出层应该使用怎样的策略呢?对每个输出神经元应用(1-1)那样的前向传播方法来计算不可以吗??其实不行:

因为对于分类问题,必须要使所有神经元的输出满足:

  1. 均≥0
  2. 和=1
  3. 输出层的传递函数必须可导

对于以上3个特点,分类问题的输出层有着独特的设计——softmax激活函数
y j ^ = e o j ∑ k N e o k (2-1) \widehat{y_j}=\frac{e^{o_j}}{\sum_{k}^{N}e^{o^k}}\tag{2-1} yj =kNeokeoj(2-1)
(2-1)中,oj为输出层第j个【原输出】,经过这样的处理后yj为最终输出,可以保证以上三点。

softmax激活函数的具体工作方式如下图所示:
请添加图片描述
图3 由softmax激活函数连接到输出层示意

2.3 损失函数

这样搞了之后我们的损失函数采用交叉熵损失,这是由极大对数似然估计推导而来的损失函数,可以证明和MSE损失是等价的:
l ( y , y ^ ) = − ∑ j = 1 N y i l o g y i ^ (2-2) l(y,\widehat{y})=-\sum_{j=1}^{N}y_ilog\widehat{y_i}\tag{2-2} l(y,y )=j=1Nyilogyi (2-2)
(2-2)中,y为独特编码的分类标签向量,yi为y的第i个分量。

3. 逻辑回归

逻辑回归这个名称容易造成误解。它并不是处理回归问题的,而是分类问题。经典的逻辑回归用来解决二分类问题。它需要预先估计分类数据点的分布,然后通过引入非线性函数(logistic/sigmoid)来估计把数据分为某类别的概率,输出的是概率分布函数P(y|x,θ)。

下面先以二分类举例推导:

3.1 估计数据边界(分类超平面是线性or非线性?)

一般假设它是线性的,即:
y = θ ^ T x (3-1) y=\widehat{θ}^Tx\tag{3-1} y=θ Tx(3-1)

3.2 构造预测函数:

其实就是只有两个类的softmax函数:
p ( y = 1 ∣ x , θ ) = h θ ( x ) p ( y = 0 ∣ x , θ ) = 1 − h θ ( x ) h θ ( x ) = 1 1 + e − θ T x (3-2) p(y=1|x,θ)=h_θ(x)\\ p(y=0|x,θ)=1-h_θ(x)\\ h_θ(x)=\frac{1}{1+e^{-θ^Tx}}\tag{3-2} p(y=1∣x,θ)=hθ(x)p(y=0∣x,θ)=1hθ(x)hθ(x)=1+eθTx1(3-2)

3.3 构造损失函数:(极大似然估计)

l ( x ) = ∑ i = 1 N y i l o g h θ ( x i ) + ( 1 − y i ) l o g ( 1 − h θ ( x i ) ) J ( θ ) = − l ( θ ) m (3-3) l(x)=\sum_{i=1}^{N}y_ilogh_θ(x_i)+(1-y_i)log(1-h_θ(x_i))\\ J(θ)=-\frac{l(θ)}{m}\tag{3-3} l(x)=i=1Nyiloghθ(xi)+(1yi)log(1hθ(xi))J(θ)=ml(θ)(3-3)

J(θ)就是极大似然函数的负对数,求J(θ)的最小值即可。

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

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

相关文章

Hibernate框架【一】——HIbernate框架介绍

系列文章目录 Hibernate框架【三】——基本映射——一对一映射 Hibernate框架【四】——基本映射——多对一和一对多映射 Hibernate框架【五】——基本映射——多对多映射 Hibernate框架介绍 系列文章目录前言一、什么是HIbernate框架Hibernate架构图Hibernate提供的核心功能和…

MIT 6.S081 (BOOK-RISCV-REV1)教材第三章内容

MIT 6.S081 教材第三章内容 引言页表分页硬件内核地址空间物理内存分配代码(物理内存分配)kinit函数kfree函数kalloc函数 代码:创建一个地址空间kvminit 函数kvmmap函数walk函数kvminithart函数procinit函数 进程地址空间代码:sbr…

Java企业级开发学习笔记(4.4)Spring Boot加载自定义配置文件

一、使用PropertySource加载自定义配置文件 1.1 创建Spring Boot项目 创建Spring Boot项目 单击【创建】按钮 1.2 创建自定义配置文件 在resources里创建myconfig.properties文件 设置文件编码 设置学生的四个属性值 1.3 创建自定义配置类 在cn.kox.boot包里创建confi…

npm发布自己的包

按照上面流程操作

App 启动速度优化

前言​​​​​​​ APP打开的一瞬间速度快慢;就好比人的第一印象,快速的打开一个应用往往给人很舒服的体验。app经常性卡顿启动速度很慢,这无疑是对用户的流失。 启动方式介绍 APP启动的方式分为3种:冷启动、热启动、温启动。…

【服务器数据恢复】RAID5重建导致数据丢失的数据恢复案例

服务器数据恢复环境: HP某型号服务器,5块硬盘组建了一组raid5磁盘阵列。 服务器故障&分析: 服务器在工作过程中,raid5磁盘阵列中的一块磁盘掉线,由于raid5的容错特点,raid阵列未受影响,工作…

服务网格领域的百花齐放,是否存在一个更优解?

作者 lingsamuel,API7.ai 云原生技术专家,Apache APISIX Committer。作者 林志煌,API7.ai 技术工程师,Apache APISIX contributor。 服务网格是一种技术架构,它用于管理微服务系统中各个服务之间的通信,旨在…

Spring MVC入门笔记

Spring MVC基础知识 1. 创建web应用 新建Maven项目 点击File -> Project Structure -> Facets -> 号 -> Web 修改文件描述符路径为硬盘:\项目名\src\main\存储页面的文件夹(如:webapp)\WEB-INF\web.xml 修改Web页面路径为硬盘…

Spring Security --- Thymeleaf 中 Spring Security 的使用

目录 初步 获取属性 权限判断 初步 Spring Security可以在一些视图技术中进行控制显示效果例如:JSP或Thymeleaf在非前后端分离且使用Spring Boot的项目中多使用Thymeleaf作为视图展示技术Thymeleaf对Spring Security的支持都放在thymeleaf-extras-springsecurity…

数据清洗、数据处理入门!R语言我来了,数据不再零散!

一、引言 数据清洗和预处理是数据科学中必不可少的一部分,它们能够帮助我们准确地分析和预测未来趋势。如果你曾经尝试过进行分析或建模,你会发现数据往往不像我们所想象的那样干净、整洁。需要对数据进行仔细的检查、清理和处理,才能真正把…

VR全景营销颠覆传统营销模式,让商企博“出圈”

在激烈的市场竞争中,营销成为了商企博“出圈”的重要课题,随着5G的到来,VR全景迈入了快速发展时期,随着VR全景的普及应用,商业领域也逐渐引入了VR全景营销。 时下,商企的营销是越发困难,传统的营…

git安装以及git小乌龟使用

一、下载git 打开git官网地址:https://git-scm.com/进行下载 下载完安装,一直next就好,如果愿意就可以改下安装路径,改在d盘。 具体可以参考:git安装教程 二、安装完下载小乌龟以及语言包 下载地址:小乌龟…

redis到底是怎么样进行渐进式Rehash的

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。那么redis的底层是如何来存储数据的呢? 一、redis如何在存储大量的key时候,查询速度还能接近O(1)呢&#xf…

DAY 77 [ Ceph ] 基本概念、原理及架构

前言 在实现容器化的初期,计划使用 Ceph 作为容器的存储。都说存储是虚拟化之母,相对容器来说,存储也起到了至关重要的作用。 选用 Ceph 作为容器化存储理由如下: 方便后期横向扩展;Ceph能够同时支持快存储、对象存…

SF授权系统源码 V3.7全开源无加密版本

🎉 有需要的朋友记得关赞评,文章底部来交流!!! 🎉 ✨ 源码介绍 2023全新SF授权系统源码 V3.7全开源无加密版本。网站搭建很简单,大致看来一下应该域名解析后上传源码解压,访问域名/i…

全志V3S嵌入式驱动开发(u盘写读)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 对于现在的soc来说,基本上usb是标配的。它一般需要支持usb host、device和otg三种模式。简单解释下,host模式,就…

STM32F407移植1588v2(ptpd)

硬件: STM32F407ZGT6开发板 软件: VSCode arm-none-eabi-gcc openOCD st-link 在github搜到一个在NUCLEO-F429ZI开发板上移植ptpd的example,因为和F407差别很小,所以就打算用这个demo移植到手头的开发板上。因为目前只需要…

ASP.NET MVC下的四种验证编程方式

ASP.NET MVC采用Model绑定为目标Action生成了相应的参数列表,但是在真正执行目标Action方法之前,还需要对绑定的参数实施验证以确保其有效性,我们将针对参数的验证成为Model绑定。总地来说,我们可以采用4种不同的编程模式来进行针…

DevExpress WPF功能区控件,更轻松创建应用工具栏!(上)

DevExpress WPF的Ribbon、Toolbar和Menus组件以Microsoft Office为灵感,针对WPF开发人员进行了优化,可帮助您在段时间内模拟当今最流行的商业生产力应用程序。 DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业…

百度CDN配置TLS

概述 为了保障您互联网通信的安全性和数据完整性,百度智能云CDN提供TLS版本控制功能。您可以根据不同域名的需求,灵活地配置TLS协议版本。 TLS(Transport Layer Security)即安全传输层协议,在两个通信应用程序之间提…