李宏毅2020机器学习2

10. Classification

分类应用很多,例如:
Credit scoring:Input: income, savings, profession, age, …, Output: accept or refuse
Medical Diagnosis: Input: current symptoms, age, gender, …, Output: which kind of diseases
Handwritten character recognition
Face recognition: Input: image of a face, Output: persion

10.1 Generative model 生成模型

高斯分布
贝叶斯概率
极大释然估计

11. Logistic Regression

Step 1: Function Set
f w , b ( x ) = P w , b ( C 1 ∣ x ) = σ ( z ) f_{w,b}(x)=P_{w,b}(C_1|x)=\sigma(z) fw,b(x)=Pw,b(C1x)=σ(z)
σ ( z ) = 1 1 + e − z \sigma (z) = \frac{1}{1+e^{-z}} σ(z)=1+ez1
z = w ⋅ x + b = ∑ i w i x i + b z=w \cdot x + b = \sum_i w_i x_i + b z=wx+b=iwixi+b

sigmoid 函数默认是高斯分布

Step 2: Goodness of a Function
损失函数可以判断函数的好坏

Step 3: Find the best function
梯度下降法找最佳函数

-Logistic RegressionLinear Regression
Step 1 f w , b ( x ) = σ ( ∑ i w i x i + b ) Output: between 0 and 1 f_{w,b}(x)=\sigma(\sum_i w_i x_i + b) \\ \text{Output: between 0 and 1} fw,b(x)=σ(iwixi+b)Output: between 0 and 1 f w , b ( x ) = ∑ i w i x i + b Output: any value f_{w,b}(x)=\sum_i w_i x_i + b \\ \text{Output: any value} fw,b(x)=iwixi+bOutput: any value
Step 2Training data: ( x n , y ^ n ) y ^ n : 1 for class 1, 0 for class 2 L ( f ) = ∑ n C ( f ( x n ) , y ^ n ) Cross entropy: C ( f ( x n ) , y ^ n ) = − [ y ^ n ln ⁡ f ( x n ) + ( 1 − y ^ n ) ln ⁡ ( 1 − f ( x n ) ) ] (x^n, \hat{y}^n) \\ \hat{y}^n: \text{1 for class 1, 0 for class 2} \\ L(f)=\sum_n C(f(x^n),\hat{y}^n) \\ \text{Cross entropy:} \\ C(f(x^n),\hat{y}^n)=-[\hat{y}^n \ln f(x^n) + (1-\hat{y}^n) \ln (1-f(x^n))] (xn,y^n)y^n:1 for class 1, 0 for class 2L(f)=nC(f(xn),y^n)Cross entropy:C(f(xn),y^n)=[y^nlnf(xn)+(1y^n)ln(1f(xn))]Training data: ( x n , y ^ n ) y ^ n : a real number L ( f ) = 1 2 ∑ n ( f ( x n ) − y ^ n ) 2 (x^n, \hat{y}^n) \\ \hat{y}^n: \text{a real number} \\ L(f)=\frac{1}{2}\sum_n (f(x^n)-\hat{y}^n)^2 (xn,y^n)y^n:a real numberL(f)=21n(f(xn)y^n)2
Step 3 w i ← w i − η ∑ n − ( y ^ n − f w , b ( x n ) ) x i n w_i \leftarrow w_i - \eta \sum_n -(\hat{y}^n - f_{w,b}(x^n))x^n_i wiwiηn(y^nfw,b(xn))xin w i ← w i − η ∑ n − ( y ^ n − f w , b ( x n ) ) x i n w_i \leftarrow w_i - \eta \sum_n -(\hat{y}^n - f_{w,b}(x^n))x^n_i wiwiηn(y^nfw,b(xn))xin

Softmax: 输出为概率(强化大的值,使最大值辨识度更高)
1 > y i > 0 ∑ i y i = 1 1>y_i>0 \\ \sum_i y_i = 1 1>yi>0iyi=1
x → softmax → y ↔ ∑ i y ^ i ln ⁡ y i Cross Entropy y ^ x \rightarrow \text{softmax} \rightarrow y \xleftrightarrow[\sum_i \hat{y}_i \ln y_i]{\text{Cross Entropy}} \hat{y} xsoftmaxyCross Entropy iy^ilnyiy^

