一、导论

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. cudaThreadSynchronize()

    // 调用CUDA kernel 是非阻塞的,调用kernel语句后面的语句不等待kernel执行完,立即执行.所以在 call_kernel(see kernel.cu) 中执行 m5op.dump ...

  2. 微信小程序添加背景图片的坑

    给微信小程序页面加载背景图片解决方案 直接附上原文地址: 给微信小程序页面加载背景图片解决方案 - YUSIR 完美CODING世界 - CSDN博客  https://blog.csdn.net/y ...

  3. yarn调度器 FairScheduler 与 CapacityScheduler

    yarn FairScheduler 与 CapacityScheduler CapacityScheduler(根据计算能力调度) CapacityScheduler 允许多个组织共享整个集群, 每 ...

  4. Java虚拟机之内存模型

    一.java并发基础 在并发编程中存在两个关键问题①线程之间如何通信 ②线程之间如何同步. 通信 通信是指线程之间以何种机制来交换信息.在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递. ...

  5. AP架构基本过程

    ①.有线网络搭建(vlan,dhcp,路由等.) ②.ap零配置启动,通过dhcp获取IP地址及网关ip,同时获取ac ip地址. ③.AP主动建立到达ac的capwap隧道. ④.ap与ac建议隧道 ...

  6. jQuery搜索框输入实时进行查询

    在手机上,我们期望在搜索框中输入数据,能够实时更新查询出来的内容,不需要按回车. 实现方式为: $(".search").bind("input propertychan ...

  7. 在mysql中计算百分比

    通过查找资料,得到了如下解决方法: 用到了concat()和left() 两个函数 1.CONCAT(str1,str2,...) 返回来自于参数连结的字符串.如果任何参数是NULL, 返回NULL. ...

  8. JDK源码阅读-------自学笔记(五)(浅析数组)

    一.数组基础 1.定义和特点 数组也可以看做是对象,数组变量属于引用类型,数组中每个元素相当于该队形的成员变量,数组对象存储在堆中. 2.初始化数组 常用类初始化 // 整型初始化 int[] int ...

  9. SpringBoot项目 org.springframework.boot.context.embedded.EmbeddedServletContainerException: Unable to start embedded Jetty servlet container报错

    SpringBoot项目启动报错 ERROR 2172 --- [ main] o.s.boot.SpringApplication : Application startup failed org. ...

  10. JZOJ-TGB817-SOL

    T1 题面 "封印大典启动,请出Nescafe魂珠!"随着圣主applepi一声令下,圣剑护法rainbow和魔杖护法freda将Nescafe魂珠放置于封印台上.封印台是一个树形 ...