0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

卷积神经网络背后的直觉探索

zhKF_jqr_AI 来源:未知 作者:胡薇 2018-06-01 16:43 次阅读

随着AI的突破持续吸引公众注意,人们开始不加区别地使用“人工智能”、“机器学习”、“深度学习”等术语。然而,了解这些术语的区别,有助于把握AI技术的发展趋势。

人工智能同心圆

我们可以把这三个术语想象成三个同心圆,其中人工智能包含了机器学习,机器学习又包含了深度学习。

简单来说,有一些任务,传统上认为需要通过人类认知活动才能完成,开发执行这些任务的计算机系统,即为人工智能。

而机器学习则是创建从大规模数据集中学习模式,并提供洞见的系统。机器学习本身可以分为三大类:

监督学习(supervised learning),理解一组数据点和标签之间的关系,并在未标注的数据点上给出预测。例如,分类是否会出现不良贷款,预测未来股价。

无监督学习(unsupervised learning)则直接基于数据集的相似特征识别有意义的模式。例如,根据购物行为的相似程度聚类消费者。

强化学习(reinforcement learning)让智能体在定义良好的环境中选择可能的行动,并最大化目标函数(奖励)。我们可以把自动驾驶看成一个强化学习问题,在公路上(环境)自动行驶的汽车(智能体),最大化其目标——不要出事故(奖励)。

最后,深度学习是一种机器学习技术,该技术利用大规模数据和多层神经网络以理解数据集的模式。最近在计算机视觉语音识别等领域的AI突破都是由深度学习研究以及算力的日常商品化驱动的。

什么是卷积神经网络?

深度学习有众多架构和技术,以适应不同的使用场景,其中一种主要的架构和技术是卷积神经网络。卷积神经网络,受到哺乳动物视觉脑皮层方面的研究的启发,参考了哺乳动物使用不同层次的神经元感知世界的方式。可以将这一模型想象成视觉皮层的模型,专门设计的不同神经元组识别不同的形状。每个神经元组看到相应目标后激活,并和其他神经元组互相交流,以发展出感知目标的总体理解。

这一系统可以解释为分层的神经元组,检测输入刺激的低层特性,并互相交流,以发展对目标的高层检测。

第一组神经元结构识别低层特征(例如,脸部的轮廓)

第二组神经元结构识别颜色和形状(例如,肤色和颌骨转角)

第三组神经元结构识别细节(例如,耳朵、鼻子、眼睛)

第四组神经元结构整体识别整个目标(例如,脸部和对应之人)

简单来说,看到给定目标后,系统中的不同神经元组因目标的不同方面而激活,并互相交流以形成整体图景。

Yann Lecun从这一视觉脑皮层的层次模型中汲取了灵感,研发了卷积神经网络:

局部连接:每层共享一个连接,以互相传递所学特征。

层次结构:在不同网络层之间有一个很明显的层次结构——从低层特征(例如,鼻子,眼睛)到高层特征(脸部、具体的人)。

空间不变性:模型可以适应输入的平移等变换,仍然能够完成识别。(人类能够识别颠倒或经过其他变换的图像。)

因此,卷积神经网络的架构如下图所示:

典型的卷积神经网络架构

其中,输入数据为四维矩阵(样本数字,高,宽,频道)。其中频道对应色彩,彩图有3个频道(R、G、B),而灰度图像只有1个频道。

输入数据将连接到一个隐藏层(卷积层),应用多个任意尺寸(通常为3x3或5x5)的过滤器至图像。可以将过滤器想象为一个大小为3x3(或5x5)的小手电,照在输入图像上,尝试提取特征映射。基于特征映射,算法可以理解数据中的局部特征(眼、耳……),不管其位置如何(平移不变性)。如下图所示:

池化是一个降采样操作,通过应用任意尺寸(步长)的窗口,在窗口中根据用户指定,提取和、最大值、平均值,以降低提取的特征映射的维度。在下面的示意图中,我们使用的是最大池化,在特征映射的2x2窗口中提取最大值。这一技术有助于在保留信息的前提下降低维度。

最后是传统的全连接层,对卷积习得的表示进行softmax操作,并输出预测。简单来说,全连接层包含观察到特定模式后会“点亮”的节点。

从直觉上说,卷积神经网络将图像作为输入,尝试使用一系列数学运算(卷积、池化)辨认不同的小特征(局部连接),不管其位置如何(空间不变性),以理解整个图像的内容。这些数学运算牵涉到建模图像为一系列数字,其中每个数字表示像素亮度(假设输入为灰度图像)。

实例

我们的数据集是72x72网格中的一组几何图形(三角形、圆形、矩形)。由于这些是灰度图像,因此它们只有一个频道。下面是一些样本:

我们将使用python的Keras包实现一个卷积神经网络,该网络在分类这些形状时可以达到98%精确度。

导入依赖:

import numpy as np

import keras

from keras importSequential, optimizers

from keras.layers importDense, Activation

from keras.callbacks importEarlyStopping

from sklearn.metrics import confusion_matrix, accuracy_score

from keras.layers importConv2D, MaxPooling2D, Flatten, Dropout

from keras.utils import np_utils

生成训练数据集和测试数据集:

[X_train, Y_train] = generate_dataset_classification(1000, 20, True)

[X_test, Y_test] = generate_test_set_classification()

根据keras的要求转换标签至类别矩阵,并重整训练集中图像的形状:

Y_train = keras.utils.to_categorical(Y_train, 3)

X_train = X_train.reshape(1000,72,72,1)

构建模型:

conv_model = Sequential()

conv_model.add(Conv2D(16, (5,5), activation = 'relu', input_shape = (72,72,1)))

