机器学习系列
文章平均质量分 95
本系列内容包含但不限于人工神经网络、深度学习、强化学习、主成分分析、K-均值聚类和高斯混合模型。在未来的十年内,掌握基础的机器学习理论和方法,可能是每一位受过专业教育的工程技术人员的基本要求之一。声明:该系列文章有参考浙江大学胡浩基老师主讲的《机器学习》课程,仅作学习交流使用。
@DWC_DIP
每天进步一点点~~
展开
-
目标检测—R-CNN、Fast R-CNN和Faster R-CNN
目标检测参考文献本讲进入到深度到深度学习的应用方面,前面提到的卷积神经网络被用作图像分类识别,即输入一张图像,输出它的类别。在实际应用中,我们更有可能遇到的是是如下几种将检测、分割与识别综合处理的情形。第一种情形,单目标检测中的目标定位与识别,即图像中有一个目标,我们需要检测出它的位置,同时识别出它的类别。第二种情形,多目标检测中的目标定位与识别,即图像中有多个目标,我们需要分别检测出它的位置,同时对每个目标都要进行识别。第三种情形,语义分割,我们不仅要检测和识别出图像中的各种目标,还要确定每个目原创 2021-07-10 17:14:39 · 1343 阅读 · 3 评论 -
人脸识别介绍
人脸识别介绍在这一讲中,我们将以人脸识别为具体应用,讲解如何用深度神经网络构建一个实用的人脸识别系统。首先,回顾人脸识别邻域近年来的发展,在2013年AlexNet提出之后,FaceBook迅速跟进,在2014年构建了一个DeepFace的卷积神经网络。训练数据库包含4000人、400万张人脸,该模型在LFW数据集上取得了97.25%的平均精度,同时在Youtube数据集上取得了当前最好的结果,比之前的第一整整高出了12.7%。2015年,香港中文大学唐晓鸥老师实验室研发了DeepID卷积神经网络,原创 2021-06-19 16:30:34 · 967 阅读 · 0 评论 -
深度学习—近年来流行的卷积神经网络(一)
近年来流行的卷积神经网络前面几讲,我们以LeNet和AlexNet为例,详细讲解了卷积神经网络的结构。从2012年AlexNet在ImageNet数据集上获得远超传统算法识别率以来,学术界在卷积神经网络方面进行了一系列改进型研究工作,这一讲我们将描述这些重要的改进。下图是截至2015年卷积神经网络的发展图。图1 各种不同网络在ImageNet上的结果2012年AlexNet将ImageNet数据集的Top5错误率降低到16.4%。2014年VGGNet和GooleNet分别将Top5错误率降低到原创 2021-06-01 21:25:59 · 4037 阅读 · 13 评论 -
深度学习编程工具Tensorflow—实现LeNet-5
Tensorflow框架实现LeNet-51. 目标与背景2. 基于LeNet的TensorFlow实现2.1 程序代码分析2.2 实验演示3. 结尾参考资料1. 目标与背景在这一讲中,我们将讲解深度学习的编程工具Tensorflow的基础使用规则。最初的深度学习编程工具主要由研究人员义务开发,免费发布供大家使用,如Caffe,在2014年,由美国加州大学伯克利分校贾扬清开发。随着深度学习技术的逐渐普及,开发深度学习的编程工具变得有利可图。因此,近年来编程工具的主要开发者变成了公司。图1 贾扬清下原创 2021-05-31 16:15:11 · 1228 阅读 · 3 评论 -
深度学习编程工具Pytorch—实现LeNet-5
Pytorch框架1.背景与目标2. Pytorch实现LeNet-52.1 主函数main()2.2 训练函数train()与测试函数test()3. 结尾参考资料1.背景与目标在这一讲中,我们将讲解近年来流行的深度学习编程工具Pytorch的使用方法。最近几年Pytorch工具使用份额日益增长,目前已经成为学术界研究深度学习的第一编程工具。这一讲我们仍然以LeNet为例来讲解Pytorch这一编程工具。2. Pytorch实现LeNet-52.1 主函数main()首先,我们打开main.py原创 2021-05-30 11:52:55 · 608 阅读 · 0 评论 -
深度学习—卷积神经网络AlexNet
卷积神经网络AlexNet1. AlexNet的历史2. AlexNet网络结构简要分析3. AlexNet的改进4. 结尾参考资料在这一讲中,我们将详细讲解深度学习发展中的重要里程碑AlexNet。1. AlexNet的历史2012年Geoffrey Hintton的学生ALEX Krizhevsky构建了一个包含65万多个神经元,待估计参数超过6000万的大规模的卷积神经网络。他以自己的名字命名了这个神经网络叫作AlexNet,用以解决ImageNet数据集1000类的分类问题。在2012年,Im原创 2021-05-28 15:32:59 · 1363 阅读 · 0 评论 -
深度学习—卷积神经网络LeNet
卷积神经网络LeNet1. CNN的历史2. 卷积神经网络LeNet2.1 经典的LeNet结构2.2 卷积过程3. LeNet-5网络结构分析3.1 卷积核参数更新3.2 LeNet网络逐层分析3.3 LeNet中待估计参数4. 结尾在这一讲中,我们将讲解目前深度学习领域最常用的一个模型—卷积神经网络(Convolutional Neural Network, CNN)。1. CNN的历史CNN的历史可以追溯到1980年Fukushima发明的神经认知机(neocognitron),这是第一个通过自原创 2021-05-25 21:57:45 · 3566 阅读 · 16 评论 -
深度学习—自编码器
自编码器1. 自编码器模型2. 自编码器思想3. 结尾参考文献1. 自编码器模型这一讲我们将讲解2006年Geoffrey Hintton在Science上发表的文章Reducing the dimensionality of data with neural networks自编码器(Auto-Encoder)模型,基于这个模型,它部分地解决了神经网络参数初始化的问题。2. 自编码器思想自编码器采用的是分层初始化的思想。例如我们想要训练图中NNN层的神经网络,步骤如下:步骤一:先训练图中下原创 2021-05-24 21:21:50 · 2437 阅读 · 1 评论 -
深度学习—历史发展
深度学习的历史发展1. 导语2. 人工神经网络发展历程2.1 人工神经网络的劣势2.2 人工神经网络三剑客3. 深度学习发展中的革新事件1. 导语从这一讲开始,我们将进入目前最火热的人工智能领域—深度学习(Deep Learning)。我们前面讲到,从上个世纪80年代开始,多层神经网络被提出,它较好地解决了机器学习中的一些实际问题,但是到了上个世纪90年代,人工神经网络的研究却突然进入了沉寂。这是因为上个世纪90年代中期,以支持向量机为代表的一系列机器学习模型的提出,对人工神经网络这样的算法造成了强烈的原创 2021-05-24 11:51:19 · 2460 阅读 · 0 评论 -
人工神经网络—参数设置中更深入的问题
参数设置问题1. 回顾1. 回顾在前面的章节中,我们讲过神经网络的训练是一门艺术。我们这一讲将从解决实际问题经验的角度出发,给出训练神经网络的一些建议,同时探讨神经网络参数设置中更深入的问题,希望通过本章内容的讲解,加深对训练神经网络的感性认识,提高利用神经网络解决实际问题的能力。首先是三个训练神经网络的建议,这几个建议应该是学术界一致公认的。(1)一般情况下,在训练集上的目标函数的平均值(cost) 会随着训练的深入而不断减小,如果这个指标有增大的情况,请停下来。有两种情况:采用的模型不够复原创 2021-05-22 15:03:20 · 510 阅读 · 0 评论 -
人工神经网络—后向传播算法应用中的问题
后向传播算法应用中的问题1. 回顾2. 对非线性函数的改进2.1 Sigmoid函数2.2 tanh函数3. 基于SoftMax函数和交叉熵的目标函数4. 随机梯度下降法5. 结尾1. 回顾在上两讲中,我们讲解了如何利用后向传播算法训练多层神经网络,我们总结出了后向传播算法的基本框架,包含以下步骤:(1)对神经网络每一层的各个神经元,随机选取相应的 w,bw,bw,b 的值。(2)前向计算,对于输入的训练数据,计算并保留每一层的输出值,直到计算出最后一层的输出 yyy 为止。(3)设置目标函数EE原创 2021-05-19 22:12:29 · 418 阅读 · 7 评论 -
人工神经网络—反向传播算法(二)
反向传播算法(二)1. 回顾2. 反向传播算法的一般情形2.1 反向传播算法的推导2.2 一般情形的后向传播算法流程3. 结尾1. 回顾在上一讲中,我们基于一个简单的神经网络,讲解了如何用后向传播算法更新神经网络的参数,完成神经网络的训练。这一讲我们将后向传播算法推广到一般的神经网络中,即我们不限制神经网络的层数以及每一层的神经元的个数来推导后向传播算法。2. 反向传播算法的一般情形如下图1所示,假设神经网络有lll层,我们不限制每一层神经元的个数,那么神经元的图可以用更简单的矩阵来表示。图1原创 2021-05-18 15:32:49 · 385 阅读 · 0 评论 -
人工神经网络—反向传播算法(一)
反向传播算法(一)1. 回顾2. 反向传播算法2.1 简化求解偏导数2.2 后向传播算法的步骤3. 结尾1. 回顾 在上一讲中,我们主要讲解了利用梯度下降法求解人工神经网络目标函数的局部极值的原理,在这个一讲中,我们将针对一个具体的神经网络讲解梯度下降法的具体求解过程。2. 反向传播算法 我们仍然来看这个简单的神经网络,前面讲到了这个神经网络待估计的参数共有9个,它们分别是(w11,w12,w21,w22,w1,w2,b1,b2,b3)(w_{11},w_{12},w_{21},w_{22},w原创 2021-05-15 15:48:28 · 588 阅读 · 0 评论 -
人工神经网络—梯度下降算法
梯度下降算法1. 回顾1. 回顾在上一讲中,我们讲到多层神经网络的结构是由每一层有多个神经元组成的线性结构,加上层与层之间的非线性函数构成。我们同时论证了层与层之间的非线性函数是阶跃函数,那么三层神经网络可以模拟任意的决策函数。然而实际的应用中,问题是反过来的,我们并不知道决策函数是什么,而是只知道特征空间中一些训练样本和这些训练样本的标签。由于我们不知道决策函数的具体形式,因此我们也无法知道表征这个神经网络的结构。我们只能采取另一种思路,即首先假定是某一种结构,然后将一堆训练数据输入到网络中去估计这原创 2021-05-12 11:04:25 · 1237 阅读 · 0 评论 -
人工神经网络—多层神经网络
多层神经网络1. 回顾2. 多层神经网络结构1. 回顾在上一讲中,我们提到从上个世纪80年代开始,人工神经网络领域迎来了新的突破,产生了多层神经网络,人们终于可以利用人工神经网络处理非线性问题了。2. 多层神经网络结构这一讲主要介绍多层神经网络的结构。下面这幅图是最简单的多层神经网络,它包含2层,总共由3个神经元相互连接而成。图1 两层神经网络例子输入XXX向量,有两个分量x1x_1x1,x2x_2x2,输出yyy是一个数值。我们逐层写出输入到输出之间的关系: a1=ω11x1+ω12原创 2021-05-09 21:36:18 · 5518 阅读 · 0 评论 -
人工神经网络—第一次寒冬
人工神经网络1. 回顾2. 感知器算法的局限性及证明1. 回顾在1957年,Rosenblatt提出了感知器算法,尽管前面一讲中,我们讲到了感知器算法有那么多的历史意义,但是在当时并没有引起轰动。虽然大家觉得将神经元数学模型引入到机器学习领域的尝试是非常新颖的,但是这个算法没有实际的应用。2. 感知器算法的局限性及证明以我们今天的观点来看,问题出在感知器算法只能解决线性可分数据集的分类,对于线性不可分的数据集感知器算法无能为力,但现实生活中大多数分类问题却都是线性不可分的。第一次明确说出上述话的人是原创 2021-05-05 14:54:51 · 1095 阅读 · 1 评论 -
人工神经网络—感知器算法的意义
人工神经网络1. 回顾2. 感知器算法的意义2.1机器学习算法的框架1. 回顾在上一讲中,我们讲到了Rosenblatt在1957年提出的感知器算法,并证明了在线性可分条件下算法的收敛性。感知器算法的的实质是在训练数据集线性可分条件下,寻找分类的超平面,这与我们学过的支持向量机做的事情是差不多的,但是由于支持向量机是基于所有的训练数据寻找最大化间隔超平面,而感知器算法却是相对随意的找一个分开两类的超平面。因此,大多数时候,支持向量机划分的分类面往往比感知器算法好一点。2. 感知器算法的意义下面是对于原创 2021-05-04 16:11:15 · 1358 阅读 · 0 评论 -
人工神经网络—感知器算法
人工神经网络1.回顾2. 感知器算法的提出在这一讲中,我们将重点介绍美国科学家Frank Rosenblatt(1928-1971)如何对神经元的MP模型进行改造,用于解决二分类的问题。图1 Frank Rosenblatt(1928-1971)1.回顾回顾上一讲的内容,神经元的MP模型:图2 神经元生理结构示意图图3 神经元的数学模型示意图它的输出2. 感知器算法的提出1957年,Frank Rosenblatt从纯数学的度重新考察这一模型,指出能够从一些输入输出对(X,y)中通原创 2021-05-03 15:19:21 · 2170 阅读 · 11 评论 -
人工神经网络—神经元的数学模型
人工神经网络1. 简介1. 简介人工神经网络(Artificial Neural Networks)简称(NEURAL NETWORKS),是集体智慧的结晶。人工神经网络的方法曾经经历过起起落落,也经历过几乎无人问津的地步,但是近年来突然受到非常广泛的关注,其原因在于以人工神经网络为理论基础的深度学习算法(DEEP LEARNING),在几乎所有的机器学习领域取得突破性进展,获得了比深度学习之前的传统算法高很多的性能。尽管深度学习在实践中获得了非常好的性能,但它最本质的理论基础却和人工神经网络没有区别,原创 2021-04-30 10:26:55 · 14150 阅读 · 0 评论