入门机器(深度)学习的书籍及学习资料推荐

(第一次写博客,如有什么地方写得不对的,或者意见相左的,还请见谅!)

工作了一段时间,又重新回来读书(本科计算机专业,第一个研究生是商科,现读回了计算机专业)了,最开始想着走APP研发路线的,但是最终回来读书之后却恰好碰上了so-called人工智能,所以就决定将专业设定为数据分析(Data Analytics),主要学习的课程方向是数据可视化分析,机器学习和深度学习等课程。刚回来读书那会,太多不适应,特别是要重新捡回很多编程的知识和技能是一件挺艰辛的事。当初辞职那会准备相关的编程技能主要事针对网站和APP的开发,比较前端,所以辞职到正式入学的时候大部分时间都在学习前端的东西,这导致了我入学之后选择AI相关的课程碰到了编程的另外一个问题,从而不得不边学边做课程项目和实验。

重点来了:所以写下这篇文章,给出一些想学习机器学习相关的建议,希望能帮助想入门的人。文章会主要从三方面来给出建议:

  1. 书籍的推荐
  2. 视频及课程推荐
  3. 其他资源,如论文等

我在边学边做项目着实走了不少弯路,有时候浪费了不少时间,做了很多无用功,所以从以上方面选取一些方面我觉得综合运用能帮助到希望入门机器学习的人。

一、 书籍推荐

一本好的书能很好的帮助你快速的学会一些基本的知识及应用,以下书籍是我入门机器学习觉得比较有用的。

1.1 Python编程 从入门到实践

对于那些学过python的人并且是大牛,这本书当然可以直接略过,不需要了。但是对于那些没有系统学过python的人,并且想用python做AI相关项目的,这是一本很好的入门书籍,非常的基础及好懂。当初花了7天左右,跟着里面一段段的代码把它从头到尾学习了一遍,并最终完成了自己第一个数据可视化分析的项目。这本书跟其他很多语言介绍的书籍一样,从基础的语法到项目都有涵盖,书本的最后是三个用python实现的项目。当然看这本书的过程建议结合numpy,matplotlib和scipy相关官方文章一起看,这样子你会在完成阅读之后更好的懂得如何利用相关代码去实现你的项目。当然,这本书是作为一个基础让你了解python是如何运作的,本书主要使用的python3.x的版本。

1.2 普林斯顿微积分读本及线性代数(作为参考书来使用)

对于想学习机器学习的人来说,还是需要具备一定的数据基础和理解,特别是线性代数,微积分和概率论相关的数学知识。这里只推荐微积分和线性代数的书,概率论就目前我所碰到的知识点来说相对比较浅显易懂,尚没有让人无法理解的地步。至于线性代数,我推荐我本身大学读书那会所使用的教科书,个人觉得同济大学编著的线性代数还是挺不错的,而微积分则推荐普林斯顿微积分读本,从基础到极限到求导是怎么一回事,这本书浅显易懂的告诉了你全部,值得一读的微积分好书。

1.3 机器学习和深度学习(理论为主,实践需要自己尝试用代码去实现)

机器学习和深度学习这里推荐三本书,这三本书的讲解都比较清晰,也非常适合从基础到深入。机器学习(2本)和深度学习(1一本),其中周志华老师的书我还在读,因为这本书是作为教科书使用的,所以也非常适合想学习的人读,非常推荐,读了一部分了,感觉老师写的很不错。其余两本,网上大部分人都推荐读英文(我自己本身也是读英文,也习惯了,因为在国外前前后后也待了六七年了),周志华老师就不用说了,也是机器学习界的大牛,写的书自然不会差到哪里去。

1.4 Deep Learning with Python和TensorFlow机器学习实战指南

最后针对书籍方面推荐两本实战方面的书,Deep learning with python是深度学习领域的超级大牛Francois Chollet编写的,他同时也是Keras(一个深度学习的框架,非常简单易用)的开创者,另外一本是讲解如何用TensorFlow来做机器学习相关的项目,这本书从基础的TensorFlow语法到如何使用TensorFlow来实现其他相关的机器学习项目都有比较清晰的解释,搭配这本书和官网的指南,是一个不错的学习指引。

