关键词:
目录
Overview
1.Goal of this tutorial
- Target:understand the basic of neural network/deep learning
- Requirements:Algebra+Probability and Python
2.Human Intelligence
- 推理:information->infer 通过综合已获得的信息 进行推理
- 预测:image->prediction 将真实世界的实体和抽象概念连接起来的过程叫预测(数字也是抽象概念)
3.Machine learning
-
机器学习 (machine learning):把以前用来做推理的大脑变成算法,用算法进行推理(例如:外卖软件会根据用户的订餐习惯,利用算法推送用户最有可能选择的食物)。
-
监督学习:拿出一组打过标签的数据集(Labeled Dataset),建立一个模型,用这些数据对模型进行训练,最终得到算法。
-
算法:1.穷举法 2.贪心法 3.分治法 4.动态规划
-
机器学习的算法与以上4种算法不同,它不是人工设计出来的,而是首先要有数据集,再从数据集中把想要的算法找出来。
-
AI -> Machine learning -> Representation learning -> Deep learning
4.How to develop learning system:
-
基于规则的系统 (Rule-based systems):input -> hand-designed program -> output
-
经典机器学习算法 (Classic machine learning):input -> hand-designed features(手工特征提取,将输入变成向量/张量) -> mapping from features (映射) -> output
-
表示学习 (Representation learning):input -> features -> mapping from features -> output
- 维度诅咒:维度越多对数据的需求量越大,但收集数据本身的工作量巨大。
所以需要把维度降低一些,还希望在把N维空间压缩成n维(n<N)的同时,尽量保持高维空间里的度量信息。这个过程叫做表示学习。
- 深度学习(Deep learning):input -> simple features -> additional layers of more abstract features -> mapping from features -> output (表示学习包括深度学习)
5.New change
- Limit of hand-designed feature
- SVM can’t handle big data set well
- More and more application need to handle unstructured data
ps:SVM(Support Vector Machine)支持向量机
6.neural networks (神经网络)
6.1反向传播(Back Propagation、BP算法)
- 反向传播是对于神经网络来说最重要的算法
- 反向传播是求偏导的过程
- 反向传播的核心是计算图(如下图所示)
a和b:输入量/权重,可经一系列运算得到e=(a+b)
∗
\\ast
∗(b+1)
在计算图中每一步的计算只能进行原子计算(不能被分割的运算)
假设a=1、b=2,从节点a出发,首先计算c=a+b=1+2=3,d=b+1=2+1=3,最后可得节点e= c ∗ c\\ast c∗d=3x3=9,这个过程叫做前馈。
求节点c时,一共有两条路径,即 ∂ c ∂ a \\frac\\partial c\\partial a ∂a∂c=1和 ∂ c ∂ b \\frac\\partial c\\partial b ∂b∂c=1。
求节点d时,只有一条路径,即 ∂ d ∂ b \\frac\\partial d\\partial b ∂b∂d=1。
求节点e时,一共有两条路径,即 ∂ e ∂ c \\frac\\partial e\\partial c ∂c∂e=d=3和 ∂ e ∂ d \\frac\\partial e\\partial d ∂d∂e=c=3。
最终目标要求 ∂ e ∂ a \\frac\\partial e\\partial a ∂a∂e和 ∂ e ∂ b \\frac\\partial e\\partial b ∂b∂e,可以把a到e的所有路径上的偏导数相乘,就是 ∂ e ∂ a \\frac\\partial e\\partial a ∂a∂e,即 ∂ e ∂ a \\frac\\partial e\\partial a ∂a∂e= ∂ e ∂ c \\frac\\partial e\\partial c ∂c∂e ⋅ \\cdot ⋅ ∂ c ∂ a \\frac\\partial c\\partial a ∂a∂c=3x1=3(链式法则),从b到e一共两条路径(b->c->e,b->d->e),将这两条路径上算出来的偏导数相加就是 ∂ e ∂ b \\frac\\partial e\\partial b ∂b∂e,即 ∂ e ∂ b \\frac\\partial e\\partial b ∂b∂e= ∂ e ∂ c \\frac\\partial e\\partial c ∂c∂e ⋅ \\cdot ⋅ ∂ c ∂ b \\frac\\partial c\\partial b ∂b∂c + + + ∂ e ∂ d \\frac\\partial e\\partial d ∂d∂e ⋅ \\cdot ⋅ ∂ d ∂ b \\frac\\partial d\\partial b ∂b∂d=3x1+3x1=6。
综上,利用BP算法可以构建复杂的计算图,且算法具有弹性(如果只是计算图发生改变,但原子计算式不变,即各个节点的偏导不变,那么算法仍然可以应用在新计算图上)。BP算法只需要计算每个原子算子的偏导,就可以在图里传播导数来实现最终的计算。
本文参考:《PyTorch深度学习实践》
pytorch深度学习60分钟快速入门part0:系列介绍
说明:本系列教程翻译自PyTorch官方教程《DeepLearningwithPyTorch:A60MinuteBlitz》 教程目标在高层次上理解PyTorch的Tensor库和神经网络训练一个小型的神经网络来分类图像前提条件假设读者熟悉基础的NumPy库确保已经安装了torch和t... 查看详情
pytorch深度学习60分钟快速入门part2:autograd自动化微分
在PyTorch中,集中于所有神经网络的是autograd包。首先,我们简要地看一下此工具包,然后我们将训练第一个神经网络。autograd包为张量的所有操作提供了自动微分。它是一个运行式定义的框架,这意味着你的后向传播是由你... 查看详情
pytorch入门01
1.为什么学习pytorch日益增长的发展速度和深度学习的需要 在谷歌搜索频次和期刊论文引用频次上pytorch也是一直增长,TF比较稳或者说有点下降,尤其在学术界pytorch已经成为主流。2.学哪类知识pytorch:深度学习框架01.数据模... 查看详情
pytorch深度学习实践入门01(代码片段)
文章目录基于PyTorch的两层神经网络一、基于numpy的两层神经网络实现:二、基于PyTorch的两层神经网络实现:三、使用nn库实现两层神经网络四、自定义nnModules实现两层神经网络总结基于PyTorch的两层神经网络提示:在... 查看详情
pytorch深度学习60分钟快速入门part3:神经网络
神经网络可以通过使用torch.nn包来构建。既然你已经了解了autograd,而nn依赖于autograd来定义模型并对其求微分。一个nn.Module包含多个网络层,以及一个返回输出的方法forward(input)。例如,查看下图中的对数字图片分类的网络... 查看详情
深度学习理论与实战pytorch实现
课程目录:01.预备内容(入门)02.Python基础(入门)03.PyTorch基础(入门)04.神经网络(进阶)05.卷积神经网络(进阶)06.循环神经网络(进阶)07.生成对抗网络GAN(进阶)08.强化学习(进阶)09.毕业项目 下载地址:深度学习理... 查看详情
深度学习之30分钟快速入门pytorch(附学习资源推荐)(代码片段)
目录1、Pytorch简介1.0如何使用本教程1.1PyTorch由来1.2Torch简介1.3重新认识PyTorch1.4PyTorch和Tensorflow的对比1.5总结2、Pytorch环境搭建2.1安装Pytorch2.2配置JupyterNotebook2.3测试3、张量4、自动求导5、神经网络6、用cifar10训练一个分类器7、数据... 查看详情
pytorch深度学习-06逻辑斯蒂回归(快速入门)(代码片段)
...可及”博主主页:@璞玉牧之本文所在专栏:《PyTorch深度学习》博主简介:21级大数据专业大学生,科研方向:深度学习,持续创作中目录1.LogisticTutorial(逻辑斯蒂回归)1.1WhyuseLogistic(为什么用逻辑斯蒂回... 查看详情
怎么快速入门深度学习
...理论知识,就需要学习一个深度学习的框架:Tensorflow、Pytorch。最近几年pytorch用的人越来越多了。图像识别的话,还需要学习opencv。参考技术A学习深度学习的基础知识:学习深度学习的基本概念,包括神经网络、卷积神经网络... 查看详情
小白入门深度学习|第四篇:配置pytorch环境
pytorch深度学习-03梯度下降(快速入门)(代码片段)
目录1.GradientDescent(梯度下降)1.1OptimizationProblem(优化问题)1.2GradientDescentalgorithm(梯度下降算法)1.2.1Gradient(梯度)1.2.2Update(更新权重)1.3代码实现1.4结果截图2.StochasticGradientDescent(随机梯度下降)2.1代码实现2.2结果截图3.Batch(批量的随机梯... 查看详情
(翻译)60分钟入门深度学习工具-pytorch(代码片段)
60分钟入门深度学习工具-PyTorch作者:SoumithChintala原文翻译自:一、Pytorch是什么?二、AUTOGRAD三、神经网络四、训练一个分类器五、数据并行他是一个基于Python的科学计算包,目标用户有两类为了使用GPU来替代numpy一个深度学习研... 查看详情
pytorch深度学习-02线性模型(快速入门)(代码片段)
...ampleSupposethatstudentswouldgetypointsinfinalexam,iftheyspendxhoursinpaperPyTorchTutorial.ThequestioniswhatwouldbethegradeifIstudy4hours?2.1Analyse把数据集分为两部分:一部分用于训练,一部分用于测试模型性能会出现的问题:Overfitting(过拟合):... 查看详情
深度学习pytorch四步阅读法
Pytorch框架快速入门前言找数据定义、找model定义、(找损失函数、优化器定义),主循环代码逻辑Pytorch框架编写深度学习模型,无非就是按照四步,从这四步出发去剖析和书写代码,可以比较好的提高我们的效率。基本思想和步骤... 查看详情
pytorch学习笔记3.深度学习基础(代码片段)
...多分类22.全连接层23.激活函数与GPU加速24.测试根据龙良曲Pytorch学习视频整理,视频链接:【计算机-AI】PyTorch学这个就够了!(好课推荐)深度学习与PyTorch入门实战——主讲人龙 查看详情
深度学习---从入门到放弃pytorch基础(代码片段)
深度学习—从入门到放弃(一)pytorchTensor类似于numpy的array,pandas的dataframe;在pytorch里的数据结构是tensor,即张量tensor简单操作1.Flattenandreshape###Originalz:tensor([[0,1],[2,3],[4,5],[6,7],[8,9],[10,11]])Flatte 查看详情
pytorch深度学习实践入门01(代码片段)
文章目录基于PyTorch的两层神经网络一、基于numpy的两层神经网络实现:二、基于PyTorch的两层神经网络实现:三、使用nn库实现两层神经网络四、自定义nnModules实现两层神经网络总结基于PyTorch的两层神经网络提示:在... 查看详情
pytorch入门与实战----pytorch入门(代码片段)
1.深度学习框架 pytorch与其他框架的比较pytorch的学习方法:课程安排:PyTorch是一个基于Python的科学计算库,它有以下特点:类似于NumPy,但是它可以使用GPU可以用它定义深度学习模型,可以灵活地进行深度学习模型的训练和使... 查看详情