曲入冥
这个作者很懒,什么都没留下…
展开
-
深度学习——第11章 优化神经网络:梯度优化
本文主要介绍了神经网络中几种常见的梯度下降优化算法,包括Mini-Batch、Momentum、Nesterov Momentum、AdaGrad、RMSprop、Adam、Learning Rate Decay,并对各自特点进行了说明和对比。实际应用中应该根据具体情况选择合适的优化算法。原创 2024-03-18 09:30:00 · 293 阅读 · 0 评论 -
机械学习概述
1997年5月11日,一台名为“深蓝”的超级电脑战胜国际象棋名家卡斯帕罗夫。20世纪末的一场人机大战终于以计算机的微弱优势取胜。2016年3月,阿尔法围棋程序(AlphaGo)挑战世界围棋冠军李世石,以4比1的总比分取得了胜利。此事震惊世界,2016年因此被称为人工智能(Artificial Intelligence,AI)元年。为什么会引发这么大的轰动呢?除了围棋变化特别大的原因外,更重要的是阿尔法程序已经具备了自我学习和自我进化能力。原创 2023-11-29 17:20:26 · 1669 阅读 · 1 评论 -
深度学习——第1章 深度学习的概念及神经网络的工作原理
更重要的是,如果其中一些输入,单个而言一般大,但不是非常大,这样由于信号的组合足够大,超过阈值,那么神经元也能激发。不采用其它方式,原因有两点,第一是这种一致的完全连接形式事实上可以相对容易地编码成计算机指令,第二是神经网络的学习过程将会弱化这些实际上不需要的连接(也就是这些连接的权重将趋近于0),因此对于解决特定任务所需最小数量的连接冗余几个连接,也无伤大雅。最初的成功,让人们看到了计算机可以进行简单的博弈、证明定理,因此,一些人相信,在十年左右的时间内,人类级别的人工智能将会出现。原创 2023-11-30 18:49:05 · 1849 阅读 · 0 评论 -
深度学习——第2章 深度学习开发环境搭建
Anaconda是一个开源的Python发行版本,其包含了conda、Python等800多个科学包及其依赖项。因为包含了大量的科学包,Anaconda 的下载文件比较大,如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和 Python)。开源免费支持近800个第三方库包含多个主流工具适合数据计算领域开发Jupyter Notebook是一个开源的Web应用程序,允许用户创建和共享包含代码、方程式、可视化和文本的文档。原创 2023-12-01 19:07:43 · 1286 阅读 · 1 评论 -
深度学习——第03章 Python程序设计语言(3.1 Python语言基础)
Python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。Python具有丰富和强大的库,它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。为什么人工智能、深度学习会选择Python呢?一方面是因为Python作为一门解释型语言,入门简单、容易上手。原创 2023-12-02 18:12:51 · 1107 阅读 · 1 评论 -
深度学习——第3章 Python程序设计语言(3.2 Python程序流程控制)
无论是在机器学习还是深度学习中,Python已经成为主导性的编程语言。而且,现在许多主流的深度学习框架,例如PyTorch、TensorFlow也都是基于Python。本课程主要是围绕“理论+实战”同时进行,所以本章将重点介绍深度学习中Python的必备知识点。原创 2023-12-03 17:44:38 · 1247 阅读 · 1 评论 -
深度学习——第3章 Python程序设计语言(3.3 Python数据类型)
计算机能处理各种类型的数据,包括数值、文本等,不同的数据属于不同的数据类型,有不同的存储方式,支持不同的运算和操作。Python语言提供了丰富的内置数据类型,用于有效处理各种类型的数据。Python语言中,一切皆为对象,每个对象都归属于某个确定的数据类型。Python数据类型可简单分为和两种。、复数型、,对应数学中的整数、实数、复数、布尔逻辑值。组合数据类型将多个相同或不同类型的数据组织起来,通过单一表示使数据更有序、更容易操作。根据数据之间的关系,可以分为、和。原创 2023-12-04 11:38:40 · 1321 阅读 · 0 评论 -
深度学习——第3章 Python程序设计语言(3.4 Python自定义函数)
def (参数1, 参数2, ...):函数体return Python函数的定义由关键字def开始,后面加上函数名和括号,括号里是函数的参数。函数名要符合标识符规则,命名规则要求字母小写,可以使用下划线增加可阅读性。函数参数必须放置在函数名后的括号内,可以有0个、1个或更多个参数,相邻参数之间用逗号隔开,表示传递给该函数的值或变量引用。定义函数时的参数称之为形参,意为形式上的参数,非实际参数。原创 2023-12-05 20:55:02 · 1334 阅读 · 1 评论 -
深度学习——第3章 Python程序设计语言(3.5 Python类和对象)
对象(object),从概念层面讲,就是某种事物的抽象。抽象原则包括两个方面:数据抽象,定义对象的属性;过程抽象,定义对象的操作。面向对象的程序设计强调把数据(属性)和操作(服务)结合为一个不可分的系统单位(即对象),对象的外部只需要知道它做什么,而不需要知道它如何做。从规格层面讲,对象是一系列可以被其他对象使用的公共接口(对象交互)。从语言实现层面来看,对象封装了数据和代码(数据和程序)。Python中的对象也是如此,对象的静态特征称为“属性”,对象的动态特征称为方法。原创 2023-12-06 15:11:39 · 1342 阅读 · 1 评论 -
深度学习——第3章 Python程序设计语言(3.6 numpy库)
强大的N维数组对象ndarray(Array;Matrix)成熟的(广播)函数库整合了C/C++/Fortran代码的工具实用的线性代数、傅里叶变换和随机数生成函数与稀疏矩阵运算包scipy配合使用更加方便numpy是SciPy、Pandas等数据处理或科学计算库的基础。它提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密的运算库,为进行严格的数字处理而产生。原创 2023-12-07 14:10:53 · 1231 阅读 · 0 评论 -
深度学习——第3章 Python程序设计语言(3.7 matplotlib库)
matplotlib官网matplotlib是Python优秀的数据可视化第三方库,是一个非常强大的Python画图工具。它是Python的2D绘图库,可以以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形,能绘制线图、散点图、等高线图、条形图、柱状图、3D 图形、甚至是图形动画等等。通过学习matplotlib库,可以掌握表示、清洗、统计和展示数据的能力。原创 2023-12-08 18:34:19 · 1423 阅读 · 0 评论 -
深度学习——第3章 Python程序设计语言(3.8 深度学习框架PyTorch)
PyTorch是由Meta AI(Facebook)人工智能研究小组开发的一种基于Lua编写的Torch库的Python实现的深度学习库,目前被广泛应用于学术界和工业界,相较于Tensorflow2.x,PyTorch在API的设计上更加简洁、优雅和易懂。了解PyTorch的发展流程了解PyTorch相较于其他框架的优势几何代数中定义的张量是基于向量和矩阵的推广,比如可以将标量视为零阶张量,矢量可以视为一阶张量,矩阵就是二阶张量。张量维度代表含义0维张量代表的是标量(数字)1维张量。原创 2023-12-09 09:44:24 · 1450 阅读 · 0 评论 -
深度学习——第4.1章 深度学习的数学基础
4.1 向量4.2 求和符号4.3 累乘符号4.4 导数4.5 偏导数4.6 矩阵4.7 指数函数和对数函数注意:4.6和4.7位于4.2章本章总结一下机器学习所需的数学知识,同时介绍如何在Python中使用这些知识。 向量由几个数横向或纵向排列而成。数纵向排列的向量叫作列向量,如下式4-1所示的变量就是列向量:a=[13],b=[21](4-1)\boldsymbol{a}=\left[\begin{array}{l}1 \\3\end{array}\right], \boldsymbol{b}=原创 2023-12-10 22:04:50 · 1375 阅读 · 0 评论 -
深度学习——第4.2章 深度学习的数学基础
4.6 矩阵4.7 指数函数和对数函数下一章开始,我们就会用到矩阵。借助矩阵,可以用一个式子表示大量的联立方程式,特别方便。此外,使用矩阵或向量表示,也会更有助于我们直观理解方程式。图4-13 标量、向量、矩阵、张量把数横向或纵向排列,得到的是向量;把数像表格一样既横向排列又纵向排列,得到的就是矩阵。下式表示的是一个2×3矩阵(图4-14):A=[123456](4-70)A=\left[\begin{array}{lll}1 & 2 & 3 \\4 & 5 & 6\tag{4-70}\end{a原创 2023-12-11 08:00:00 · 858 阅读 · 0 评论 -
深度学习——第4.3章 深度学习的数学基础
4.7 指数函数和对数函数深度学习经常会用到Sigmoid函数和Softmax函数,这些函数是通过包含exp(x)的指数函数创建的。后面我们需要求解这些函数的导数。指数是一个基于“乘以某个数多少次”,即乘法的次数的概念,并且不只是自然数,它还可以扩展到负数和实数。图4-23 指数的定义与公式指数函数的定义是:y=ax(4-105)y=a^x \tag{4-105}y=ax(4-105)如果要强调指数函数中的aaa,那么可以称之为“以aaa为底数的指数函数”。这里的底数aaa是一个大于0且不等于1的数。观察式原创 2023-12-12 08:00:00 · 1244 阅读 · 0 评论 -
深度学习——第5章 神经网络基础知识
本文主要介绍了神经网络的基础知识,包括逻辑回归、损失函数、梯度下降和计算图。其实逻辑回归模型就可以看成是神经网络中的单个神经元。掌握逻辑回归模型的正向传播和反向传播细节,对我们熟练了解神经网络模型非常重要。打下这些基础之后,我们将在下一篇开始真正的神经网络学习。原创 2023-12-14 18:42:16 · 1293 阅读 · 0 评论 -
深度学习——第6章 浅层神经网络(NN)
首先,我们来看一个简单的神经网络模型:最简单的神经网络模型由输入层(Input Layer)、隐藏层(Hidden Layer)、输出层(Output Layer)组成,我们称之为2层神经网络。隐藏层和输出层都由个数不一的神经元组成。如上图所示,输入层有3个输入:x1、x2、x3,分别代表不同的输入特征。例如一张图片所有的像素值(当然不止3个)。一般地,输入层不标注◯\bigcirc◯,表示没有神经元。该神经网络模型隐藏层包含了4个神经元,输出层只有1个神经元。原创 2023-12-16 09:54:48 · 1343 阅读 · 1 评论 -
深度学习——第7章 项目实战:自己动手写一个神经网络模型
我们使用的简单神经网络,只包含一层隐藏层。首先,我们需要定义神经网络输入层、隐藏层、输出层的神经元个数。m = X.shape[1] # 样本个数n_x = X.shape[0] # 输入层神经元个数n_h = 3 # 隐藏层神经元个数n_y = Y.shape[0] # 输出层神经元个数。原创 2024-01-13 15:07:17 · 320 阅读 · 0 评论 -
深度学习——第8章 深层神经网络(DNN)
本节主要介绍了深层神经网络模型的结构和常用的标记方法,详细推导了深层神经网络模型的正向传播和反向传播过程。最后,介绍了多分类Softmax模型,推导出Softmax的dZLdZ^{[L]}dZL表达式与二分类的dZLdZ^{[L]}dZL完全一致。原创 2024-03-01 08:59:32 · 913 阅读 · 0 评论 -
深度学习——第9章 项目实战:让你的神经网络模型越来越深
上一课主要介绍了深层神经网络模型的结构和常用的标记方法,详细推导了深层神经网络模型的正向传播和反向传播过程,并在最后介绍了多分类 Softmax模型。本节将搭建一个较深层的神经网络来解决猫和狗的分类问题。这是一个典型的二分类问题。输入是一张图片,我们会把 3 通道的 RGB 图片拉伸为一维数据作为神经网络的输入层。神经网络的输出层包含一个神经元,经过 Softmax 输出概率值P,若P0.5,则判断为猫(正类),若P≤0.5,则判断为非猫(负类)。原创 2024-03-06 21:02:11 · 735 阅读 · 1 评论 -
深度学习——第10章 优化神经网络:如何防止过拟合(DNN)
任何机器学习模型,包括神经网络都可能存在过拟合(Overfit)问题。下面用一张图来说明:上图中,分别用三个模型来拟合实际的样本点(红色x表示样本)。第一个模型是一条直线,模型简单,但是预测值与样本Label差别较大,这种情况称之为欠拟合(Underfit)。第三个模型是一个高阶多项式,模型过于复杂,虽然预测值与样本Label完全吻合,但是该模型在训练样本之外的数据上拟合效果可能很差,该模型可能把噪声也学习了。这种情况称之为过拟合(Overfit),即模型过于拟合训练样本的数据而泛化能力很差。原创 2024-03-13 08:00:00 · 525 阅读 · 1 评论