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相关推荐

  1. 【github干货】主流深度学习开源框架从入门到熟练

    文章首发于微信公众号<有三AI> [github干货]主流深度学习开源框架从入门到熟练 今天送上有三AI学院第一个github项目 01项目背景 目前深度学习框架呈百家争鸣之态势,光是为人 ...

  2. 人工智能教程第一课 深度学习和计算机视觉TensorFlow入门

    深度学习 学习目标 知道什么是深度学习 知道深度学习的应用场景 1.什么是深度学习 在介绍深度学习之前,我们先看下人工智能,机器学习和深度学习之间的关系: 机器学习是实现人工智能的一种途径,深度学习是 ...

  3. 五本必读的深度学习圣经书籍,入门 AI 从 深度学习 开始

    原标题:`五本必读的深度学习圣经书籍,入门 AI 从「深度学习」开始` (以下以 Daniel Jeffries 第一人称撰写) 多年来,由于实验室研究和现实应用效果之间的鸿沟,少有人持续研究人工智能 ...

  4. PyTorch 深度学习: 60 分钟极速入门

    PyTorch 深度学习: 60 分钟极速入门 2019年年初,ApacheCN组织志愿者翻译了PyTorch1.2版本中文文档(github地址),同时也获得了PyTorch官方授权,我相信已经有许 ...

  5. 【完结】给新手的12大深度学习开源框架快速入门项目

    文/编辑 | 言有三 这是一篇总结文,给大家来捋清楚12大深度学习开源框架的快速入门,这是有三AI的GitHub项目,欢迎大家star/fork. https://github.com/longpen ...

  6. wandb(wb)(weights and biases): 深度学习轻量级可视化工具入门教程

    参考文章:wandb: 深度学习轻量级可视化工具入门教程 这wandb有点蛋疼啊,说登录https://wandb.ai/authorize?signup=true获取API KEY,但貌似要梯子才能 ...

  7. 【强化学习】深度强化学习入门介绍

    深度强化学习是一种机器学习,其中智能体(Agent,也翻译作代理)通过执行操作(Action)和查看结果(Reward)来学习如何在环境中采取最佳的动作或策略. 自 2013 年Deep Q-Lear ...

  8. wandb: 深度学习轻量级可视化工具入门教程

    本文,就来给大家介绍一款新型的机器学习可视化工具,能够让人工智能研发过程变得更加简单明了. wandb: 深度学习轻量级可视化工具入门教程 引言 wandb 验证数据可视化 自然语言处理 重要工具 极 ...

  9. 学习《深度学习入门:基于Python的理论与实现》高清中文版PDF+源代码

    入门神经网络深度学习,推荐学习<深度学习入门:基于Python的理论与实现>,这本书不来虚的,一上来就是手把手教你一步步搭建出一个神经网络,还能把每一步的出处讲明白.理解神经网络,很容易就 ...

  10. 7月7日云栖精选夜读:专访 | 杨强教授谈CCAI、深度学习泡沫与人工智能入门

    摘要: 中国人工智能学会.阿里巴巴集团 & 蚂蚁金服主办,CSDN.中国科学院自动化研究所承办,云栖社区作为独家直播合作伙伴的第三届中国人工智能大会(CCAI 2017)将在杭州国际会议中心盛 ...

最新文章

  1. GROMACS运行参数整理(二)
  2. 新手学电脑入门教程_炒股技巧大全丨炒股新手怎样才能长期稳定盈利
  3. 另类的 高版本数据库 转换到 低版本数据库
  4. Android消息通信之无所不能的第三方开源项目EventBus
  5. Eclipse中怎样安装数据库建模工具ERMaster插件
  6. nginx 源码学习笔记(十八)—— ngx_add_inherited_sockets 继承的sockets
  7. leetcode讲解--872. Leaf-Similar Trees
  8. BI分析受阻?FineBI推出SPA螺旋式分析新功能!
  9. librdkafka介绍文档
  10. laoshijibuzhu
  11. 牛逼!这么问 OutOfMemoryError 能让我懵逼!
  12. 2018年,20大Python数据科学库都做了哪些更新
  13. 计算机网络三种模型(OSI模型、TCP/IP模型、五层通用模型)、各层作用
  14. Blender插件BoxCutter 7.1.7v15 硬表面建模2.91+教程Box Cutter
  15. @计算机网络基础知识
  16. 强化学习经典model-free方法总结
  17. 红米android10参数,红米10x5g手机参数红米10x5g手机参数有哪些
  18. 使用Jsch执行Shell脚本
  19. ICP in VTK
  20. 猪八戒威客网对我的报道

热门文章

  1. 转载:Spring AOP (下)
  2. scrum 12.2
  3. Wix学习整理(2)——HelloWorld安装添加UI
  4. Beyond Compare启动出错解决方案
  5. 软件开发人员的“七重苦”(2)
  6. 先用knn对数据集进行预处理再利用神经网络对数据集进行分类_数据挖掘的预处理方法:综述...
  7. java旺季机票_java-第四章-机票价格受到淡季旺季的影响,编写的小程序
  8. 取整 除法_Python学习教程:Python3除法之真除法、截断除法和下取整对比
  9. Java黑皮书课后题第8章:*8.25(马尔可夫矩阵)一个n*n的矩阵,如果每个元素都是正数,并且每列的元素的和为1,则成为正马尔可夫矩阵。编写下面的方法来检测矩阵是否是马尔可夫矩阵
  10. Java黑皮书课后题第5章:**5.32(游戏:彩票)修改程序清单3-8,产生一个两位数的彩票。这两位数是不同的