ML笔记——神经网络

部署运行你感兴趣的模型镜像

目录


想法

用计算机的方式表示各个神经元,模仿生物的大脑。
用数据表示各个神经细胞,用函数表示神经细胞间的传递过程。

数学表达

这里写图片描述
其中的

x1, x2 x 1 ,   x 2
表示原始数据,
a(2)1 a 1 ( 2 )
表示第二个激活层的第一个单元
由原始数据向激活层传递的过程表示为
a(2)1=g(θ(1)10x0+θ(1)11x1+θ(1)12x2) a 1 ( 2 ) = g ( θ 10 ( 1 ) x 0 + θ 11 ( 1 ) x 1 + θ 12 ( 1 ) x 2 )

上式中的
θ(j)ik θ i k ( j )
表示为从第 j 层中的第 k 个单元向第 j+1 层中第 i 个单元传递的权值
其中的假设函数
hθ(x)=a(2)1 h θ ( x ) = a 1 ( 2 )

对于再复杂一些的网络如下图:
这里写图片描述
则有
a(2)1=g(θ(1)10x0+θ(1)11x1+θ(1)12x2+θ(1)13x3) a 1 ( 2 ) = g ( θ 10 ( 1 ) x 0 + θ 11 ( 1 ) x 1 + θ 12 ( 1 ) x 2 + θ 13 ( 1 ) x 3 )
a(2)2=g(θ(1)20x0+θ(1)21x1+θ(1)22x2+θ(1)23x3) a 2 ( 2 ) = g ( θ 20 ( 1 ) x 0 + θ 21 ( 1 ) x 1 + θ 22 ( 1 ) x 2 + θ 23 ( 1 ) x 3 )
a(2)3=g(θ(1)30x0+θ(1)31x1+θ(1)32x2+θ(1)33x3) a 3 ( 2 ) = g ( θ 30 ( 1 ) x 0 + θ 31 ( 1 ) x 1 + θ 32 ( 1 ) x 2 + θ 33 ( 1 ) x 3 )

hθ(x)=a(3)1=g(θ(2)10a(2)0+θ(2)11a(2)1+θ(2)12a(2)2+θ(2)13a(2)3) h θ ( x ) = a 1 ( 3 ) = g ( θ 10 ( 2 ) a 0 ( 2 ) + θ 11 ( 2 ) a 1 ( 2 ) + θ 12 ( 2 ) a 2 ( 2 ) + θ 13 ( 2 ) a 3 ( 2 ) )

实现过程

神经网络的实现方式可以选择一组基本操作(如:加减法),再通过这一组基本操作求解复杂过程的解(如:解一元一次方程)
机器学习视频中讲述的是通过构造与、或、非三个基本的逻辑运算,并用这些简单的神经网络构造异或运算

您可能感兴趣的与本文相关的镜像

Qwen-Image-Edit-2509

Qwen-Image-Edit-2509

图片编辑
Qwen

Qwen-Image-Edit-2509 是阿里巴巴通义千问团队于2025年9月发布的最新图像编辑AI模型,主要支持多图编辑,包括“人物+人物”、“人物+商品”等组合玩法

