Convolutional Neural Networks for Visual Recognition

2024-05-13 16:32

本文主要是介绍Convolutional Neural Networks for Visual Recognition,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

CS231n简介

CS231n的全称是CS231n: Convolutional Neural Networks for Visual Recognition,即面向视觉识别的卷积神经网络。该课程是斯坦福大学计算机视觉实验室推出的课程。需要注意的是,目前大家说CS231n,大都指的是2016年冬季学期(一月到三月)的最新版本。

课程描述:请允许我们引用课程主页上的官方描述如下。

计算机视觉在社会中已经逐渐普及,并广泛运用于搜索检索、图像理解、手机应用、地图导航、医疗制药、无人机和无人驾驶汽车等领域。而这些应用的核心技术就是图像分类、图像定位和图像探测等视觉识别任务。近期神经网络(也就是“深度学习”)方法上的进展极大地提升了这些代表当前发展水平的视觉识别系统的性能。

本课程将深入讲解深度学习框架的细节问题,聚焦面向视觉识别任务(尤其是图像分类任务)的端到端学习模型。在10周的课程中,学生们将会学习如何实现、训练和调试他们自己的神经网络,并建立起对计算机视觉领域的前沿研究方向的细节理解。最终的作业将包括训练一个有几百万参数的卷积神经网络,并将其应用到最大的图像分类数据库(ImageNet)上。我们将会聚焦于教授如何确定图像识别问题,学习算法(比如反向传播算法),对网络的训练和精细调整(fine-tuning)中的工程实践技巧,指导学生动手完成课程作业和最终的课程项目。本课程的大部分背景知识和素材都来源于ImageNet Challenge竞赛。

课程内容:官方课程安排及资源获取请点击这里,课程视频请在Youtube上查看Andrej Karpathy创建的播放列表,也可私信我们获取云盘视频资源。通过查看官方课程表,我们可以看到:CS231n课程资源主要由授课视频与PPT授课知识详解笔记课程作业三部分组成。其中:

  • 授课视频15课。每节课时约1小时左右,每节课一份PPT。
  • 授课知识详解笔记共9份。光看课程视频是不够的,深入理解课程笔记才能比较扎实地学习到知识。
  • 课程作业3次。其中每次作业中又包含多个小作业,完成作业能确保对于课程关键知识的深入理解和实现。
  • 课程项目1个。这个更多是面向斯坦福的学生,组队实现课程项目。
  • 拓展阅读若干。课程推荐的拓展阅读大多是领域内的经典著作节选或论文,推荐想要深入学习的同学阅读。

课程评价:我们觉得赞!很多人都觉得赞!当然也有人觉得不好。具体如何,大家搜搜CS231n在网络,在知乎上的评价不就好了嘛!个人认为:入门深度学习的一门良心课适合绝大多数想要学习深度学习知识的人。

课程不足:课程后期从RCNN开始就没有课程笔记。

课程学习方法

三句话总结:

  • 看授课视频形成概念,发现个人感兴趣方向。
  • 读课程笔记理解细节,夯实工程实现的基础。
  • 码课程作业实现算法,积累实验技巧与经验。

引用一下学习金字塔的图,意思大家都懂的:

我们的工作

  • 完成了CS231n全部9篇课程知识详解笔记的翻译

原文:[python/numpy tutorial]

翻译:Python Numpy教程。

我们将使用Python编程语言来完成本课程的所有作业。Python是一门伟大的通用编程语言,在一些常用库(numpy, scipy, matplotlib)的帮助下,它又会变成一个强大的科学计算环境。我们期望你们中大多数人对于Python语言和Numpy库比较熟悉,而对于没有Python经验的同学,这篇教程可以帮助你们快速了解Python编程环境和如何使用Python作为科学计算工具。

原文:[image classification notes]

翻译:图像分类笔记(上)(下)。

该笔记是一篇介绍性教程,面向非计算机视觉领域的同学。教程将向同学们介绍图像分类问题和数据驱动方法,内容列表:

  • 图像分类、数据驱动方法和流程
  • Nearest Neighbor分类器
    • k-Nearest Neighbor 译者注:上篇翻译截止处
  • 验证集、交叉验证集和超参数调参
  • Nearest Neighbor的优劣
  • 小结
  • 小结:应用kNN实践
  • 拓展阅读

