NLP复习之神经网络

前言

tips:

  • 设计神经网络时,输入层与输出层节点数往往固定,中间层可以自由指定;
  • 神经网络中的拓扑与箭头代表预测过程数据流向,与训练的数据流有一定区别;
  • 我们不妨重点关注连接线,因为它们是权重,是要训练得到的

神经元

神经元模型是一个包含输入、输出、计算功能的模型,注意中间的箭头线,称之为“连接”,上面有“权值”

​ 一个神经网络的训练算法就是让权重的值调整到最佳,以使得整个网络的预测效果最好。

MP神经元模型接收来自n个其他神经元传递过来的输入信号(x1~xn),这些输入信号通过带权重(θ或ω来表示权重,上图采用θ)的连接(Connection)进行传递,然后神经元(图示阈值为b)收到的总输入(所有输入和权重的乘积的和)与神经元的阈值b比较,并经由激活函数(Activation Function,又称响应函数)处理之后产生神经元的输出。

理想情况下,激活函数的形式应为阶跃函数(也就是修正线性单元ReLU),通常选择Sigmoid函数:

\[Sigmoid(x)=S(x)=\frac{1}{1+e^{-x}}
\]

其值域为\((0,1)\)。

​ 神经元可以看做一个计算与存储单元,计算是神经元对其的输入进行计算,存储是神经元会暂存计算结果,传递到下一层。

多层神经网络

单层神经网络(感知机)在此处暂时忽略不写,期末要挂科了

上图展现了基本两层神经网络,其中\(x_i(i=1, 2, 3)\)为输入层值,\(a_i^{(k)}(k=1, 2, \dots, K; i = 1, 2, 3, \dots, N_k)\)表示第k层中,第i个神经元的激活值,\(N_k\)表示第k层的神经元个数。当k=1时,即为输入层,即\(a_i^{(1)}=x_i\),而\(x_0=1\)和\(a_0^{(2)}=1\)为偏置项

为了求最后的输出值\(h_{\theta}(x)=a_1^{(3)}\),我们需要计算隐藏层中每个神经元的激活值\(a_{ji}^{(k)}(k=2,3)\),而隐藏层/输出层的每一个神经元,都是由上一层神经元经过类似逻辑回归计算得到。

反向传播(BP算法)

给出一个示例,是我们的作业题目

(1)在该例子中什么是输入层,隐藏层,输出层,并对不同的层和层之间的权重矩阵进行维度标记。

(2)使用链式法则,在损失函数L上,分别对\(z^{[2]},z^{[1]}_1,z^{[1]}_2,x_1,x_2\),进行求偏导

(1)

输入层:\(x_1,x_2\),维度为\(2 \times 1\);

输入层与隐藏层之间的权重矩阵:\(w_{11}^{[1]},w_{12}^{[1]},w_{21}^{[1]},w_{22}^{[1]}\),维度为\(2 \times 2\);

经过加权求和与偏置后,得到:\(z_1^{[1]},z_2^{[1]}\),维度为\(2 \times 1\);

经过ReLU激活函数后得到隐藏层:\(a_1^{[1]},a_2^{[1]}\),维度为\(2 \times 1\);

隐藏层与输出层之间的权重矩阵:\(w_{11}^{[2]},w_{12}^{[2]}\),维度为\(1 \times 2\);

经过加权求和与偏置后,得到:\(z^{[2]}\),维度为\(1 \times 1\);

经过sigmoid激活函数后得到输出层:\(a^{[2]}\),维度为\(1 \times 1\)。

(2)

损失函数:

\[L = -[y \log{a^{[2]}} + (1 - y) \log{(1 - a^{[2]})}]
\]

所有表达式:

\[\begin{aligned}
a^{[2]} &= \sigma{(z^{[2]})} \\
z^{[2]} &= w_{11}^{[2]}a_1^{[1]} + w_{12}^{[2]}a_2^{[1]} + b_1^{[2]} \\
a_1^{[1]} &= ReLU(z_1^{[1]}) \\
a_2^{[1]} &= ReLU(z_2^{[1]}) \\
z_1^{[1]} &= w_{11}^{[1]}x_1 + w_{12}^{[1]}x_2 + b_1^{[1]} \\
z_2^{[1]} &= w_{21}^{[1]}x_1 + w_{22}^{[1]}x_2 + b_2^{[1]}
\end{aligned}
\]

阶段求导:

\[\begin{aligned}
\frac{\partial L}{\partial a^{[2]}} &= - [\frac{y}{a^{[2]}} + \frac{y - 1}{1 - a^{[2]}}] \\
\frac{\partial a^{[2]}}{\partial z^{[2]}} &= \sigma{(z^{[2]})}(1-\sigma{(a^{[2]})}) = a^{[2]}(1 - a^{[2]}) \\
\frac{\partial z^{[2]}}{\partial a_1^{[1]}} &= w_{11}^{[2]} \\
\frac{\partial z^{[2]}}{\partial a_2^{[1]}} &= w_{12}^{[2]} \\

\frac{\partial a_1^{[1]}}{\partial z_1^{[1]}} &= \begin{cases} 0,\text{for } z_1^{[1]} < 0 \\ 1,\text{for } z_1^{[1]} \geq 0 \end{cases} \\
\frac{\partial a_1^{[1]}}{\partial z_2^{[1]}} &= \begin{cases} 0,\text{for }
z_2^{[1]} < 0 \\ 1, \text{for } z_2^{[1]} \geq 0 \end{cases} \\
\frac{\partial z_1^{[1]}}{\partial x_1} &= w_{11}^{[1]},\frac{\partial z_1^{[1]}}{\partial x_2} = w_{12}^{[1]},\frac{\partial z_2^{[1]}}{\partial x_1} = w_{21}^{[1]},\frac{\partial z_2^{[1]}}{\partial x_2} = w_{22}^{[1]}
\end{aligned}
\]