二、视频及课程推荐

阅读好的书是一个获取知识的好途径,但是有时候书本冗杂度也高,并且要完整的读完一本书需要相当的时间,这时候视频课程就是另外一个比较快速学习并且能辅以实战的地方了。这里主要推荐几个课程供大家参考(都是要付费的,我个人觉得真正想学习,投资知识花点钱没什么,所以看你个人)。下面这些课程是我觉得在我学习过程中帮助非常大的,Coursera的课程都是配有编程练习的,跟着指引敲出相关的代码,帮助你在实践中加速理解学习机器学习和深度学习过程中碰到的相关算法。

  1. Coursra.org上Andrew Ng的机器学习和深度学习的课程。机器学习所使用的Matlab,深度学习使用的Python,这里需要注意一下。
  2. 斯坦福大学的公开课: cs231 Convolutional Neural Network for Visual Recognition 和 cs230 Deep Learning,这两门课基本都是纯英文,目前尚不清楚支不支持中文,Youtube上有资源。

三、其他

上面的书籍也好,视频也好,很大程度上都是在讲一些已经在机器学习和深度学习领域比较普遍的知识和理论应用,而如果想在这两个领域有比较深的发展和理解,那么从我个人学习的过程当中来说,论文和其他人写的博客是非常好的学习资源。特别是论文,好的论文代表着技术的发展方向,所以我非常建议一定要看论文,因为论文真的代表着state of the art,当然看论文不需要通篇摸透,这个很难,别人都是花好几个月甚至一两年才出这么个成果,所以很难在短时间内复现论文所讲的技术原理和框架,但是对论文有了解,并尝试运用是一个非常好的习惯,不管是基于研究还是运用,相关的最新论文都还是值得看看,具体的就请问谷歌和百度了。

原文地址:https://www.cnblogs.com/jielongAI/p/9310905.html

时间: 2024-11-07 02:32:51

入门机器(深度)学习的书籍及学习资料推荐的相关文章

Web前端开发推荐阅读书籍、学习课程下载

转自http://www.xuanfengge.com/fe-books.html 前言 学校里没有前端的课程,那如何学习JavaScript,又如何使自己成为一个合格的前端工程师呢? 除了在项目中学习和跟着有经验的同事学习,读书也是必不可少的.书中有着相对完整的知识体系,每读一本好书都会带来一次全面的提高. 而如果深一脚浅一脚的学习,写出代码的质量会参差不齐.初学者的首要任务是成为靠谱的熟练开发者,能够稳定的输出有一定质量的代码. 前端技术发展速度特别快,总是涌现出很多新的东西,需要不断的学习

新手嵌入式linux学习必备书籍

很多的嵌入式Linux新手,对自己的学习过程十分迷茫,不知道从何学习?学习过程中需要看哪些相关书籍?之前的写的一篇关于嵌入式开发如何入门,如何深入?的文章希望对你有所帮助,接下来就为嵌入式Linux新手们推荐一些关于嵌入式Linux学习的核心书籍. Linux基础 1.<Linux与Unix Shell 编程指南> C语言基础 1.<C Primer Plus,5th Edition>[美]Stephen Prata著 2.<The C Programming Languag

Query意图分析:记一次完整的机器学习过程(scikit learn library学习笔记)

所谓学习问题,是指观察由n个样本组成的集合,并根据这些数据来预测未知数据的性质. 学习任务(一个二分类问题): 区分一个普通的互联网检索Query是否具有某个垂直领域的意图.假设现在有一个O2O领域的垂直搜索引擎,专门为用户提供团购.优惠券的检索:同时存在一个通用的搜索引擎,比如百度,通用搜索引擎希望能够识别出一个Query是否具有O2O检索意图,如果有则调用O2O垂直搜索引擎,获取结果作为通用搜索引擎的结果补充. 我们的目的是学习出一个分类器(classifier),分类器可以理解为一个函数,

