李宏毅机器学习课程知识点摘要(6-13集)

 pytorch简单的语法和结构

dataset就是数据集,dataloader就是分装好一堆一堆的

他们都是torch.utils.data里面常用的函数,已经封装好了

下面的步骤是把数据集读进来

这里是读进来之后,进行处理

声音信号,黑白照片,红绿蓝彩色照片

运算

转置

移除掉某个维度

合并起来成一个,沿着某一个维度去合并

x.shape和x.dtype

运算:

行列式,所以w^T自动为32x64,这样j与i等,可以变化形状

一个神经网络的过程

逻辑回归在神经网络中的作用

在神经网络学习的背景下,逻辑回归(Logistic Regression)是一个非常重要的基础模型,尤其是在二分类任务中。神经网络本质上是多个层次的复杂逻辑回归模型,因此理解逻辑回归对于理解神经网络的工作原理至关重要。本文将详细介绍逻辑回归在神经网络中的作用及其相关概念。

1. 逻辑回归与神经网络的关系

神经网络的核心是对输入数据进行加权求和,并通过激活函数(如 Sigmoid、ReLU 等)进行处理,从而得到最终的预测结果。逻辑回归可以看作是一个简单的神经网络,只有一个输入层和一个输出层,且激活函数通常是 Sigmoid 函数。

逻辑回归的数学表达式

逻辑回归模型的输出通过 Sigmoid 函数将线性组合的输入映射到 [0, 1] 之间。其数学表达式为:

\[
y = \sigma(z) = \frac{1}{1 + e^{-z}}
\]

其中,\( z = w_0 + w_1 x_1 + w_2 x_2 + \dots + w_n x_n \) 是输入特征的加权和(类似于神经网络中的线性变换)。这个输出是一个概率值,表示预测属于正类(1)的概率。如果这个概率大于 0.5,我们通常预测为正类(1),否则为负类(0)。

2. 神经网络中的逻辑回归

在神经网络中,Sigmoid 函数作为激活函数,通常用于二分类问题。网络中的单个神经元(即一层)可以看作是一个逻辑回归模型。多个神经元层级组合起来,就构成了一个多层神经网络。因此,理解逻辑回归的工作原理对于理解神经网络的运作至关重要。

神经网络中的 Sigmoid 激活函数

在神经网络中,Sigmoid 函数用于将每个神经元的输出映射到 [0, 1] 区间,因此非常适合处理二分类问题。例如,神经网络的输出层可以使用 Sigmoid 激活函数来输出每个类的概率,从而决定最终的类别。

Sigmoid 激活函数公式

\[
\sigma(z) = \frac{1}{1 + e^{-z}}
\]

其中,\( z = w_0 + w_1 x_1 + w_2 x_2 + \dots + w_n x_n \) 是输入特征的线性组合。

输出值的范围是 0 到 1,表示某一类别的概率。

为什么使用 Sigmoid?

Sigmoid 函数的输出是一个概率值,这使得它特别适合二分类问题。在神经网络中,使用 Sigmoid 激活函数后,输出值可以被解释为样本属于正类(1)的概率,进一步帮助我们做出分类决策。

3. 神经网络的训练与逻辑回归

神经网络的训练过程与逻辑回归类似,都是通过优化算法(例如梯度下降)来调整模型参数,以最小化损失函数。对于二分类问题,常见的损失函数是二元交叉熵(Binary Cross-Entropy),它本质上与逻辑回归中的对数损失函数(Log-Loss)相同。

训练步骤(逻辑回归与神经网络的相似性)

1. **前向传播**:计算预测值,首先通过线性变换计算 \( z \),然后通过激活函数(如 Sigmoid)得到预测概率。

2. **计算损失**:使用损失函数(如交叉熵损失)计算预测与实际标签之间的误差。

3. **反向传播**:根据损失函数的梯度,通过反向传播调整权重,最小化误差。

在神经网络中,尽管模型更复杂,但基础的逻辑回归思想仍然存在:通过优化损失函数调整模型参数,逐步减少预测误差。

4. 神经网络的多层扩展

