神经网络与深度学习

软院复习笔记 软院期末 没找到计科的
课件和视频-台大李宏毅

Regression 回归

预测 y=wx+by=w\cdot x+b 中的参数 w,bw,b
什么是好的 w,bw,b ?使得均方误差损失函数 L(w,b)=n=110(y^n(b+wxn))2L(w,b)=\sum_{n=1}^{10}(\hat y^n-(b+w\cdot x^n))^2 最小的 w,bw,b
目标转化为求 w,b=arg minw,bL(w,b)=arg minn=110(y^n(b+wxn))2w^\star,b^\star=\argmin_{w,b}L(w,b)=\argmin\sum_{n=1}^{10}(\hat y^n-(b+w\cdot x^n))^2 。方法:Gradient Decent梯度下降
梯度下降:

  • 选择初值w0,b0w^0,b^0
  • 计算梯度 Lww=w0,b=b0\frac{\partial L}{\partial w}\mid_{w=w^0,b=b^0}Lbw=w0,b=b0\frac{\partial L}{\partial b}\mid_{w=w^0,b=b^0}
  • 迭代,w1w0ηLww=w0,b=b0,b1b0ηLbw=w0,b=b0w^1\leftarrow w^0-\eta \frac{\partial L}{\partial w}\mid_{w=w^0,b=b^0},b^1\leftarrow b^0-\eta \frac{\partial L}{\partial b}\mid_{w=w^0,b=b^0} 以此类推可得

wiwi1ηLww=wi1,b=bi1,bibi1ηLbw=wi1,b=bi1w^{i}\leftarrow w^{i-1}-\eta \frac{\partial L}{\partial w}\mid_{w=w^{i-1},b=b^{i-1}},b^{i}\leftarrow b^{i-1}-\eta \frac{\partial L}{\partial b}\mid_{w=w^{i-1},b=b^{i-1}}

过拟合:过拟合是指相较有限的数据而言,模型参数过多或者结构过于复杂,且过于紧密或精确地匹配特定数据集,以致于无法良好地拟合其他数据或预测未来的观察结果的现象。(更复杂的模型在测试集上不一定能带来更好的效果)
正则化L(w,b)=n(y^n(b+wxn))2+λwi2L(w,b)=\sum_{n}(\hat y^n-(b+w\cdot x^n))^2+\lambda \sum w_i^2wiw_i 越小意味着模型越平滑(smooth)。λ\lambda越大,正则项的惩罚效果就越强,正则化的约束就越强,模型的复杂度就越低,就越不考虑在训练集上的误差,越不容易过拟合。但容易欠拟合。

Gradient Decent 梯度下降

矩阵形式
Alt text
Adagrad:根据自变量在每个维度的梯度值的大小来调整各个维度上的学习率,从而避免统一的学习率难以适应所有维度的问题。如果目标函数有关自变量中某个元素的偏导数一直都较大,那么该元素的学习率将下降较快;反之,如果目标函数有关自变量中某个元素的偏导数一直都较小,那么该元素的学习率将下降较慢。

wt+1wtηtσtgt=wtηt+11t+1i=0t(gi)2=wtηi=0t(gi)2gtw^{t+1}\leftarrow w^t-\frac{\eta ^t}{\sigma ^t}g^t=w^t-\frac{\frac{\eta}{\sqrt{t+1}}}{\sqrt{\frac{1}{t+1}\sum_{i=0}^t(g^i)^2}}=w^t-\frac{\eta}{\sqrt{\sum_{i=0}^t(g^i)^2}}g^t

(ww是一个参数,ηt=ηt+1\eta ^t=\frac{\eta}{\sqrt{t+1}}σt=1t+1i=0t(gi)2\sigma ^t=\sqrt{\frac{1}{t+1}\sum_{i=0}^t(g^i)^2}gt=L(θt)wg^t=\frac{\partial L(\theta ^t)}{\partial w})
Stochastic Gradient Decent:随机梯度下降,加快训练过程,在每次更新时用一个样本来调整参数 θ\theta
Feature Scaling:特征缩放,将数据的不同变量或特征的范围进行标准化,e.g. xxxmeanxstdx\leftarrow \frac{x-x_{mean}}{x_{std}}

Bias and Variance 偏差与方差

