没有编程基础可以学习深度学习的课程吗?

2020-07-16 15:15发布

2条回答
小红
2楼 · 2020-07-16 17:04


课程简介本课程共分为三个部分:基础理论、深度神经网络基本结构以及网络优化与实践。本课程采用了理论结合实践的讲解方式,方便读者边学边练,理解巩固。在解释相关概念时,作者尽力使用简单、直观、可实现的公式语言描述,尽量避免使用图形、比喻和白话等容易使初学者误入歧途的描述方式。读者在初学过程中可能会不太习惯,但这对于建立知识体系是十分重要的。课程实践部分使用TensorFlow作为机器学习库,以帮助读者快速实现一些深度学习算法,从而建立信心,这种自信是任何学习过程都需要的。但机器学习库只是辅助,作者希望读者在学完本课程后,能够利用数学公式而非库函数的方式实现深度学习功能。这很难,但并不是不可能。作者介绍如是,算法工程师。主要从事数值模拟、智能算法研发工作。擅长高性能计算、物理、机器学习领域。曾参与设计自然灾害智能监控预报系统。课程内容导读:课程介绍和学习方法无人工不智能经常会被问到“深度学习与机器学习或者数据挖掘有什么关系?”答案很简单:没有区别。现如今,人工智能如此火爆,好像其他机器学习算法已经没有了立足之地。但事实并非如此,每一种机器学习算法都具备完成所有机器学习任务的潜力,只是需要很复杂的特征工程。深度学习以及其他所有的机器学习算法本质上都是一种“拟合”机制,在大量的数据基础之上总结出可用的规律。而这些数据是需要人来提供的,所以说机器学习过程就是让机器学习人类经验的过程。而这个过程与数据有关,与方法无关。解决深度学习问题有两种思路。一种思路是基于理论的,或者说基于规则;第二种是基于数据的,从数据中学习规则。举个例子,对于图像去噪问题。我们可以通过傅里叶变换与低通滤波来减少图形噪声,这是基于理论的而且不需要提供数据。另外,还可以给定有噪声和没有噪声的图像,让机器自动去学习一个可用于降噪的系统。下图是Zhang在2017年使用深度神经网络完成的图像去噪工作(文献[1])。所有的机器学习都依赖于有效数据的累积,这离不开人工。“无人工不智能”的另外一层意思是很多工作其实并不适合使用“机器学习算法”去完成,比如寻找两点之间的最短路径,这是传统算法的范畴。作为一个“算法”工程师,眼光不应该局限于机器学习的领域。我们最终的目标是准确、高效地解决问题,因而不必纠结于使用哪种方法。为什么需要深度学习很多年前机器学习很强调“做特征”。但是随着数据的不断累积,有了另外一种选择,就是构建一个足够复杂的可训练系统,让系统自身去完成特征的学习过程。深度学习就可以完成上述过程,它简化了特征工程的难度。传统的机器学习建模方式所得的曲面(线)复杂度不足,无法用来拟合数据。传统机器学习算法由于可训练参数数量的限制,导致它所能学到的特征有限,在一些情况下可能无法形成足够复杂的曲面,因此它十分依赖特征工程去增加复杂度。而深度学习可以形成足够复杂的曲面用于拟合特征,换一种说法就是深度神经网络具有强大的表达能力。这种特征的习得是以海量数据为基础的。因此在数据量较少时使用深度学习很难得到理想的结果。深度学习能做什么机器学习能完成的任务,深度学习都可以完成。深度学习尤其擅长处理图像识别、物体检测、自然语言翻译、语音识别和趋势预测等,这些任务本身比较复杂,需要一个相对复杂的系统去完成拟合任务,在这里就不展示了。下面列举深度学习在其他方面的应用:谷歌的Magenta项目是深度学习在音乐以及艺术上的一些探索。目前利用深度学习已经完成了一些简单的音乐和漫画创造工作。下面是Magenta项目中画漫画的例子:深度神经网络还可以完成图像风格迁移的任务:同样,使用神经网络可以完成图像的超分辨率采样等任务:上图是利用Keras-js官网的预训练模型进行超分辨采样,左侧是使用二次样条插值得到的图像,右侧是使用神经网络得到的图片。不难看出,深度神经网络在进行超分辨采样的过程中可以保留更多细节。如何学习歧途之上的零基础“零基础入门”很多,一些机器学习课程也喜欢用这种诱人的名字。这是十分不负责任的做法。任何一门学科的学习,都需要付出时间和精力,更何况是涉及很多理论知识的机器学习。如果通过图形和比喻来介绍机器学习,那大概只能算是科普。比如,很多零基础入门课都喜欢用下面这样的图:卷积神经网络本身只需要一个公式就可以很好地描述了,简单明了而且可直接用程序实现。但上面这张图不仅未解释任何问题,反倒增加了学习者的困惑。学习者以为了解了卷积网络,实践时却发现只是冰山一角。科普很久还需要从头学起,不但没有走捷径反而浪费了时间。学习本身并不难深度学习作为一门学科,需要一定的基础,要想掌握它也需要投入一些时间,但它并没有你想象得那样难以掌握。如果以实现为导向的话,仅需要熟悉一些矩阵、导数的知识就可以完成深度学习的网络搭建工作了。这里的搭建指的是不借助任何机器学习库完成的深度学习的网络搭建。这样一来,学习周期自然会比较长,学习过程中也会遇到一些障碍,但并不是难以逾越的。下面是我在学习过程中总结出的一些难点:多维函数和优化概率论深度学习中的贪心与动态规划思想从函数角度来看,深度学习是一个多维函数的问题。多维函数使用过程中涉及了矩阵(张量)相关计算,是程序实现过程中的难点。概率论相关内容一直是机器学习中最难以理解的部分,但它是基础,必须要掌握。贪心算法是深度学习中最基本的思想之一,它植根于每个实现过程中。有的时候你甚至都没意识到那是一种贪心策略,最明显的例子就是“梯度下降法”。克服上述障碍之后就可以完整地实现深度神经网络了。系统的学习方法对于深度学习而言,需要系统学习的内容包括:矩阵与函数最优化理论概率与统计其他补充知识包括但不限于:现代几何流形传统算法高性能计算学习过程中尽量以公式角度来理解和看待问题,进而形成一种自洽的理解方式,这是非常重要的。尽量避免使用图形理解与分析问题,因为那样更像是科普而不是学习。软件环境本课程使用的软件环境是Python3版本,这里推荐安装Anaconda最新版本。包含了学习过程中必须的库:numpyscipymatplotlibTensorFlow需要自行安装,这里推荐使用最新版本。如果不熟悉Python环境,那么推荐的安装方式为:pipinstalltensorflow如果有英伟达的GPU的话,可以安装GPU版本:pipinstalltensorflow-gpu这种安装方式的一个缺陷在于,库函数没有使用CPU的SIMD指令集进行优化,因此自己编译成了更好的选择,这个过程可以参考官方文档。课程结构本课程分为三个部分:基础理论深度神经网络基本结构网络优化与实践基础理论包括:线性代数与矩阵多维函数与优化概率与概率模型神经网络建模与优化深度神经网络基本结构包括:卷积神经网络循环神经网络循环神经网络结构与文本损失函数优化与实践包括:网络参数优化网络模型优化图片识别器语音生成器希望通过本课程的学习,读者能够对深度神经网络有一个具体而微的了解,甚至可以在不借助任何机器学习库的情况下直接编程实现。这很难,但并不是不可能。参考文献[1]ZhangK,ZuoW,ChenY,etal.BeyondaGaussianDenoiser:ResidualLearningofDeepCNNforImageDenoising[J].IEEETransactionsonImageProcessingAPublicationoftheIEEESignalProcessingSociety,2017,26(7):3142-3155.第01课:线性代数矩阵与符号矩阵是深度学习中最基本的概念之一,深度学习的建模以及优化实现都是围绕矩阵进行的。矩阵概念映射到计算机科学中就是数组:${A}{mn}=\begin{bmatrix}a{11}&\cdots&a{1n}\\vdots&\ddots&\vdots\a{m1}&\cdots&a_{mn}\end{bmatrix}\in\mathbb{R}^{m\timesn}$(1.1)1.1式中$\mathbb{R}^{m\timesn}$代表矩阵为m行n列的实数矩阵。矩阵可以写为${A}$或$[a_{ij}]$。对于我们所接触的机器学习问题而言,矩阵内的数值通常为实数。约定求和矩阵的点乘、向量内积可以用约定求和来表示:$(A{mn}\cdotB{np}){ij}=\sum{i=1}^na{ik}b{kj}\rightarrowa{ik}b{kj}$(1.2)相同指标k代表求和,此时可以省略求和符号。相似的向量相乘可以表示为:$\vec{a}\cdot\vec{b}=aibi$约定求和是公式推导过程中非常方便的工具,可以简化公式的书写。矩阵分解一个向量可以分解成多个向量相加的形式:$\vec{v}=a1\vec{e1}+\cdots+an\vec{en}$(1.3)对于一组不全为0的向量而言,如果其中的任意一个向量都不能由其他向量以1.3式的方式表示,那就代表这组向量线性无关或这组向量是线性独立的。线性独立的概念很重要。如果几个向量线性不独立,即某个向量可以用其他向量表示,那么这个向量就没有存储的必要了。这是信息压缩最原始的思想。如果对1.3式中等式右边向量$\vec{e}$加以如下正交约束:$\vec{e}i\cdot\vec{e}j=\delta_{ij}$(1.4)1.4式中所描述的向量之间是互相正交的关系,并且是单位向量:$\delta_{ij}={\begin{matrix}1&i=j\0&ieqj\end{matrix}$(1.5)那么e就组成了n个正交的单位基向量。这是在空间中所用到的概念。当然并不是所有坐标基向量都是正交的,同样也未必是单位向量。压缩概念初探对于一组向量$V=(v1,\cdots,vm)$来说,可以将其中每个向量都用其他多个向量以加权求和的方式表示:$v{ki}=a{kj}e_{ji}$(1.6)其中$e{ji}\rightarrow(\vec{e}j)i$代表第j个单位向量的第i个元素。同样,$v{ki}$代表第k个向量的第i个元素。由1.2式可以看出,上式可以表示为矩阵相乘的形式:$V{mn}=A{mk}\cdotE_{km}$(1.7)1.7式中向量v组成的矩阵V可以分解为两个矩阵A、E的乘积表示。如果m>k,也就是说我们可以用小于m个数字来表示矩阵V,这是一个数据压缩过程。此时A可以代表矩阵V的特征,如果要恢复V的话还需要保存E。但是机器学习中通常只需A就可以了。从这里例子中可以看到,我们可以对矩阵进行变换,从而达到信息压缩的目的。这个过程中需要的是求解矩阵E。如果$W=E^T$,则信息压缩方式可以写为:$V{mn}\cdotW{nq}=A_{mq};n

小绵羊吖
3楼 · 2020-07-16 17:24

  学习深度学习课程的话最基本的就是要具有一定的编程基础,并且具备一定的数学基础。比如计算机相关专业的本科生、研究生,计算机相关专业的高校讲师,从事IT行业的编程人员,人工智能领域的从业人员。在有一定基础的前提下还是能学会的。

  无编程基础的人员则需要提前学习python的基础课程。


相关问题推荐

  • 回答 20

    选对培训机构比较重要,还有就是选择的时候看一下自己适合哪种风格的讲课方式,这个也很重要。因为现在5G时代来临,人工智能绝对是一个发展的大趋势,如果你自己空余时间又比较多的话,其实可以报一个辅导班,学习学习一些基本的东西,毕竟多学点总是没有坏处...

  • 回答 3

    深度学习是近几年人工智能领域的主要研究方向。深度学习的主要任务是通过构建深度卷积神经网络(Deep Neural Network,DNN)和采用大量样本数据作为输入,人们最终会得到一个具有强大分析能力和识别能力的模型,该模型包含了DNN的构成参数以应用于实际工作。...

  • 回答 3

    AI深度学习课程是用于建立、模拟人脑进行分析学习的神经网络,并模仿人脑的机制来解释数据的一种机器学习技术,主要应用于图像识别、语音识别、自然语言处理等领域。学完可以从事深度学习工程师、机器学习工程师、人工智能工程师、高级算法工程师、高级算法工...

  • 回答 16

    算法,数据相关的适合做人工智能

  • 回答 28

    人工智能取代的行业,一定有如下几个特征:1、大量重复型。2、逻辑性比较强。3、数据库依赖型。像司机,咨询,教育,医生,会计,律师助理,工程师,码农等,都是容易被取代的行业。当然,这都是强人工智能以后会发生的事,现在还是弱人工智能的时代,想进入...

  • 回答 9

    如果你是自己学着玩,提升自己的话,高中毕业都可以。如果是冲着AI算法岗或者科研一席之地,至少211硕士。具体可以亲身体验一下今年算法岗秋招。

  • 回答 9

    可以,未来的人工智能发展深度学习必然是现在大型机器生产科研必备的,证书的话某个培训好像有这个中科院的证书,具体你去百度吧

  • 回答 8

    我觉得就是人工智能的课程,现在家具都是智能家居了。这一块发展一定很好

  • 回答 3

    对于sgd算法而言,batch size太大太小都不好,太小的话训练不稳定,计算效率低;太大的话收敛速度慢,需要仔细调节一下。以2的倍数调节,例如32,64,128等

  • 回答 1

    在terminal中输入$wolf@wolf:~/Downloads/gitclonehttps://github.com/Tencent/ncnn cd切换到NCNN目录***这步很重要,这时候需要修改ncnn的root目录下的CMakeLists.txt文件,需要将倒数几行的add_subdirectory(examples),取消注释,这样就是默认编译example...

  • 回答 5

    人工智能的话其实到现在来说已经慢慢趋于成熟,学的话首先是一线城市,学出来好就业,还有就是薪资也高

  • 回答 3

    画个train and test error VS 训练数据量(training set size) 的learningcurve应该会更加直观了。可以找个简单的数据集,比如说handwritten digits或者什么的,分别用神经网络和决策树或者knn做出这个learningcurve。你会看到如果用一个决策树去解决这个问题...

  • 回答 2

    共生矩阵用两个位置的象素的联合概率密度来定义,它不仅反映亮度的分布特性,也反映具有同样亮度或接近亮度的象素之间的位置分布特性,是有关图象亮度变化的二阶统计特征。它是定义一组纹理特征的基础。     一幅图象的灰度共生矩阵能反映出图象灰度关于...

没有解决我的问题,去提问