一周学习总结
这一周挺忙的,要准备英语6级,我仅粗略的感受了一些名词概念,下面我分层次说一说我对机器学习,深度学习,神经网络和卷积神经网络的理解。
- 机器学习
机器学习有两大类任务regression(回归)和classification(分类)
当然还有很多任务,generation生成更复杂的东西,就是让机器学习创造新东西。
机器学习就像是一个函数:f(内容)=输出 内容可以是很多东西,比如图片等等,输出就是内容经过函数变化后的东西,可以是一段句子,一张图片,一个数字等等。
那这个f 该怎么编辑呢?不同于C或c++,c和c++中的f都是我们自己预先编辑好程序的运行步骤和规则。机器学习中的f是机器自己学来的。可以通过supervised learning(有监督学习)的方式,通过给机器训练,让机器自己找这个f,就是给机器大量训练数据,比如图片加标签的形式,提供给机器有标签的资料让它自己学习找最优最接近的f。机器在找最接近的f时会评估一个f的好坏,就是损失函数,类似于咱们概统中学的那些最大似然函数。损失函数(loss)越小,f越优。机器会自动找出损失函数最小的f。
还有reinforce learning(增强学习)就是机器在实践的过程中不断的反馈调节f,让f越来越优。
还有unsupervised learning(无监督学习)就是给机器一些训练数据,但是没有标签。
- 深度学习
深度学习包含于机器学习,也就是说深度学习一定是机器学习,机器学习不一定是深度学习。深度学习是从数据中学习表示的一种框架。
它强调从连续的层(layer)中学习。所谓深度就是一系列的层,深度有多深就是这些层数。这些层都是从训练数据中自动学习的。层数比较少的,比如一两层的称为浅层学习。
举一个书上的例子,数字识别:
输入一张图片(上面有个手写数字)–>经过第一层layer–>第二层–>第n层–>最终输出。
可以将深度网络看作多级信息蒸馏操作,每经过一层,所包含的信息就越丰富,一层层下去直至得出结果。
深度学习就是一种数据处理,每经过一个层,其数据就被过滤精细化。
每一层有个权重,每一层对数据所作的操作体现在权重里,这些操作本质上是一串数字,因为计算机只有0和1嘛。
学习的意思就是为所有的层找到权重值,这些所有的权重值组合在一起就相当于一个非常复杂的函式f。
通过损失函数作为反馈调节各组权重值,直至各组权重值组成的函式能比较准确的解决问题。
- 神经网络
神经网络的核心组件是:层,网络,(损失)目标函数,优化器
多个层layer组合在一起就是网络,输入数据X经过每个层的提取映射成Y,损失函数将预测值Y与真实值比较得到损失值反馈,优化器的作用就是利用损失值来更新网络中各个层的权重(weight)
神经网络的基本数据结构是层,层是一个数据处理模块,将一个或多个输入张量转化为一个或多个输出张量。
神经网络是层构成的。
可以解决一些二分类,多分类问题。
- 卷积神经网络
卷积神经网络是计算机视觉应用几乎都在使用的一种深度学习模型。
卷积神经网络与普通神经网络的区别在于,卷积神经网络包含一个由卷积层和池化层构成的特征提取器。卷积和池化简化了模型,减少了模型的参数。
卷积神经网络由三部分构成。第一部分是输入层。第二部分由n个卷积层和池化层的组合组成。第三部分由一个全连接的多层感知机分类器构成。
卷积神经网络 我暂时把他理解成一个很复杂很高维的函数,有输入,有输出。因为听说cnn常常被用在影像处理上,所以它的输入通常是个图像,图像一次次通过layer,每一次通过layer信息就被提取,图像中的信息就被一次次的提取,就像个过滤器原理一样。
cnn要比dnn更简单