原文:[linear classification notes]

翻译:线性分类笔记(上)(中)(下)。

我们将要实现一种更强大的方法来解决图像分类问题,该方法可以自然地延伸到神经网络和卷积神经网络上。这种方法主要有两部分组成:一个是评分函数(score function),它是原始图像数据到类别分值的映射。另一个是损失函数(loss function),它是用来量化预测分类标签的得分与真实标签之间一致性的。该方法可转化为一个最优化问题,在最优化过程中,将通过更新评分函数的参数来最小化损失函数值。内容列表:

  • 线性分类器简介
  • 线性评分函数
  • 阐明线性分类器 译者注:上篇翻译截止处
  • 损失函数
    • 多类SVM
    • Softmax分类器
    • SVM和Softmax的比较
  • 基于Web的可交互线性分类器原型
  • 小结

原文:[optimization notes]

翻译:最优化笔记(上)(下)。

该笔记介绍了图像分类任务的第三个关键部分:最优化。内容列表如下:

  • 简介
  • 损失函数可视化
  • 最优化
    • 策略#1:随机搜索
    • 策略#2:随机局部搜索
    • 策略#3:跟随梯度 译者注:上篇截止处
  • 梯度计算
    • 使用有限差值进行数值计算
    • 微分计算梯度
  • 梯度下降
  • 小结

原文:[backprop notes]
翻译:反向传播笔记。

该笔记本将帮助读者对反向传播形成直观而专业的理解。反向传播是利用链式法则递归计算表达式的梯度的方法。理解反向传播过程及其精妙之处,对于理解、实现、设计和调试神经网络非常关键。内容里列表如下:

  • 简介
  • 简单表达式和理解梯度
  • 复合表达式,链式法则,反向传播
  • 直观理解反向传播
  • 模块:Sigmoid例子
  • 反向传播实践:分段计算
  • 回传流中的模式
  • 用户向量化操作的梯度
  • 小结

原文:Neural Nets notes 1

翻译:神经网络笔记1(上)(下)。

该笔记介绍了神经网络的建模与结构,内容列表如下:

  • 不用大脑做类比的快速简介
  • 单个神经元建模
    • 生物动机和连接
    • 作为线性分类器的单个神经元
    • 常用的激活函数
  • 神经网络结构
    • 层组织
    • 前向传播计算例子
    • 表达能力
    • 设置层的数量和尺寸
  • 小节
  • 参考文献

原文:Neural Nets notes 2

翻译:神经网络笔记2。

该笔记介绍了数据的预处理,正则化和损失函数,内容列表如下:

  • 设置数据和模型
    • 数据预处理
    • 权重初始化
    • 批量归一化(Batch Normalization)
    • 正则化(L2/L1/Maxnorm/Dropout)
  • 损失函数
  • 小结

原文:Neural Nets notes 3

翻译:神经网络笔记3(上)(下)。

该笔记讲解了神经网络的动态部分,即神经网络学习参数和搜索最优超参数的过程。内容列表如下:

  • 梯度检查
  • 合理性(Sanity)检查
  • 检查学习过程
    • 损失函数
    • 训练集与验证集准确率
    • 权重:更新比例
    • 每层的激活数据与梯度分布
    • 可视化 译者注:上篇翻译截止处
  • 参数更新
    • 一阶(随机梯度下降)方法,动量方法,Nesterov动量方法
    • 学习率退火
    • 二阶方法
    • 逐参数适应学习率方法(Adagrad,RMSProp)
  • 超参数调优
  • 评价
    • 模型集成
  • 总结
  • 拓展引用

原文:ConvNet notes

翻译:卷积神经网络笔记。

内容列表:

  • 结构概述
  • 用来构建卷积神经网络的各种层
    • 卷积层
    • 汇聚层
    • 归一化层
    • 全连接层
    • 将全连接层转化成卷积层
  • 卷积神经网络的结构
    • 层的排列规律
    • 层的尺寸设置规律
    • 案例学习(LeNet / AlexNet / ZFNet / GoogLeNet / VGGNet)
    • 计算上的考量
  • 拓展资源
  • 完成了3个课程作业页面的翻译