偏差和方差,是error的来源。
数据的均值、方差及其期望。
Alt text
若模型在训练集上表现很差,意味着有较大的bias(欠拟合);若模型在训练集上表现较好,但在测试集上表现较差,意味着有较大的variance(过拟合)。对于较大的bias,应当使用较复杂的模型;对于较大的variance,应当使用更多训练数据或使用正则化。
模型选择:在bias和variance之间做权衡 N折交叉验证。

Deep Learning 深度学习

神经网络 与 深度学习
激活函数:sigmoid函数 σ(z)=11+ez\sigma (z)=\frac{1}{1+e^{-z}}
神经网络前馈过程的计算
Alt text
矩阵形式

σ([1211][11]+[10])=[0.980.12]\sigma ( \begin{bmatrix} 1 & -2 \\ -1 & 1 \end{bmatrix} \begin{bmatrix} 1 \\ -1 \end{bmatrix} + \begin{bmatrix} 1 \\ 0 \end{bmatrix} )= \begin{bmatrix} 0.98 \\ 0.12 \end{bmatrix}

Backpropagation 反向传播

反向传播:更高效地计算梯度,用于梯度下降
应用链式法则(chain rule)。从后往前计算
Youtube讲解视频 知乎解析

Logistic Regression 逻辑回归

逻辑回归

  • modelfw,b(x)=σ(iwixi+b)f_{w,b}(x)=\sigma(\sum_i w_ix_i+b)
  • loss functionL(w,b)=fw,b(x1)fw,b(x2)(1fw,b(x3))fw,b(xN)L(w,b)=f_{w,b}(x^1)f_{w,b}(x^2)(1-f_{w,b}(x^3))\cdots f_{w,b}(x^N)
  • 目标w,b=arg maxw,bL(w,b)=arg minw,blnL(w,b)w^\star,b^\star=\argmax_{w,b}L(w,b)=\argmin_{w,b}-\ln L(w,b) 其中 lnL(w,b)=(lnfw,b(x1)+lnfw,b(x2)+ln(1fw,b(x3))++lnfw,b(xN))-\ln L(w,b)=-(\ln f_{w,b}(x^1)+\ln f_{w,b}(x^2)+\ln (1-f_{w,b}(x^3))+\cdots +\ln f_{w,b}(x^N))
    y^n=1\hat y^n=1 for class1,y^n=0\hat y^n=0 for class2,可得

lnL(w,b)=n[y^nlnfw,b(xn)+(1y^n)ln(1fw,b(xn))]-\ln L(w,b)=\sum_n-\big[ \hat y^n\ln f_{w,b}(x^n)+(1-\hat y^n)\ln(1-f_{w,b}(x^n))\big]

  • cross entropy

  • 通过梯度下降确定 w,bw^\star,b^\star,要计算梯度 lnL(w,b)wi\frac{\partial -\ln L(w,b)}{\partial w_i}。经计算可得 lnL(w,b)wi=n(y^nfw,b(xn))xin\frac{\partial -\ln L(w,b)}{\partial w_i}=\sum_n-(\hat y^n-f_{w,b}(x^n))x_i^n,根据梯度下降的参数更新公式,可得 wiwiηn(y^nfw,b(xn))xinw_i\leftarrow w_i-\eta \sum_n-(\hat y^n-f_{w,b}(x^n))x_i^n。(compare to linear regression)