如何学习ruby?Ruby学习技巧分享

怎么学习ruby?在学习ruby之前需要掌握哪些知识呢?这是很多想要学习ruby朋友的心声,我不具体给出答案,下面就给大家讲讲一位前辈学习ruby(http://www.maiziedu.com/course/ruby/)的学习历程吧.在大学时学的电子专业,在学校里学过C/汇编,在学习ruby前期,和大多数的Rubyist一样,我也是从学习Rails开始去了解Ruby的,在学习Rails之前,我正在使用JavaEE的SSH框架(struts+spring+hibernate), 当时也算是Jav

优秀游戏程序员学习资料推荐

这两天给单位的技术做的一次学习材料推荐培训,直接ppt上拷过来的. 优秀游戏程序员学习资料推荐 主讲人:臧旭 前言 今天提到的纯粹是我个人心得和理解,可能片面,可能以偏概全. 目的是给大家做一定的指引作用,想让大家知道自己还有哪些可以去学习,还有哪些不足,我们距离优秀还有多远. 对我今天提到的东西,如果大家有时间,一定要去深入了解,在技术的道路上才有可能看得远.走得稳.飞得高. 另外有一句对所有技术人员想说的话: 学无止境.切忌坐井观天.有一点小小的成就就沾沾自喜.止足不前. 扎实的基础 万丈高

浅谈强化学习的方法及学习路线

介绍 目前,对于全球科学家而言,“如何去学习一种新技能”成为了一个最基本的研究问题.为什么要解决这个问题的初衷是显而易见的,如果我们理解了这个问题,那么我们可以使人类做一些我们以前可能没有想到的事.或者,我们可以训练去做更多的“人类”工作,常遭一个真正的人工智能时代. 虽然,对于上述问题,我们目前还没有一个完整的答案去解释,但是有一些事情是可以理解的.先不考虑技能的学习,我们首先需要与环境进行交互.无论我们是学习驾驶汽车还是婴儿学习走路,学习都是基于和环境的相互交互.从互动中学习是所有智力发展和

(转)Android开发书籍推荐:从入门到精通系列学习路线书籍介绍

Android开发书籍推荐:从入门到精通系列学习路线书籍介绍 转自:http://blog.csdn.net/findsafety/article/details/52317506 很多时候我们都会不断收到新手的提问"Android开发的经典入门教材和学习路线?"."android 开发入门教程有哪些推荐?"等类似的问题,我们不断重复回答这些问题,这让我们萌生了做< Android开发书籍推荐:从入门到精通系列学习路线书籍介绍>的想法,整理收集开发大牛的

C语言学习second--C语言基础学习

1.标准C语言 C语言诞生于20世纪70年代,年龄比我们自己还要大,期间产生了很多标准,但是各种编译器对标准的支持不尽相同. ANSI C是使用的最广泛的一个标准,也是第一个正式标准,被称为“标准C语言”.ANSI C于1980年由美国国家标准局(American National Standards Institute,简称ANSI)对外发布,各种编译器几乎都完整支持ANSI C,市面上的书籍.大学里的教材.网上的教程大都以ANSI C为基础进行讲解,C语言中文网也不例外,也以ANSI C为基

JAVA学习_零基础学习JAVA方法_零基础学习JAVA思路

在学习JAVA前,对于一个真正初学者(也就是从零开始学习JAVA人员)的一个问题:什么是JAVA,然后才是怎么学习JAVA?JAVA是sun microsystems在1995年推出的高级编程语言,其分为Java SE.Java EE.Java ME三大体系,而JAVA SE是JAVA的基础,继JAVASE之后是JAVAEE,JAVA ME.JAVASE是JAVAEE的基础,Servlet.JSP是框架的基础.数据库方面个人建议学习oracle,当然其它的像 MySQL,MSSQL,都可以,只要