决策树
随机森林算法
逻辑回归
SVM
朴素贝叶斯
K最近邻
K均值
Adaboost算法
神经网络
马尔科夫
曾因酒醉鞭名马 生怕情多累美人
决策树
随机森林算法
逻辑回归
SVM
朴素贝叶斯
K最近邻
K均值
Adaboost算法
神经网络
马尔科夫
机器学习是什么??
使用算法从原始数据中提取信息,并以某种类型的模型表示出来,然后使用这个模型来推断我们尚未建模的其他数据。
深度学习可以被定义在以下四个基本网络框架中拥有大量参数和层的神经网络:
无监督预训练网络upn
卷积神经网络cnn
循环神经网络rnn
递归神经网络rnn
卷积 基本上就是用共享权重在空间中进行扩展的标准神经网络。为了内部卷积来识别图片,内部卷积可以看到待识别物体的边。
循环神经网络 在时间上进行扩展,因为边进入下一个时间步,而不是在同一时间步进入下一个层。识别序列,例如语音或者文本。里面的循环意味着网络中存在短暂的记忆。
递归 更类似于分层网络,其中输入序列没有真正的时间面,而是输入必须以树状方式分层处理。
十种方法:
反向传播
随机梯度下降
学习率衰减
dropout
max pooling
批标准化
lstm
skip-gram
连续词袋
迁移学习
考虑到软件依赖项,依赖冲突。
单机建议用Virturalenv,分布式用Docker。
解决依赖冲突有以下方式:代码库内部的软件包依赖,依赖库放到代码中,局部引用。重复占用空间,手工更改。用户无法修改。使用依赖环境,虚拟环境。Virturalenv、Anaconda。使用容器,软件、文件系统、运行时、依赖库打包轻量级方案。典型应用有Docker。
TensorFlow需要用到两个经典库:Jupyter(iPython) Notebook、matplotlib。Jupyter Notebook可以交互式编写可视化结果文档,代码展示,Markdown单元,设计原型,代码写入逻辑块,方便调试脚本特定部分。matplotlib是绘图库,可以实现数据可视化,典型应用Seaborn。
Virtualenv环境安装
1 | sudo easy_install pip |
创建虚拟环境目录:
1 | sudo mkdir ~/env |
创建虚拟环境:
1 | virtualenv --system-site-packages ~/env/tensorflow |
激活虚拟环境:
1 | source ~/env/tensorflow/bin/activate |
关闭虚拟环境:
1 | deactivate |
安装TensorFlow:
Python 3.6: pip3 install –upgrade tensorflow
最后是把需要的whl下载下来,直接通过pip install 装本地的文件。
安装Jupyter、matplotlib
1 | sudo pip install jupyter |
其中widgetsnbextension没有办法下载下来装,因为下下来的是3.0.0的,需要的是2.0.0的。
装完之后,在Jupyter上跑一个。
Test Code
1 | import tensorflow as tf |
Tensorflow既是机器学习算法实现接口,又是机器学习算法执行框架。TensorFlow的前端支持Python、C++、Go、Java等,目前推荐优先使用Python。后端使用C++、CUDA等。TensorFlow算法在异构系统方便移植,Android、iOS、CPU服务器、GPU集群等。可以实现机器学习、线性回归、逻辑回归、随机森林等算法。在语音识别、自然语言处理、计算机视觉、机器人控制、信息抽取、药物研发、分子活动预测等方面应用广泛。
TensorFlow方便设计神经网络结构。
不必写C++、CUDA。自动求导。
C++核心方便线上部署。支持低配置嵌入式设备。通过SWIG添加其他脚本支持。
每个mini-batch要从Python feed到网络,延迟大。
内置TF.lean、TF.Slim快速设计网络。兼容scikit-lean estimator接口,实现evaluate、grid、search、cross、validation等功能。
自动将分支转为子图。灵活移值,轻易部署任意数量设备。编译快。
TensorBoard可视化网络结构、过程。支持常见网络结构(卷积神经网络CNN,循环神经网络RNN)、深度强化学习、计算密集科学计算等。
缺点,计算图必须为静态图。异构支持各种硬件和操作系统。框架分布式性能是关键。TensorFlow 单机reduction只能用CPU,分布式通信使用socket RPC,不是RDMA,待优化。TensorFlow Serving 组件可导出训练好的模型,部署成对外提供预测是服务RESTful接口。实现应用机器学习全流程,训练模型、调试参数、打包模型、部署服务。
TensorBoard,监控运行过程关键指标,支持标量、图片、直方图、计算图可视化。