如何学习机器学习、看待算法竞赛?粉丝精选留言

在前几日的赠书活动中,看到大家的积极留言,非常用心,可以看出对机器学习的热爱。经授权,CV君特意将一些52CV粉丝对学习机器学习、参与算法竞赛的看法、理解与经验放出来,与大家分享,值得收藏细品,希望他们的一些见解可以在你学习的路上提供些帮助。

与君共勉!

李白:

本人研究生在读研究方向为nlp,下面谈一下对机器学习、计算机视觉、自然语言处理、竞赛的理解:

1.机器学习,机器学习是一类算法的总称,这些算法企图从大量历史数据中挖掘出其中隐含的规律,并用于预测或者分类,更具体的说,机器学习可以看作是寻找一个函数,输入是样本数据,输出是期望的结果,只是这个函数过于复杂,以至于不太方便形式化表达。机器学习算法,入门看的是吴恩达机器学习课程,西瓜书和机器学习实战。

计算机视觉,从广义上说,计算机视觉就是“赋予机器自然视觉能力”的学科。计算机视觉本质上就是研究视觉感知问题。根据输入的信息,对视觉信息进行识别与理解。

2.自然语言处理,NLP它的主要覆盖的内容是:以一种智能与高效的方式,对文本数据进行系统化分析、理解与信息提取的过程。包括以下任务,自动摘要,机器翻译,命名实体识别,关系提取,情感分析,语音识别,以及主题分割等等。

3.竞赛的命题角度多从实际出发,我们运用各种理论知识去解决提出的问题,将算法进行落地实现,更多考察了参赛人员的算法基础与动手能力。

超想要这本书呀,冲冲冲!!!

宋晓帆:

本人最近接触到一些医疗机器人领域的知识,对于人工智能和机器人也十分感兴趣。大家很多人都从技术角度进行了解析,那我我就从主观角度谈谈我对人工智能和机器人的看法吧!首先要明确的是,人工智能是一个很广泛的概念(不限于神经网络),我个人认为神经网络只是人工智能中近两年发展较为成功的一条分支。

1.目前的挑战目前,机器人及人工智能面临的挑战在于很多方面,大体可以分为技术上的和伦理上的。技术上的挑战在于,如何得到更高的精度和稳定性;各种人工智能算法的“可解释性”也是目前人工智能的一个发展瓶颈。在伦理方面的挑战在于,当赋予机器人人工的“智能”之后,谁为这种“智能”担责,是开发人工智能的工程师,是使用人工智能机器的人,还是选择接受人工智能服务的用户呢?另外,关于个人数据的处理方式也面临挑战,如何在尊重用户个人隐私的同时提升用户体验也是亟待解决的问题。

2.我对人工智能的看法关于人工智能,机器人,人们总是浮想联翩,很多人认为人工智能是神秘的,甚至有些媒体总是鼓吹“人工智能威胁论”,仿佛机器人真的可以像人类一样思考了一样。这种现象表明其实人工智能还并未走出实验室,进入到人们的日常生活中。人们给了它很有气势的名字,人工智能也好,机器学习也罢,相关的技术现在确实到达了一个很辉煌点,不过需要注意的是,这是一个辉煌的起点,以后的路还很长很长!

最后:我写的好认真的,因为好想要那本书啊!!

听风就是雨又有何不可:

先明确自己想学的是传统方向还是深度学习方向。深度学习方向现在很火,但是趋向饱和,而且神经网络是黑盒模型,学多了很容易变成调参侠,建议都考虑。

1.了解神经网络基础相关;

2.选择一个子领域,最经典的一两篇论文看一看,找一个相对简单点的github开源项目,跟着调试过程一步步走;

3.根据之前看的文章,进一步扩展相关知识;

算法工程师实质上还是程序员(如果不是在研究院的话),一定要多看优秀的源码、多写代码,coding是最基本的也是最重要的,数学也很重要,有机会去学学传统机器学习、学好概率论。

不要沉迷调参,沉迷用别人的代码修修补补,这样只是浪费时间。

华少:

首先简单说一下机器学习,接触机器学习已经接近两年半的时间,这么长的时间有时候甚至不敢说入行。机器学习领域每一个小的研究分类都足够一个人细细深究很多年。