逻辑回归的限制:1. Feature Transformation(不过不容易找到好的特征转换) 2. 逻辑回归模型的级联(神经网络)

12. Deep Learning

深度学习历史:

  1. 1958: Perceptron (linear model,没有sigmoid部分)
  2. 1969:Perceptron has limitation
  3. 1980s: Multi-layer perceptron: Do not have significant difference from DNN today
  4. 1986: Backpropagation: Usually more than 3 hidden layers is not helpful
  5. 1989: 1 hidden layer is “good enough”, why deep?
  6. 2006: RBM initialization (breakthrough)(Restricted Boltzmann Machine)
  7. 2009: GPU
  8. 2011: Start to be popular in speech recognition
  9. 2012: win ILSVRC image competition

Neural Network: 把 Logistic Regression 前后连接到一起,每一个Logistic Regression称之为Neuron,整个称之为Neural Network;不同的连接生成不同的网络结构,例如:Fully Connect Feedforward Network、Convolutional Neural Network(CNN);一个neural network就是一个function,当neural network设置不同的参数时,就得到了一个function set
deep:有很多hidden layer;比较深的network,必须采用特殊的structure,才能进行训练。Network的运算一般使用Matrix Operation来表示,即矩阵运算,这样可以使用GPU加速
Feature Extractor: 隐藏层可以看作是一个特征提取器,可以替代手动feature engineering 或 feature transformation
决定一个好的function set很关键,即决定network的structure很关键;让机器自动寻找network structure也是可以的,不过目前还没有非常普及

13. Backpropagation

反向传播:有效计算百万维级参数的梯度;先前向传递,然后再反向传递,循环多次
链式法则:

  1. y = g ( x ) z = h ( y ) Δ x → Δ y → Δ z d z d x = d z d y d y d x y=g(x) \quad z=h(y) \\ \Delta x \rightarrow \Delta y \rightarrow \Delta z \\ \frac{\mathbf{d}z}{\mathbf{d}x}=\frac{\mathbf{d}z}{\mathbf{d}y}\frac{\mathbf{d}y}{\mathbf{d}x} y=g(x)z=h(y)ΔxΔyΔzdxdz=dydzdxdy
  2. x = g ( s ) y = h ( s ) z = k ( x , y ) Δ s ↘ Δ y ↗ Δ x ↗ ↘ Δ z d z d s = ∂ z ∂ x d x d s + ∂ z ∂ y d y d s x=g(s) \quad y=h(s) \quad z=k(x,y)\\ {\Delta s^{\nearrow \Delta x}_{\searrow \Delta y}}^{\searrow}_{\nearrow} \Delta z \\ \frac{dz}{ds}=\frac{\partial z}{\partial x} \frac{dx}{ds}+\frac{\partial z}{\partial y} \frac{dy}{ds} x=g(s)y=h(s)z=k(x,y)ΔsΔyΔxΔzdsdz=xzdsdx+yzdsdy

神经网络损失函数: L ( θ ) = ∑ n = 1 N C n ( θ ) L(\theta)=\sum_{n=1}^N C^n(\theta) L(θ)=n=1NCn(θ)

14. Tips for Deep Learning

  1. 在训练数据上结果不好:New activation function、Adaptive Learning Rate
  2. 在测试数据上结果不好:Early Stopping、Regularization、Dropout

Vanishing Gradient Problem: 梯度消失问题,sigmoid 激活函数可以引起该问题,因为 sigmoid 会衰减
可以使用 Rectified Linear Unit (ReLU) 代替 sigmoid,理由:1. Fast to compute 2. Biological reason 3. Infinite sigmoid with different biases 4. Vanishing gradient problem
Leaky ReLU、Parametric ReLU、Maxout : 另外几种激活函数

15. 为什么选择deep

Shallow: Fat + Short
Deep: Thin + Tall

15.1. Modularization

Deep → Modularization → Less training data \text{Deep} \rightarrow \text{Modularization} \rightarrow \text{Less training data} DeepModularizationLess training data
Modularization: Don’t put everything in your main function. The Modularization is automatically learned from data.

剪窗花例子形象说明了模块化操作

15.2. End-to-end Learning

类似于生产线

16. PyTorch 介绍

numpy的array 和 torch的tensor 几乎一模一样,不过 torch 可以自动求导;两者也可以互相转换,差别仅仅是某些keyword不一样,例如np中的axis 和 torch中的dim
参考代码

