小白入门机器学习

感觉昨天的文章还没完整,今天二师兄把自己自学过程中用到的资料还有过程贴出来。

1. 首先要定位好自己的学习目标

二师兄学机器学习的目标是能够将其作为工具解决材料上的问题。如果只是这个目标的话,二师兄可以放心的告诉大家,这个是很容易实现的。因为像我之前讲过的,目前的机器学习包括神经网络这些其实都是黑盒操作,你不需要知道原理,你不需要涉及机器学习内部的算法,现在各种常用的算法都有工具箱,都有库,你直接调用就行了,你需要做的只是把你的数据预处理下,然后调用这些库去训练,过程中你可能还需要调整下这些算法的参数,实在不愿意你就用默认参数,最后你就能得到一个训练好的模型,可以识别可以进行预测。然后你也许会问,机器学习那么多算法,那么多分类,我怎么知道我的数据该用哪些模型训练呢?一方面你可以通过了解这些算法,因为每个都有其擅长处理的数据类型,另外,可以参考下图,scikit learn 的这个算法选择图,你就根据你的数据类型,一个一个选择,最后的那个就是你需要的。最后呢,最常用的,最笨的,你可以把每个算法都试下的,这些计算机自己都能完成的,其实学的时候你会发现,有的算法会自动把所有可能的都试一次,然后给你最好的结果。总之,你可以把机器学习理解成一个工具,一个已经被开发的很好的工具,作为小白,你不需要懂他,你会用就好了。好,以上就是我们的学习目标,不求甚解,会用就行,这也是二师兄大部分技能的程度。作为一个技术人员,我们应该做到的是博览然后又专长。

2. 你需要具备的知识

首先作为工科生,作为研究生,我假设大家应该都有线性代数和概率论的基础,机器学习里面的数据好多都是用矩阵直接表示的,有些算法的表达式也是矩阵的运算,所以对于线性代数你需要有最基本的了解。然后,对于概率论呢,如果你不想了解这些算法的原理的,相对就没那么重要了。讲完数学基础,就要讲Python了。本科学过C的话再学这个其实很容易了,这个语言要比容易很多,其实对于编程你需要了解的也只有循环结构,赋值语句,逻辑语句这些最基础的,知道在Python里面怎么写这些,你的编程基础也就够了。给大家推荐一个python学习网站,超级赞,小白专用,下面是网页的一个截屏。(https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000)

3. 步入正题--机器学习

掌握了Python后,其实相对于我们的小目标来说,你已经成功了一半,Cheers!现在我来介绍下机器学习。机器学习分为深度学习和浅度学习,最近大火的AlphaGo 还有华为的AI芯片都属于深度学习,也就是现在火到不行的神经网络。如上篇文章所说,其实目前材料领域大部分应用的都是浅度学习,深度学习不一定优于浅度学习,好多情景下浅度学习就能很好的解决问题了,用深度学习精度并不一定会更高,而对计算机的要求却要高很多。浅度学习用Scikit-learn就行了,贴一张网站照片。浅度学习算法主要是这三类,分类,回归,聚类。分类和回归属于监督式学习,需要我们提前告诉机器比如说这张照片是狗,那张照片是猫;最后的那个聚类属于无监督学习,你不需要告诉机器这张是猫那张是狗,你只需要把一堆照片丢给机器,他自己会根据特征自动分成两类,虽然机器不知道是猫还是狗,但是他知道这两个不一样,于是就分成了两类,叫做无监督学习。其实如果你没有matlab基础的话,二师兄强烈建议你从python学起,然后用scikit learn 解决浅度学习问题。如果有matlab编程基础的话,那用matlab就行了,调用他的工具箱,都不用刻意去学。简单来说,用python做机器学习,那你有两步要走,第一学会python,第二了解机器学习;用matlab做机器学习,你还是两步,第一学会matlab,第二了解机器学习算法。其实matlab还是相对容易的,matlab集成了很多现成的东西,而python还要通过调用不同的库来实现。matlab对于新手来讲,只有一个缺点,买不起。

深度学习的话,matlab有自己的神经网络工具箱,然后python就要用Tensorflow 这些神经网络框架了。

该讲的就这么多了,再技术细节二师兄也不行了,开始贴干货。

这是一个写给新手的文章

这是谷歌出的深度学习的视频(不推荐,大体看看就行)

https://developers.google.cn/machine-learning/crash-course/

写给新手的机器学习介绍

Scikit-learn 网站(这个学会python后再看,里面各种算法怎么用,什么参数都有很详细的官方文档)

http://scikit-learn.org/stable/index.html

这个是coursea上吴恩达的机器学习视频,也应该是在网上唯一能找的机器学习视频了,其实机器学习还是看视频入门快,大家可以去淘宝上买些,十几块钱左右

https://www.coursera.org/learn/machine-learning#syllabus

这个是matlab官方的一些机器学习入门资料,太浅了,看看就行

https://ww2.mathworks.cn/solutions/machine-learning.html

下面是CSDN关于机器学习算法的一些文章,大家可以去上面再多搜些,很多

到这里,还是要再说些,看完我写的这些,你可能还是糊里糊涂不知道怎么入门。我再写点详细的步骤,仅仅是个人经验。

你可以

决定学python还是matlab

学python就下载安装anaconda,这是个python开发环境,安装后自带scikit-learn这些库,很适合机器学习用。

下载完anaconda后,再网上找到些简单的机器学习算法的教程,你跟着一步步做,做个小项目,大概了解这个流程。网上有专门的怎么用anaconda做机器学习,怎么用scikitlearn 做机器学习的教程,你跟着做一个小项目试试。

大致了解整个流程后,你就知道了自己的不足,然后再去学python的语法基础,去学机器学习就好了,这个时候机器学习你可以下载本电子书看,也可以找些视频看,你应该就小有心得了。跳过前三步你直接看机器学习的书会如坠五里雾中的,因为你不知道这些算法,基础知识最后是怎么变成程序运行的。只有先经过一个小项目的操作,你再看机器学习的书才会明白是怎么回事。

如果用matlab的话,那就下载matlab,最好是最新版的,工具箱全些。然后学习下matlab的编程,然后网上找些matlab做机器学习的教程就好了。

最后,总结来说,学习机器学习不难,大家可以试试。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180413G06HC300?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券