一、导论

1.1 人工智能、机器学习、深度学习

人工智能、机器学习

人工智能:1980年代达到高峰的是专家系统,符号AI是之前的,但不能解决模糊、复杂的问题。

机器学习是把数据、答案做输入,规则作输出。而传统的是把数据、规则作输入,答案作输出。和统计学有关,但是比统计学解决问题更加复杂。

机器学习三要素:

  • 输入、
  • 期望的输出、
  • 衡量指标。

机器学习中的「学习」,就是指寻找更好的表达。

深度学习

深度学习(Deep learning)中的深度,是指递进式层级的表达。层数,就是深度。层数一般10层到数百层不等。

而非深度学习,被称为浅度学习(shallow learning)。

深度学习的层,常和神经网络有关。(神经网络和生物学的大脑神经没半毛钱关系。)可将层,视为过滤器,一层一层过滤,最后一层输出的是纯净物。

每一层都有权重,找到权重很难。但目标和输入之间的距离,用损失函数(目标函数)来衡量。这样来调节权重。这就是反馈算法,深度学习算法的核心。

于是,开始时候随便给个权重,这样第一次的结果,和Y之间就有一个差距(第一次很大),这样就调节权重,进行第二次,再算出差距,循环往复。

提醒

AI经历了两轮寒冬,不要被媒体的过分宣传引导。要避免铁锤人倾向,可以学一些其他的机器学习算法。概率模型(朴素贝叶斯、逻辑回归)这些经常用于分类。

1.2 历史

Kernal method

核心算法是一系列的分类算法,支持向量机就是一种(SVM),SVM处理小数据比较好,但是像图像这样的大数据就不行了,而且是浅算法,一开始需要人为操作。

决策树、随机森林、梯度提升机

随机森林是把决策树给聚合在一起,在kaggle上,一度是最流行的算法,后来被gradient boosting machine取代

之所以深度学习脱颖而出,不仅仅因为其表现较好,更是因为可以自动完成其他机器学习需要手动完成的一步——特征工程

1.3 现在

Kaggle中,gradient boosting machinedeep learning两种在2016,2017最流行。

gradient boosting machiens 用于结构化数据,是浅算法,使用XGBboost库。而deep learning使用Keras

硬件在2000以来飞速发展,但是还不足以支撑关于图像、语言处理,但NVIDIA的cuda可用。

二、 Tensor

2.1 什么是tensor?

tensor是数据容器,里面都是数据,任意维度的数据。

0维tensor是scalar(标量)。np.array(12)就是一个scalar

2.2 不同维度的tensor

  • 1维tensor是vector(向量)。np.array([3, 4, 5, 5])就是一个vector

  • 2维tensor是matrix(矩阵) 由多个vector组成

  • 3维是多个matrix。多个matrix组成

  • 一般是0-4维,5维是视频。

(6000, 28, 28)这是6000张,28*28大小的图片。第一维度是样本轴。如果是按批次处理,第一维度是batch轴。

常用数据类型

Vector

每个人有年龄、邮编、收入三个特征。100个人,表示为:(100, 3)

3D

每分钟股票价格、最高价、最低价。一天有390分钟,一年有250个交易日:(250, 390, 3)

4D图片

每个有色图像RGB是是三个(4th D),一张图片有长度、宽度(3th, 2th D),若干张图片(1th D)。(200, 256, 256, 3) 是200张,256*256大小的有色图片。

5D视频

一帧是一张图片,号多帧,就是视频(4, 240, 144, 256, 3) 就是4个240帧的144*256大小的彩色视频。

Tensor操作

  • 元素指向操作。针对tensor中每个元素进行运算。
  • 广播 broadcast。将一列向其他列做同样操作。
  • 点乘 dot 。类似于矩阵的乘法(而不是数乘)
  • 重塑 reshape。原、新tensor元素个数要相同。

最新文章

  1. iOS 委托与文本输入(内容根据iOS编程编写)
  2. asp.net mvc3登录验证
  3. iOS 懒加载不起作用的原因
  4. 同一服务器配置DataGuard
  5. PDF 补丁丁 0.4.2.1218 测试版发布:新增拆分文档功能
  6. SpringMVC数据绑定全面示例(复杂对象,数组等)
  7. 通过SQL进行远程访问
  8. 判断DataReader中是否有指定列
  9. HDU 4288 Coder(线段树)
  10. Qt录音程序
  11. SimpleRpc-序列化与反序列化的设计与实现
  12. TextBox使用技巧--转载
  13. DAY1 VS2017&CUDA10.01环境搭建
  14. 创建servlet程序知识点详解---servlet-day05
  15. MyBatis 返回类型resultType为map时的null值不返回问题
  16. 难以接受你的改变:从project.json到.csproj
  17. python-类属性和对象属性(转)
  18. animation 老动画
  19. 远程桌面连接报错:出现身份验证错误,要求函数不受支持,由于CredSSP加密Oracle修正。
  20. vue项目警告There are multiple modules with names that only differ in casing

热门文章

  1. Docker Java 例子
  2. c++ opencv 数学函数示例
  3. 微信公众号开发之内网映射外网natapp安装(一)
  4. swift中block的使用
  5. CentOS 7设置开机启动服务,添加自定义系统服务
  6. 吴裕雄--天生自然TensorFlow2教程:数据统计
  7. 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring中Bean的作用域
  8. C#高级编程(第9版) 第10章 集合 笔记
  9. error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) already defined in LIBCMT
  10. Q1:Two Sum