您的位置:首页 > 其它

ML启程笔记:<零>开启我的机器学习生涯

2018-01-18 20:02 232 查看
机器学习是人工智能的未来

第一次知道机器学习是在一次学科竞赛中,我所在的团队做的项目其中有个最核心需求是根据Android设备的加速度、陀螺仪、地磁等传感器的数据判断携带设备的人是否发生了跌倒。当时对于只写过一般的业务逻辑代码的我来说,实在是一脸懵逼。好在后来指导老师明确告知需要使用机器学习技术。

这是一段痛苦不堪的时期,揪着“跌倒检测”这一关键词换来有用的信息是一大堆的Paper,面对论文中大段大段的数学公式推导,我曾一度以为这是应用数学的领域(事实上也确实可以这么划分),跟编程有几毛钱关系- -。但是项目还是要做,问题还是解决了,当然,用的是非常简单的一个算法:K-近邻算法。

当确定了要使用的算法之后,另一个问题又困扰了我好久,训练数据到哪找?百度无果后我跑去找指导老师,很简单,问她要数据。当然,她肯定也是没有的,最后还是自己写了一个andriod程序用及其不严谨的方式收集了“大量”的数据。为什么打引号呢?因为有6个类别,只有4志愿者(包括我自己 - -),每个人每个类别采集了15个样本,一共360个样本,其中还要分出20%作为测试集。后来真正开始入门学习的时候我才知道一个比较小的入门数据集:MNIST手写数字数据集都有6W个样本。

虽然现在看起来很好笑,但回到当时还是感觉很牛逼的,因为这是我以往所写的那种代码办不到的,这是我对机器学习技术的第一印象:强大!

我是一个对技术有着无限追求的人,喜欢探索的人,因此我决定正式踏入这个领域,开启我的机器学习生涯,这是这一系列博客的开篇,在以后的时间里我会陆续的将自己的学习感想,理解和成果整理成笔记。目的是:

其一,方便日后随时可以查阅、温习;

其二,以完成这一系列笔记为目标与学习过程齐头并进,起到以此督彼的作用;

其三,在自学的过程中对有些知识难免理解偏颇,希望发现的人能够及时指正,避免走了不必要弯路;

以下是我暂定的这一系列笔记的大纲,为笔记整理的大致路线:

ML启程笔记大纲

一、开发环境搭建

Python环境搭建
直接安装

通过miniconda安装和基本命令

常用科学计算库
Numpy安装和常用函函数的使用

Matplotlib安装和常用函数的使用

Sklearn 安装和基本使用

Opencv-python 安装和基本图像处理

Etc.

神经网络框架安装
Tensorflow 安装和常用API参考

Caffe 安装和入门Demo

Etc.

开发工具
Pycharm 安装和配置

Jupyter notebook 安装和使用

Etc.

二、机器学习基础

什么是机器学习
机器学习能做什么(生活中的机器学习)
机器学习怎么做(一般流程)
机器学习与数据挖掘的区别
机器学习相关的术语
机器学习算法的分类及选择算法的一般标准


三、机器学习基本算法

3.1 有监督学习算法

3.1.1 分类

knn算法
K-nn的基本思想

决策树算法
决策树的基本思想

决策树的构造算法

ID3算法

C4.5算法

CART算法

决策树的绘制

朴素贝叶斯算法
贝叶斯准则

基于贝努利模型实现

不考虑词汇出现的次数,所有词汇具有同等权重

基于多项式模型实现

考虑词汇的出现次数,出现次数多的词汇具有较大的权重

Logistic回归分类



最优化算法
梯度下降

随机梯度下降

SVM算法
基于SMO(序列最小化)的SVM实现

基于核函数的SVM扩展

LIBSVM库

3.1.2 回归



3.2 无监督学习算法

3.2.1 聚类算法

K-mean算法


密度估计算法


四、神经网络算法

感知机
单隐层前馈网络
多隐层前馈网络
深度神经网络(DNN)
卷积神经网络(CNN)
LeNet-5

AlxNet

VGGNet-11 - VGGNet-19

Etc.

循环神经网络(RNN)
长短时记忆网络(LSTM)

五、增强学习/迁移学习

Q-Learning
集成学习
基于元学习器
DQN 及其变体
R-CNN及其迭代版本
Etc.

六、大数据与机器学习

Hadoop
Spark
Etc.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: