• 机器学习12卷积神经网络


    1.简述人工智能、机器学习和深度学习三者的联系与区别。

    答:

    人工智能是目的,是结果;机器学习、深度学习是方法,是工具。机器学习是一种实现人工智能的方法,深度学习是一种实现机器学习的技术。

    2. 全连接神经网络与卷积神经网络的联系与区别。

      卷积神经网络也是通过一层一层的节点组织起来的。和全连接神经网络一样,卷积神经网络中的每一个节点就是一个神经元。在全连接神经网络中,每相邻两层之间的节点都有边相连,于是会将每一层的全连接层中的节点组织成一列,这样方便显示连接结构。而对于卷积神经网络,相邻两层之间只有部分节点相连,为了展示每一层神经元的维度,一般会将每一层卷积层的节点组织成一个三维矩阵。

           除了结构相似,卷积神经网络的输入输出以及训练的流程和全连接神经网络也基本一致,以图像分类为列,卷积神经网络的输入层就是图像的原始图像,而输出层中的每一个节点代表了不同类别的可信度。这和全连接神经网络的输入输出是一致的。类似的,全连接神经网络的损失函数以及参数的优化过程也都适用于卷积神经网络。因此,全连接神经网络和卷积神经网络的唯一区别就是神经网络相邻两层的连接方式

    3.理解卷积计算。

    以digit0为例,进行手工演算。

    from sklearn.datasets import load_digits #小数据集8*8

    digits = load_digits()

    import pandas as pd
    import numpy as np
    #读取load_digits()数据集
    data = pd.read_csv('test.csv', header=None)
    
    #读取卷积核权重矩阵
    data1 = pd.read_csv('test1.csv', header=None)
    data = data.values
    data1 = data1.values
    type(data)
    
    #存储特征映射内容
    test = np.zeros((len(data) - len(data1) + 1, len(data[0]) - len(data1[0]) + 1))
    
    #开始计算
    for i in range(0, len(data) - len(data1)+1):
        for y in range(0, len(data[0]) - len(data1[0]) + 1):
            # i=4
            # y=0
            #i行,y列
            x = data[i:i + len(data1), y:y + len(data1)]
            print(x)
            test[i, y] = np.sum(x * data1)
    print(test)

    数据集

    卷积核权重矩阵

     计算结果:

    4.理解卷积如何提取图像特征。

    读取一个图像;

    以下矩阵为卷积核进行卷积操作;

    显示卷积之后的图像,观察提取到什么特征。

    1 0 -1
    1 0 -1
    1 0 -1
    1 1 1
    0 0 0
    -1 -1 -1
    -1 -1 -1
    -1 8 -1
    -1 -1 -1

    卷积API

    scipy.signal.convolve2d

    tf.keras.layers.Conv2D

    from PIL import Image
    import matplotlib.pyplot as plt
    from scipy.signal import convolve2d
    import numpy as np
    #读取图片
    image = Image.open(r"C:UsersChen ZhenruiPycharmProjectsuntitled机器学习	est.jpg")
    plt.imshow(image)
    plt.show()
    
    #convert转换为灰色图像
    p = image.convert("L")
    plt.imshow(p)
    plt.show()
    
    #卷积核
    a1=np.array([[-1,0,1],[-2,0,2],[-1,0,1]]) #垂直边缘
    a2=np.array([[1,1,1],[0,0,0],[-1,-1,-1]]) #水平边缘
    a3=np.array([[-1,-1,-1],[-1,8,-1],[-1,-1,-1]]) #浮雕
    
    #卷积计算
    c1=convolve2d(p,a1,boundary='symm',mode='same')
    c2=convolve2d(p,a2,boundary='symm',mode='same')
    c3=convolve2d(p,a3,boundary='symm',mode='same')
    
    #原图
    plt.imshow(c1)
    plt.show()
    
    plt.imshow(c2)
    plt.show()
    
    plt.imshow(c3)
    plt.show()

    原图

     灰度处理

     垂直

    水平

     浮雕

  • 相关阅读:
    正则,ant antd from验证input框只能输入数字
    React 实现简易轮播图
    Moment.js ,JavaScript 日期处理类库
    JavaScript中准确的判断数据类型--四种方法
    介绍:一款可以描绘圆圈进度条的jQuery插件(可用作统计图)
    给网页增加水印的方法,react
    IntelliJ IDEA创建web项目及异常问题解决
    CSS 代码是什么?(转)
    JSP入门:介绍什么是JSP和Servlet(转)
    INTELLIJ IDEA集成CHECKSTYLE(转)
  • 原文地址:https://www.cnblogs.com/renshenbenzuig/p/13039459.html
Copyright © 2020-2023  润新知