开始学之前,会很憧憬,因为就业前景好,很火,衍生的一些行业也都非常火爆。学习的过程其实非常枯燥,而且有难度。它是一个系统的学科或者方向,需要系统地学习。需要具备相当好的数学背景,建模能力,编程思维,以及团队沟通合作。

其次,竞赛是检验学习的其中一个途径,也是让自己研究的方法落地的一个很好的机会,我非常希望后来人能够在自己学有余力的情况下多参加比赛,多在比赛的过程中认识各个学校各个行业的大佬,多与人沟通交流,多分享。

最后,计算机视觉方面引用之前看到的一段话,计算机视觉有时又称为机器视觉,两者之间其实没有什么大的区别,强调计算机视觉可能主要是强调计算机对图像处理分析方面,而机器视觉更多的是从工程应用出发,强调计算机视觉的应用,应该是一个系统,他们的核心其实都是视觉图像的分析处理。

个人而言,计算机视觉相关方向入门相对容易,因为业内很多大佬都分享有相应的成体系的课程教学,但是由于做的人太多,真的想在这个领域做的比别人更好需要投入更多的精力。

再最后,因为我处在这个行业,所以特别希望如果你喜欢科研,喜欢这个行业,那就好好学习吧,这个行业给你的待遇不会让一个有能力的人失望的!

起风了:

简单谈一下对于机器学习的体会:目前研一,目前在做的一个上肢康复相关课题用到了机器学习,体会就是一个完整的项目从问题分析,到实验设计,数据选择,特征提取,再到模型选择都很复杂很重要,前面内容没做好可能直接会导致结果的不理想,并不是任何问题都已经把数据各种东西都给你准备好了。

本科是计算机专业,大三之后看吴恩达的课学习了简单的机器学习还有cnn,那会儿感兴趣的只是跑模型提提准确率,对原理是一知半解。考完研之后趁着数理基础饿补了一些原理性的知识,现在觉得特别有用。

现在机器学习和其他领域结合挺多的,但是必须要对ml原理有较多的理解才能做好结合的工作,我之前从没接触过康复机器人、肌电脑电之类的项目,现在做的工作就是受启发于一篇基于监督学习的下肢康复机器人反馈控制策略的paper,同时这篇论文也加深了我对梯度下降优化的理解。

我的体会就是如果懂机器学习原理,真的就可以看懂一些ml和其他领域结合的文章,额外需要一些相关专业知识,就可以去做一些有意义的工作。个人觉得这个学习过程是先会敲代码,然后认真看原理和推公式。加油(ง •̀_•́)ง

红枫叶:

正在参加天池算法竞赛中的脊柱疾病诊断,目前CPU赛道复赛排名TOP5,还有5天进决赛。浅谈一下感受,我一开始跑别人的baseline,结果提升困难,于是就自己动手写自己的代码。

写代码过程中遇到很多很多问题,从数据读取,数据采样,数据预处理,到模型构建,训练器搭建一直到输出竞赛所需json文件,最终提交docker。

走完这一套流程,一个多月过去了。

在这个过程中不断的重构自己的代码,让自己的代码高内聚低耦合,提高复用性,把课堂的知识真正用在实际代码中的感觉非常好。

要继续写代码了,距离大奖就差一步,欢迎与我交流。

PaddlePaddle少年:

众所周知,计算机视觉,自然语言处理,语音技术是人工智能的重要研究方向。因此,国内外,相关的比赛也是层出不穷。对很多选手而言,基本上是神仙打架。那对于不是科班出身的小白,该如何有效的学习呢。

首先,如果是零基础的话,必须先把机器学习的发展过程有个清晰的认识,然后,学习必不可少的数学知识,比如说,矩阵求导,极大似然估计,概率论等等。另外,还需要将相关的概念弄清楚。例如,什么是核函数,聚类,降维,过拟合,特征工程。这部分可适当参考吴大师,李大师的课。

第二,这部分弄清楚后,就要开始深度学习了。可参考相关的资料,弄清楚常见卷积神经网络的结构。

