深度学习课程总结(stage1)

2023-10-18 14:10

本文主要是介绍深度学习课程总结(stage1),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、线性分类与感知机

  1. 线性回归

(1)定义:利用数理统计中回归分析,来确定两种或两种以上变量间相

互依赖的定量关系的一种统计分析方法。

(2)要素:训练集(即输入数据),比如预测房价和面积的关系时,面积就是训练集

输出数据,模型(映射关系),条目数

(3)多维问题:

假设原问题和n个因素有关,则可以构造代价函数:

其中前者是真实值,后者是预测值,我们的目标是使损失函数最小

  1. 线性二分类问题

(1)定义:线性分类器则透过特征的线性组合来做出分类决定,以达到

此种目的。简言之,样本通过直线(或超平面)可分

(2)输入是特征向量,输出有多种可能,如果是二分类问题,则是0和1,如果输出是某类的概率,则是0到1之间的数字

(3)为了最终获得0到1之间的概率,我们构造了sigmoid函数:

其中,z是特征x的线性组合

因此,可以构造如下的损失函数:

其中,是gt,只能取0或者1,而是通过sigmoid函数获得的,这种回归叫做softmax

(4)求解对应J最小时的大小的方法

可以认为J是通过的一个差分的方式构成的,因此我们可以采用以下方法:

而由sigmoid函数的性质,可知:

  1. 对数回归和多分类回归

  1. 二分类问题的交叉熵

由于二分类问题的输出只有0和1,因此可以将损失函数写作:

对其最小化,可得:

  1. 感知机模型

(1)由输入到输出的模型如下:

为损失函数,我们的目标是使损失函数最小

二、多层前馈网络与误差反传算法

  1. 多层感知机:

(1)用处:解决线性不可分问题

(2)结构:在输入和输出之间加入隐藏层

(3)定理:① 若隐层节点(单元)可任意设置,用三层阈值节点的

网络,可以实现任意的二值逻辑函数。

② 若隐层节点(单元)可任意设置,用三层S型非线性特

性节点的网络,可以一致逼近紧集上的连续函数或按 范数逼近紧

集上的平方可积函数。

  1. 多层前馈网络以及BP算法:

(1)组成:

① 网络结构:一般称为BP神经网络

② 正向传播:输入信号从输入层经隐层,传向输出层,若输出层得到了期望的输出,则学习算法结束;否则,转至反向传播

③ 反向传播:是将误差(样本输出与网络输出之差)按原联接通路反向计算,由梯度下降法调整各层节点的权值和阈值,使误差减小。

(2)算法流程(来源于本人的另一篇博客,链接:https://blog.csdn.net/aliezaliezaliez/article/details/126540495?spm=1001.2014.3001.5502)

以一维度的w和b为例,

我们希望从起始点沿着梯度最大的路径以一定的步长向下降,直到达到最优解,或者接近最优解

在代码中,经常把

写作

成为学习率,决定了每次下降的步长

对于J(w,b)同理

编辑

即分别沿着两个变量的最大梯度下降

数学基础 ————导数

① 计算图

例:

编辑

该过程的逆过程,就是导数的求取过程

编辑

说完数学基础后,可以进一步研究logistics 中的梯度下降

下面这个图万分的重要!!!!!!!!!!!

则:

当输入有m个样本时:

编辑

代码实现思路如下:

这里面

编辑不加带i的角标,因为他们是求和的形式

编辑(这个前面用链式法则推过)

(这个右侧本质上加的就是某个输入的

,对J求导即可,那也就是用链式法则推导,其实就是对z先求导,然后z对w求导所以出来了

...

这里

这些,代表的是特征的个数,例如图片识别时,每一个图片分为r,g,b三原色,每一种原色都有64×64的像素,因此在这里,

编辑的个数为3×64×64个

如果这里x的维度n比较大,可能也需要写一个循环

对于m,是输入的个数,以图片识别为例,就是图片的张数

(z对b求偏导数是1)

编辑(前文公式可以看出来)

编辑

编辑

(梯度下降法)

使用for循环会使代码变得低效,因此我们可以用向量化来代替for循环

5.向量化

编辑

这篇关于深度学习课程总结(stage1)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/233080

相关文章

Maven中生命周期深度解析与实战指南

《Maven中生命周期深度解析与实战指南》这篇文章主要为大家详细介绍了Maven生命周期实战指南,包含核心概念、阶段详解、SpringBoot特化场景及企业级实践建议,希望对大家有一定的帮助... 目录一、Maven 生命周期哲学二、default生命周期核心阶段详解(高频使用)三、clean生命周期核心阶

深度剖析SpringBoot日志性能提升的原因与解决

《深度剖析SpringBoot日志性能提升的原因与解决》日志记录本该是辅助工具,却为何成了性能瓶颈,SpringBoot如何用代码彻底破解日志导致的高延迟问题,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言第一章:日志性能陷阱的底层原理1.1 日志级别的“双刃剑”效应1.2 同步日志的“吞吐量杀手”

MySQL中查询和展示LONGBLOB类型数据的技巧总结

《MySQL中查询和展示LONGBLOB类型数据的技巧总结》在MySQL中LONGBLOB是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,:本文主要介绍MySQL中查询和展示LO... 目录前言1. 查询 LONGBLOB 数据的大小2. 查询并展示 LONGBLOB 数据2.1 转换为十

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

深度解析Python yfinance的核心功能和高级用法

《深度解析Pythonyfinance的核心功能和高级用法》yfinance是一个功能强大且易于使用的Python库,用于从YahooFinance获取金融数据,本教程将深入探讨yfinance的核... 目录yfinance 深度解析教程 (python)1. 简介与安装1.1 什么是 yfinance?

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

在Java中实现线程之间的数据共享的几种方式总结

《在Java中实现线程之间的数据共享的几种方式总结》在Java中实现线程间数据共享是并发编程的核心需求,但需要谨慎处理同步问题以避免竞态条件,本文通过代码示例给大家介绍了几种主要实现方式及其最佳实践,... 目录1. 共享变量与同步机制2. 轻量级通信机制3. 线程安全容器4. 线程局部变量(ThreadL

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三