李宏毅机器学习课程笔记4:CNN、Why Deep、Semi-supervised



台湾大学李宏毅老师的机器学习课程是一份非常好的ML/DL入门资料,李宏毅老师将课程录像上传到了YouTube,地址:NTUEE ML 2016
这篇文章是学习本课程第10-12课所做的笔记和自己的理解。


Lecture 10: Convolutional Neural Network

Why CNN for Image

CNN的参数比全连接神经网络少得多,为什么CNN只用较少的参数就可以用于处理图像呢?这是因为图像具有以下三点特征:
1、一些模式比整张图片小得多,例如“鸟喙”就比整张图片小得多;
2、同样的模式可能出现在图像的不同区域,例如“鸟喙”可能出现在图片的左上方也可能出现在图像的中间;
3、对图像的降采样不会改变图像中的物体。
CNN的卷积层的设计对应着前两点,池化层的设计对应着第三点。
CNN

卷积层

理解卷积操作的动图
卷积是一种神经网络的连接方式:
conv
Shared weights: 同色的weight相等。
max pooling和flatten都很简单。

CNN in Keras

CNN in Keras

What does CNN learn?

上例中第二个卷积层有50个11x11的filter,它们的参数是学出来的,设第k个filter的活跃度为ak” role=”presentation” style=”position: relative;”>akak 最大的input image。
得到的结果是,使各个filter活跃度最大的image是各种条纹。这层filter看的还是局部信息。
而使flatten后的FC层的filter活跃度最大的image,就显示出了各种轮廓,说明这些filter看的是整体信息。
这里写图片描述

固定参数,求input image,让output layer的各neuron的output最大,并没有得到期望中的数字图片,而是很杂乱的图像。(白色表示有墨水。)
对目标output加一个L1正则项,所得结果稍显数字轮廓。
这里写图片描述

Deep Dream 与 Deep Style 有着与之类似的思路。

Deep Dream 与 Deep Style

Deep Dream: 将一张image作为CNN的输入,将CNN某个hidden layer的output(vector)拿出来,让其中正的更正、负的更负,把它作为新的image的target.

Deep Style:
Deep Style
左边CNN filter output代表内容,后边的CNN的filter output之间的correlation代表风格。
要找一张image,其content (filter output)像左,style (output correlation)像右。

CNN的其它应用

阿尔法狗:棋盘作为image,有开篇所讲的前两个特点,但没有第三个特点,所以阿尔法狗没有pooling layer。
语音识别应用,CNN的filter只会在频谱的频率方向扫描,不会在时间方向扫描。
文本分类应用,CNN的filter只会在sentence matrix的时间方向扫描,不会在embedding dimension方向扫描。
所以,在具体场景应用CNN时,如何设计CNN的结构,需要考虑场景本身的性质特点。

Lecture 11: Why Deep?

在比较浅层网络与深层网络时,要让“矮胖”的网络和“高瘦”的网络的参数数目相等,这样比较才公平。
即便是在深层网络参数较少的情况下,深层网络也会比浅层网络表现好。
这是因为“深层”其实相当于“模组化”,第一个隐层是最基本的分类器,第二个隐层是用第一个隐层建造的分类器,以此类推。
modularization

浅层网络确实可以表示任意函数,但是使用深层结构更有效率。
好比逻辑门电路,用两层逻辑门就可以实现任何布尔函数,但是用多层结构更简单、需要的逻辑门更少。
神经网络也是如此,单隐层网络可以表示任何连续函数,但是多层结构表示起来更简单、需要的神经元更少,所以比较不容易overfitting,或只需较少的data。
而且,深层结构可以比较有效率地使用data。
analogy

1层hidden layer与3层hidden layer(相同数目的参数),3层的效果更好。
但理论上,3层可达到的效果,1层也能达到:要在1层learn的时候,target从真实label改为3层的output,这样1层的结果会接近3层的结果。

Lecture 12: Semi-supervised

半监督学习的训练数据,有一部分是标注数据,有一部分是无标注数据。
Transductive learning和Inductive learning都可算是半监督学习,区别在于前者的无标注数据是测试数据(除去label),而后者的无标注数据不包括测试数据。实际中用哪种常取决于是否有测试集。

无标注数据的分布会让我们做出一些假设,半监督学习有没有用就取决于假设是否合理。

生成模型的半监督学习Semi-supervised Learning for Generative Model

无标注数据有助于重新估计生成模型假设中的参数,从而影响决策边界。算法采用EM算法。
ml
EM的每次(E步、M步)都让likelihood增加一点。

低密度分离假设Low-density Separation Assumption

Self-training

从标注数据得到模型f∗” role=”presentation” style=”position: relative;”>ff∗……
回归问题用self-training不影响f∗” role=”presentation” style=”position: relative;”>ff∗,所以回归问题不能用self-training方法。
self-training类似于生成模型的半监督学习,区别在于:self-training是硬标签,而Semi-supervised Learning for Generative Model是软标签。
对神经网络来讲,用软标签是没有用的。用硬标签就相当于用Low-density Separation Assumption(强制属于某一类,非黑即白)。

Entropy-based Regularization

如果神经网络的输出是一个分布,我们希望这个分布要集中。
Entropy-based Regularization

平滑假设Smoothness Assumption

假设特征的部分是不均匀的(在某些地方集中,某些地方分散),如果两个特征在高密度区域是相近的,那么二者的标签是相同的。
Smoothness Assumption
(两个“2”之间有各种2的变体,两个正侧面之间有45°侧面、正面等)
用聚类再标注的方法,可以,但是用像素做聚类结果不会很好,因为有的同类不像,有的异类相像。应该先用deep autoencoder抽feature,再做聚类。
也可以用图结构来表示高密度区域,图的建立与结果很关键。
这里写图片描述
定义s(xi,xj)” role=”presentation” style=”position: relative;”>s(xi,xj)s(xi,xj) 是图像,那么根据像素定义相似度结果应该不会好,用autoencoder抽feature比较好。
exp指数函数是必要的,可以带来比较好的performance,让距离稍远一点s就很小。
用基于图的方法需要data足够多,不然信息传不过去。
need enough data

定义平滑度,将其作为损失函数中的正则项:
smoothness
(计算smoothness不一定是在output算)

更优的表示Better Representation

精神:寻找在表面观察背后隐藏着的更好的表示。
Better Representation


李宏毅机器学习课程笔记

李宏毅机器学习课程笔记1:Regression、Error、Gradient Descent
李宏毅机器学习课程笔记2:Classification、Logistic Regression、Brief Introduction of Deep Learning
李宏毅机器学习课程笔记3:Backpropagation、”Hello world” of Deep Learning、Tips for Training DNN
李宏毅机器学习课程笔记4:CNN、Why Deep、Semi-supervised
李宏毅机器学习课程笔记5:Unsupervised Learning - Linear Methods、Word Embedding、Neighbor Embedding
李宏毅机器学习课程笔记6:Unsupervised Learning - Auto-encoder、PixelRNN、VAE、GAN
李宏毅机器学习课程笔记7:Transfer Learning、SVM、Structured Learning - Introduction
李宏毅机器学习课程笔记8:Structured Learning - Linear Model、Structured SVM、Sequence Labeling
李宏毅机器学习课程笔记9:Recurrent Neural Network
李宏毅机器学习课程笔记10:Ensemble、Deep Reinforcement Learning

文章转载处:https://blog.csdn.net/xzy_thu/article/details/69808817

  • 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、付费专栏及课程。

余额充值