conv_model.add(MaxPooling2D((2,2)))

conv_model.add(Conv2D(16, (5,5), activation = 'relu'))

conv_model.add(MaxPooling2D((2,2)))

conv_model.add(Conv2D(16, (5,5), activation = 'relu'))

conv_model.add(MaxPooling2D((2,2)))

conv_model.add(Flatten())

conv_model.add(Dense(3, activation = 'sigmoid'))

编译、训练模型:

conv_model.compile(optimizer = 'Adam', loss = 'categorical_crossentropy')

conv_model.fit(X_train, Y_train, validation_split = 0.3, epochs = 100, batch_size = 32)

重整测试集数据的形状,在测试集上进行预测,并评估精确度:

X_test = X_test.reshape(300,72,72,1)

predictions = conv_model.predict_classes(X_test)

print("精确度评分为 {} %".format(accuracy_score(Y_test, predictions) * 100))

结果:

精确度评分为 97.33333333333334 %

结语

卷积神经网络代表了图像识别中的重大突破。卷积神经网络在自动驾驶汽车,人脸识别系统,医学诊断等场景都有广泛应用。然而,值得注意的是,卷积神经网络仍有提升的空间,而卷积网络的适用领域也出现了一些新技术,比如胶囊网络。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 人工智能
    +关注

    关注

    1789

    文章

    46636

    浏览量

    236987
  • 卷积神经网络

    关注

    4

    文章

    359

    浏览量

    11829

原文标题:卷积网络背后的直觉

文章出处:【微信号:jqr_AI,微信公众号:论智】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    卷积神经网络的基本概念、原理及特点

    卷积神经网络(Convolutional Neural Networks,简称CNN)是一种深度学习算法,它在图像识别、视频分析、自然语言处理等领域有着广泛的应用。本文将详细介绍卷积神经网络
    的头像 发表于 07-11 14:38 704次阅读

    BP神经网络卷积神经网络的关系

    BP神经网络(Backpropagation Neural Network)和卷积神经网络(Convolutional Neural Network,简称CNN)是两种在人工智能和机器学习领域
    的头像 发表于 07-10 15:24 1054次阅读

    循环神经网络卷积神经网络的区别

    循环神经网络(Recurrent Neural Network,RNN)和卷积神经网络(Convolutional Neural Network,CNN)是深度学习领域中两种非常重要的神经网络
    的头像 发表于 07-04 14:24 1003次阅读

    卷积神经网络与循环神经网络的区别

    在深度学习领域,卷积神经网络(Convolutional Neural Networks, CNN)和循环神经网络(Recurrent Neural Networks, RNN)是两种极其重要
    的头像 发表于 07-03 16:12 2137次阅读

    卷积神经网络的实现原理

    卷积神经网络(Convolutional Neural Networks,简称CNN)是一种深度学习模型,广泛应用于图像识别、视频分析、自然语言处理等领域。本文将详细介绍卷积神经网络
    的头像 发表于 07-03 10:49 475次阅读

    bp神经网络卷积神经网络区别是什么

    BP神经网络(Backpropagation Neural Network)和卷积神经网络(Convolutional Neural Network,简称CNN)是两种不同类型的人工神经网络
    的头像 发表于 07-03 10:12 880次阅读

    卷积神经网络分类方法有哪些

    卷积神经网络(Convolutional Neural Networks,CNN)是一种深度学习模型,广泛应用于图像分类、目标检测、语义分割等计算机视觉任务。本文将详细介绍卷积神经网络
    的头像 发表于 07-03 09:40 366次阅读

    cnn卷积神经网络分类有哪些

    卷积神经网络(CNN)是一种深度学习模型,广泛应用于图像分类、目标检测、语义分割等领域。本文将详细介绍CNN在分类任务中的应用,包括基本结构、关键技术、常见网络架构以及实际应用案例。 引言 1.1
    的头像 发表于 07-03 09:28 439次阅读

    卷积神经网络训练的是什么

    卷积神经网络(Convolutional Neural Networks,简称CNN)是一种深度学习模型,广泛应用于图像识别、视频分析、自然语言处理等领域。本文将详细介绍卷积神经网络
    的头像 发表于 07-03 09:15 311次阅读

    卷积神经网络的原理与实现

    1.卷积神经网络(Convolutional Neural Networks,简称CNN)是一种深度学习模型,广泛应用于图像识别、视频分析、自然语言处理等领域。 卷积神经网络是一种前馈
    的头像 发表于 07-02 16:47 463次阅读

    卷积神经网络的基本结构及其功能

    卷积神经网络(Convolutional Neural Network,简称CNN)是一种深度学习模型,广泛应用于图像识别、视频分析、自然语言处理等领域。本文将详细介绍卷积神经网络的基
    的头像 发表于 07-02 14:45 985次阅读

    卷积神经网络的原理是什么

    卷积神经网络(Convolutional Neural Network,简称CNN)是一种深度学习模型,广泛应用于图像识别、语音识别、自然语言处理等领域。本文将详细介绍卷积神经网络的原
    的头像 发表于 07-02 14:44 517次阅读

    卷积神经网络和bp神经网络的区别

    卷积神经网络(Convolutional Neural Networks,简称CNN)和BP神经网络(Backpropagation Neural Networks,简称BPNN)是两种
    的头像 发表于 07-02 14:24 2302次阅读

    卷积神经网络的优点

    卷积神经网络的优点  卷积神经网络(Convolutional Neural Network,CNN)是一种基于深度学习的神经网络模型,在图
    的头像 发表于 12-07 15:37 3989次阅读

    卷积神经网络通俗理解

    卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Network
    的头像 发表于 11-26 16:26 996次阅读