浅谈机器学习入门实践

网上关于机器学习的文章,视频不可胜数,原本写这么一篇东西,我本身也以为有点多余,可是我还真没找到一个能帮助像我这样零基础的人,快速接触和上手机器学习的文章。这篇文章不能让你深刻学习和掌握机器学习的相关知识,可是必定能让你快速了解什么是机器学习,以及你到底要不要深刻学习,你须要提早学哪些东西来makes you ready。html

机器学习是什么

其实这个恐怕任何一个从业人员都已经了解了,我也不过多介绍了,用我本身的话来讲就是:让机器学会用接近人类思考的方式来学习新的技能,从而帮助人类从一些简单的智能工做上解脱出来。好比车牌号识别、手写识别、语音识别、图片OCR等等。python

机器学习的过程

机器学习的流程能够归纳为几大部分,分别是:设置数据集、划分训练集和测试集、构建计算网络、训练模型、测试模型以及其余一些环节。设置数据集就是获取测试数据,你不能用爬虫随便爬几千个图片来训练,必须将图片先转化为规范的数据集合,好比大小相同等。其余的语音识别等,也须要先作相似的工做。幸运的是,你能够注册一个kaggle的帐号,来获取一些已经采集好的标准数据集。第二步是划分集合,一多半用来训练,一小半用来测试,具体的比例你能够自行测试调优。训练集用来训练模型,测试集用来评估训练结果。为了防止模型过于匹配某些训练数据(术语叫作过拟合),训练时每每是不停的随机抽取样本创建批次来进行训练的,而不是分批次逐个批次训练作到全覆盖。后面的几个环节,我就不细说了,网上最多的就是这个。在keras框架中,这三个环节也就是几行代码的事。c++

tensorflow、keras、Matlab和神经网络CNN都是什么

这个是我初学的时候最困扰个人问题之一。Matlab是一种开发工具,相似于python语言,通讯专业的孩子都懂的,常常用来绘制数学图像。tensorflow是一套机器学习框架,你能够详细的设计和定制你的学习模型和流程,固然你须要大量的专业知识和技能才能作到。keras是最适合我这种入门小白学习的,可是抽象的级别太高,你仍是先了解下tensorflow再用比较好。它把不少tensorflow的功能(也可使用theano和其余计算框架)都进行了更高层面的组合,让你用不多的代码就能实现不少功能。神经网络CNN是主要用于图像领域的计算框架,是一种计算模型,相似于基于Java或者PHP语言所使用的后端架构。实现的方式多种多样,这种架构比较适合图像识别(也能够用于语音识别等)。后端

基础知识的准备

matplotlib库是你必备的,这个是数学工具库,主要用来绘制数学函数和图像,很是的强大,很接近于Matlab的功能。这个网上也有专门的教程,建议先简单学习一下。
而后是numpy库,这个库是科学计算领域经常使用的库,专门用来作数字方面的工做,也是建议先学习一下。机器学习在某些时候,很接近于线性回归,而这个库很适合用来建立大量的数字集合。
再以后是OpenCV库,这个是专门用来作图像处理的库(我学的是python版本,原版貌似是c++开发的),包括摄像头采集,图像变换,图像分析分类等等,功能很是的强悍,能够说是计算机视觉领域必备的库。网上也有专门的大量教程,也建议先学习一下,了解基础用法。其中摄像头人脸检测(就是在图像中识别出有没有人脸),甚至已经内置了处理模型,能直接调用api检测出来。api

下一步要作什么

想要开发出一个识别人脸或者动物的模型其实很简单,可是可是可是!想要知道这个模型是如何设计的,以及设计一个属于本身的模型去解决特定问题,这个是很难的。也就是说,写代码很简单,关键是熟练使用各类数学模型组成计算框架。斯坦福大学在网易云课堂上面有一个公开课,里面全都是各类数学模型和公式,目前我还没法驾驭,数学学渣感受压力很大。若是你想深刻研究并解决你本身遇到的特定问题,那么你须要熟练使用各类数学模型,还要知道如何评估本身的模型的准确率。星辰大海等着你去征服,少年。网络

最后的最后,我学这个时间确实很短,必定会有不少遗漏和错误之处,若是你们发现了,请必定指出并最好附上文档连接,你们共同窗习。架构

最后补充一些特别好的文章资料,供你们进一步阅读:
https://zhuanlan.zhihu.com/p/... 专栏里的文章都不错,比较容易理解
http://www.cnblogs.com/neo-T/... 这是我看过的最简单的入门文章
https://www.bilibili.com/vide... 这个up的视频讲的也不错,真·手把手教框架

相关文章
相关标签/搜索