1 机器学习流程

  1. 数据获取
  2. 特征工程(重难点)
  3. 建立模型
  4. 评估与应用

常规套路:

  1. 收集数据并给定标签
  2. 训练一个分类器
  3. 测试与评估

2 什么是深度学习?

深度学习是一种基于无监督特征学习与特征层次结构的学习模型,用于解决代替人工实现特征工程的一种方法

深度学习(神经网络)是黑盒子

深度学习理论:

  1. 掌握深度学习模型的正向传播和反向传播,特别是链式求导法则
  2. 掌握激活函数和目标函数的作用,能够选择合适的激活函数和目标函数

特征工程的作用:

  • 数据特征决定了模型的上限
  • 预处理和特征提取是最核心的
  • 算法与参数选择决定了如何逼近这个上限

3 特征如何提取?

深度学习---》一种特征提取的方法

4 图像分类

图像表示:计算机眼中的图像(一张图片被表示成三维数组形式[矩阵],每个像素值从0(暗)-255(亮))

例如:300x100x3----》 300x100是图像尺寸(长x宽) 3是3个颜色通道(RGB彩色:红绿蓝)

5 K近邻

计算流程:

  1. 计算已知类别数据集中的点与当前点的距离
  2. 按照距离依序排序
  3. 选取与当前点距离最小的K个点
  4. 确定前K个点所在类别的出现概率
  5. 返回前K个点出现频率最高的类别作为当前点预测分类

6 神经网络基础

神经网络的基本原理:前馈过程(前向)和误差反向传播(后向)

  • 前馈过程(前向):为了计算输出/损失值
  • 误差反向传播(后向):为了更新权重参数

6.1 线性函数

6.2 损失函数

6.3 前向传播与反向传播

初始阶段:随机初始化权重参数W

6.4 梯度下降

6.5 激活函数

深度学习最常用的10个激活函数

6.6 参数初始化

6.7 整体架构

7 卷积神经网络

最全面的卷积神经网络入门教程

卷积层:提取特征

池化层:压缩特征(降采样)

输出层:输出类别的概率值

7.1 与传统神经网络区别

HxWxC:HxW为原始图片的大小(H为长度,W为宽度),C为RGB彩色通道的个数(C为维度)

7.2 卷积

卷积:首先将图像分成多个小区域【目的是对于不同的小区域,得到不一样的特征】,然后选择一种计算方法【对于每个小区域来计算它们各自的特征值—>组成特征图

一文读懂深度学习中的各种卷积

7.3 卷积特征值计算方法

彩色图像:(RGB)三通道[三维]

(RGB)三通道的权重参数W随机初始化(不同)

(RGB)三通道各自单独做内积运算叠加和,加偏置项得到特征值

权重参数W需要学习来更新自己进而提取合适的特征

【注意】:同一个卷积层中的多个卷积核规格是相同的!!!

7.4 特征图(feature map)

特征图的个数=卷积核的个数

特征图(三维:hxwxc):hxw为特征图的大小,c为特征图的个数

7.5 堆叠的卷积层

多次卷积

7.6 卷积层参数

一般设步长为1,卷积核尺寸为3x3

卷积核个数根据所需特征图个数设定

7.7 特征图尺寸计算

7.8 卷积参数共享

对每个小区域的卷积特征值计算时,不同卷积核的权重参数不变—》权值共享

每个卷积核都有一个对应的偏置参数

7.9 池化层

作用:压缩特征(降采样),即在经过卷积层后得到的原始特征图中进行筛选特征,组成新的特征图

只做筛选,不做计算!!!

7.10 感受野

在卷积神经网络中,感受野(Receptive Field)的定义是卷积神经网络每一层输出的特征图(feature map)上的像素点在输入图片上映射的区域大小,即特征图上的一个点对应输入图上的区域

  • 两层3x3的卷积核卷积操作之后的感受野是5x5,其中卷积核(filter)的步长(stride)为1、padding为0
  • 三层3x3的卷积核卷积操作之后的感受野是7x7,其中卷积核的步长为1、padding为0

卷积神经网络中感受野的详细介绍

7.11 整体架构

CONV:卷积层

RELU:激活函数

POOL:池化层

FC:全连接层

网络层数只针对做计算的层而言,如卷积层和全连接层

【注意】:

  • 卷积或池化后得到的是特征图,需要把图(三维)转换成向量(一维)才能做分类或回归任务
  • CNN是做分类还是回归任务取决于损失函数的定义与全连接层的设计

8 经典CNN

CNN网络结构发展最全整理

8.1 AlexNet

2012年网络结构

训练时间:8小时

AlexNet中的6个关键点

卷积神经网络学习路线(七)| 经典网络回顾之AlexNet

8.2 VGG

2014年网络结构

训练时间:3天

卷积神经网络学习路线(八)| 经典网络回顾之VGGNet

8.3 ResNet

2015年网络结构—残差网络(跳跃连接)

经典论文:Deep Residual Learning for Image Recognition(译)

再看何恺明的高引ResNet论文

卷积神经网络学习路线(十)| 里程碑式创新的ResNet

9 基于CNN构建图像识别模型

9.1 数据增强

9.2 迁移学习

含义:把已训练好的模型(预训练模型)权重参数迁移到新的模型来帮助新模型训练

目标:掌握迁移学习的思路,学会使用预训练权重完成新任务,并掌握冻结部分网络层的方法

方法

  1. 将预训练模型的权重参数作为新模型中权重参数的初始化
  2. 将预训练模型的权重参数直接作为新模型中权重参数的结果

套路:

  1. 先通过预训练模型来训练自己分类的那个层,前面都保持不变,训练完后保存最好的模型
  2. 再用之前保存最好的模型来训练所有层(训练所有的参数,学习率调小一点进行微调)

【图像识别】基于Matlab的迁移学习的图像分类案例

计算机视觉入门到实战教程相关推荐

  1. js模板字符串自定义类名_【Vue.js 入门到实战教程】07Vue 组件注册 | 基本使用和组件嵌套...

    来源 | https://xueyuanjun.com/post/21929除了前面介绍的基本语法之外,Vue.js 还支持通过组件构建复杂的功能模块,组件可以称得上是 Vue.js 的灵魂,是 Vu ...

  2. vue设置cookie的domain无效_【Vue.js入门到实战教程】16Tailwind 与 Bootstrap 的区别和使用入门...

    来源 | https://xueyuanjun.com/post/22065我们知道,从 Laravel 8 开始,自带前端脚手架代码默认兼容 Tailwind CSS 框架,取代了之前的 Boots ...

  3. 《黑马程序员2023新版黑马程序员大数据入门到实战教程,大数据开发必会的Hadoop、Hive,云平台实战项目》学习笔记总目录

    本文是对<黑马程序员新版大数据入门到实战教程>所有知识点的笔记进行总结分类. 学习视频:黑马程序员新版大数据 学习时总结的学习笔记以及思维导图会在后续更新,请敬请期待. 前言:配置三台虚拟 ...

  4. css3入门到实战教程-孙琪峥-专题视频课程

    css3入门到实战教程-1574人已学习 课程介绍         css3入门到实战教程 课程收益     css3最新入门到实战教程 讲师介绍     孙琪峥 更多讲师课程     高效率学习倡导 ...

  5. NetworkX入门及实战教程

    NetworkX入门及实战教程 环境要求和工具包安装 自带图的绘制 连接表和邻接表创建图 通过连接表edge list创建图 可视化 查看全图参数 保存并载入邻接表 用NetworkX创建图 创建空图 ...

  6. 视频教程-Python框架Djanggo从入门到实战教程(企业级项目实战)-Python

    Python框架Djanggo从入门到实战教程(企业级项目实战) 多年web开发经验,精通HTML.CSS.JavaScript.HTML5.CSS3等Web前端开发技术,技术纯熟,项目经验丰富.授课 ...

  7. 《JavaCV从入门到实战教程合集》介绍和目录

    前言 <JavaCV从入门到实战教程合集>是2016年<JavaCV开发实战教程>和2018年<JavaCV入门教程>2022年<JavaCV音视频实战宝典& ...

  8. Kaggle从入门到实战教程(新手必备)

    Kaggle从入门到实战教程(新手必备) 文章目录: 1 kernel的创建 1.1 Notebook的kernel的创建(从零开始创建) 1.1.1 相关的配置说明 1.2 Script的kerne ...

  9. Java零基础入门:实战教程(二)

    博主简介: 博客主页:Java知识分享博主 Java零基础入门专栏:Java零基础入门专栏 Java交流社区:飞鸟社区 欢迎阅读,如果文章对你有帮助点赞,支持一下! 推荐阅读 Java零基础入门:概论 ...

  10. QT教程,QT从入门到实战教程完整版

    Qt是一个跨平台开发框架,可以使用C++和Qml开发,同时它又不仅仅只是开发框架,它也是一种技术策略,可以让你快速.高效地设计.开发.部署和维护软件,同时在所有设备上提供无缝的用户体验.因而,对于C/ ...

最新文章

  1. 打造线下版元宇宙!机器人VR助力远程做核酸,登上Science子刊
  2. Blog_mini完整部署文档
  3. 【NLP】EMNLP'21 | 让压缩语言模型自动搜索最优结构!
  4. python代码有时候在命令行下和Python Shell中执行的结果不一样?
  5. mysql锁表查询_Mysql数据库锁情况下开启备份导致数据库无法访问处理分享
  6. hadoop--日志聚集功能的配置
  7. python调用rocketmq的api_rocketmq-python
  8. 蓝桥杯 ADV-109 算法提高 征税程序
  9. 剑指offer之【把数组排成最小的数】☆
  10. 怎样设置计算机硬盘的空间,如何调整电脑硬盘的分区容量
  11. 使用Glide切换图片时闪动
  12. rsync简介及部署
  13. 如何快速构建千人规模的数字化研发管理系统
  14. 弱引用(WeakReference)初识
  15. c语言:已知斐波那契数列定义:f(0) = 0; f(1) = 1;f(n) = f(n-1) + f(n-2);请计算并输出数列的前n(n<=30)项。
  16. H5×××等链接被微信拦截(被封锁、被屏蔽、被和谐)后最好的解决方法
  17. 超市微信小程序怎么做_便利店超市运营微信小程序的三大技巧
  18. 宝宝聪明就是这么简单
  19. OSChina 周四乱弹 ——你老婆在我的硬盘里
  20. 在Mac上如何轻松下载来自浏览器的软件或内容

热门文章

  1. win7系统定时删除数据的批处理命令_简单的批量清除垃圾bat命令
  2. matlab中数字分频器的,数字分频器原理及设计.pdf
  3. python 制作抽奖箱_海安当地横幅制作值得推荐,抽奖箱制作-漫谈
  4. GB50174《电子信息系统机房设计规范》贯标培训活动
  5. JAVA经纬度互转、计算工具类
  6. KNN聚类的原理和实现
  7. 用c语言设计一个菜单界面_最新,最全的NX二次开发Ribbon界面菜单的设计图文教程...
  8. 冰点还原无法修改计算机时间,系统还原后无法更改系统时间?这个方法必须会...
  9. TranslateAnimation类:位置变化动画类 (类似tab切换效果)
  10. 手把手教你阅读开源代码【附Python开源项目包】