神经网络通过多个隐藏层和神经元的组合,能够捕捉数据中的复杂模式和非线性关系。逻辑回归是一个线性模型,适合简单的二分类问题。而神经网络通过多层的非线性变换,能够处理更加复杂的分类任务。

尽管神经网络的每一层都可以看作是逻辑回归的扩展,但通过增加更多的层次和激活函数,神经网络能够表示更加复杂的决策边界,从而提升分类的准确性。

5. 总结

- 逻辑回归是神经网络的一个基础构建块,尤其在二分类问题中,神经网络的输出层通常使用 Sigmoid 激活函数来实现类似于逻辑回归的操作。
- 神经网络通过多个层次和神经元的组合,扩展了逻辑回归的能力,能够处理更加复杂的非线性分类问题。
- 训练过程在神经网络中与逻辑回归类似,都是通过优化损失函数来调整模型的参数,最小化预测误差。
 

 一个神经元指的是什么?

在神经网络中,神经元(Neuron)是网络中的基本计算单元,类似于人脑中的神经细胞。它的主要作用是接收输入信号,进行加权求和,经过激活函数处理后输出结果。每个神经元通过与其他神经元连接,传递信息并进行计算,从而共同完成更复杂的任务。

一个神经元的基本结构:

1. 输入(Input)

神经元的输入来自上一层的神经元输出,或者是原始数据(在输入层)。每个输入 \( x_i \) 对应一个权重 \( w_i \)。

2. 加权和(Weighted Sum)

神经元会对每个输入进行加权求和,得到一个总的加权和 \( z \):

\[
z = w_1 x_1 + w_2 x_2 + \dots + w_n x_n + b
\]

其中,\( x_i \) 是输入值,\( w_i \) 是对应的权重,\( b \) 是偏置(Bias)。

3. 激活函数(Activation Function)

激活函数 \( f(z) \) 对加权和 \( z \) 进行处理,产生神经元的输出。这一步引入了非线性特征,使神经网络能够学习和表示复杂的模式。常见的激活函数包括:

- **Sigmoid**:
  
  \[
  f(z) = \frac{1}{1 + e^{-z}}
  \]

- **ReLU**:

  \[
  f(z) = \max(0, z)
  \]

- **Tanh**:

  \[
  f(z) = \tanh(z)
  \]

4. 输出(Output)

激活函数的输出会作为该神经元的输出,并传递到下一层的神经元。

形象比喻:

你可以把神经元想象成一个“计算节点”,它从多个输入信号中加权计算一个结果,经过激活函数的处理后,输出一个值,这个值决定了下一层神经元的输入。

例子:

假设我们有一个简单的神经元,接收两个输入 \( x_1 \) 和 \( x_2 \),其对应的权重是 \( w_1 \) 和 \( w_2 \),偏置为 \( b \)。神经元的计算过程如下:

1. 计算加权和:

\[
z = w_1 x_1 + w_2 x_2 + b
\]

2. 使用激活函数(假设使用 Sigmoid):

\[
\text{output} = \sigma(z) = \frac{1}{1 + e^{-z}}
\]

3. 输出值作为下一个神经元的输入,或作为网络最终输出。

总结:

神经网络中的一个神经元是一个处理单元,它通过接收多个输入,进行加权求和,再通过激活函数产生输出。多个神经元组成网络,可以学习数据中的复杂模式,执行分类、回归等任务。

线性部分与非线性部分

线性部分(加权和)和非线性部分(Sigmoid)是神经元计算的两个连续步骤:

- **线性部分**:是神经元对输入进行加权平均,计算出一个值。
- **非线性部分**:是将该值通过激活函数(如 Sigmoid)进行转换,增加非线性特性。
 

最简单的一种神经网络:前馈神经网络feedforward

前馈神经网络(Feedforward Neural Network,FNN)是最基础的人工神经网络类型。它由若干层神经元组成,输入数据从网络的输入层开始,逐层通过隐藏层传递,最后到达输出层,然后输出结果。整个过程没有反馈或循环路径,即信息只能沿着网络的一个方向流动。

实际上function set是一直在做的,只不过做成neural network的时候会很大

写成矩阵运算:Matrix Operation

通过每一层的神经元计算向前

softmax是归一化

