1、你应该了解这些
- 概率
- 编程的基础知识(java c++ c python)
- 一定的数学基础
- 得数据者得天下
内容
- 基本概念
- MachineLearning DeepLearning
- 训练集、测试集、特征值、分类、聚类、回归
- 常用算法
- 监督学习
- 分类
- 决策树(Decision Tree)
- KNN(k个nearest neigbors)
- SVM(Support Vector Machine)
- 神经网络(neural network)
- 朴素贝叶斯(naive bayes)
- 回归
- 线性回归(Linear Regression)
- 非线性回归(Non-Linear Regression)
- 分类
- 非监督学习
- K-Means聚类等
- 监督学习
ML(machine learning)
交叉学科
- 计算机(软件、硬件、概率论、统计学、线代、高数、逼近论、凸分析、机械
- 机器不再是通过规则行动,而是通过归纳、统计来进行结果改进
- 机器不在需要外部明确的指示,而是通过经验和数据自动进行结果改进
- AI的核心
- 学习经验,针对任务,执行结果,经验越多,结果越好,则计算机有学习能力
应用
- 语音识别
- 实时语音翻译
- 自然语言处理
- Google翻译
- 自动驾驶
- 计算机视觉
- 人脸识别
- 推荐系统GTR布加迪
- 无人机
- 垃圾邮件识别spam
- 机器人
- …
深度学习
- 伴随大数据和计算能力的提高而产生的新的算法
- NN模拟人类神经元的构造
imagenet竞赛 — 深度学习算法遥遥领先
DeepMind AlphaGo — 规则 vs 学习
算法评估标准
- 准确率
- 速度
- 规模
- …
2、神经网络入门教程
机器学习基本步骤
- 获取数据:获取、清洗、存储(hdfs)
- 数据拆分训练集和测试集
- 用特征向量训练算法
- 算法迭代与改进
- 实际应用
- 获取更多数据
- …
多层前向神经网络
输入层(特征向量值)
隐藏层(可以有多层)
输出层(标记分类)
权重
偏置
激励函数activation function
隐藏层足够多,训练集足够大,可以模拟任何问题
NN算法(BP=Back Propragation后向传播算法)
- 特征向量标准化normalize(转化为0-1之间的值)
- 随机初始化权重和偏置(-1 — 1)
- 传入样例
- 计算神经元的值
- 对上层输入加权求和 $ Sj = \sum{i=0}^m w_{ij} + b_j $
- 加上偏置值
- 用激励函数产生最后结果(sigmoid function)逻辑函数??
- $ x_j = f(S_j) $
- $ f(x) = \frac{1}{1+e^{-x}} $
- 根据误差反向传送(更新,减小误差)
http://blog.csdn.net/acdreamers/article/details/44657439 - 误差计算
- 一定次数(epoch)
- 既定错误率
- 权重更新低于某个Threshold(阈值)
激励函数
- 双曲函数
- 逻辑函数
- 阶跃函数
- …
Learning Rate
- 步长
训练NN
- 不断通过样例调整权重和偏向的过程
- 训练好的神经网络可以用于预测新的样例
Tensorflow
- google开源的神经网络库
- 支持python/java/c
卷积神经网络入门
CNN: convolutional neural network
- TensorFlow是谷歌2015年开源的一个人工智能学习系统。主要目的是方便研究人员开展机器学习和深度神经网络方面的研究,目前这个系统更具有通用性,也可广泛用于其他计算领域。
- Tensorflow 支持多种前端语言,包括Python(Python也是tensorflow支持最好的前端语言),因此一般大家利用python实现对tensorflow的调用。
安装tensorflow
conda install tensorflow
tensorflow基本使用
理解TensorFlow:
• 使用图(graph)来表示计算任务;
• 在被称之为会话(Session)的上下文(context)中执行图;
• 使用tensor(张量)表示数据;
• 通过变量(Variable)维护状态;
• 使用feed和fetch可以为任意的操作(arbitrary operation)赋值或者从其中获取数据。
TensorFlow是一个编程系统,使用图来表示计算任务。图中的节点被称作op(Operation),op可以获得0个或多个tensor,产生0个或多个tensor。每个tensor是一个类型化的多维数组。例如:可以将一组图像集表示成一个四维的浮点数组,四个维度分别是[batch,height,weight,channels]。
图(graph)描述了计算的过程。为了进行计算,图必须在会话中启动,会话负责将图中的op分发到CPU或GPU上进行计算,然后将产生的tensor返回。在Python中,tensor就是numpy.ndarray对象。
- TensorFlow程序通常被组织成两个阶段:构建阶段和执行阶段。
- 构建阶段:op的执行顺序被描述成一个图;
- 执行阶段:使用会话执行图中的op。
- 例如:通常在构建阶段创建一个图来表示神经网络,在执行阶段反复执行图中的op训练神经网络。