16.1. tensor.view

类似于numpy.reshape()

16.2. Broadcasting

两个向量维度不一样时,如果进行加减等操作,会自动进行广播复制

16.3. Computation graphs

pytorch的tensor比较特殊的一点是,它会自动创建一张计算图

16.4. CUDA Semantics

cuda可以在cpu和gpu之间来回拷贝tensor

16.5. PyTorch是一个自动微分框架

16.6. 梯度的使用

求得梯度后,我们就可以使用优化算法–梯度下降法了

16.7. Linear Regression

使用梯度下降法解线性回归

16.8. torch.nn.Module

16.9. Activation functions

PyTorch实现的激活函数有:ReLU, Tanh, Sigmoid

16.10. Sequential

多个简单的module串联起来,就是Sequential

16.11. Loss functions

PyTorch实现的损失函数有:MSELoss, CrossEntropyLoss

16.12. optim

PyTorch实现的基于梯度的优化器有:SGD, Adam 等

16.13. 使用PyTorch实现线性回归

16.14. 神经网络

16.15. CrossEntropyLoss

交叉熵损失函数的使用与MSELoss完全相同

17. Convolutional Neural Network

为什么用CNN处理图片?因为全连接神经网络处理图片时需要太多的参数,CNN可以简化网络结构,将全连接网络中的某些参数拿掉:

  • 某些图案比整张图小,一个神经元寻找某个图案时,不需要查看整张图片,即不需要连接所有输入像素
  • 不同的区域会出现相同图案,因此不同区域相同图案的多个检测器可以使用相同的参数
  • 对图片抽样不改变图片描述的对象

完整CNN:图片 -> Convolution -> Max Pooling -> Convolution -> Max Pooling(卷积和池化可以重复很多次) -> Flatten -> Fully Connected Feedforward network -> cat or dog

Convolution: 许多个图案过滤器,每一个过滤器是一个矩阵,矩阵的值是网络的参数,它们是被学习出来的,并不是人设计的;每一个过滤器会得到一个特征图;对于彩色图片,卷积核为立方体,每一个通道并不是分开来算,而是和在一起来算;
卷积:较少的参数,且共享权重

Max Pooling: 多个值合成一个值,可以是平均值,也可以是最大值

一个图片经过Conv, MaxPooling后,就变成一个新的、小的图片,每一个过滤器是一个通道

Flatten: Feature Map拉直

假设第k个过滤器的输出是11x11矩阵,
Degree of the activation of the k-th filter: a k = ∑ i = 1 11 ∑ j = 1 11 a i j k a^k=\sum_{i=1}^{11}\sum_{j=1}^{11} a^k_{ij} ak=i=111j=111aijk
x ∗ = arg max ⁡ a k x^*=\text{arg} \max a^k x=argmaxak (gradient ascent)
模型训练好之后,可以通过该方法查看每一个filter对什么图形特征最敏感

18. Graph Neural Network

  1. Introduction
  2. Roadmap
  3. Tasks, Dataset, and Benchmark
  4. Spatial-based GNN
  5. Graph Signal Processing and Spectral-based GNN
  6. Graph Generation
  7. GNN for NLP
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
李宏毅2020机器学习笔记中,有一个关于注意力机制(Attention)的部分。这部分内容主要介绍了生成模型(Generation)、注意力(Attention)、生成的技巧(Tips for Generation)以及指针网络(Pointer Network)。在生成模型中,主要讲述了如何生成一个有结构的对象。接下来介绍了注意力机制,包括一些有趣的技术,比如图片生成句子等。在生成的技巧部分,提到了一些新的技术以及可能遇到的问题和偏差,并给出了相应的解决方案。最后,稍微提到了强化学习。其中还提到了在输出"machine"这个单词时,只需要关注"机器"这个部分,而不必考虑输入中的"学习"这个部分。这样可以得到更好的结果。另外,还提到了关于产生"ei"的方法,其中有研究应用了连续动态模型自注意力(Self-attention)来学习位置编码的方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [2020李宏毅机器学习笔记-Condition Generation by RNN&Attention](https://blog.csdn.net/zn961018/article/details/117593813)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [李宏毅机器学习学习笔记:Self-attention](https://blog.csdn.net/weixin_44455827/article/details/128094176)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值