如何学习机器学习的一点心得

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何学习机器学习的一点心得相关的知识,希望对你有一定的参考价值。

先看看相关的图书:要有好几本作为参考,最好是角度差异大、深浅程度不同,比如系统的导论式的、深入的有推导的、浅出的手把手的。它要充当不同学习过程中的工具书。
网络教程:比如Andrew Ng的、各种专题的博客,有针对地找相应的教程,相对着看,网络资源比如51cto学院的课程跟书的表达方式毕竟是不一样的,也是很有益的信息源。
paper:比如学CNN的时候,就搜一堆论文来,集中一段时间看一轮,一定要有针对性,带着很明确的问号去看。
开源资源:很多很多东西,其实都有人做出来开源了,直接拿来用,一边用一边理解,甚至可以学习源码。
关注这个领域:关注相关的会议期刊,关注大牛们(Hinton、Bengio、LeCun等)的动向,微博加一堆领域大牛每天看一眼他们分享什么上来。
基础知识:线代、统计、概率、数学分析;信息论方面基本概念要理解,比如要知道相对熵是什么意思和怎么算;凸优化和最优估计相关内容,在各种各样问题中都会遇到,学好了可以帮大忙。
机器学习主要就是找到目标函数并且做参数估计,虽然有很多现成工具,但是不熟悉优化问题的话,会很抓瞎。
熟悉几个模型:神经网络(SAE、RBM、CNN等)、SVM、最大熵、CRF、随机森林、GMM等等。了解不同应用场景下各种模型有什么优劣,挑一些自己以后可能常用到的多练习。
参考技术A 心得体会就是一种读书、实践后所写的感受文字.读书心得同学习礼记相近;实践体会同经验总结相类.学习的方法每个人都有,并且每个人都需要认真地去考虑和研究它.心得体会这种学习方法对于一个人来说也许是优秀的,但没有被推广普及的必要.因为学习的方法因人而异,方法的奏效是它与这个人相适应的结果.方法,也是个性化的.借鉴他人的学习方法并不是不可以,但找寻适用于自己的学习方法才是最重要的.本回答被提问者采纳

学习java的一点心得

Java的程序源码存放在后缀名为.java的文件中,但是我们知道源码是无法直接被机器识别并执行的,源码是给人读的,是一堆英文字母;而机器能理解的是0和1。所以源码必须经过编译生成二进制文件才能被机器执行。

和C语言不同的,C生成的二进制文件可以直接交给操作系统执行;而class文件则只能交给jvm执行,jvm跟操作系统交互并最终执行代码。这相当于在代码和操作系统之间构建了一个中间层,这个中间层就是jvm,而jvm是java能跨平台的根本原因。C语言编写的程序为什么不能跨平台呢?因为不同的平台定义了不同的指令,指令就是二进制代码;所以C语言要为不同的平台生成不同的二进制代码,这就是不能跨平台——编译后的二进制代码在各个平台无法通用、兼容。对比Java,它生成的二进制代码在哪个平台都是一样的,只要这个平台安装了jvm,代码就能运行。显然,能做到这一点是因为jvm在各个平台是不一样的,由jvm去兼容复杂的平台,屏蔽操作系统底层的细节。这样java的二进制代码就不用去关心自己在哪个平台,能不能运行了。


下面从命令行的角度谈一谈源码和二进制文件。java的二进制代码存放在后缀为.class的文件中,它是.java文件编译后生成的。当然,java软件产品交付的时候给的是class文件,肯定不能给源码,这都是商业秘密、劳动成果、知识产权。


Java的所有代码都封装在类中,所以源文件中就是一个个的Class,通常情况下,是一个Class。

java文件是所谓的编译单元,class文件是运行单元。如果一个编译单元内定义了多个class,那么编译后就会生成多个class文件。如下,在App.java定义了两个class:

class App0 

class App1
编译后:

javac App.java
ls
App.java            App0.class          App1.class


需要注意的是, App.java能通过编译是有前提的,那就是其中定义的两个类都没有用public修饰。大家知道,外部类(相对于内部类而言)只有两种访问修饰符,就是public和default,default就是啥都没有,比如上文中的两个类。 如果要使用public,事情就会变得麻烦许多。

首先一点就是,文件名和类名有了绑定。本来,在没有类被public修饰的情况下,java文件名随便起,就比如上面的情况。但是如果源文件中有一个类被public修饰了,那么文件名必须和这个类名一致,否则编译器会报错。仍以App.java为例:

public class App0 

class App1

javac App.java
App.java:1: 错误: 类App0是公共的, 应在名为 App0.java 的文件中声明
public class App0 
       ^
1 个错误


然后,如果源文件中有多个类都被public修饰了,那么文件名该跟哪个保持一致呢?放心,无论取哪个编译器根本不会让你通过编译的:

public class App 

public class App1
javac App.java
App.java:3: 错误: 类App1是公共的, 应在名为 App1.java 的文件中声明
public class App1
       ^
1 个错误

综上,一个java文件中最多只能有一个类被public修饰,如果存在其它的类,这些类的访问权限只能是default;如果有一个类被public修饰了,那么文件名必须跟这个类名保持一致。

以上是关于如何学习机器学习的一点心得的主要内容,如果未能解决你的问题,请参考以下文章

18年10月自考的一点心得

关于通过PMP考试的一点心得

机器学习--神经网络

学习Git的一点心得以及如何把本地修改删除的代码上传到github中

看书写代码的一点心得

面经分享5年Android开发的求职之路,作为面试官的一点心得★★★★★