李宏毅机器学习课程知识点摘要(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最低点

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Wekan看板安装部署与使用介绍

Wekan看板安装部署与使用介绍 1. Wekan简介 ​ Wekan 是一个开源的看板式项目管理工具,它的配置相对简单,因为大多数功能都是开箱即用的。它允许用户以卡片的形式组织和跟踪任务,非常适合敏捷开发和日常任务管理。Wekan 的核心功能包括看板…

【Mysql】开窗聚合函数----SUM,AVG, MIN,MAX

1、概念 在窗口中,每条记录动态地应用聚合函数(如:SUM(),AVG(),MAX(),MIN(),COUNT(),)可以动态计算在指定的窗口内的各种聚合函数值。 2、操作 以下操作将基于employee表进行操作。 sum() 进行sum的时候,没有order …

EWA Volume Splatting

摘要 本文提出了一种基于椭圆高斯核的直接体绘制新框架,使用了一种投影方法(splatting approach)。为避免混叠伪影(aliasing artifacts),我们引入了一种重采样滤波器的概念,该滤波器结合了重建核…

Vue实训---0-完成Vue开发环境的搭建

1.在官网下载和安装VS Code编辑器 完成中文语言扩展(chinese),安装成功后,需要重新启动VS Code编辑器,中文语言扩展才可以生效。 安装Vue-Official扩展,步骤与安装中文语言扩展相同(专门用于为“…

C# 超链接控件LinkLabel无法触发Alt快捷键

在C#中,为控件添加快捷键的方式有两种,其中一种就是Windows中较为常见的Alt快捷键,比如运行对话框,记事本菜单等。只需要按下 Alt 框号中带下划线的字母即可触发该控件的点击操作。如图所示 在C#开发中,实现类似的操作…

赛氪媒体支持“2024科普中国青年之星创作交流活动”医学专场落幕

2024年11月15日下午,由中国科普作家协会、科普中国发展服务中心主办,什刹海文化展示中心承办,并携手国内产学研一体融合领域的领军者——赛氪网共同支持的“2024科普中国青年之星创作交流活动”医学科普专场,在什刹海文化展示中心…

《现代制造技术与装备》是什么级别的期刊?是正规期刊吗?能评职称吗?

​问题解答 问:《现代制造技术与装备》是不是核心期刊? 答:不是,是知网收录的第二批认定学术期刊。 问:《现代制造技术与装备》级别? 答:省级。主管单位:齐鲁工业大学&#xff0…

(十一)Python字符串常用操作

一、访问字符串值 Python访问子字符串变量,可以使用方括号来截取字符串。与列表的索引一样,字符串索引从0开始。 hh"LaoTie 666" hh[2] mm"床前明月光" mm[3] 字符串的索引值可以为负值。若索引值为负数,则表示由字符…

数据结构(初阶6)---二叉树(遍历——递归的艺术)(详解)

二叉树的遍历与练习 一.二叉树的基本遍历形式1.前序遍历(深度优先遍历)2.中序遍历(深度优先遍历)3.后序遍历(深度优先遍历)4.层序遍历!!(广度优先遍历) 二.二叉树的leetcode小练习1.判断平衡二叉树1)正常解法2)优化解法 2.对称二叉…

20.100ASK_T113-PRO 开发板开机自动QT程序简单的方法一

本文详细介绍了在嵌入式系统中实现程序开机自启动的多种方法,包括通过修改/etc/profile、/etc/rc.local文件,以及在/etc/init.d目录下创建启动脚本等方式。文章还解释了不同配置文件的作用及它们之间的区别。 开机自动启动QT应用程序 用户模式下的启动 …

Android蓝牙架构,源文件目录/编译方式学习

Android 版本 发布时间 代号(Codename) Android 1.0 2008年9月23日 无 Android 1.1 2009年2月9日 Petit Four Android 1.5 2009年4月27日 Cupcake Android 1.6 2009年9月15日 Donut Android 2.0 2009年10月26日 Eclair Android 2.1 2…

LeetCode 145.二叉树的后序遍历

题目:给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历 。 思路:左 右 根 代码: /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* Tre…

GitLab|数据迁移

注意:新服务器GitLab版本需和旧版本一致 在旧服务器执行命令进行数据备份 gitlab-rake gitlab:backup:create 备份数据存储在 /var/opt/gitlab/backups/ 将备份数据传输到新服务器的/var/opt/gitlab/backups/下,并修改文件权限(下载前和上传…

实验四:构建园区网(OSPF 动态路由)

目录 一、实验简介 二、实验目的 三、实验需求 四、实验拓扑 五、实验步骤 1、在 eNSP 中部署网络 2、设计全网 IP 地址 3、配置二层交换机 4、配置路由交换机并测试通信 5、配置路由接口地址 6、配置 OSPF 动态路由,实现全网互通 一、实验简介 使用路由…

外卖系统开发实战:从架构设计到代码实现

开发一套外卖系统,需要在架构设计、技术选型以及核心功能开发等方面下功夫。这篇文章将通过代码实例,展示如何构建一个基础的外卖系统,从需求梳理到核心模块的实现,帮助你快速掌握开发要点。 一、系统架构设计 一个完整的外卖系…

“AI玩手机”原理揭秘:大模型驱动的移动端GUI智能体

作者|郭源 前言 在后LLM时代,随着大语言模型和多模态大模型技术的日益成熟,AI技术的实际应用及其社会价值愈发受到重视。AI智能体(AI Agent)技术通过集成行为规划、记忆存储、工具调用等机制,为大模型装上…

C语言——break、continue、goto

目录 一、break 二、continue 1、在while循环中 2、在for循环中 三、go to 一、break 作用是终止循环&#xff0c;在循环内遇到break直接就跳出循环。 注&#xff1a; 一个break语句只能跳出一层循环。 代码演示&#xff1a; #include<stdio.h>void test01() {for (…

AR智能眼镜|AR眼镜定制开发|工业AR眼镜方案

AR眼镜的设计与制造成本主要受到芯片、显示屏和光学方案的影响&#xff0c;因此选择合适的芯片至关重要。一款优秀的芯片平台能够有效提升设备性能&#xff0c;并解决多种技术挑战。例如&#xff0c;采用联发科八核2.0GHz处理器&#xff0c;结合12nm制程工艺&#xff0c;这种低…

设计LRU缓存

LRU缓存 LRU缓存的实现思路LRU缓存的操作C11 STL实现LRU缓存自行设计双向链表 哈希表 LRU&#xff08;Least Recently Used&#xff0c;最近最少使用&#xff09;缓存是一种常见的缓存淘汰算法&#xff0c;其基本思想是&#xff1a;当缓存空间已满时&#xff0c;移除最近最少使…

自动驾驶3D目标检测综述(三)

前两篇综述阅读理解放在这啦&#xff0c;有需要自行前往观看&#xff1a; 第一篇&#xff1a;自动驾驶3D目标检测综述&#xff08;一&#xff09;_3d 目标检测-CSDN博客 第二篇&#xff1a;自动驾驶3D目标检测综述&#xff08;二&#xff09;_子流行稀疏卷积 gpu实现-CSDN博客…