<think>首先,用户的问题是:“我想获取关于循环神经网络的学习资料或笔记 请问循环神经网络(RNN)学习笔记和教程”,这表示用户想要学习资料或笔记关于RNN。 根据系统级指令,我必须: 1. 所有行内数学表达式使用$...$格式。 2. 独立公式使用$$...$$格式并单独成段。 3. LaTeX语法正确。 4. 使用中文回答。 5. 生成相关问题。 6. 回答中引用的段落末尾自然地添加引用标识,例如[^1]。 此外,用户可见层要求:回答结构清晰,帮助用户逐步解决问题,尽量保证回答真实可靠。 参考站内引用提供了几个引用: - 引用[1]: 关于RNN结构的基本介绍。 - 引用[2]: 解释为什么需要RNN而不是其他神经网络。 - 引用[3]: 讨论了RNN模型、LSTM和GRU。 - 引用[4]: 对比RNN与其他网络,如CNN和DNN。 用户的问题是基于这些引用,但我需要提供关于RNN的学习资料或笔记。既然用户提到了“学习笔记和教程”,我应该创建一个结构化的、教育性的回答。 结构化回答: 1. **介绍RNN**:简要解释RNN是什么及其用途。 2. **RNN的基本结构**:描述RNN的架构,包括隐藏层连接。 3. **为什么需要RNN**:解释RNN相对于其他网络的优势。 4. **RNN的输入与输出**:讨论如何处理序列数据。 5. **常见RNN变体**:如LSTM和GRU。 6. **应用场景**:举例说明RNN的应用。 7. **学习资源建议**:推荐一些教程或笔记。 在回答中,我需要引用提供的引用,并在末尾添加引用标识。例如,当使用引用[1]时,在段落末尾加[^1]。 另外,生成相关问题:在回答结束时,添加“§§相关问题§§”部分,列出几个相关问题。 确保使用中文。 数学表达式:如果有数学公式,使用LaTeX格式。例如,RNN的隐藏状态更新公式:$h_t = f(W_{hh} h_{t-1} + W_{xh} x_t + b_h)$。如果是独立公式,用$$...$$。 现在,构建回答: - **开头**:直接回应用户请求,提供学习笔记。 - **主体**:分步解释RNN。 - **结尾**:生成相关问题。 参考引用内容: - [^1]: RNN结构,隐藏层之间的连接。 - [^2]: 为什么需要RNN,因为序列数据需要记忆。 - [^3]: RNN模型、LSTM、GRU。 - [^4]: RNN处理序列的优势。 在回答中自然地融入这些引用。</think>### 循环神经网络(RNN)学习笔记与教程 循环神经网络(Recurrent Neural Network, RNN)是一种专门用于处理序列数据(如时间序列、自然语言或音频)的神经网络模型。它通过引入“记忆”机制,能够捕捉序列中的时间依赖性,使其在机器翻译、语音识别、文本生成等任务中表现出色。以下内容基于可靠的参考资源整理而成,旨在提供结构清晰的学习笔记,帮助您逐步理解RNN的核心概念、原理和应用。笔记分为基础介绍、关键模型、应用场景和学习资源建议四个部分,每个部分都包含关键公式和示例说明。 --- ### 一、RNN基础介绍 RNN的核心思想是网络结构中包含循环连接,允许信息在时间步之间传递。这解决了传统神经网络(如全连接神经网络或卷积神经网络)在处理序列数据时的局限性。传统网络(如DNN或CNN)的输入和输出维度固定,且层间节点无连接,无法处理变长序列[^4]。而RNN的隐藏层不仅接收当前输入,还接收上一时间步的隐藏状态,从而形成“记忆”。 - **RNN的基本结构**: 一个简单的RNN单元在每个时间步$t$的计算公式如下: $$ h_t = \tanh(W_{hh} h_{t-1} + W_{xh} x_t + b_h) $$ $$ y_t = W_{hy} h_t + b_y $$ 其中: - $h_t$ 表示时间步$t$的隐藏状态(即“记忆”), - $x_t$ 是时间步$t$的输入, - $y_t$ 是输出, - $W_{hh}$, $W_{xh}$, $W_{hy}$ 是权重矩阵, - $b_h$, $b_y$ 是偏置项, - $\tanh$ 是激活函数(常用以控制输出范围在$[-1, 1]$)。 这种结构使得RNN能处理任意长度的序列,例如在文本生成中,输入可以是单词序列$x_1, x_2, \dots, x_T$,输出是下一个单词的预测$y_t$[^1]。 - **为什么需要RNN?** 传统神经网络(如MLP)将输入视为独立样本,无法捕捉序列中的时间依赖关系。例如,在句子“I am happy”中,单词“happy”的含义依赖于前文“am”。RNN通过隐藏状态$h_t$保留历史信息,解决了这一问题。相较于MLP,RNN更适合处理如机器翻译、股票预测等序列任务[^2][^4]。 --- ### 二、RNN的关键模型与变体 简单RNN存在梯度消失或爆炸问题(即长期依赖难以学习),因此发展了LSTM和GRU等变体来优化性能。以下是主要模型: 1. **简单RNN模型**: 如上所述,基础RNN结构简单,但训练时容易遗忘早期信息。例如,在长序列中,梯度可能衰减到接近0,导致模型无法学习远距离依赖[^1]。 2. **LSTM(长短期记忆模型)**: LSTM引入门控机制(输入门、遗忘门、输出门)来控制信息流。其核心公式为: $$ f_t = \sigma(W_f \cdot [h_{t-1}, x_t] + b_f) $$ $$ i_t = \sigma(W_i \cdot [h_{t-1}, x_t] + b_i) $$ $$ \tilde{C}_t = \tanh(W_C \cdot [h_{t-1}, x_t] + b_C) $$ $$ C_t = f_t \odot C_{t-1} + i_t \odot \tilde{C}_t $$ $$ o_t = \sigma(W_o \cdot [h_{t-1}, x_t] + b_o) $$ $$ h_t = o_t \odot \tanh(C_t) $$ 其中: - $f_t$ 是遗忘门(决定丢弃多少旧记忆), - $i_t$ 是输入门(决定添加多少新信息), - $C_t$ 是细胞状态(长期记忆), - $\odot$ 表示元素乘法, - $\sigma$ 是sigmoid激活函数(输出在$[0,1]$)。 LSTM通过细胞状态$C_t$有效缓解梯度消失,适用于长序列任务如语音识别[^3]。 3. **GRU(门控循环单元)**: GRU是LSTM的简化版,合并了部分门控结构,计算效率更高: $$ z_t = \sigma(W_z \cdot [h_{t-1}, x_t] + b_z) $$ $$ r_t = \sigma(W_r \cdot [h_{t-1}, x_t] + b_r) $$ $$ \tilde{h}_t = \tanh(W \cdot [r_t \odot h_{t-1}, x_t] + b) $$ $$ h_t = (1 - z_t) \odot h_{t-1} + z_t \odot \tilde{h}_t $$ 其中: - $z_t$ 是更新门(控制新信息比例), - $r_t$ 是重置门(决定忽略多少历史信息)。 GRU在资源有限场景(如移动端应用)中更常用[^3]。 --- ### 三、RNN的应用场景 RNN广泛应用于序列数据任务,其优势在于能处理变长输入和输出。常见应用包括: - **自然语言处理(NLP)**:如机器翻译(输入句子序列,输出翻译序列)和情感分析(输入文本序列,输出情感标签)[^4]。 - **时间序列预测**:如股票价格预测,其中输入是历史数据点序列$x_1, x_2, \dots, x_T$,输出是未来值$y_t$。 - **语音识别**:将音频信号序列转换为文本,RNN能捕捉声音的时序特征[^2]。 - **文本生成**:例如聊天机器人,基于输入对话生成连贯回复,隐藏状态$h_t$存储上下文信息[^1]。 --- ### 四、学习资源建议 为了帮助您深入学习,我推荐以下免费教程和笔记资源(基于可靠来源): 1. **入门教程**: - [Stanford CS231n: RNN Lecture Notes](https://cs231n.github.io/rnn/)(英文)——详细讲解RNN原理、LSTM/GRU实现,并附代码示例。 - [李宏毅《深度学习》课程](https://speech.ee.ntu.edu.tw/~hylee/ml/2020-spring.php)(中文)——第12-13讲覆盖RNN基础和应用,适合初学者。 2. **实践代码**: 使用Python和TensorFlow/Keras实现简单RNN(示例基于引用[1][^1]): ```python import tensorflow as tf from tensorflow.keras.models import Sequential from tensorflow.keras.layers import SimpleRNN, Dense # 构建一个简单RNN模型,用于序列分类 model = Sequential() model.add(SimpleRNN(units=64, input_shape=(None, 100))) # 输入: 变长序列,每个时间步特征维度100 model.add(Dense(units=10, activation='softmax')) # 输出: 10个类别的概率 model.compile(optimizer='adam', loss='categorical_crossentropy') print(model.summary()) ``` 此代码展示了RNN处理变长序列的能力(如句子长度可变)。 3. **进阶资源**: - 书籍:《深度学习》(Ian Goodfellow等) 第10章——深入讨论RNN数学推导和优化。 - 论文:[“Long Short-Term Memory”](https://www.bioinf.jku.at/publications/older/2604.pdf)(Hochreiter & Schmidhuber, 1997)——LSTM的原始论文。 - 在线课程:[Coursera《序列模型》](https://www.coursera.org/learn/nlp-sequence-models)(Andrew Ng)——聚焦RNN在NLP的应用。 学习RNN时,建议从简单模型入手,逐步实验LSTM/GRU,并注意梯度问题(可使用梯度裁剪或优化器如Adam缓解)[^3][^4]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值