本周彻底完成了CNN的全部内容,包括CNN的原理,代码实现等。CNN是一种神经网络的framework,跟connected_layer相比,更加侧重于能够保持原来的空间结构不变;我们输入的图片是一个n*n*3的numpy数组,其中n是图片的分辨率,3是RGB颜色空间的数目,如果是全连接层,我们需要将输入的照片reshape成一个向量,例如如果输入照片为32*32*3,那么我们就需要将图片reshape成3072*1的向量,然后再经过权重矩阵的映射得到最终的分数列向量;这么做无疑是将图片的空间结构特性消除了。而CNN则是考虑用一个filter,其形状为size*size*3,来考虑局部的特性。每次用filter与当前size*size*3这么大的numpy数组进行矩阵运算,最终得到一个数字,然后通过不断的横移纵移filter遍历整个输入图片,最终得到一个矩阵。如果原本的尺寸为n,卷积核的尺寸为m,每次移动的步长为stride,并且有F个卷积核则经过该层后的数据规模为((n-m)/stride+1,(n-m)/stride+1,F)。与传统的全连接层相比,CNN无疑是既可以保证原本输入的数据的空间结构不变,又可以得到图片部分区域的局部特性。

  除了卷积层,一般还应该具有池化层,池化则是考虑将输入数据进行downsampleing,进行局部采样。其可以起到减少数据规模,减少运算量,防止过拟合的现象出现。此外,由于图片中大部分的特征都是冗余的,所以进行池化层仍然可以保持原来特性不变。此外,由于池化层中实施局部采样得到的新的空间结构中的采样方式的多种多样,可以实现非线性的组合方式,类似于激活函数,比如maxpooling层,就是用了max函数实现局部采样,这样同时可以具有一些激活函数的特性。当然,并非所有的时候池化都是好的,在有的时候,池化层过多可能会导致样本特性丢失过多导致学习能力下降的情况出现。

  在这周,同样实现我们一门专业选修课的机器学习的模型(虽然我没选那门课),分别有两个老师的两个大作业:第一是图片分类,第二个是虚假新闻检测,其中图片分类问题是5分类问题,虚假新闻检测是2分类问题,虚假新闻检测还需要用到NLP中一些数据处理的方法。在实现中,同时接触了pytorch和keras两个框架,并且成功安装/运行了GPU版本用来跑模型。最终CNN在图片分类问题上实现了90的准确率,在NLP问题上实现了96的准确率,也算是用框架实战cv和NLP问题的一个小的项目。

  这周在给好兄弟们分享神经网络的一些知识的时候,自己也有了一些小的心得体会:现在的机器学习到底在干什么?用已有的数据集训练一个模型,需要寻求一个最佳的模型能够最准确的预测遇到的新的问题。那么训练的这个模型在神经网络中,就是好多好多层中的映射关系,即权重矩阵;那么我们该优化我们的权重矩阵,就是试图最小化损失函数来解决,而这么做的原因是因为我们的损失函数具有一定的意义:在训练中对于原本信息的损失程度,或者在softmax中,我认为可以看做将模型错误分类产生的贡献,我们最小化损失函数也就是在使得模型预测错误的可能性减小,尽可能增大模型预测正确的概率。那么如何通过我们已经训练好的模型进行预测呢,那便是将图片/数据经过这个计算模型,得到一个分数矩阵,通过不同类别分数的高低进行比较,计算机倾向于认为分数较高的那一类作为当前数据的类别。我觉得在神经网络中,以这个作为理解的基础,在以后学习RNN或者ResNet这些更高级更复杂的framework中,可能会有一些比较好的影响。

2022.11.27

