- 人工智能发展必备三要素
数据、算法、计算力
逐层、分布、并行算法能力提升
GPU、FPGA、TPU能力大幅度提升
- 扩展: GPU与CPU对比
CPU – IO密集型
GPU – 计算密集型
Q:什么类型的程序适合在GPU上运行
A:计算密集型的程序。所谓计算密集型的程序,就是其大部分运行时间花在了寄存器上运算的,寄存器的速度和处理器的速度相当,从寄存器读写数据几乎没有延时,可以做一下对比,读内存的延迟大概是几百个时钟周期,读硬盘速度就不说了,即便是SSD,也实在是太慢了
易于并行的程序。GPU其实是做一种SIMD架构,他有成百上千个核,每一个核在同一时间最好能做同样的事情。
1.3 机器学习工作流程
- 什么是机器学习
机器学习是从数据中自动分析获得模型,并利用模型对未知数据进行预测
- 机器学习工作流程:
获取数据
数据基本处理
特征工程
机器学习(模型训练)
模型评估
- 获取到的数据集介绍
数据简介
- 在数据集中一般:
一行数据我们称为一个样本
一列数据我们成为一个特征
有些数据有目标值(标签值),有些数据没有目标值
- 数据类型构成:
数据类型一: 特征值 + 目标值(目标值是连续的和离散的)
数据类型二: 只有特征值,没有目标值
- 数据分割:
机器学习一般的数据集会划分为两个部分:
训练数据: 用于训练,构建模型
测试数据: 在模型检验时使用,用于评估模型是否有效
- 划分比例:
训练集: 70% 80% 75%
测试集: 30% 20% 25%
- 数据基本处理
即对数进行缺失值、去除异常值等处理
- 特征工程
特征工程:
把数据转换成机器更容易识别的数据
(特征工程是使用专业背景知识和技巧处理数据,使得特征能在机器学习算法上发挥更好的作用的过程。)
为什么需要特征工程:
数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。
特征工程包含内容
特征提取:
将任意数据(如文本或图像)转换为可用于机器学习的数字特征
特征预处理:
通过一些转换函数将特征数据转成更加适合算法模型的特征数据的过程
特征降维:
指在某些限定条件下,降低随机变量(特征)个数,得到一组"不相关" 主变量的过程
- 机器学习
选择合适的算法对模型进行训练
- 模型评估
对训练好的模型进行评估
1.4完整机器学习流程
- 抽象成数学问题
明确问题是进行机器学习的第一步。机器学习的特征工程和模型训练通常都是一件非常耗时的过程,胡乱尝试时间成本是非常高的。
这里的抽象成数学问题,指的明确我们可以获得怎样的数据,抽象出的问题,是一个分类还是回归或者聚类的问题。
- 获取数据
数据决定机器学习结果的上限,而算法只是尽可能的逼近这个上限
数据要有代表性,否则必然会过拟合
对于分类问题,数据偏斜不能过于严重,不同类别的数据数量不要有数个数量级的差距。
而且还要对数据的量级有一个评估,多少个样本,多少个特征,可以估算出其对内存的消耗程度,判断训练过程中内存是否能够放得下,如果放不下就得考虑改进算法或者使用一些降维的技巧了,如果数据量实在是太大,那就要考虑分布式了。
- 特征工程
特征工程是非常能体现一个机器学习者的功底的。
特征工程包括从原始数据中特征构建、特征提取、特征选择,非常有讲究。深入理解实际业务场景下的问题,丰富的机器学习经验能帮助我们更好的处理特征工程。特征工程做的好能发挥原始数据的最大效力,往往能够使得算法的效果和性能得到显著的提升,有时能使简单的模型的效果比复杂的模型效果好。
数据预处理、数据清洗是很关键的步骤,往往能够使得算法的效果和性能得到显著提高。归一化、离散化、因子化、缺失值处理、去除共线性等,数据挖掘过程中很多时间就花在它们上面。这些工作简单可复制,收益稳定可预期,是机器学习的基础必备步骤。
现在能在网上找到很多很多的学习资源,有免费的也有收费的,当我拿到1套比较全的学习资源之前,我并没着急去看第1节,我而是去审视这套资源是否值得学习,有时候也会去问一些学长的意见,如果可以之后,我会对这套学习资源做1个学习计划,我的学习计划主要包括规划图和学习进度表。
分享给大家这份我薅到的免费视频资料,质量还不错,大家可以跟着学习