Generative vs Discriminative
以上通过梯度下降得到的 w,bw,b 属于Discriminative,通过找到 μ1,μ2,Σ1\mu ^1,\mu ^2,\Sigma^{-1} 来计算 w,bw,b 属于Generative。(wT=(μ1μ2)TΣ1,b=12(μ1)T(Σ1)1μ1+12(μ2)T(Σ2)1μ2+lnN1N2w^T=(\mu ^1-\mu ^2)^T\Sigma^{-1}, b=-\frac{1}{2}(\mu ^1)^T(\Sigma^1)^{-1}\mu ^1+\frac{1}{2}(\mu ^2)^T(\Sigma^2)^{-1}\mu ^2+\ln \frac{N_1}{N_2}
Discriminative的准确率会更高,但当训练数据较小,噪声较多,Prior和class-dependent probability有不同的来源时,Generative会更好。
Multi-class Classification
通过softmax层,将每个类别的结果通过 ezie^{z_i} 放大,然后规范化到(0,1)之间,且iyi=1\sum_i y_i=1。然后要最小化cross entropy:i=1ny^ilnyi-\sum_{i=1}^n\hat y_i\ln y_i 。其中,当 xx\isin class i,那么 y^i=1\hat y_i=1 ,否则 y^i=0\hat y_i=0
逻辑回归的局限性:无法处理线性不可分的情况,因此,我们需要通过Feature Transformation将样本映射到其他空间上。如何Feature Transformation?可以通过逻辑回归的model function:σ(iwixi+b)\sigma(\sum_i w_ix_i+b),一个function可以称作一个Neural,许多Neural组成的网络称作Neural Network

Text Classification 文本分类

CNN图片分类

  • CNN(Convolutional Neural Network 卷积神经网络)相较于DNN(Deep Neural Network 深度神经网络)简化了参数
  • 最基本的多层CNN图片分类网络结构:image \rightarrow Convolution \rightarrow Max Pooling \rightarrow Convolution \rightarrow Max Pooling \rightarrow \cdots \rightarrow Flatten \rightarrow Fully Connected Feedforward Network
  • Convolution:用filter在image中做矩阵内积,得到feature map。
  • Max Pooling:将feature map分成一些区域,取区域内的最大值,使得维度进一步缩小。
  • Flatten:将得到的矩阵展开成 n×1n\times1 的向量,作为全连接层的输入。

TextCNN:将word转化为向量,那么一个句子就是一个矩阵,可以作为CNN的输入,实现文本分类。
RNN:Recurrent Neural Network 循环神经网络,将会记忆隐藏层的输出,在下一次进入隐藏层时,将之前记忆的输出作为输入,影响着这次的输出(另外一种是记忆整个网络的输出)。因此输入的顺序将会影响最终的结果。
Bidirectional RNN:双向循环神经网络。记忆模块会考虑本次输入之前的信息,反向的RNN使得记忆模块能够考虑本次输入之后的信息,将两个网络的输出综合起来,使得整个网络的表现更好。
Alt text
LSTMLong short-term Memory 长短期记忆知乎解析
Alt text
遗忘门 输入门 输出门 计算公式
LSTM的参数是SimpleRNN的4倍,参数数量 =4×shape(h)×[shape(h)+shape(x)]=4\times shape(h)\times [shape(h)+shape(x)]

RNN for Text Classification
Alt text
LSTM vs Naive RNN:RNN只有一个传输状态 hth^t,LSTM有两个传输状态 ct,htc^t,h^t
Alt text
Text Generation
Attention:Attention机制是从大量信息中有筛选出少量重要信息,并聚焦到这些重要信息上,忽略大多数不重要的信息。权重越大越聚焦于其对应的Value值上,即权重代表了信息的重要性,而Value是其对应的信息。
Pointer:Pointer Network是一种对attention机制的应用。在summary任务中,对于词典中不存在的词(人名、地名),通过copy输入中的这些词来得到输出。
Self-Attention:计算过程与Attention一样,但Q K V三者都来源于X。Youtube讲解视频 知乎解析
TransformerYoutube讲解视频(同上) 知乎解析
Alt text

参考资料

https://blog.csdn.net/m2607219640/article/details/131080808?ops_request_misc=&request_id=&biz_id=102&utm_term=%E5%B1%B1%E4%B8%9C%E5%A4%A7%E5%AD%A6%20%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-131080808.142^v99^pc_search_result_base8&spm=1018.2226.3001.4187
https://blog.csdn.net/horsetaill/article/details/131112733?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170391052116800188583833%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=170391052116800188583833&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-4-131112733-null-null.142^v99^pc_search_result_base8&utm_term=%E5%B1%B1%E4%B8%9C%E5%A4%A7%E5%AD%A6%20%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0&spm=1018.2226.3001.4187
https://speech.ee.ntu.edu.tw/~hylee/ml/2016-fall.php
https://www.youtube.com/watch?v=ibJpTrp5mcE
https://zhuanlan.zhihu.com/p/40378224
https://speech.ee.ntu.edu.tw/~tlkagk/courses/ML_2016/Lecture/Logistic%20Regression%20(v3).pdf
https://colah.github.io/posts/2015-08-Understanding-LSTMs/
https://zhuanlan.zhihu.com/p/32085405
https://www.youtube.com/watch?v=ugWDIIOHtPA&list=PLJV_el3uVTsOK_ZK5L0Iv_EQoL1JefRL4&index=61
https://zhuanlan.zhihu.com/p/609523552
https://zhuanlan.zhihu.com/p/338817680