原文:[Assignment #1]

翻译:CS231n课程作业#1简介。

作业内容:实现k-NN,SVM分类器,Softmax分类器和两层神经网络,实践一个简单的图像分类流程。

原文:[Assignment #2]

翻译:CS231n课程作业#2简介。

作业内容:练习编写反向传播代码,训练神经网络和卷积神经网络。

原文:[Assignment #3]

翻译:CS231n课程作业#3简介。

作业内容:实现循环网络,并将其应用于在微软的COCO数据库上进行图像标注。实现DeepDream等有趣应用。

  • 帮助知友@智靖远发起了在Youtube上合力翻译课程字幕的倡议

原文:知友智靖远关于CS231n课程字幕翻译的倡议。当时,@智靖远已经贡献了他对第一课字幕的翻译,目前这个翻译项目仍在进行中,欢迎各位知友积极参与。具体操作方式在倡议原文中有,请大家点击查看。

有很多知友私信我们,询问为何不做字幕。现在统一答复:请大家积极参加@智靖远的字幕翻译项目。他先进行的字幕贡献与翻译,我们不能夺人之美后续,我们也会向该翻译项目进行贡献

翻译团队

CS231n课程笔记的翻译,始于@杜客在一次回答问题“应该选择TensorFlow还是Theano?”中的机缘巧合,在取得了授权后申请了知乎专栏智能单元 – 知乎专栏独自翻译。随着翻译的进行,更多的知友参与进来。他们是@ShiqingFan,@猴子,@堃堃和@李艺颖。

大家因为认同这件事而聚集在一起,牺牲了很多个人的时间来进行翻译,校对和润色。而翻译的质量,我们不愿意自我表扬,还是请各位知友自行阅读评价吧。现在笔记翻译告一段落,下面是团队成员的简短感言

@ShiqingFan :一个偶然的机会让自己加入到这个翻译小队伍里来。CS231n给予了我知识的源泉和思考的灵感,前期的翻译工作也督促自己快速了学习了这门课程。虽然科研方向是大数据与并行计算,不过因为同时对深度学习比较感兴趣,于是乎现在的工作与两者都紧密相连。Merci!

@猴子:在CS231n翻译小组工作的两个多月的时间非常难忘。我向杜客申请加入翻译小组的时候,才刚接触这门课不久,翻译和校对的工作让我对这门课的内容有了更深刻的理解。作为一个机器学习的初学者,我非常荣幸能和翻译小组一起工作并做一点贡献。希望以后能继续和翻译小组一起工作和学习。

@堃堃 :感谢组内各位成员的辛勤付出,很幸运能够参与这份十分有意义的工作,希望自己的微小工作能够帮助到大家,谢谢!

@李艺颖 :当你真正沉下心来要做一件事情的时候才是学习和提高最好的状态;当你有热情做事时,并不会觉得是在牺牲时间,因为那是有意义并能带给你成就感和充实感的;不需要太过刻意地在乎大牛的巨大光芒,你只需像傻瓜一样坚持下去就好了,也许回头一看,你已前进了很多。就像老杜说的,我们就是每一步慢慢走,怎么就“零星”地把这件事给搞完了呢?

@杜客 :做了一点微小的工作,哈哈。

未来工作

目前通过大家的反馈,之后会有新的创作方向,会更多与大家互动,敬请期待吧!

感谢

感谢所有给我们的翻译提出过批评指正的知友,每篇文章末尾处的译者反馈部分我们都列出了大家的具体指正与贡献;

感谢所有给我们的翻译点赞的知友,你们的赞是我们的精神粮食;

感谢给文章赞赏小钱钱的知友,谢谢老板们:)

最后

恳请大家点赞和分享到其他社交网络上,让更多想要入门与系统学习深度学习的小伙伴能够看到这篇总集。同时,也欢迎大家在来专栏分享你的知识,发现志同道合的朋友!

这篇关于Convolutional Neural Networks for Visual Recognition的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/986227

相关文章

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

MonoHuman: Animatable Human Neural Field from Monocular Video 翻译

MonoHuman:来自单目视频的可动画人类神经场 摘要。利用自由视图控制来动画化虚拟化身对于诸如虚拟现实和数字娱乐之类的各种应用来说是至关重要的。已有的研究试图利用神经辐射场(NeRF)的表征能力从单目视频中重建人体。最近的工作提出将变形网络移植到NeRF中,以进一步模拟人类神经场的动力学,从而动画化逼真的人类运动。然而,这种流水线要么依赖于姿态相关的表示,要么由于帧无关的优化而缺乏运动一致性

【Visual Studio 报错】未加载 wntdll.pdb(一种可行的解决办法)

调试程序时,会出现下面这个报错 分析原因: 出现未加载 wntdll.pdb 报错大概率是你的指针使用错误 ,比如使用野指针、越界访问、或者堆区空间释放方式错误等。 这里以 堆区空间释放方式错误 为例子 1、堆区开辟的数组空间使用 delete 释放 // 堆区开辟的数组空间使用 delete 释放int* p = new int[10];delete p; 正

查看Excel 中的 Visual Basic 代码,要先设置excel选项

1. excel VB的简单介绍 百度安全验证 2.excel选项设置 excel表格中在选项->自定义功能区域,选择开发工具,visual baisc/查看代码,即可看到代码。 3.excel已经设置,可以直接查看

A Comprehensive Survey on Graph Neural Networks笔记

一、摘要-Abstract 1、传统的深度学习模型主要处理欧几里得数据(如图像、文本),而图神经网络的出现和发展是为了有效处理和学习非欧几里得域(即图结构数据)的信息。 2、将GNN划分为四类:recurrent GNNs(RecGNN), convolutional GNNs,(GCN), graph autoencoders(GAE), and spatial–temporal GNNs(S

[VC] Visual Studio中读写权限冲突

前置场景: 编译没有报错,但是运行提示 内存异常: 情景1: 如下代码运行异常,提示引发了异常:写入权限冲突。*** 是 0xFFFFF..... char* str = (char*)malloc(10);str[0] = 0x30;  解决方案:要包含头文件<stdlib.h>  情景2: 在FileA文件调用FileB文件的函数,但是在FileA中却没有声明该B函数的原型

解决Visual C++ 中相互包含头文件的问题

在编MFC应用程序时,经常会遇到头文件相互包含的问题,很是苦恼,于是便求助于强大的CSDN,得到如下答案:   方法一:利用友元类   我一共有两个类,由于要在两个类的头文件里互相应用对方,所以,在每一个类的头文件里面现包含另一个类的头文件,然后在该类的定义中声明另一个类为友元类。如下:    #include "B.h"      class CA: public CDialog

Neighborhood Homophily-based Graph Convolutional Network

#paper/ccfB 推荐指数: #paper/⭐ #pp/图结构学习 流程 重定义同配性指标: N H i k = ∣ N ( i , k , c m a x ) ∣ ∣ N ( i , k ) ∣ with c m a x = arg ⁡ max ⁡ c ∈ [ 1 , C ] ∣ N ( i , k , c ) ∣ NH_i^k=\frac{|\mathcal{N}(i,k,c_{

如何简单而优雅地升级Visual NMP中的PHP版本

需求:自己想测试下不同版本的PHP性能,就想升级下 Visual 这个集成环境中PHP的版本 网上: 升级PHP到5.6.11  1、下载新的nts版的PHP并解压缩到bin\PHP下,保留原文件夹的名称; 2、将旧版PHP文件夹下的PHP.ini复制到新版的PHP文件夹下;修改复制的PHP.ini,将旧版PHP文件夹信息替换成新版PHP文件夹信息; 3、下载php_xdebug-2.3

应用Visual Studio Profiler分析CPU使用情况

使用Visual Studio Profiler分析CPU使用情况‌的步骤如下: 1.‌启动CPU分析:‌ 在Visual Studio中打开你要分析的项目。 在菜单栏中选择Debug > Performance Profiler,或者使用快捷键Alt + F2。 在性能分析工具窗口中,选择CPU Usage选项,这将帮助你分析应用程序的CPU使用情况。 2.‌运行CPU