Brief Introduction of Deep Learning(李宏毅机器学习)

在这里插入图片描述

简述,来自:https://blog.csdn.net/zyuPp/article/details/99288909
1958年:人们感觉人工智能要来了,因为linear model的出现,它可以做到一些稍微复杂的分类和预测问题,当时他们也叫这个技术为Perceptron,感知器
1969年:有人终于发现了linear model有缺点,研究了一下为什么“坦克与卡车”的图像分类为什么如此精确,原来是因为两组图片的拍照时间不一样,而机器是通过其亮度作为特征来分类的
1980年代:多层感知机MLP,尝试使用多层的感知机(与现在的deep learning基本没有差别)
1986年:出现了反向传播,但是发现超过3层就不太有用了
1989年:有人认为,一个隐藏层就足够成为任何的function,这段时间多层感知机被各种嫌弃,所以人们才给它换了个名字,就是深度学习
2006年:RBM initialization被认为是大突破,这个非常复杂,用于梯度下降初始化值,最后发现复杂但是没啥用
2009年:知道要用GPU来加速深度学习的模型训练
2011年:被用在语音辨识中,发现很好用
2012年:赢得了ILSVRC图像比赛,做图像的人也开始用Deep Learning(著名的AlexNet)

深度学习的三步骤:
Step1:define a set of function (function即Neural Network)
Step2:goodness of function
Step3:pick the best function
在这里插入图片描述

logistics regression将其连接,一个逻辑回归称为Neuron神经元。(逻辑回归是一种统计学习方法,用于解决二分类问题。它通过将输入特征与权重相乘并加上偏差,然后将结果通过一个逻辑函数(比如sigmoid函数)映射到0和1之间,从而得到一个概率值来预测样本属于某一类的概率。)
不同的方法连接Neural Network就得到不同的结构structure
每个logistics regression都有属于自己不同的weight权重,和bias偏移量,
weight和bias的集合称为network的函数θ

将neuron连接起来的方式有很多种(手动连接),其中Fully Connect Feedforward Network是最常见的;举个例子
在这里插入图片描述
两个输入:1,-1;6个neuron,两个一列
每个neuron都有一组weight和bias,例如蓝色(上)的weight是1与-2,bias是1
则1与-1输入后得输出为4,4通过sigmoid函数(为了将数值映射至0-1)得0.98
反复运算得到下图结果
在这里插入图片描述
如果不知道weight、bias参数,就称为一个function set
在这里插入图片描述
在这里插入图片描述

大家关于”Deep”的定义各不相同

这里是引用

network的运作常常用Matrix Operation来表示,假设第一个layer的两个neuron他们的weight分别是1,-2,-1,1,那就可以把这四个数排成一个Matrix,再把input layer排成一个vector(向量),接下来把bias(偏差)排成一个vector加上去。算出来的4和-2丢到fuction里面算出来的值就是0.98和0.12

假设第一个layer的所有weight全部集合起来当成Matrix w1,把bias全部集合起来当作b1
第二层、第三层。。。以此类推
给一个input x,output y怎么算呢?
用w1乘x加上b1,在通过一个function。就可以算出第二排的neuron的output称之为a1
就这样一层一层做下去,到最后一层就会得到最终的output-y。
其实就是一连串的矩阵运算

在这里插入图片描述

network通过hidden Layers(隐藏层)来提取特征,在隐藏层最后一层输出的就是新的特征,而输出层就拿着这些新的特征作为输入,通过一个softmax函数,得到最后输出y
ps:Softmax是一种用于多类别分类的激活函数,它将一个向量变换为概率分布,使得每个元素的取值范围在0到1之间,并且所有元素的和为1。在神经网络中,Softmax函数通常用于输出层,以将神经网络的输出转换为各个类别的概率分布,从而进行分类任务。

例子

在这里插入图片描述

输入一张16×16(256)像素大小的图片,输出手写数字范围是0~9,得到的y1-y10是识别图片是哪一个数字的概率。比如这个图片里,识别图片中数字是1的概率为0.1,是2的概率为0.7

设计步骤过程:
在这里插入图片描述
Step1:define a set of function (function即Neural Network)
指定神经网络模型的结构和参数。
红色框中表示一个function set,最关键的是设计neural network的结构structure。包括定义神经网络的层次结构,每个层次中的神经元数量,所使用的激活函数,以及神经元之间的连接方式。
在这里插入图片描述
Step2:goodness of function
在神经网络中确定用于衡量模型预测与实际目标之间差异的函数。通过损失函数的大小或者模型的性能来衡量,帮助我们判断模型的表现是否符合预期。
计算实际与目标的Cross Entropy(交叉熵),手动调整参数,以求得C的最小值
要去除具有最小损失值的函数,因为这个函数在训练集上表现过度拟合,导致在未见过的数据上性能较差。(在训练集上表现得过于好,以至于无法很好地泛化到未见过的数据上)
loss损失函数的最小值目的是使模型在训练数据上的性能最佳,调整C值的目的是为了在模型的泛化能力和拟合能力之间找到一个平衡点,以使模型在未见数据上表现最佳,既能够最小化训练误差,又能够避免过拟合。
在这里插入图片描述
Step3:pick the best function
评估它在验证集上的性能,或者通过交叉验证来实现。这有助于确保所选函数能够很好地推广到未见过的数据上。使用Gradient descent来找。
在这里插入图片描述
数据量很大也不会自己计算,使用一些工具或者软件库进行计算、分析或处理数据。
神经网络的普适近似定理(Universal Approximation Theorem)。该定理指出,一个具有足够多隐藏层的神经网络可以以任意精度逼近任何连续函数。

  • 25
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值