一、导论

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元素个数要相同。

Deep learning with Python的更多相关文章

  1. Machine and Deep Learning with Python

    Machine and Deep Learning with Python Education Tutorials and courses Supervised learning superstiti ...

  2. Conclusions about Deep Learning with Python

     Conclusions about Deep Learning with Python  Last night, I start to learn the python for deep learn ...

  3. Deep learning with Python 学习笔记(11)

    总结 机器学习(machine learning)是人工智能的一个特殊子领域,其目标是仅靠观察训练数据来自动开发程序[即模型(model)].将数据转换为程序的这个过程叫作学习(learning) 深 ...

  4. Deep learning with Python 学习笔记(10)

    生成式深度学习 机器学习模型能够对图像.音乐和故事的统计潜在空间(latent space)进行学习,然后从这个空间中采样(sample),创造出与模型在训练数据中所见到的艺术作品具有相似特征的新作品 ...

  5. Deep learning with Python 学习笔记(9)

    神经网络模型的优化 使用 Keras 回调函数 使用 model.fit()或 model.fit_generator() 在一个大型数据集上启动数十轮的训练,有点类似于扔一架纸飞机,一开始给它一点推 ...

  6. Deep learning with Python 学习笔记(8)

    Keras 函数式编程 利用 Keras 函数式 API,你可以构建类图(graph-like)模型.在不同的输入之间共享某一层,并且还可以像使用 Python 函数一样使用 Keras 模型.Ker ...

  7. Deep learning with Python 学习笔记(7)

    介绍一维卷积神经网络 卷积神经网络能够进行卷积运算,从局部输入图块中提取特征,并能够将表示模块化,同时可以高效地利用数据.这些性质让卷积神经网络在计算机视觉领域表现优异,同样也让它对序列处理特别有效. ...

  8. Deep learning with Python 学习笔记(6)

    本节介绍循环神经网络及其优化 循环神经网络(RNN,recurrent neural network)处理序列的方式是,遍历所有序列元素,并保存一个状态(state),其中包含与已查看内容相关的信息. ...

  9. Deep learning with Python 学习笔记(5)

    本节讲深度学习用于文本和序列 用于处理序列的两种基本的深度学习算法分别是循环神经网络(recurrent neural network)和一维卷积神经网络(1D convnet) 与其他所有神经网络一 ...

  10. Deep learning with Python 学习笔记(4)

    本节讲卷积神经网络的可视化 三种方法 可视化卷积神经网络的中间输出(中间激活) 有助于理解卷积神经网络连续的层如何对输入进行变换,也有助于初步了解卷积神经网络每个过滤器的含义 可视化卷积神经网络的过滤 ...

随机推荐

  1. Java 归并排序

    package cookie; public class MergeSort { void mergeSort(int[] a, int[] temp, int left, int right) { ...

  2. C++ for无限循环~

    无限循环 如果条件永远不为假,则循环将变成无限循环.for 循环在传统意义上可用于实现无限循环.由于构成循环的三个表达式中任何一个都不是必需的,您可以将某些条件表达式留空来构成一个无限循环. #inc ...

  3. VMware虚拟机黑屏

    引用自:VMware吧 近期很多朋友遇到了VMware Workstation 14开启或新建虚拟机后黑屏的现象,无法关机,软件也无法关闭 用任务管理器结束VMware后这个VMX进程也关不了 解决办 ...

  4. 吴裕雄--天生自然C++语言学习笔记:C++ 多线程

    多线程是多任务处理的一种特殊形式,多任务处理允许让电脑同时运行两个或两个以上的程序.一般情况下,两种类型的多任务处理:基于进程和基于线程. 基于进程的多任务处理是程序的并发执行. 基于线程的多任务处理 ...

  5. junit基础学习之-测试controller层(2)

    准备工作: eclipse本身带有junit4,可以直接build path,加入junit. 连接数据库的配置文件需要修改,之前的文件是采用properties+xml文件的形式,但是在测试的时候因 ...

  6. RF:connecting to multiple databases

    Hello, I am trying to connect to multiple databases with DatabaseLibrary but its not working. *** Se ...

  7. 自学Java第五章——《面向对象基础》

    5.1 类与对象 1.类:一类具有相同特性的事物的抽象描述. 对象:类的一个个体,实例,具体的存在. 类是对象的设计模板. 2.如何声明类? [修饰符] class 类名{    成员列表:属性.方法 ...

  8. AndroidAutoLayout

    AndroidAutoLayout [DEPRECATED]Android屏幕适配方案,直接填写设计图上的像素尺寸即可完成适配. 目前没有精力,已停止维护,使用前务必看明白代码,明确该方案可以解决自身 ...

  9. 66.Python中startswith和endswith的使用

    定义模型的models.py,示例代码如下: from django.db import models class Category(models.Model): name = models.Char ...

  10. Python中的常用内置对象之range对象

    range(start, stop[, step])  可生成满足条件的数.具体来说是返回一个从start开始到小于stop的相邻数的差step的等差数列列表.结果中包含start一直到小于stop的 ...