在最后一个output那里把输出结果归一化

output设成10维,每一维对应一个数字;input是256维,即所有的方框;中间多少是自己设

换个角度,原来的时候我们需要做feature work,也就是提取特征的工作。而在这里,我们不需要提取,知道输入和输出就可以了,中间怎么做的我们并不知道

他并不一定真的好用,只是把一个问题转化为了另一个问题

在语音识别和图像识别,deep learning是好的,因为这个在人的大脑中太潜意识了,我们不知道什么是好的feature

deep learning:瞎试,看哪个路径效果好。这不就是炼丹然后放着放着试剂突然碰出来了?

如果是nlp的话,实际上效果不显著,因为语法层面人还是能够划分的比较鲜明的,比如词性感情等等

那么,上面的都是一个接着一个的,我们能不能乱写呢?2连到4这样,是可以的。卷积:convolutional neural network

一个完整的deep learning需要几步?

第一步就是前面的,function set

第二步就是loss

第三步是sick a best one

所以市面上的模型主要就是在算微分,就是求偏导那一步,帮我们做了

最后提到了deep learning 和 fat learning,本质还是受制于算力,不然直接遍历了都不需要用微分找loss最低点

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

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

相关文章

gpt2的学习

现在学习下gpt2模型做摘要,我们都知道gpt2 是纯decoder,做摘要说话的效果较好。 把数据拆分 按照这个进行tokenizer 用这个tokenizer BertTokenizer.from_pretrained(‘bert-base-chinese’) 2w多词汇表 用交叉熵做lossf, 设好一些简单的…

网络安全设备

防火墙 防火墙是管理和控制网络流量的重要工具,防火墙适用于过滤流量的网络设备。防火墙根据一组定义的规则过滤流量。 静态数据包过滤防火墙 静态数据包过滤防火墙通过检查消息头中的数据来过滤流量。通常,规则涉及源、目标和端口号。静态数据包过滤防…

Python爬虫:深入探索1688关键词接口获取之道

在数字化经济的浪潮中,数据的价值愈发凸显,尤其是在电商领域。对于电商平台而言,关键词不仅是搜索流量的入口,也是洞察市场趋势、优化营销策略的重要工具。1688作为中国领先的B2B电商平台,其关键词接口的获取对于商家来…

SpringCloud Gateway转发请求到同一个服务的不同端口

SpringCloud Gateway默认不支持将请求路由到一个服务的多个端口 本文将结合Gateway的处理流程,提供一些解决思路 需求背景 公司有一个IM项目,对外暴露了两个端口8081和8082,8081是springboot启动使用的端口,对外提供一些http接口…

全面监测Exchange邮件服务器的关键指标

在当今高度信息化的社会,Exchange邮件服务器已成为企业日常通信的重要组成部分。为了确保邮件服务器的稳定运行,及时发现潜在问题并采取相应的解决措施显得尤为重要。监控易作为一款专业的监控工具,为Exchange邮件服务器提供了全方位的监测功…

实用功能,觊觎(Edge)浏览器的内置截(长)图功能

Edge浏览器内置截图功能 近年来,Edge浏览器不断更新和完善,也提供了长截图功能。在Edge中,只需点击右上角的“...”,然后选择“网页捕获”->“捕获整页”,即可实现长截图。这一功能的简单易用,使其成为…

IDEA2023版本配置项目全局编码

IDEA默认的项目编码是UTF-8,有时候拿到别人的代码使用的编码是GBK,虽然可以在idea右下角进行修改,但是一个一个的修改太慢了。所以需要去进行该项目的编码全局配置。接下来直接讲步骤,以IDEA2023版本为例。 第一步 File>Sett…

【Spiffo】环境配置:VScode+Windows开发环境