cv学习总结(11.21-11.27)的更多相关文章

  1. 第33次Scrum会议(11/21)【欢迎来怼】

    一.小组信息 队名:欢迎来怼小组成员队长:田继平成员:李圆圆,葛美义,王伟东,姜珊,邵朔,阚博文 小组照片 二.开会信息 时间:2017/11/21 11:35~11:57,总计22min.地点:东北 ...

  2. c++学习书籍推荐《深入理解C++11 C++11新特性解析与应用》下载

    百度云及其他网盘下载地址:点我 编辑推荐 <深入理解C++11:C++11新特性解析与应用>编辑推荐:C++标准委员会成员和IBM XL编译器中国开发团队共同撰写,权威性毋庸置疑.系统.深 ...

  3. 打印出1,11,21,31,41。。。。。。的shell脚本

    打印出1,11,21,31,41......的shell脚本 方法一:#!/bin/bash ;i<;i=i+));do echo $i #cat -n /etc/services | sed ...

  4. 2016年12月16日 星期五 --出埃及记 Exodus 21:11

    2016年12月16日 星期五 --出埃及记 Exodus 21:11 If he does not provide her with these three things, she is to go ...

  5. China Intelligent Office Summit(2018.11.21)

    时间:2018.11.21地点:中关村软件园国际会议中心

  6. 2017/11/21 Leetcode 日记

    2017/11/21 Leetcode 日记 496. Next Greater Element I You are given two arrays (without duplicates) num ...

  7. Kafka 学习笔记之 Kafka0.11之console-producer/console-consumer

    Kafka 学习笔记之 Kafka0.11之console-producer/console-consumer: 启动Zookeeper 启动Kafka0.11 创建一个新的Topic: ./kafk ...

  8. JZOJ 11.21 提高B组反思

    JZOJ 11.21 提高B组反思 T1 第二类斯特林数 直接套公式 \(S(i,j)=S(i-1,j-1)+S(i-1,j)*j\) 由于过大,\(unsigned\ long\ long\)都存不 ...

  9. Qt 学习之路 2(27):渐变

    Qt 学习之路 2(27):渐变 豆子 2012年11月20日 Qt 学习之路 2 17条评论 渐变是绘图中很常见的一种功能,简单来说就是可以把几种颜色混合在一起,让它们能够自然地过渡,而不是一下子变 ...

  10. 零基础入门学习Python(21)--函数:lambda表达式

    知识点 lambda 表达式 Python 允许使用lambda关键字创建匿名函数 lambda 函数怎么使用? 单个参数 >>> def add(x): return 2*x + ...

随机推荐

  1. 分库分表ShardingJDBC最佳实践

    1 添加依赖 <dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId> ...

  2. Junit环境配置和在IDEA中使用Junit学习记录

    Junit环境配置 步骤1:检查电脑中Java环境是否配置成功 因为JUnit 是 Java 的一个框架,所以最根本的需要是在你的机器里装有 JDK. 1.1 进入cmd控制台界面,输入java/ja ...

  3. 如何在Java中做基准测试?JMH使用初体验

    大家好,我是王有志,欢迎和我聊技术,聊漂泊在外的生活.快来加入我们的Java提桶跑路群:共同富裕的Java人. 最近公司在搞新项目,由于是实验性质,且不会直接面对客户的项目,这次的技术选型非常激进,如 ...

  4. Java设计模式 —— 组合模式

    11 组合模式 11.1 组合模式概述 Composite Pattern: 组合多个对象形成树形结构以表示具有部分-整体关系的层次结构.组合模式使得客户端可以统一处理单个对象和组合对象. 组合模式关 ...

  5. LeeCode哈希问题(二)

    LeeCode 454: 四数相加II 题目描述 给你四个整数数组 nums1.nums2.nums3 和 nums4,数组长度均为 n ,请你计算有多少个元组 (i, j, k, l) 能满足: \ ...

  6. 利用Nextcloud搭建私有同步云盘

    1. 简介 Nextcloud是一款开源免费的私有云存储网盘项目,可以让你快速便捷地搭建一套属于自己或团队的云同步网盘,从而实现跨平台跨设备文件同步.共享.版本控制.团队协作等功能.它的客户端覆盖了W ...

  7. Go语言网络编程:SSH连接

    旨在提升Go语言网络编程能力 SSH是什么? SSH 为 Secure Shell 的缩写,为建立在应用层基础上的安全协议.SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议.利用 SS ...

  8. Kurator v0.3.0版本发布

    摘要:2023年4月8日,Kurator正式发布v0.3.0版本. 本文分享自华为云社区<华为云 Kurator v0.3.0 版本发布!集群舰队助力分布式云统一管理>,作者:云容器大未来 ...

  9. 自定义Mybatis-plus插件(限制最大查询数量)

    自定义Mybatis-plus插件(限制最大查询数量) 需求背景 ​ 一次查询如果结果返回太多(1万或更多),往往会导致系统性能下降,有时更会内存不足,影响系统稳定性,故需要做限制. 解决思路 1.经 ...

  10. LeetCode 周赛 341 场,模拟 / 树上差分 / Tarjan 离线 LCA / DFS

    本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问. 大家好,我是小彭. 上周末有单双周赛,双周赛我们讲过了,单周赛那天早上有事没参加,后面做了虚拟竞赛,然后整个 ...