深度学习——02、深度学习入门 1-7
01深度学习与人工智能简介
什么是人工智能?
观察周围的世界,把看到的事物加以理解,最后通过理解进行一系列的决策。
感知+理解+决策。
学习的能力,是智能的本质!
大数据时代
大数据时代造就了人工智能的高速发展
深度学习
上世纪九十年代就已经存在。
2012年Alex-net在ImageNet图像分类比赛中一炮打响。
2016年阿尔法狗战胜李世石说明人工智能时代来临。
百度绘制传统AI算法与深度学习算法对比
深度学习述说图片的故事
无人驾驶汽车
1.物体检测
2.行人检测
3.标志识别
4.速度识别
……
02计算机视觉面临挑战与常规套路
图像分类:计算机视觉核心任务
图像在计算机中长什么样呢?
一张图片被表示成三维数组的形式,每个像素的值从0到255。
像素点可以直接与亮度挂钩,像素点越大,亮度越高。
挑战:照射角度
挑战:光照强度
挑战:形状改变
挑战:部分遮蔽
挑战:背景混入
深度学习的套路
1.收集数据并给定标签
2.训练一个分类器
3.测试,评估
03用K近邻来进行图像分类
1.如果K=3,绿色圆点的最近3个邻居是2个红色小三角形和1个蓝色小正方形,少数服从多数,基于统计的方法,判定绿色的这个待分类点属于红色的三角形一类。
2. 如果K=5,绿色圆点的最近5个邻居是2个红色小三角形和3个蓝色小正方形,少数服从多数,基于统计的方法,判定绿色的这个待分类点属于蓝色的正方形一类。
对于未知类别属性数据集中的点:
1.计算已知类别数据集中的点与当前点的距离
2.按照距离依次排序
3.选取与当前距离最小的K个点
(K最好选为奇数)
4.确定前K个点所在类别的出现概率
5.返回前K个点出现概率最高的类别作为当前点的预测分类
K-近邻概述
KNN算法本身简单有效,它是一种lazy-learning算法。
分类器不需要使用训练集进行训练,训练时间复杂度为0。
KNN分类的计算复杂度和训练集中的文档数目成正比,也就是说,如果训练集中文档总数为n,那么KNN的分类时间复杂度为O(n)。
K-近邻缺陷
K值的选择,距离度量和分类决策规划是该算法的三个基本要素。
问题:该算法在分类时有个主要的不足是,当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居大容量类的样本占多数。
解决,不同的样本给予不同权重项。
数据库样例:CIFAR-10
10类标签
50000个训练数据
10000个测试数据
大小均为32*32
如何计算
04超参数与交叉验证
超参数
问题:
1.对于距离如何设定?
2.对于K近邻的K该如何选择?
3.如果有的话,其他超参数该怎么设定?
解决:
找到最好的参数:多次用测试数据实验,找到做好的一组参数组合。
但这是错误的想法,因为测试数据只能最终使用。
交叉验证
参见:python人工智能——机器学习——模型选择与调优
背景主导导致不能用K-近邻进行图片分类
总结
1.选取超参数的正确方法是:将原始训练集分为训练集和验证集,我们在验证集上尝试不同的超参数,最后保留表现最好那个。
2.如果训练数据量不够,使用交叉验证方法,它能帮助我们在选取最优超参数的时候减少噪音。
3.一旦找到最优的超参数,就让算法以该参数在测试集跑且只跑一次,并根据测试结果评价算法。
4.最近邻分类器能够在CIFAR-10上得到将近40%的准确率。该算法简单易实现,但需要存储所有训练数据,并且在测试的时候过于耗费计算能力。
5.最后,仅仅使用L1和L2范数来进行像素比较是不够的,图像更多的是按照背景和颜色被分类,而不是语义主体分身。
6.预处理你的数据:对你数据中的特征进行归一化(normalize),让其具有零平均值(zero mean)和单位方差(unit variance)。
7.如果数据是高维数据,考虑使用降维方法,比如PCA。
8.将数据随机分入训练集和验证集。按照一般规律,70%-90% 数据作为训练集。
9.在验证集上调优,尝试足够多的k值,尝试L1和L2两种范数计算方式。
05线性分类
假设有这么一张我学校的校徽图片,对应大小为[32323],然后有十个标签, 想要找一组比较好的权重参数w,得出当前的权重参数对每个分类的得分。
转换为矩阵形式:
将32323=3072个像素点进行拉伸,转换成一个列向量:30721的矩阵,结果是101的矩阵, 则w为3072*10的二维矩阵,每个元素都是一个权重参数,跟图像转换的矩阵进行组合,就可以算出得分。
06损失函数
07正则化惩罚项
w1只关注第一个像素点,w2对每个像素点一视同仁,虽然结果相同,但是对于w1是不可取的。
由此可得,损失函数终极版:
深度学习——02、深度学习入门 1-7相关推荐
- 【github干货】主流深度学习开源框架从入门到熟练
文章首发于微信公众号<有三AI> [github干货]主流深度学习开源框架从入门到熟练 今天送上有三AI学院第一个github项目 01项目背景 目前深度学习框架呈百家争鸣之态势,光是为人 ...
- 人工智能教程第一课 深度学习和计算机视觉TensorFlow入门
深度学习 学习目标 知道什么是深度学习 知道深度学习的应用场景 1.什么是深度学习 在介绍深度学习之前,我们先看下人工智能,机器学习和深度学习之间的关系: 机器学习是实现人工智能的一种途径,深度学习是 ...
- 五本必读的深度学习圣经书籍,入门 AI 从 深度学习 开始
原标题:`五本必读的深度学习圣经书籍,入门 AI 从「深度学习」开始` (以下以 Daniel Jeffries 第一人称撰写) 多年来,由于实验室研究和现实应用效果之间的鸿沟,少有人持续研究人工智能 ...
- PyTorch 深度学习: 60 分钟极速入门
PyTorch 深度学习: 60 分钟极速入门 2019年年初,ApacheCN组织志愿者翻译了PyTorch1.2版本中文文档(github地址),同时也获得了PyTorch官方授权,我相信已经有许 ...
- 【完结】给新手的12大深度学习开源框架快速入门项目
文/编辑 | 言有三 这是一篇总结文,给大家来捋清楚12大深度学习开源框架的快速入门,这是有三AI的GitHub项目,欢迎大家star/fork. https://github.com/longpen ...
- wandb(wb)(weights and biases): 深度学习轻量级可视化工具入门教程
参考文章:wandb: 深度学习轻量级可视化工具入门教程 这wandb有点蛋疼啊,说登录https://wandb.ai/authorize?signup=true获取API KEY,但貌似要梯子才能 ...
- 【强化学习】深度强化学习入门介绍
深度强化学习是一种机器学习,其中智能体(Agent,也翻译作代理)通过执行操作(Action)和查看结果(Reward)来学习如何在环境中采取最佳的动作或策略. 自 2013 年Deep Q-Lear ...
- wandb: 深度学习轻量级可视化工具入门教程
本文,就来给大家介绍一款新型的机器学习可视化工具,能够让人工智能研发过程变得更加简单明了. wandb: 深度学习轻量级可视化工具入门教程 引言 wandb 验证数据可视化 自然语言处理 重要工具 极 ...
- 学习《深度学习入门:基于Python的理论与实现》高清中文版PDF+源代码
入门神经网络深度学习,推荐学习<深度学习入门:基于Python的理论与实现>,这本书不来虚的,一上来就是手把手教你一步步搭建出一个神经网络,还能把每一步的出处讲明白.理解神经网络,很容易就 ...
- 7月7日云栖精选夜读:专访 | 杨强教授谈CCAI、深度学习泡沫与人工智能入门
摘要: 中国人工智能学会.阿里巴巴集团 & 蚂蚁金服主办,CSDN.中国科学院自动化研究所承办,云栖社区作为独家直播合作伙伴的第三届中国人工智能大会(CCAI 2017)将在杭州国际会议中心盛 ...
最新文章
- GROMACS运行参数整理(二)
- 新手学电脑入门教程_炒股技巧大全丨炒股新手怎样才能长期稳定盈利
- 另类的 高版本数据库 转换到 低版本数据库
- Android消息通信之无所不能的第三方开源项目EventBus
- Eclipse中怎样安装数据库建模工具ERMaster插件
- nginx 源码学习笔记(十八)—— ngx_add_inherited_sockets 继承的sockets
- leetcode讲解--872. Leaf-Similar Trees
- BI分析受阻?FineBI推出SPA螺旋式分析新功能!
- librdkafka介绍文档
- laoshijibuzhu
- 牛逼!这么问 OutOfMemoryError 能让我懵逼!
- 2018年,20大Python数据科学库都做了哪些更新
- 计算机网络三种模型(OSI模型、TCP/IP模型、五层通用模型)、各层作用
- Blender插件BoxCutter 7.1.7v15 硬表面建模2.91+教程Box Cutter
- @计算机网络基础知识
- 强化学习经典model-free方法总结
- 红米android10参数,红米10x5g手机参数红米10x5g手机参数有哪些
- 使用Jsch执行Shell脚本
- ICP in VTK
- 猪八戒威客网对我的报道
热门文章
- 转载:Spring AOP (下)
- scrum 12.2
- Wix学习整理(2)——HelloWorld安装添加UI
- Beyond Compare启动出错解决方案
- 软件开发人员的“七重苦”(2)
- 先用knn对数据集进行预处理再利用神经网络对数据集进行分类_数据挖掘的预处理方法:综述...
- java旺季机票_java-第四章-机票价格受到淡季旺季的影响,编写的小程序
- 取整 除法_Python学习教程:Python3除法之真除法、截断除法和下取整对比
- Java黑皮书课后题第8章:*8.25(马尔可夫矩阵)一个n*n的矩阵,如果每个元素都是正数,并且每列的元素的和为1,则成为正马尔可夫矩阵。编写下面的方法来检测矩阵是否是马尔可夫矩阵
- Java黑皮书课后题第5章:**5.32(游戏:彩票)修改程序清单3-8,产生一个两位数的彩票。这两位数是不同的