Python-Level5-day08:反向传播算法,卷积神经网络及其结构,计算机视觉概述与图像基础

img1024个像素点输入到神经网络的输入端口,得到10个输出值,即手写体识别。由于样本数量并不能达到足够多,采用小批量训练,将10000个样本分成100份,每份100,训练完一个轮循,打乱顺序接着训练。

img神经网络特殊在有隐藏层,在输出层面才知道误差,隐藏层误差求不出来,通过及其复杂的分享传播算法来反向调整,达到与正向的梯度下降法相同效果。img编辑img编辑img编辑img编辑img编辑img编辑img编辑img编辑img编辑img编辑img编辑img编辑img编辑img整个神经网络实际就是有个巨大无比的复合函数,嵌套的层数非常的多img编辑img编辑img深度学习框架的优化器会帮我们做反向传播,计算权重,做梯度下降。img编辑img加了卷积操作的神经网络,优化神经网络的缺点img编辑img编辑img编辑img编辑img编辑img全连接神经网络在给图像进行变维度的时候,或破坏二维图像的结构,变成一维,找不到像素之间的相似性。同时神经网络还有其他的局限,因此需要引入卷积神经网络。img卷积层主要用于提取主要的特征,池化层在尽量保留数据特征情况下进行降维处理。imgANN:人工神经网络--与生物神经网络对应

DNN:深度神经网络--与浅层次神经网络对应

CNN:卷积神经网络(适合处理图像)--与RNN循环神经网络并列 (适合处理语音,文字序列数据问题)

img编辑img卷积运算主要特征是提取特征,伴随着降维度img编辑img编辑img编辑img如果想要输入数据与输出数据一样大的话,我们需要采用填充的策略,一般填充0.不然越卷积越小。imgimg卷积核越大,输出矩阵越小,填充越大,输出矩阵越大。原矩阵越大,输出越大。img编辑img编辑img卷积运算提取特征案例,伴随着降维度。卷积核是训练调整出来的。通过卷积核调整权重img机器对于提取后的特征更加好处理,只是人喜欢彩色图像。因此卷积就是提取特征只给机器看得懂。卷积层次越深,越抽象,人越看不懂,具有不可解释性,但结果识别缺失正确的。梯度下降法调参卷积核与偏置。初始值是随机的,不断调处来的。卷积神经网络工作原理来自对猫的大脑皮层研究。img

# 01_img_conv.py
# 图像卷积示例 :自己设计卷积核提取特征,机器学习是机器提取特征的
from scipy import signal
from scipy import misc
import matplotlib.pyplot as plt
import numpy as np
​
# 读取图像
im = misc.imread("../data/zebra.png",  # 图像路径
                 flatten=True)  # 单通道灰度图像
​
flt = np.array([[-1, 0, 1],
                [-2, 0, 2],
                [-1, 0, 1]])  # 卷积核 水平方向纹理清晰
flt2 = np.array(
    [[1, 2, 1],
     [0, 0, 0],
     [-1, -2, -1]])  # 卷积核2 垂直分析纹理清晰
# 对图像进行卷积
conv_img1 = signal.convolve2d(
    im,  # 输入
    flt,  # 卷积核
    boundary="symm",  # 边沿处理方式
    mode="same").astype("int32")  # 输入输出数据大小一样
​
conv_img2 = signal.convolve2d(
    im,  # 输入
    flt2,  # 卷积核
    boundary="symm",  # 边沿处理方式
    mode="same").astype("int32")  # 输入输出数据大小一样
​
plt.figure("Conv2D")
plt.subplot(131)  # 1行3列第1个子图
plt.imshow(im, cmap="gray")  # 原图
plt.xticks([])  # x轴刻度为空
plt.yticks([])  # y轴刻度为空
​
plt.subplot(132)  # 1行3列第2个子图
plt.imshow(conv_img1, cmap="gray")  # 卷积后的图像
plt.xticks([])  # x轴刻度为空
plt.yticks([])  # y轴刻度为空
​
plt.subplot(133)  # 1行3列第3个子图
plt.imshow(conv_img2, cmap="gray")  # 卷积后的图像
plt.xticks([])  # x轴刻度为空
plt.yticks([])  # y轴刻度为空
​
plt.show()
​

img编辑img编辑img一般来说是n个卷积激活池化和一个全连接层组成卷积神经网络。img图中通过卷积核提取三个特征,得到三个特征图谱,送给神经网络。img卷积实际还是线性运算,激活层将输出转化成非线性输出img池化实现降维,挑选区域最大值,保留最大特征。叫最大池化,求区域平均值叫平均值池化,一般用最大池化。img编辑img卷积层与池化感觉有点像,其实不像

1.卷积层提取特征伴随降维,池化降维

2.卷积层参数需要学习训练,池化没有,直接取出最大值

3.卷积核一般单数,池化是双数

4.卷积层通道数一般会变化,池化不会变化

5.微小变化可能影响卷积,但不影响池化img为什么不直接用全连接层,解释如上img经典的卷积神经网络LeNet介绍:将32*32单通道图像经过第一层卷积,变成6个通道的28x28的特征图,即通过6个卷积核提取6个特征。再进行池化降维成14x14特征图,在此基础上继续卷积 得到16个通道,即用了16个卷积核卷积。再池化,16个通道,每个通道都是5X5,变维度拉升成1维度,送给全连接模型。为什么是两层的卷积,因为这根据实际训练得出的,加三层没有太大提升。img编辑img编辑img输入是224x224的三通道图像,经过连续的5组卷积池化与3组全连接模型,产生1000类别输出。比赛是千类识别之一imgCNN的层数计算:一般来说有参数的才算作1层。卷积层与全连接层有参数,池化层没有参数不算。imgVGG卷积神经网络名气更大img编辑img编辑 卷积神经网络可视化网站img编辑

img编辑

img编辑img编辑img编辑img编辑img编辑img编辑img编辑img编辑img编辑img编辑img编辑img编辑img编辑img编辑img编辑img黑色(0,0,0)白色(255,255,255)img编辑img色彩空间转换直接API即可img编辑img为什么彩色图像转换灰度图像:.彩色对轮廓纹理形态处理不需要色彩信息,灰度图像更加好img编辑透视变换经常用于图像矫正img编辑img编辑img编辑img编辑img编辑img编辑img就是将图像的三个通道转换成一个通道,处理方法有如下。img编辑img编辑img编辑img编辑img编辑img编辑img编辑img编辑img编辑img编辑

img编辑

# 02_img_read_show.py
# 读取、显示图像示例
import cv2
​
im = cv2.imread("../test_img/Linus.png",  # 图像路径
                1)  # 1-彩色图像  0-灰度图像
print(type(im))  # 图像类型 数组
print(im.shape)  # 图像形状 (216,160,3)高宽通道数
cv2.imshow("Linus",  # 窗体名称(重复则会覆盖前面的窗体)
           im)  # 图像数据
cv2.imwrite("Linus_new.png",  # 处理完成后保存路径
            im)  # 图像数据
cv2.waitKey()  # 等待用户敲击按键(阻塞函数)
cv2.destroyAllWindows()  # 销毁所有创建的窗体
​
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dpq666dpq666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值