第三,这个阶段可以尝试一些项目了。如果不在意框架的话,建议直接到百度的AI Studio上,那里的项目巨多,多看几个项目,基本上能清楚具体业务场景的处理流程。稍加训练,就能有所提高。

第四,有了基础后,尝试自己独立做项目发到github上。这个阶段,能保证熟练使用api,一旦不熟悉,尽管到官网查。第五,对于计算机视觉,一定要多看源码,多跑模型。当然,不是机械的CV,是要弄清楚源码的结构。在这个基础上,跑一跑模型。

最后,学习模型的剪枝压缩,应用部署。让你的模型跑在嵌入式硬件上。

一直向前:

接触机器学习,深度学习和计算机视觉已经一年有余,从小白逐渐到了有了一定知识和经验积累的学习者,目前就职于国外的一家企业,最大的体会是感觉每天还需要学习新内容,以不断提升工作任务的效率和质量,应对新的情形,有种任重道远的感觉。

我们工作组目前的任务通过深度学习训练神经网络以使其能对特定植物的进行切割,需要兼顾准确率和速度。植物的形态确实比一般物体复杂,很具有挑战性。

因此,我们组不但要分析并选出适合我们任务的已有网络并修改,同时,还要密切关注基于深度学习图像分割的动态和新的开源论文。感觉目前人们对于神经网络还在摸索中,很多网络构架设置确实需要经验和些许运气,然后在结合大量高质量标注数据,在数据驱动下,很多计算机视觉任务才会以很高的准确率完成。

但是说实话,我确实对我们工作任务的最终结果,也就是对于植物切割的准确率有所担心,因为毕竟现阶段的"伪"人工智能并没有真正的去模仿人类智能的机理,非常耗时耗力,且预测结果有一定不确定性,而我们的任务要求,是97%的植物切割准确率,我感觉确实是一个不小的挑战,甚至有准确率瓶颈风险。我认为脑和神经科学的研究和探索,才是下一个人工智能新阶段的关键。

(这位朋友的昵称就是空):

竞赛实战,例如天池的,可以让参与者更深刻体会ML的一些关键步骤,从工业视角去理解。例如:

1.了解数据——对数据进行探索。查看数据类型,检查变量。可以通过创建一些单变量-双变量图来了解变量的性质。

2.了解度量优化——每个问题都有其独特的评估指标。如何在过程中理解它,特别是它如何随着目标变量的变化而变化的时候。

3.确定交叉验证策略——为避免过拟合,该如何确定初期阶段设置的交叉验证策略。

4.启动超参数调优——尝试使用超参数调整来提高模型的精度。

可以包括以下步骤:

1)数据转换:包括缩放、移除异常值、处理空值、变换分类变量、做特征选择、创建交互等步骤。

2)选择算法并调整其超参数:尝试多种算法来了解模型性能的变化。

3)保存结果:从上面训练的所有模型中,确保保存预测结果。

4)组合模型:最后用于集成模型, 怎样组合多个弱监督模型确保最终模型获得最佳效果。

参加比赛不是目的,而是为了更好的将方法论应用落地到工业界: 带来这些经验 

1,理解业务、数据,科学的数据可视化处理方法对于理解数据有很大的帮助。

2,抓住要点,建立基线,快速迭代。再复杂的问题总有一些简单的处理方法,化繁为简。

3,做好规划,合理安排时间,长短期结合,多种方案、模型并行。

4,前期集思广益,多尝试,多思考。后期精细打磨,精益求精。

5,和项目一样,过程中注意整理文档,做好记录,磨刀不误砍柴工,做好总结,不断提升。

6,在总结之外进行分享,交流,分享、交流在帮助别人的同时也可以让自己更快、更加深入的提升实战技术。

▼点击下方查看详情▼

点击阅读原文,查看更多留言。

备注:竞赛

机器学习竞赛交流群

扫码备注拉你入群。

OpenCV中文网

微信号 : iopencv

QQ群:805388940

微博/知乎:@我爱计算机视觉

投稿:[email protected]

网站:www.52cv.net

在看,让更多人看到  

你可能感兴趣的:(人工智能,算法,神经网络,大数据,编程语言)