Advertisement

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

阅读量:

pytorch简单的语法和结构

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

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

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

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

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

运算

转置

移除掉某个维度

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

x.shape和x.dtype

运算:

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

一个神经网络的过程

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

在神经网络学习的过程中,默认情况下,默认的情况下默认的情况下默认的情况下默认的情况下默认的情况下默认的情况下默认的情况下默认的情况下默认的情况下默认的情况下 getDefault的情况下的时候,在这种背景下,“Logistic Regression”(Logistic 回归)作为一个非常重要的基础模型被引入了二分类任务中。“Neural Networks”(人工神经网络)本质上是由多个层次组成的复杂系统,“Logistic Regression”则是其中的基本单元。“因此”,掌握并理解这一基本单元对于深入理解整个系统的运作机制具有关键意义。“本文”的目标就是详细阐述这一基本单元在其所处体系中的具体功能以及相关的理论内涵。

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

神经网络的主要功能是将输入数据赋予不同权重后相加,并经过激活函数处理以预测结果为目标;逻辑回归可被视为最简单的神经网络类型之一,在其架构中仅包含单一层输入与单一层输出,并采用Sigmoid形式作为其激活函数

逻辑回归的数学表达式

该模型通过Sigmoid函数将经过线性组合处理后的输入值转换至[0,1]区间内。其数学表达式为:

其中,

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 激活函数公式

其中, 是输入特征的线性组合。

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

为什么使用 Sigmoid?

该函数的输出结果被视为一个概率值,在此情况下它特别适用于解决两类分问题。在神经网络模型中,在应用S型激活函数后所得的结果可以帮助评估样本属于正类(标记为1)的概率水平,并有助于提升分类性能。

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

神经网络的训练过程与逻辑回归具有相似性,在于它们均通过优化算法(如梯度下降)来更新模型参数以降低损失函数值。对于二类分类问题而言,常用的损失函数是二元交叉熵(Binary Cross-Entropy),这与逻辑回归中的对数似然损失函数具有相同的效果。

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

前向传播:生成预测结果的过程包括:经过线性变换得到中间变量 z ,接着应用激活函数处理后得到预测概率。

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

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

在神经网络领域中,尽管模型更加复杂但仍可观察到传统的逻辑回归方法的存在:通过优化损失函数来更新模型参数从而系统地降低预测误差

4. 神经网络的多层扩展

神经网络由多层次结构组成,并包含大量神经元单元,在数据中具备能力去捕捉复杂模式以及处理非线性关系。逻辑回归属于一种基础但有效的统计分析工具,在处理简单的二分类问题上表现出色。相比之下,在多层非线性的特征提取过程中形成的神经网络架构,则更适合应对更为复杂的分类任务

虽然神经网络的每一层都类似于逻辑回归的一种延伸,在深度学习中引入更多的层级以及非线性激活函数之后,在理论上可以实现对更为复杂数据分布的学习能力,并且在一定程度上改善了分类器的表现效果。

5. 总结

  • 逻辑回归是神经网络的核心组件,在二分类任务中被用作输出层的基本计算单元。神经网络的输出层通常采用Sigmoid激活函数来模拟这一过程。
  • 神经网络通过多层感知机结构增强了逻辑回归的能力,并能够应对更为复杂的非线性分类问题。
  • 训练过程在神经网络中与逻辑回归具有相似性:通过优化损失函数来调整模型参数,并最终实现最小化预测误差的目标。

一个神经元指的是什么?

在神经网络体系中, 其本质特征在于其基本计算单元, 即人工模拟的人类神经系统的基本结构单元——人工神经元(Artificial Neuron)。该单元的主要功能包括接受输入信号后, 经过加权求和并施加非线性激活函数处理, 最终输出结果. 各个这样的计算单元通过建立复杂的连接网络, 实现信息传递与数据处理, 从而协同完成更为复杂的认知与学习任务.

一个神经元的基本结构:

1. 输入(Input)

神经元的输入包括来自上一层神经元输出的情况以及原始数据(仅限于输入层)。每个输入 x_i 具有相应的权值 w_i

2. 加权和(Weighted Sum)

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

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

3. 激活函数(Activation Function)

该激活函数 f(z) 会对输入信号的加权和进行转换,并计算得到神经元输出的结果。这一过程引入了非线性特性,在此基础上神经网络能够识别并表达复杂的模式。常见的激活函数包括:

- Sigmoid

- ReLU

- Tanh

4. 输出(Output)

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

形象比喻:

你可以将神经元视为一个“信息处理器”,它通过加权求和的方式整合多个输入信号,并最终传递到下一层神经元的输入信号中。

例子:

我们研究一个基本的神经元模型,该神经元接收两个输入信号 x_1x_2 ,每个输入都有对应的权重参数 w_1w_2 。此外,该神经元还有一个偏置设为 b 。在处理过程中,神经元首先将输入信号乘以对应的权重并相加,在此基础上再加上偏置值后通过激活函数进行处理以得到最终输出。

1. 计算加权和:

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

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

总结:

每个神经元都是一个信息处理模块,在接收到多个信号后会对其进行加权求和运算;随后应用激活函数来生成最终输出值。由许多这样的信息处理模块构成复杂的网络架构;能够识别并解析数据中存在的复杂模式结构;进而完成分类、回归分析等多种机器学习任务

线性部分与非线性部分

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

  • 线性部分:神经元对输入施加权重并求和以获得一个数值结果。
  • 非线性部分:对该数值应用激活函数(如 Sigmoid),引入非线性特性。

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

前馈神经网络(Feedforward Neural Network, FNN)属于人工神经网络中最基本的类型。该体系通常包含多个层级的神经元构成,并且信息从输入层开始依次经过多个隐藏层进行传播最终达到输出层并产生结果

事实上function set始终处于持续进行中,在构建神经网络时体积或复杂度会显著增加。

写成矩阵运算:Matrix Operation

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

softmax是归一化

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

设定output的维度为10维向量;设定input为256维度数据集;其中具体的参数设置由本人决定

从另一个角度来看,在原来的时候我们需要做的是特征提取工作,即完成对输入数据的分析以生成相应的特征。而在这种情况下,则不需要具体实施这些步骤;只要知道了输入和输出就可以了。

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

在语音识别与图像识别领域中,深度学习表现出色。这是因为该技术因其深入融入人类认知模式而展现出显著优势。我们尚不清楚如何定义有效的特征。

deep learning:随意尝试各种路径看看效果如何。其实质就像是在调参的过程中等待合适的参数自行显现出来。

在nlp领域中,在实际应用中其实际效果并不十分显著。由于在语法层面上人类仍能清晰地区分出各种特征。例如,在这些方面如词性、情感等特征。

那么这些依次排列起来的话是否能随意排列呢?将2连接到4是可行的。卷积:convolutional neural network

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

第一步就是前面的,function set

第二步就是loss

第三步是sick a best one

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

在讨论时提到了深度学习(deep learning)和扁平化学习(flat learning),其本质仍然受限于计算能力。如果未进行遍历操作,则无需通过微分计算来寻找损失函数(loss function)的最小值点。

全部评论 (0)

还没有任何评论哟~