Deep learning with Python
一、导论
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 machine 和deep 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的更多相关文章
- Machine and Deep Learning with Python
Machine and Deep Learning with Python Education Tutorials and courses Supervised learning superstiti ...
- Conclusions about Deep Learning with Python
Conclusions about Deep Learning with Python Last night, I start to learn the python for deep learn ...
- Deep learning with Python 学习笔记(11)
总结 机器学习(machine learning)是人工智能的一个特殊子领域,其目标是仅靠观察训练数据来自动开发程序[即模型(model)].将数据转换为程序的这个过程叫作学习(learning) 深 ...
- Deep learning with Python 学习笔记(10)
生成式深度学习 机器学习模型能够对图像.音乐和故事的统计潜在空间(latent space)进行学习,然后从这个空间中采样(sample),创造出与模型在训练数据中所见到的艺术作品具有相似特征的新作品 ...
- Deep learning with Python 学习笔记(9)
神经网络模型的优化 使用 Keras 回调函数 使用 model.fit()或 model.fit_generator() 在一个大型数据集上启动数十轮的训练,有点类似于扔一架纸飞机,一开始给它一点推 ...
- Deep learning with Python 学习笔记(8)
Keras 函数式编程 利用 Keras 函数式 API,你可以构建类图(graph-like)模型.在不同的输入之间共享某一层,并且还可以像使用 Python 函数一样使用 Keras 模型.Ker ...
- Deep learning with Python 学习笔记(7)
介绍一维卷积神经网络 卷积神经网络能够进行卷积运算,从局部输入图块中提取特征,并能够将表示模块化,同时可以高效地利用数据.这些性质让卷积神经网络在计算机视觉领域表现优异,同样也让它对序列处理特别有效. ...
- Deep learning with Python 学习笔记(6)
本节介绍循环神经网络及其优化 循环神经网络(RNN,recurrent neural network)处理序列的方式是,遍历所有序列元素,并保存一个状态(state),其中包含与已查看内容相关的信息. ...
- Deep learning with Python 学习笔记(5)
本节讲深度学习用于文本和序列 用于处理序列的两种基本的深度学习算法分别是循环神经网络(recurrent neural network)和一维卷积神经网络(1D convnet) 与其他所有神经网络一 ...
- Deep learning with Python 学习笔记(4)
本节讲卷积神经网络的可视化 三种方法 可视化卷积神经网络的中间输出(中间激活) 有助于理解卷积神经网络连续的层如何对输入进行变换,也有助于初步了解卷积神经网络每个过滤器的含义 可视化卷积神经网络的过滤 ...
随机推荐
- 经典SQL50句
50个常用的sql语句 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,T ...
- Bean Java配置
Spring 系列教程 Spring 框架介绍 Spring 框架模块 Spring开发环境搭建(Eclipse) 创建一个简单的Spring应用 Spring 控制反转容器(Inversion of ...
- vue 循环和v-if 不能混合使用
<div class="item page-item" v-for="(item,i) in pageNum" @click="setCurre ...
- MBE风格图标
图标的定义 图标是一种通过相似性或类比行来代表对象的符号. 图标的重要性 1.图形以其无与伦比的识别性带来信息传达效率的提升. 2.图形以其百变多样的趣味性带来视觉体验的享受提成用户体验. 3.图形以 ...
- 2016蓝桥杯省赛C/C++A组第九题 密码脱落
题意: X星球的考古学家发现了一批古代留下来的密码. 这些密码是由A.B.C.D 四种植物的种子串成的序列. 仔细分析发现,这些密码串当初应该是前后对称的(也就是我们说的镜像串). 由于年代久远,其中 ...
- 【Vue中的坑】路由相同参数不同无法触发路由
场景: vue实现导航栏,二级导航栏跳转到相同页面,通过参数来实现到该页面后,根据参数来滚动到对应到位置 网上的解决方法: 通常情况下我们喜欢设置keepAlive 包裹 router-view &l ...
- EUI库 - 概述
新特性 36k 访问EUI组件宽高时,也会跟原生显示对象的表现一致,立即能得到包含子项的宽高值 统一的显示列表 普通对象和eui对象都可用addChild来添加 一个逻辑组件只管 ...
- oracle(4)----空值说明
1. 含义:空值(null)表示未知或者暂时不存在的数据,任何类型(没有约束的条件下)都可以取值null:2. 插入null值: insert into stu (id,name) values(3, ...
- tyvj 1860 后缀数组
真·模板题(然而还是TLE了,tyvj真是个毒瘤,输出double什么的就是 -0.00000000,这些就TLE2333) 简单的说一下本蒟蒻看了一天后缀数组的收获(这东西太神了,,,wcwc,,收 ...
- 【分类问题中模型的性能度量(二)】超强整理,超详细解析,一文彻底搞懂ROC、AUC
文章目录 1.背景 2.ROC曲线 2.1 ROC名称溯源(选看) 2.2 ROC曲线的绘制 3.AUC(Area Under ROC Curve) 3.1 AUC来历 3.2 AUC几何意义 3.3 ...