文章目录
几种学习方法
- 监督学习:全部信息都带有标签,让计算机通过标签知道什么是什么。
- 非监督学习:全部没有标签,让计算机自己区分一些和另一些的区别。
- 半监督学习:少量有标签,大量没有标签
- 强化学习:让计算机完成一个从未做过的任务,不给方法,让计算机自己摸索解决问题的途径。从经验中提升自己。AlhfaGo。
- 遗传算法:类似于强化学习。像是自然界中的遗传过程。保存上一代中最优的模型,然后繁衍、遗传、变异,得到更强的模型。
- 迁移学习:站在巨人的肩膀上。利用已经学习好的模型的学习能力,前面的庞大参数不再训练,只训练新的输出层,能节省很多时间。但并不是所有时候都需要迁移学习,训练小的神经网络并不需要太多时间;假如说迁移来的模型对结果不起作用甚至起反作用,还不如不迁移。迁移学习的思想就是找到做事的共性,利用这个共性完成任务。比如做饭、翻译,虽然输入千差万别,但是完成做饭或者翻译的原则却是类似的。
- 机器学习应用:百度图片识别,股票价格预测
神经网络
人体900亿神经细胞组成人体神经网络。
神经网络的构建:
- 生物:形成新的连接,不断互联成为新的网络。
- 人工:固定的网络,信息正向反向传播,误差反向传递不断修改模型。
什么是神经网络:
可称之人工神经元的组合,在外部刺激上不断改变自身。
人工神经网络可以分为输入层,隐藏层(信息的加工处理层),输出层。
中间的“黑盒层”做了什么事呢?输入信息从一种特征(feature)转换成另外一种特征,每一层都在做这种事。中间的这些特征可能是我们无法理解的,但是计算机却非常容易理解。最终输出的结果,也是一种“特征”,只不过是我们需要的那种。
神经网络怎样训练的?
给上千万个信息,让计算机进行学习。最开始部分神经元激活,进行某种尝试,得到的结果可能是错的,但是通过不断反馈,一些神经元开始变得不活跃,另一些则可能变得活跃起来(神经元的函数参数发生了改变)。循环往复下来,计算机的神经反馈网络越来越精准。
CNN卷积神经网络
Convolutional neural networks,用于计算机图片识别、NLP,药物发明等。
- 比如识别图片,每次处理的不是一个个像素点,而是一些区域。这样让计算机更好认识图片。“区域批量过滤器”每次得到图片的部分信息,多次重复,就能看到图片的全貌了。
- 说一下图片是怎样卷积的:图片有长宽高三个维度,过滤器在影像中不断移动,手机小批小批的像素块,分析完后输出。这样就得到了一个长宽更小,高度更高的图片。这个新图片就能包含一些边缘信息。同理用这个步骤多次卷积,图片长宽不断压缩、高度不断增加,增高的信息嵌套在普通分类神经层上,就能分类图片了。
- 池化:神经元每次卷积都可能丢失掉一些信息。池化就是卷积的时候不压缩长宽,尽可能保留更多信息,由池化进行压缩。
- 常用的两层CNN模型
输入层image-> (卷积-> MaxPolling){2} -> 全连接的神经层{2} -> Classifier
RNN循环神经网络
用途
Recurrent neural networks,处理序列化数据,比如语音。
现在有这么些个数据,Data0,Data1…,这些数据之间是有先后关系的,因此结果也是有先后关系的。RNN要做的就是处理完当前的数据后,带着结果到下一个数据分析节点,一起分析下一步要得到的结果。就像下面这张图显示的那样:
应用
对于不同的应用,输入和输出的个数、位置可能不一样。
比如图片描述:给一个图片,输出一段话来描述它。只有一个输入,有很多输出。
翻译:输入中文,输出英文
LSTM RNN长短期记忆RNN
普通RNN的弊端:
梯度弥散:误差反向传递的时候每次都要乘以一个参数w,如果w<1,那么穿的到初始位置也会是一个接近0的数。误差也就相当于消失了。
梯度爆炸:误差反向传递过程中w>1,返回到初始节点就成了无穷大的数字,导致无法处理。正是因此,普通RNN无法回忆长期记忆。
LSTM:输入控制、输出控制、忘记控制
有主线记忆、分线记忆(Long short term memory)。
主线记忆的更新取决于输入和忘记控制。如果输入的新记忆对主记忆有很大影响,那么就会忘记控制会忘记某些主线记忆,按比例替换成新记忆。
最后的输出,输出控制根据目前的主线记忆和分线记忆判断到底要输出什么。
自编码Autoencoder
就是神经网络的非监督学习。
训练神经网络需要大量的数据,如果直接让神经网络处理这些数据,那么会非常吃力。提取出原始信息的精髓——信息量小却包含了原来所有关键信息的文件——然后让神经网络处理,能大大减小神经网络的负担。
这张图片里左边是原始数据,经过左边的处理得到了压缩的数据,也就是编码;右边的是解码,用这些关键少量信息恢复原始信息。当然,也有误差在不断反向传递,不断修改模型以变得更准确。
当然,常见的只有左边的部分。让编码器整理出原始信息的精髓,交给另外一个神经网络去学习。这样能大大减小神经网络的负担。
生成对抗网络GAN
用以“凭空”生成有意义的作品。
Generator根据随机数生成有意义的数据,Discriminator会学习判断那些是真实数据,哪些是生成数据,并将学习的经验反向传递给Generator,让Generator能根据随机数生成更接近真实数据的数据。
梯度下降 Gradient Descent
Optimization:优化问题。
假如误差Error的方程中有
W
1
,
W
2
,
.
.
.
W_1,W_2,...
W1,W2,...这些神经网络中的参数,以及
x
,
y
,
z
,
.
.
.
x,y,z,...
x,y,z,...等信息的维度。梯度下降,就是沿着梯度下降(数学上就是求导,沿着导函数减小)的方向寻找。
我们往往只能找到局部最优解,而非全局最优解。但是也能找到一个足够优秀的局部最优解,代替全局最优解完成任务。
2019-05-09 17:42:29