/MachineLearning-Andrew-Ng

吴恩达的机器学习课程的练习(使用OCtave)

Primary LanguageMATLAB

MachineLearning

一部分为曾经打的一个和机器学习有关的比赛

一部分为吴恩达课程学习笔记和编程题以及编程题答案

一部分为octave学习教程

​ 下面介绍下如何学习机器学习:

​ 机器学习与数学中的统计学、线性代数、概率论以及微积分和泛函分析等分支学科联系紧密,因此,良好的数学基础是机器学习的关键;

​ 其次,机器学习是以其算法为核心,掌握基本算法和数据结构是基础,在学习机器学习时,需要掌握数据结构和算法方面的知识,另一方面就是学习机器学习算法,机器学习算法也就是我们常说的支持向量机(SVM),决策树等,在最初的学习过程中,大家肯定会害怕一些推导和数学公式,大家千万不要畏惧它,迎难而上,去弥补缺失的数学知识,然后不断去思考,去尝试理解,然后自己动手去实践算法,发现算法问题去改进它,这样,机器学习算法才能理解透彻;

机器学习书籍推荐

  • 《机器学习》周志华
  • 《统计学习方法》李航
  • 《机器学习实战》
  • 《机器学习》Peter Flach

​ 在机器学习中,除了数学、算法外,较强的编程能力是一项重要基础。在人工智能领域,Python、C++、Matlab等编程语言都是十分常用的语言,除了掌握基本算法,还要具有编程能力去将算法实现,实现不是最终目的,而应该采用更加高效的实现。对于课内学习到的编程知识,还远远不够,需要自己去push,去掌握扎实,去深入学习编程。在今后,无论是从事科学研究还是从事工程应用,都需要通过编程实现自己的想法然后进行检验。

​ 在入门机器学习时,大家可以尝试通过阅读相关书籍或者观看课程视频。

  • Coursea 《Machine Learning》Andrew NG:来自斯坦福教授的Andrew NG的机器学习入门视频,从最基础的线性回归到SVM、神经网络,视频难度不大,适合刚入门者。
  • Stanford CS229 Machine Learning, 斯坦福大学的机器学习课程
  • Stanford CS231n 斯坦福大学计算机视觉相关的课程,讲解了神经网络的基础,包括前馈、反向传播、梯度下降,此课程主要介绍计算机视觉,卷积神经网络。
  • Stanford CS224d 斯坦福大学自然语言处理课程。

​ 在学习过程中,选择一些简单的数据集去尝试不同的算法,在不断改进中提升模型的性能。

​ 完成机器学习基础学习后,如果有兴趣可以尝试去参加一些机器学习相关的比赛,如蚂蚁金服(阿里巴巴)举办的Tianchi比赛、Kaggle等,尝试在综合实践中,来运用所学的知识,将理论应用到实际中。

​ 在基础扎实之后,可以使用第三方框架来简化我们的应用,如图像处理中的OpenCV,机器学习常用框架Scikit-Learn,深度学习框架Tensorflow、PyTorch、Caffe等。

​ 机器学习有一大分支—深度学习,深度学习主要运用深层神经网络去解决更加复杂的问题,在计算机视觉、自然语言处理等领域内运用极其广泛,同时在我们的生活中也无处不在,诸如人脸识别之类的应用。

​ 此外,大家都熟知的AlphaGo或者最新的AlphaZero,都是机器学习领域的另一片海---强化学习(Reinforcement Learning), 强化学习和深度神经网络的结合将其无限的潜力激发出来,于是诞生了AlphaGo这样强大的AI,可能不久后,你会发现你对战的AI具有了情感,能和你说话,能看见你。

注:如何学习机器学习转载自联创大佬的笔记