链式求导:

NLP复习之神经网络的更多相关文章

  1. zz【清华NLP】图神经网络GNN论文分门别类,16大应用200+篇论文最新推荐

    [清华NLP]图神经网络GNN论文分门别类,16大应用200+篇论文最新推荐 图神经网络研究成为当前深度学习领域的热点.最近,清华大学NLP课题组Jie Zhou, Ganqu Cui, Zhengy ...

  2. NLP教程(3) | 神经网络与反向传播

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www.showmeai.tech/article-det ...

  3. 斯坦福NLP课程 | 第11讲 - NLP中的卷积神经网络

    作者:韩信子@ShowMeAI,路遥@ShowMeAI,奇异果@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www. ...

  4. 斯坦福NLP课程 | 第18讲 - 句法分析与树形递归神经网络

    作者:韩信子@ShowMeAI,路遥@ShowMeAI,奇异果@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www. ...

  5. 斯坦福NLP课程 | 第2讲 - 词向量进阶

    作者:韩信子@ShowMeAI,路遥@ShowMeAI,奇异果@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www. ...

  6. NLP教程(6) - 神经机器翻译、seq2seq与注意力机制

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www.showmeai.tech/article-det ...

  7. 在 TensorFlow 中实现文本分类的卷积神经网络

    在TensorFlow中实现文本分类的卷积神经网络 Github提供了完整的代码: https://github.com/dennybritz/cnn-text-classification-tf 在 ...

  8. 在TensorFlow中实现文本分类的卷积神经网络

    在TensorFlow中实现文本分类的卷积神经网络 Github提供了完整的代码: https://github.com/dennybritz/cnn-text-classification-tf 在 ...

  9. 斯坦福NLP课程 | 第1讲 - NLP介绍与词向量初步

    作者:韩信子@ShowMeAI,路遥@ShowMeAI,奇异果@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www. ...

  10. NLP教程(2) | GloVe及词向量的训练与评估

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www.showmeai.tech/article-det ...

随机推荐

  1. Excel对比两张表的某一列,匹配上则进行数据copy

    VLOOKUP(参数1,参数2,参数3,参数4) 参数1: 查找值 参数2:指定查找数据源的范围 参数3:返回查找区域的第几列数据 参数4:精确查找输入参数"0"or"f ...

  2. 9、For语句

    1.for循环概念 程序的流程控制结构一共有三种: 顺序结构,选择结构,循环结构. 顺序结构:代码从上向下逐行的执行 选择结构:条件满足,某些代码才会被执行.0-1次 if语句,switch语句 循环 ...

  3. 使用FRP实现内网穿透<阿里云服务器端+WINDOWS客户端>

    使用FRP实现内网穿透 1.准备条件 一个云服务器 一个FRP服务端文件,下载地址 一个FRP的windows客户端文件,下载地址 2.服务端 使用远程客户端工具,连接你自己的云服务器(我使用的是阿里 ...

  4. DHorse v1.5.0 发布,基于 k8s 的发布平台

    版本说明 新增特性 支持同一机器部署多个DHorse服务: 支持Next..NET应用部署: 优化Node.Nuxt应用构建和部署的性能: 默认使用fabric8客户端与k8s集群交互,可以通过指定参 ...

  5. 数字孪生结合GIS能够在公共交通领域作出什么贡献?

    数字孪生结合地理信息系统(GIS)在公共交通领域具有潜在的重大贡献,这种结合可以帮助城市更高效地规划.运营和改进公共交通系统.以下是一些关键方面的讨论,以说明数字孪生和GIS在这一领域的作用: 数字孪 ...

  6. selenium之三种等待,强制等待、隐式等待和显式等待

    显式等待 presence_of_element_locatedpresence_of_all_elements_locatedvisibility_of_any_elements_located   ...

  7. shiro基于角色URL进行鉴权

    前言 shiro基于URL进行鉴权,网上有很多,但是多数都是copy不排版,眼睛都看花了,还不如自己看看源码. 2021年1月14日21:23:49最新的shiro是1.7,使用时发现了首次访问的一个 ...

  8. 神经网络优化篇:理解mini-batch梯度下降法(Understanding mini-batch gradient descent)

    理解mini-batch梯度下降法 使用batch梯度下降法时,每次迭代都需要历遍整个训练集,可以预期每次迭代成本都会下降,所以如果成本函数\(J\)是迭代次数的一个函数,它应该会随着每次迭代而减少, ...

  9. 《RAPL: A Relation-Aware Prototype Learning Approach for Few-Shot Document-Level Relation Extraction》阅读笔记

    代码   原文地址   预备知识: 1.什么是元学习(Meta Learning)? 元学习或者叫做"学会学习"(Learning to learn),它是要"学会如何学 ...

  10. HDU 3660 树形DP

    原题地址 题意 Alice与Bob在一棵树的树根一同出游,两人从Bob开始轮换选择道路一直走到树叶,Alice会尽可能使走过的总长最小,而Bob相反.不过他们都不能让总长落到[l, r]之外 现在给出 ...