摘要: 在Linux下直接开发有时候不习惯快捷键和操作逻辑,用Windows的话其插件和工具都更齐全、方便,所以配置一个Windows的开发环境能一定程度提升效率。 思路: 自己本地网络内远程连接自己的虚拟机(假定用的是虚拟机…

计算机网络 实验六 组网实验

一、实验目的 通过构造不同的网络拓扑结构图并进行验证,理解分组转发、网络通信及路由选择的原理,理解交换机和路由器在子网划分中的不同作用。 二、实验原理 组网实验是指将多个计算机通过网络连接起来,实现数据的共享和通信。 组网需要考虑…

springboot vue工资管理系统源码和答辩PPT论文

人类现已迈入二十一世纪,科学技术日新月异,经济、资讯等各方面都有了非常大的进步,尤其是资讯与网络技术的飞速发展,对政治、经济、军事、文化等各方面都有了极大的影响。 利用电脑网络的这些便利,发展一套工资管理系统…

【PPTist】添加PPT模版

前言:这篇文章来探索一下如何应用其他的PPT模版,给一个下拉菜单,列出几个项目中内置的模版 PPT模版数据 (一)增加菜单项 首先在下面这个菜单中增加一个“切换模版”的菜单项,点击之后在弹出框中显示所有的…

输入/输出管理 III(磁盘和固态硬盘)

一、磁盘 【总结】: 磁盘(Disk)是由表面涂有磁性物质的物理盘片,通过一个称为磁头的导体线圈从磁盘存取数据。在读/写操作期间,磁头固定,磁盘在下面高速旋转。如下图所示: 磁盘盘面…

链表算法速成计划

链表算法速成计划 1.准备工作 1.1创建链表节点结构体 struct ListNode {int val;ListNode* next;ListNode() : val(0), next(NULL) {}ListNode(int x) : val(x), next(NULL) {}ListNode(int x, ListNode* next) : val(x), next(next) {} };1.2 在IDE中创建链表代码 ListNod…

iPhone或iPad接收的文件怎么找?怎样删除?

因为iOS系统和iPadOS系统的特殊性,在使用AirDroid传输文件之后,往往存在“找文件”的难题。本篇文章一次性解释清楚。 文件传输到iPhone/iPad之后,怎样才能找到? iPhone/iPad接收到的全部文件都可以在AirDroid右上角的【时钟】按钮…

猎板 HDI 多阶工艺:高密度互连的核心技术

一、猎板HDI引言 随着电子设备不断向小型化、高性能化和多功能化发展,PCB(印刷电路板)的设计与制造面临着前所未有的挑战。HDI(高密度互连)技术应运而生,而其中的多阶工艺更是满足了对更高布线密度、更小尺…

VUE 的前置知识

一、JavaScript----导图导出 1. JS 提供的导入导出机制&#xff0c;可以实现按需导入 1.1 在html页面中可以把JS文件通过 <script src"showMessage.js"></script> 全部导入 1.2 通过在JS文件中写export关键字导出通过 <script src"showMessage…

---Arrays类

一 java 1.Arrays类 1.1 toString&#xff08;&#xff09; 1.2 arrays.sort( )-----sort排序 1&#xff09;直接调用sort&#xff08;&#xff09; Arrays.sort() 方法的默认排序顺序是 从小到大&#xff08;升序&#xff09;。 2&#xff09;定制排序【具体使用时 调整正负…

【H2O2|全栈】JS进阶知识(六)ES6(2)

目录 前言 开篇语 准备工作 Set和Map 基本概念 Set 相互转化 常见属性和API 数组去重 并集、交集和差集 Map 转化 常见的属性和API Set和Map的区别 This的指向 function函数 箭头函数 修改this 使用方式 三种方式的异同 案例 更改this指向为obj 求数组数…

Node基本使用

1. 创建自定义全局指令 1.1 新建一个空的文件夹, 创建一个cli.js文件 1.2 在cli.js写入内容 /usr/bin/env就是让系统使用node来执行你的脚本文件。 #! /usr/bin/env node1.3 执行终端指令 // 在文件夹 node-project 的终端下执行指令npm init执行完后package.json结构如下,…

Python编程技巧:多变量赋值的优雅艺术

在Python编程的世界里&#xff0c;有许多令人惊叹的语法特性&#xff0c;而多变量赋值就像是一颗闪耀的明珠&#xff0c;它不仅让代码更优雅&#xff0c;还能提升程序的执行效率。今天我们就深入探讨这个看似简单却蕴含深意的编程技巧。 基础认识 传统的变量赋值方式&#xff…