李宏毅机器学习课程|李宏毅机器学习课程笔记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的卷积层的设计对应着前两点,池化层的设计对应着第三点。
文章图片
卷积层
理解卷积操作的动图
卷积是一种神经网络的连接方式:
文章图片
Shared weights: 同色的weight相等。
max pooling和flatten都很简单。
CNN in Keras
文章图片
What does CNN learn?
上例中第二个卷积层有50个11x11的filter,它们的参数是学出来的,设第k个filter的活跃度为 ak ,固定参数,用梯度上升法求使 ak最大的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:
文章图片
左边CNN filter output代表内容,后边的CNN的filter output之间的correlation代表风格。
要找一张image,其content (filter output)像左,style (output correlation)像右。
CNN的其它应用
【李宏毅机器学习课程|李宏毅机器学习课程笔记4(CNN、Why Deep、Semi-supervised)】阿尔法狗:棋盘作为image,有开篇所讲的前两个特点,但没有第三个特点,所以阿尔法狗没有pooling layer。
语音识别应用,CNN的filter只会在频谱的频率方向扫描,不会在时间方向扫描。
文本分类应用,CNN的filter只会在sentence matrix的时间方向扫描,不会在embedding dimension方向扫描。
所以,在具体场景应用CNN时,如何设计CNN的结构,需要考虑场景本身的性质特点。
Lecture 11: Why Deep? 在比较浅层网络与深层网络时,要让“矮胖”的网络和“高瘦”的网络的参数数目相等,这样比较才公平。
即便是在深层网络参数较少的情况下,深层网络也会比浅层网络表现好。
这是因为“深层”其实相当于“模组化”,第一个隐层是最基本的分类器,第二个隐层是用第一个隐层建造的分类器,以此类推。
文章图片
浅层网络确实可以表示任意函数,但是使用深层结构更有效率。
好比逻辑门电路,用两层逻辑门就可以实现任何布尔函数,但是用多层结构更简单、需要的逻辑门更少。
神经网络也是如此,单隐层网络可以表示任何连续函数,但是多层结构表示起来更简单、需要的神经元更少,所以比较不容易overfitting,或只需较少的data。
而且,深层结构可以比较有效率地使用data。
文章图片
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算法。
文章图片
EM的每次(E步、M步)都让likelihood增加一点。
低密度分离假设Low-density Separation Assumption
Self-training 从标注数据得到模型 f? (用什么方法都可以),将模型 f?用于无标注数据得到伪标签,将一部分无标注数据连同伪标签移入标注数据中(选择那些无标注数据是开放性的,可以给每个伪标签一个信度),重复训练、再次得到 f? ……
回归问题用self-training不影响 f? ,所以回归问题不能用self-training方法。
self-training类似于生成模型的半监督学习,区别在于:self-training是硬标签,而Semi-supervised Learning for Generative Model是软标签。
对神经网络来讲,用软标签是没有用的。用硬标签就相当于用Low-density Separation Assumption(强制属于某一类,非黑即白)。
Entropy-based Regularization 如果神经网络的输出是一个分布,我们希望这个分布要集中。
文章图片
平滑假设Smoothness Assumption
假设特征的部分是不均匀的(在某些地方集中,某些地方分散),如果两个特征在高密度区域是相近的,那么二者的标签是相同的。
文章图片
(两个“2”之间有各种2的变体,两个正侧面之间有45°侧面、正面等)
用聚类再标注的方法,可以,但是用像素做聚类结果不会很好,因为有的同类不像,有的异类相像。应该先用deep autoencoder抽feature,再做聚类。
也可以用图结构来表示高密度区域,图的建立与结果很关键。
文章图片
定义 s(xi,xj)的时候,如果 xi,xj是图像,那么根据像素定义相似度结果应该不会好,用autoencoder抽feature比较好。
exp指数函数是必要的,可以带来比较好的performance,让距离稍远一点s就很小。
用基于图的方法需要data足够多,不然信息传不过去。
文章图片
定义平滑度,将其作为损失函数中的正则项:
文章图片
(计算smoothness不一定是在output算)
更优的表示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
推荐阅读
- 深度学习|【李宏毅机器学习】Convolutiona Neural Network 卷积神经网络(p17) 学习笔记
- 机器学习|【学习笔记】李宏毅2021春机器学习课程第三节(卷积神经网络(CNN))
- 李宏毅2021年机器学习笔记———卷积神经网络
- 李宏毅2022ML学习笔记|李宏毅老师2022机器学习课程笔记 01 Introduction of Deep Learning
- 机器学习|联邦学习后门攻击总结(2019-2022)
- 李宏毅机器学习笔记|李宏毅机器学习Task06——卷积神经网络CNN
- 机器学习基础知识|机器学习基础知识之一元线性回归模型
- 机器学习|推荐算法——矩阵分解
- ROS学习笔记|ROS学习笔记(十六) 统一机器人描述格式URDF
- 自然语言处理|纵览200大规模机器学习研究!道翰天琼认知智能机器人平台API接口大脑为您揭秘-3。